Xamarin.forms 为ResourceManager使用TwoLetterIsLanguageName

Xamarin.forms 为ResourceManager使用TwoLetterIsLanguageName,xamarin.forms,resources,cultureinfo,resourcemanager,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(Tex

我有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.twoletteisolanguagename))
twoletteisolanguagename应该可以正常工作

请检查是否在
AppResources
上设置了
区域性
,以便在应用程序中强制执行这些值,即使设备的区域设置不同

从我们在评论中的讨论可以看出,问题在于您的资源文件没有正确的生成操作。不要忘记将您的resx文件设置为自定义工具:ResXFileCodeGenerator


另请参见

中的文档,它应该可以工作,也许您的当前值没有刷新?你为什么认为它不起作用?您是否有任何错误?没有错误,在调试中我的文化信息是nl nl,但我得到的是默认文本(英文)您是否在
附件中设置文化。文化
?另请参阅:由于您的链接,已发现问题。问题是我太笨了,忘了将文件的构建操作设置为EmbeddedResource哈哈,这发生在我们当中最好的人身上!如果您不介意,我会将其更新为一个答案,以供将来参考:)