我正在努力将iOS App移植到WP8。 iOS应用程序已本地化为5种不同的语言。本地化字符串存储在不同的文件中。例如,“app.strings”包含应用程序的所有字符串,“common.strings”包含其他应用程序中使用的字符串。当然每个.strings文件有5个版本(app.de.strings,app.en.strings,....)。
在iOS代码中,我可以简单地引用“String_ID_123”,系统将自动在所有.strings文件中搜索该字符串,并显示正确的值,无论该字符串是否可以在app.strings中找到,常见。字符串或其他地方这对WP8也有可能吗?
VS自动创建了两个文件以支持本地化:
当然,我可以将额外的.resx文件添加到项目中,并使用它们创建与iOS项目相同的结构。但是我必须添加其他版本的LocalizedStrings.cs(例如LocalizedStrings_Common.cs),它们也引用了正确的.resx。然后我必须在XAML中明确使用正确的Souce。
我必须知道String_ID_123的定义。有没有办法让XAML / C#自动执行此操作?
答案 0 :(得分:1)
我担心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。你必须自己添加一份副本。