XCode Storyboard本地化重复字符串合并?

时间:2016-02-18 13:31:43

标签: ios xcode interface localization builder

我目前正在开发一款iOS应用,并将其本地化为多种语言,但却遇到了令人讨厌(不会破坏)的问题。

当我为我的故事板添加新的本地化时,xcode会自动填充字符串,这非常好。我遇到的问题是我有多个接口,都有一个后退按钮。关于这些的文本当然是相同的,他们的翻译也是如此。 我想知道的问题是,有可能,不使用strings.localizable,以某种方式将多个对象翻译合并为一个?

这就是目前的样子:

"Pnu-Ec-HAj.normalTitle" = "Back";
"Rtx-fT-rdc.normalTitle" = "Back";

但如果存在诸如

之类的语法,那将会更容易

"Pnu-Ec-HAj.normalTitle", "Rtx-fT-rdc.normalTitle" = "Back";  (这种语法显然不正确)

我已经看了很久但还没有找到这个问题的任何答案。

感谢阅读。

2 个答案:

答案 0 :(得分:2)

我建议在代码中引用故事板中的每个文本,并在viewDidLoad上设置文本,例如:

buyButton.titleLabel.text = NSLocalizedString(@"SHOP_BUY_BUTTON_TEXT",@"Button for buying product in detail view");

如果你有大量的故事板,那么工作量很大,但最后你会得到一个干净的Localizable.strings简洁的密钥和注释,为你的译员提供必要的背景。

我在键前加上应用的部分,例如SHOP_***USER_SETTINGS_***等。

此外,我们使用像OneSky这样的服务来在线组织我们的翻译并从云中更新它们(不属于它们,并且它也不是没有出牙问题)。

答案 1 :(得分:0)

不幸的是.strings个文件是key-value files,并且本质上必须有一个键(由元素的nib ID后跟属性组成)和相关的字符串值。 / p>

正如Apple在先例链接中描述的那样:

  

标准字符串文件格式由一个或多个键值对以及可选注释组成。给定对中的键和值是用双引号括起来并用等号分隔的文本字符串。

然后,.strings文件不支持您的想法。

支持该功能的唯一方法是在代码中使用NSLocalizedString