Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何简化iPhone本地化?_Iphone_Localization - Fatal编程技术网

如何简化iPhone本地化?

如何简化iPhone本地化?,iphone,localization,Iphone,Localization,我需要本地化为英语和西班牙语的开发应用程序 尽管我遵循苹果的方式使用NSLocalizedString&为两者创建笔尖,但我已经失去了需要本地化的新字符串的踪迹,并且惊讶地发现,当我更改主字符串时,我需要用西班牙语重做笔尖 (就这样) 我想知道是否有更好的/替代的/更自动化的方法 我知道gettext和poedit的用法,不知道是否可以使用类似的东西 或者如果存在用于此的脚本或工具。这里真的没有一个简单的解决方法。每种语言的笔尖都需要单独布置。在某种程度上,这改善了总体用户界面,因为不同的语言实

我需要本地化为英语和西班牙语的开发应用程序

尽管我遵循苹果的方式使用NSLocalizedString&为两者创建笔尖,但我已经失去了需要本地化的新字符串的踪迹,并且惊讶地发现,当我更改主字符串时,我需要用西班牙语重做笔尖

(就这样)

我想知道是否有更好的/替代的/更自动化的方法

我知道gettext和poedit的用法,不知道是否可以使用类似的东西


或者如果存在用于此的脚本或工具。

这里真的没有一个简单的解决方法。每种语言的笔尖都需要单独布置。在某种程度上,这改善了总体用户界面,因为不同的语言实际上通常需要不同的布局才能达到最佳效果。俄语和德语在银幕房地产领域比英语“大”得多。中文通常可以小得多,不同的布局用汉字看起来更好。阿拉伯语和希伯来语是从右向左的,可能需要对布局进行彻底的更改。自动布局很容易,但通过在所有语言中使用不同级别的布局来实现这一点。当让开发者在易与丑之间做出选择,而开发者在难与美之间做出选择时,苹果几乎总是选择后者。尽管如此,苹果仍然没有尽可能地简化这一过程

所以这里的第一课是保持笔尖的简单。这在iPhone上比在Mac上容易,因为iPhone没有绑定,iPhone的nib通常更简单。您还可以对具有非常少量文本(如标题)的笔尖使用文本注入。“文本注入”是一种花哨的说法,“在加载视图时,为标签使用插座并将其设置为本地化文本。”

ibtool可以将线从笔尖中拉出,也可以将其推回到笔尖中,这会很有帮助。我使用了iLocalize,它有助于使用合同本地化程序,但对您所讨论的问题没有真正的帮助

我试着摆脱笔尖,只使用代码,以为这样会让事情变得更简单,但事实并非如此。在NIB中布局每种语言要比在所有语言中都能找到好的布局逻辑容易得多(见第一段)。文本注入只在少数地方有用。如果你能把笔尖分为需要本地化的和不需要本地化的,那会很有帮助。在iPhone上,我发现只有不到一半的笔尖上有文字或本地化图像


当然你应该阅读,但很抱歉,你的问题确实没有简单的答案。装运19种语言的本地化产品,我感觉到了您的痛苦。

有时需要为每种语言布置笔尖,但大多数情况下不必为每种语言重新布置笔尖

如果您使用ibtool从nib生成字符串

ibtool——生成字符串文件

您可以将它们导入每种语言的新NIB

ibtool--导入字符串文件


这些是命令行工具,因此可以编写脚本。看看“man ibtool”

我所做的是为nib文件中的所有文本ui(UILabel、UITextField、UITextView等)创建IBoutlet,并通过编程将其文本/占位符属性指定给所需的NSLocalizedString

考虑到我已经用不同的语言提供了特定字符串的翻译,当iPhone语言环境发生变化时,文本的翻译版本将出现在nib文件中

希望其他人觉得这有用