我需要本地化一个用于英语和西班牙语的开发应用程序.
尽管我遵循Apple的使用方式NSLocalizedString并为两者创建笔尖,但我已经失去了需要进行本地化的新字符串的轨道,并且惊讶地发现当我更改母版时我需要用西班牙语重做笔尖.
(就像这个http://www.gigliwood.com/weblog/Cocoa/A_Great_Need_for_Be.html)
我想知道是否存在更好/替代/更自动化的方式.
我知道使用gettext和poedit并想知道是否可以使用类似的东西.
或者如果存在一些脚本或工具.
这里真的没有一个简单的解决方法.NIB需要针对每种语言单独布局.在某种程度上,这改善了整体用户界面,因为不同的语言实际上通常需要不同的布局才能看起来最好.俄语和德语在屏幕上比英语更"大".中文通常可以小得多,不同的布局看起来更好用汉字.阿拉伯语和希伯来语是从右到左,可能需要彻底改变布局.自动布局很容易,但是通过在所有语言中改变丑陋程度来实现这一点.当给予开发人员简单和丑陋与开发人员难以选择之间的选择时,Apple几乎总是选择后者.也就是说,Apple仍然没有让它变得如此简单.
所以这里的第一课是保持你的NIB 简单.这在iPhone上比在Mac上更容易,因为iPhone没有绑定,而且iPhone NIB通常更简单.您还可以对具有非常少量文本(如标题)的NIB使用文本注入."文本注入"是一种奇特的方式,可以说"在加载视图时使用标签的插座并将其设置为本地化文本".
ibtool能够将NIB中的字符串拉出来并将其推回,这可能会有所帮助.我使用了iLocalize,这对于使用合同本地化程序很有帮助,但对你所谈论的问题并没有真正的帮助.
我试图摆脱NIB并只使用代码,认为它会让事情变得更容易,但事实并非如此.在NIB中布置每种语言比提出在所有语言中都看起来不错的布局逻辑更容易(参见第一段).文本注入仅在少数几个地方有用.如果您可以将NIB拆分为需要本地化的NIB和不需要本地化的NIB,这可能会有所帮助.在iPhone上,我发现不到一半的NIB实际上有文本或本地化图像.
当然你应该阅读国际化编程主题,但我很遗憾地说你的问题确实没有简单的答案.运输产品本地化为19种语言,我觉得你的痛苦.