本地化nib文件

时间:2009-09-09 00:00:01

标签: cocoa localization interface-builder

我正在编写一个应用程序,其中包含大约10个nib文件,用于传达不同的UI消息和用户输入。我想知道如何本地化我的自定义工作表上显示的这些消息。有没有办法让我可以拥有一个带有通用字符串的文件,并且根据语言,它会用该特定语言中的字符串替换泛型字符串。我也想知道如何将动态字符串加载到自定义工作表中的消息中,如文件名或所选文件的数量等。

我看了一下ibtool,但它是不是通过为不同语言创建.lproj文件来复制nib文件?这样做只会使我的应用程序的大小变大。

由于

5 个答案:

答案 0 :(得分:4)

在不久前的波士顿可可领导人会议上,我们讨论了这个话题并达成共识,即两种不错的方法。

1 - 首先是使用IBTool或手动制作单独的笔尖。

2 - 以编程方式访问标签并以编程方式更改文本。 Mipadi提到Localizable.strings很有用。要获得程序访问权限,您可以通过IB连接每个标签,或者您可以做一些步行笔尖魔法之王并找到所有标签(练习留给读者)。

选择适合您特定应用的方法。

希望这有帮助,

JJ

这个问题可能有所帮助:IPhone localization: Is it possible to translate nib files...

答案 1 :(得分:3)

标准做法是为每种语言设置一个笔尖。

你的笔尖不应该超过50-100 KB,除非他们存储一些未压缩的位图图像,在这种情况下你应该在代码中加载这些图像。某些组件(如NSPathControl)会在笔尖中存储未压缩的图标,并向笔尖添加几个MB。

如果你有一个大的.xib文件在TextEdit中打开它,显然占用了所有空间。

答案 2 :(得分:2)

可能值得注意的是,使用 Mac OS X 10.8 自动布局的当前方法不再需要多个笔尖,只需要一个.xib /每种语言.nib.strings个文件。

他们是A-Changin的时代: - )

答案 3 :(得分:1)

除了Darren已经发布的内容之外,我还想指出,如果您知道大多数用户将使用英语(或者最常用的语言),许多开发人员将提供仅限英语的下载不包含其他语言的笔尖(从而减少应用程序大小),然后根据需要提供多语言下载。

此外,如果您是以编程方式生成的UI元素,则需要查看Localizable.strings的信息,这是一个文本文件,其中包含以编程方式使用的字符串的翻译。

答案 4 :(得分:0)