在Mac OS上本地化应用程序

时间:2020-03-06 15:04:37  来源:igfitidea点击:

我有一个应该在Windows和Mac上都可以使用的应用程序,并且以葡萄牙语,西班牙语和德语进行了本地化。我有一个ini文件,从中读取本地化的字符串。但是,ini文件在两个平台上的文件编码方式均不相同。对于Windows,我必须使用ANSI格式的文件,否则本地化字符串中的重音字母会弄乱,在Mac上,同一文件应采用Western(Mac OS)编码,否则结果相同。有什么办法可以使一个文件在两个平台上都能工作?

解决方案

(1)没有ANSI格式。对于Windows在Windows上表示"本地代码页"而言,这是一个不幸的术语。特别是,这意味着在欧洲,不同国家/地区将字节128-255解释为" ANSI格式"的情况会有所不同。因此,我强烈倾向于说它甚至无法在第一个平台上运行,更不用说两者都适用了。

我们最终将迁移到的解决方案是Unicode。可以在所有字符上随处使用,并且字符数不取决于国家/地区或者当前日期(请参阅的介绍)。

gettext是用于翻译应用程序,网站等的广泛使用的框架。

在Mac上,我们可以将本地化资源(文本文件等)放在.lproj文件夹中,并且Cocoa库将为用户的语言查找版本。例如English.lproj,Spanish.lproj等。最好使用此系统,而不要使用自己的自定义本地化机制。

如果我们使用的不是Cocoa,并且出于可移植性的原因而需要使用自定义本地化内容,则可以尝试加载指定文本编码的文件。在Windows上通常为ISO-8859-1(也称为Windows Latin 1)。或者,我们可以将文本文件转换为Unicode并读取它们,并指定为UTF-8. 我们没有告诉我们正在使用什么语言或者框架,因此如果没有更多信息,我们将无法为我们提供进一步的帮助。

欢迎来到痛苦的世界。我还建议我们改用Unicode,这将为我们提供一个可验证的基础,并使以后的生活更加轻松