我有一些将被本地化的静态资源(图像和HTML文件)。我见过的一个软件是Apache,它将语言环境附加到名称上;例如,test_en_US.html
或test_de_CH.html
。我想知道这个命名方案是否被认为是标准的,或者每个项目是否都采用不同的方式。
答案 0 :(得分:10)
虽然没有文档标准来命名本地化文件,但我建议使用格式 filename [_language [_country]] 其中
例如:
为什么呢?这是操作系统,全球化工具(如Trados和WorldServer)和编程语言使用的最典型格式。因此,除非你特别喜欢不同的格式,否则我认为没有理由偏离其他大多数人所做的事情。它可以为您节省一些整合难题。
答案 1 :(得分:1)
虽然文件名中没有关于 where 的标准惯例,但语言的国际代码(例如“en”)和地区(例如“en-US”) “)非常普遍且非常简单。我见过的变化,不包括“enus”与“en_US”与“en-US”:
我个人赞成第一个和最后一个变体。前者用于按名称/资源分组文件(适用于有限数量文件需要本地化的情况),后者用于按区域设置分组文件(对于具有大量本地化文件的情况更好)。
答案 2 :(得分:0)
您应始终使用“事实上”标准,即gettext
的unix / posix方式。你应该使用gettext
进行本地化!
因此,唯一正确的方法是使用这样的本地化命名:
en
en_US
en_UK
有些应用程序,特别是Java开发人员有时会使用en-US
(连字符而不是下划线),这是完全错误的!
gettext标准就是这样而且只有这个:
locale
|_en_US
|_LC_MESSAGES
|_appname.mo
其中:
locale
- 目录名称可能会有所不同,但强烈建议您使用“locale”-name
en_US
- 任何标准语言环境,例如* es_ES *,* es_PT *,...
LC_MESSAGES
- 强制性且无法更改!
appname.mo - msgfmt编译的appname.po文件(appname就是你想要的)