Как установить локализацию/культуру моего приложения в iOS Xamarin?
Я знаю, что мы можем получить локализованную строку, как упомянуто здесь, но я хочу сохранить свой язык телефона/устройства, например, на английском, но когда загружается мое приложение, я хочу изменить культуру с английского на японский/испанский.
Как настроить культуру приложения в iOS с помощью Xamarin С#?
Использование XCode может быть, мы можем установить его, используя приведенный ниже код, но теперь знаете, как установить с Xamarin iOS С#
[[NSLocale alloc] initWithLocaleIdentifier:@"es-MX"]
Вот решения для набора локализованной строки в 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");
Вот структура папок:
Вот пример файла localizable.strings:
Я не уверен, что вы хотите сделать с языковой версией, но эквивалент кода 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