簡體   English   中英

如何使用多個RESX文件

[英]How to use more than one RESX file

我正在將iOS App移植到WP8。 iOS應用已本地化為5種不同的語言。 本地化的字符串存儲在不同的文件中。 例如,“ app.strings”保存該應用程序唯一的所有字符串,“ common.strings”保存其他應用程序中使用的字符串。 當然,每個.strings文件都有5個版本(app.de.strings,app.en.strings等)。

在iOS代碼中,我可以簡單地引用“ String_ID_123”,並且系統會自動在所有.strings文件中搜索該字符串並顯示正確的值,無論是否可以在app.strings,common.strings或其他地方找到該字符串。 WP8上也可能嗎?

VS自動創建了兩個文件來支持本地化:

  • AppResources.resx ,其中包含實際的字符串(帶有AppRessources.Designer.cs作為后面的代碼)
  • LocalizedStrings.cs ,它是一個支持綁定的助手類

當然,我可以在項目中添加其他.resx文件,並使用它們創建與iOS項目相同的結構。 但是隨后,我將不得不添加LocalizedStrings.cs的其他版本(例如LocalizedStrings_Common.cs),它也引用正確的.resx。 然后,我將不得不在XAML中顯式使用正確的Souce。

我必須知道String_ID_123的定義位置。 有什么方法可以讓XAML / C#自動執行此操作?

恐怕VS不會幫您這個忙。 首先,如果不指定String_ID_123所在的資源文件,就無法尋址它。其次,當添加其他資源文件(例如CommonResources.resx)時,VS不會為您修改LocalizedStrings。 您將必須自己做。

   public class LocalizedStrings
    {
        private static AppResources _localizedResources = new AppResources();
        private static CommonResources _locallizedCommonResources = new CommonResources();

        public AppResources LocalizedResources { get { return _localizedResources; } }
        public CommonResources LocalizedCommonResources { get { return _locallizedCommonResources; } }

第三,當您向項目中添加新語言時,VS將為您生成AppResources.fr.resx,但不會生成CommonResources.fr.resx。 您必須添加自己的副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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