我已经开始为一个包含大量硬编码文本的中型网站编写多语言功能。由于该网站应该翻译成日语和韩语(多字节字符集),我正在考虑以下内容:
- 如果我使用字符串外部化,日语或韩语的字符串是否需要在语言环境文件中采用 unicode 形式(即
台北
而不是 台北 作为字符串值) ? - 将本地化信息存储在数据库(即 MySQL)中并通过 PHP 中的本地化函数检索相应的值是否更有意义?
非常感谢您的想法。
致以诚挚的问候
最佳答案
0.02 美元,来自有一些 i18n 经验的人...
- 以人类可读的形式保存您的翻译,因为管理这些资源的可能是翻译人员,而不是编码人员。
- 如果此文本(您说是硬编码的)不会经常更改,那么您可能希望将这些资源存储为在运行时读入的文件。
- 如果此文本经常更改,那么您可能希望探索其他存储资源的替代方案,例如数据库或内存中键值存储。
根据您的要求,您可能需要考虑上述内容的混合。
但我强烈建议您避免将代码(HTML 字符实体)与翻译资源混合。大多数译者不会理解它们的意思,并且在翻译时可能会破坏它们。另一方面,程序员可能不明白如何正确地将代码或格式插入到翻译资源中,除非他们真正理解该语言。
tl;dr
- use UTF-8
- don't mix any code/formatting into the translations themselves
- how you store the translations depends upon your requirements
关于unicode - 多字节语言的网站本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986328/