使用Xcode 9和Swift 4本地化应用程序的最佳方式?

时间:2017-09-25 13:33:20

标签: ios iphone swift xcode localization

我曾经使用String[] keys = new String[2]; Integer[] ints = new Integer[2]; // int[] also works Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator(); for (int i = 0; i < 2 && it.hasNext(); i++) { Map.Entry<String,Integer> e = it.next(); keys[i] = e.getKey(); ints[i] = e.getValue(); } 文件本地化我的应用,并为项目中的每个文本提供了一个密钥。

目前我正在使用Xcode 9和Swift 4进行项目,这是我第一次使用Storyboard(是的,这听起来很奇怪,但我总是使用SpriteKit而不使用Storyboard)而且我有点困惑如何处理本地化。基本上我的问题是:

我应该为Localizable.string使用Storyboard本地化,还是应该在UILabel中实现所有内容并通过代码为标签赋值?

任何提示,以了解哪种方法最适合本地化?

3 个答案:

答案 0 :(得分:2)

我建议您使用Localizable.string而不是故事板本地化,因为故事板中标签的ID可能会发生变化。

答案 1 :(得分:0)

没有更好/更差的解决方案。这取决于您UILabel的目的。如果它是在应用程序生命周期内不会更改的元素,您可能更喜欢直接使用Storyboard本地化。相反,如果标签可能具有不同的值,我建议您以编程方式设置本地化字符串。

答案 2 :(得分:0)

我找到的最可靠的解决方案之一,这对我来说非常有用。

首先我们需要使用故事板并创建本地化字符串文件。这将自动为所有对象创建ID。 请遵循此tutorial

然后我们可以使用一个库MCLocaliztion,它将根据ID选择相应的翻译字符串。我们要做的是,我们需要根据Objects ID准备一个合适的json。

希望它有所帮助。