簡體   English   中英

需要幫助 Xamarin android 文件中的本地化 XML

[英]Need help for Xamarin android Localization in files XML

我用這篇文章 但我無法更改字符串資源中的文本。 因此,我無法使用構造 - @string/id自動更新 XML 文件中的文本。 我創建了兩個資源Language.resxLanguage.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

  • [0:] 資源字符串。xml:俄語
  • [0:] 資源語言:俄語
  • [0:] 資源字符串。xml:俄語
  • [0:] 資源語言:烏克蘭語

在此處輸入圖像描述

我的文件值/字符串.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM