C# 使用语言代码(en)或完整文化代码(如en AU)?

C# 使用语言代码(en)或完整文化代码(如en AU)?,c#,wpf,localization,internationalization,C#,Wpf,Localization,Internationalization,我有一个C#/WPF中的应用程序,它是国际化的(某些语言的资源字符串) 目前,我正在为资源文件使用以下代码:default.resx、de de、fr-fr、es-es、pt-BR、pt-pt、nl-nl等 但我有一些问题: 例如,对于nl,有两种变体:nl nl(荷兰)和nl BE。目前我使用nl nl,但我猜如果一个来自比利时的人会得到默认文本,因为nl BE没有定义。这是真的吗 我应该使用then nl而不是nl nl吗 对于某些语言,只定义了一个国家(如胡胡)。。。那么胡和胡有什么区别呢

我有一个C#/WPF中的应用程序,它是国际化的(某些语言的资源字符串)

目前,我正在为资源文件使用以下代码:default.resx、de de、fr-fr、es-es、pt-BR、pt-pt、nl-nl等

但我有一些问题:

  • 例如,对于nl,有两种变体:nl nl(荷兰)和nl BE。目前我使用nl nl,但我猜如果一个来自比利时的人会得到默认文本,因为nl BE没有定义。这是真的吗

  • 我应该使用then nl而不是nl nl吗

  • 对于某些语言,只定义了一个国家(如胡胡)。。。那么胡和胡有什么区别呢?我什么都不想,但我想确定一下


  • 资源搜索顺序更为复杂和灵活,请参见MSDN

    对于您的问题注释第5项:如果未找到类似nl nl的特定区域性,则会搜索父区域性()。但是父文化不一定是没有国家的文化名称,例如,对于zh CN,它是zh CHS。还有,可能有祖父母文化等等

  • 可以,但请小心选择正确的父区域性名称。不要简单地把这个国家砍掉
  • 是的,这没关系,只是具体的加载速度可能会稍微快一点。另一方面,你永远不知道将来是否会有另一种特定的文化来支持同一种语言。也许匈牙利的少数民族会说罗马尼亚有自己的文化信息
  • 是的,如果您负担不起为nl BE和nl nl本地化,您通常希望在诸如“nl”之类的中立文化中提供资源。如果特定区域性不可用,资源管理器将自动回退到父区域性

    你的客户是否会对此感到高兴,这是你以后可能会发现的。佛兰芒语和荷兰语非常相似,所以对于这种特殊情况,他们不太可能感到不安。对于巴西队和葡萄牙队来说,这并不那么明确,他们已经有了一些时间来发展自己的方言,就像美式英语不再是英国式的,颜色各异。胡虎对胡虎没关系,选胡虎吧

    背景资料