使用TwoLetterIsoLanguageName作为ResourceManager

时间:2018-07-24 13:52:30

标签: xamarin.forms resources cultureinfo resourcemanager

我有6种用于6种不同语言(En,Nl,De,Es,It,Fr)的资源文件。 我正在使用ResourceManager.GetString来获取字符串,但只有在AppResources文件具有完整的en-EN,fr-FR等的情况下,它才似乎有效。

是否可以将文件AppResources.es.resx命名为es-ES,从而在西班牙和墨西哥使用,或者用fr代替fr-FR,使其在法国和加拿大使用?

以下解决方案是我尝试过的,但似乎没有用:

ResourceManager.GetString(Text, new CultureInfo(cultureInfo.TwoLetterISOLanguageName))

1 个答案:

答案 0 :(得分:0)

TwoLetterISOLanguageName应该可以正常工作。

请检查是否在Culture上设置了AppResources,即使设备的区域设置不同,值也会在您的应用中强制执行。

根据我们在评论中的讨论,结果发现问题出在您的资源文件没有正确的构建动作。不要忘记将resx文件设置为Custom Tool: ResXFileCodeGenerator

另请参见https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/localization/text?tabs=vswin

上的文档