我有一个应用程序可以在Windows和Mac上运行,并且本地化为葡萄牙语,西班牙语和德语。我有一个ini文件,从中读取本地化的字符串。但是ini文件对两个平台上的文件使用相同的编码不起作用。对于Windows,我必须使用ANSI格式的文件,否则本地化字符串中的重音字母会混乱,而在Mac上,相同的文件应该是Western(Mac OS)编码,否则会产生相同的结果。有什么方法可以让我们在两个平台上都能使用单个文件吗?
答案 0 :(得分:3)
(1)没有 ANSI格式。对于Windows上的“本地代码页”来说,这是一个不幸的术语。特别是,这意味着在欧洲,字节128-255作为“ANSI格式”的解释将因国家而异。所以,我强烈倾向于认为它甚至不会在你的第一个平台上工作,更不用说两者兼而有之了。
您最终将迁移到的解决方案是Unicode。这适用于所有角色,所有角色和角色的数量不依赖于国家或当前日期(参见€的介绍)。
答案 1 :(得分:1)
在Mac上,您可以在.lproj文件夹中拥有本地化资源(文本文件等),Cocoa库将找到用户语言的版本。例如English.lproj,Spanish.lproj等。如果您使用此系统而不是拥有自己的自定义本地化机制,那就更好了。
如果您使用的不是Cocoa,并且出于可移植性原因需要使用自定义本地化内容,那么您可以尝试加载指定文本编码的文件。在Windows上,它通常是ISO-8859-1(也称为Windows Latin 1)。或者您可以将文本文件转换为Unicode并读取它们,指定它是UTF-8。您没有说明您使用的是哪种语言或框架,因此如果没有更多信息,我们将无法为您提供更多帮助。
答案 2 :(得分:0)
gettext是一个广泛使用的应用程序,网站等翻译框架。
答案 3 :(得分:0)
欢迎来到痛苦的世界。我还建议切换到Unicode,它将为您提供一个可验证的基础,并在以后使生活更轻松