Как настроить локализацию / культуру в iOS Xamarin C #

1

Как установить локализацию/культуру моего приложения в iOS Xamarin?

Я знаю, что мы можем получить локализованную строку, как упомянуто здесь, но я хочу сохранить свой язык телефона/устройства, например, на английском, но когда загружается мое приложение, я хочу изменить культуру с английского на японский/испанский.

Как настроить культуру приложения в iOS с помощью Xamarin С#?

Использование XCode может быть, мы можем установить его, используя приведенный ниже код, но теперь знаете, как установить с Xamarin iOS С#

[[NSLocale alloc] initWithLocaleIdentifier:@"es-MX"]
  • 1
    Я не знаю, почему это кажется не по теме? Разве мы не можем задать вопрос или ресурсы, связанные с установкой культуры приложения для Xamarin?
Теги:
xamarin

2 ответа

4
Лучший ответ

Вот решения для набора локализованной строки в Xamarin

var path = NSBundle.MainBundle.PathForResource("en", "lproj");
NSBundle languageBundle = NSBundle.FromPath(path);
lblEn.Text = languageBundle.LocalizedString("Task Details", "Task Details");

var path1 = NSBundle.MainBundle.PathForResource("es", "lproj");
NSBundle languageBundle1 = NSBundle.FromPath(path1);
lblEs.Text = languageBundle1.LocalizedString("Task Details", "Task Details");

Вот структура папок:

Изображение 174551

Вот пример файла localizable.strings:

Изображение 174551

  • 0
    я получаю ошибку, что путь пуст
1

Я не уверен, что вы хотите сделать с языковой версией, но эквивалент кода Objective-C в Xamarin будет следующим:

var locale = new NSLocale("es-MX");

Вы также можете создать новую CultureInfo для использования в форматировании строк:

var cultureInfo = new CultureInfo("es-MX");

Использование CultureInfo в приложении:

        var cultureInfo = new CultureInfo("fi-FI");

        var datetime = DateTime.Now;

        var date = string.Format(cultureInfo, "{0}", datetime);

        System.Diagnostics.Debug.WriteLine(date);

Вывод:

    9.8.2014 16:32:10

Числовое форматирование:

        double d = 0.10001;

        System.Diagnostics.Debug.WriteLine(string.Format
            (CultureInfo.CreateSpecificCulture("fi-FI"), "Finnish numeric : {0}", d));
        System.Diagnostics.Debug.WriteLine(string.Format
            (CultureInfo.CreateSpecificCulture("es-MX"), "Mexican numeric : {0}", d));
        System.Diagnostics.Debug.WriteLine(string.Format
            (CultureInfo.CreateSpecificCulture("en-US"), "US      numeric : {0}", d));

Вывод:

    Finnish numeric : 0,10001
    Mexican numeric : 0.10001
    US      numeric : 0.10001

Валюта:

        System.Diagnostics.Debug.WriteLine(string.Format
            (CultureInfo.CreateSpecificCulture("fi-FI"), "Finnish currency : {0:c}", d));
        System.Diagnostics.Debug.WriteLine(string.Format
            (CultureInfo.CreateSpecificCulture("es-MX"), "Mexican currency : {0:c}", d));
        System.Diagnostics.Debug.WriteLine(string.Format
            (CultureInfo.CreateSpecificCulture("en-US"), "US      currency : {0:c}", d));

Вывод:

   Finnish currency : 0,10 €
   Mexican currency : $0.10
   US      currency : $0.10
  • 0
    Спасибо @SKall. Это будет работать для строки, которую я хочу настроить, но как насчет текста / заголовков, которые я установил для каждого элемента управления из свойств? Как настроить культуру приложения так, чтобы оно автоматически ссылалось на соответствующую языковую папку?
  • 0
    Для кросс-платформенной разработки наиболее подходящим способом является использование баз данных SQLite. В зависимости от локали пользователей просто загрузите соответствующую базу данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню