我曾经使用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
中实现所有内容并通过代码为标签赋值?
任何提示,以了解哪种方法最适合本地化?
答案 0 :(得分:2)
我建议您使用Localizable.string
而不是故事板本地化,因为故事板中标签的ID可能会发生变化。
答案 1 :(得分:0)
没有更好/更差的解决方案。这取决于您UILabel
的目的。如果它是在应用程序生命周期内不会更改的元素,您可能更喜欢直接使用Storyboard本地化。相反,如果标签可能具有不同的值,我建议您以编程方式设置本地化字符串。
答案 2 :(得分:0)
我找到的最可靠的解决方案之一,这对我来说非常有用。
首先我们需要使用故事板并创建本地化字符串文件。这将自动为所有对象创建ID。 请遵循此tutorial
然后我们可以使用一个库MCLocaliztion,它将根据ID选择相应的翻译字符串。我们要做的是,我们需要根据Objects ID准备一个合适的json。
希望它有所帮助。