如何在存储字符串时指定语言?

时间:2016-09-06 12:53:46

标签: localization internationalization

我目前正在开发支持多种语言的系统。我希望在未来集成的情况下尽可能精确地在数据库中指定这些语言。 (是的,我知道它有点YAGNI)

我找到了几种定义语言的方法

  • nb-NO
  • nb_NO
  • nb-no
  • nb_no
  • nb

这些都意味着“NorwegianBokmål”。哪一个,如果有的话,是最正确的?

ArchLinux Wiki上的Locale文章将区域设置指定为language[_territory][.codeset][@modifier]。我猜codesetmodifier仅与输入相关。但language是最低限度,territory如果我们实施有关货币和小数点等的文化差异可能会很好。

我是否在思考它?

1 个答案:

答案 0 :(得分:0)

看看BCP 47 https://tools.ietf.org/html/bcp47

在这个时代你需要至少支持语言,脚本,地区(只有语言必须存在)

这取决于你使用这个标签的很多东西。 如果是口语内容,你可能会关心方言(例如广东话和普通话),但不是剧本。在书面形式中,您将关注脚本(繁体与简体中文),但不关心方言。

用于处理事物的完整堆栈也很重要。您可以使用减号作为分隔符,使用grandfathered ID或-u-扩展名(请参阅bcp),然后发现您使用的编程语言" chokes"在上面。或者你使用"他"对于希伯来语,但你的语言(咳嗽Java咳嗽)想要被弃用的" iw"

因此,您可能决定使用与技术堆栈相同的区域设置ID,或者拥有"转换层"。 如果您希望从多种技术中访问内容,那么转换层是您唯一的(合理的)选项。