[英]Need help for Xamarin android Localization in files XML
我用這篇文章。 但我無法更改字符串資源中的文本。 因此,我無法使用構造 - @string/id
自動更新 XML 文件中的文本。 我創建了兩個資源Language.resx
和Language.uk.resx
。 在每一行中,我都創建了一行,這很有效。 我還添加了文件夾values-uk
並向其中添加了文件String.xml
- 這對我不起作用。
這是我的代碼:
Localization.Resources.Language.Culture = new CultureInfo("ru");
System.Diagnostics.Debug.WriteLine("Resource string.xml:" + Resources.GetText(Resource.String.test_string));
System.Diagnostics.Debug.WriteLine("Resource Language:" + Localization.Resources.Language.test_string);
Localization.Resources.Language.Culture = new CultureInfo("uk");
System.Diagnostics.Debug.WriteLine("Resource string.xml:" + Resources.GetText(Resource.String.test_string));
System.Diagnostics.Debug.WriteLine("Resource Language:" + Localization.Resources.Language.test_string);
我的調試 output
我的文件值/字符串.xml
<resources>
<string name="app_name">Localization</string>
<string name="action_settings">Settings</string>
<string name="test_string">Russian</string>
</resources>
我的文件值-uk/String.xml
<resources>
<string name="app_name">Localization</string>
<string name="action_settings">Settings</string>
<string name="test_string">Ukrainian</string>
</resources>
我的問題是什么?
正在工作。 必須將文件的屬性strings.xml
設置為AndroidResource
,對於文件*.resx
您需要EmbeddedResource
的屬性。 這很重要:您可以使用以下代碼:
Localization.Resources.Language.Culture = new CultureInfo("ru");
Java.Util.Locale.Default = new Java.Util.Locale("ru", "RU");
Resources.Configuration.Locale = Java.Util.Locale.Default;
System.Diagnostics.Debug.WriteLine("Resource string.xml:" + Resources.GetText(Resource.String.test_string));
System.Diagnostics.Debug.WriteLine("Resource Language:" + Localization.Resources.Language.test_string);
Localization.Resources.Language.Culture = new CultureInfo("uk");
Java.Util.Locale.Default = new Java.Util.Locale("uk", "UA");
Resources.Configuration.Locale = Java.Util.Locale.Default;
Resources.UpdateConfiguration(Resources.Configuration, Resources.DisplayMetrics);
Finish();
Intent intent = new Intent(this, this.Class);
StartActivity(intent);
System.Diagnostics.Debug.WriteLine("Resource string.xml:" + Resources.GetText(Resource.String.test_string));
System.Diagnostics.Debug.WriteLine("Resource Language:" + Localization.Resources.Language.test_string);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.