如何在不为每种语言创建xib的情况下在xib视图中本地化文本?

时间:2012-01-11 06:50:47

标签: ios xcode interface-builder

我想在xib视图中本地化文本。目前我对每种语言都有几个xib。

是否可以在xib文件中本地化文本而不为每种语言创建单独的xib?

5 个答案:

答案 0 :(得分:1)

听起来你想了解.string文件。

以下是您可以查看的相关问题以获取更多信息: Open .string files as an NSDictionary

答案 1 :(得分:0)

来自Android背景,我问了同样的问题。甚至Apple recommends也为每种语言创建单独的xib文件。幸运的是,可以使用构建脚本中的ibtool自动执行此过程。它在this article中很好地描述了。

答案 2 :(得分:0)

  

本地化适用于文本而不是Xib。所以,你不需要   考虑xib文件。本地化很容易,也不太复杂。校验   这个链接它会帮助你。

http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial

答案 3 :(得分:0)

这个问题让我疯了。

我在尝试使自己更容易进行xib本地化时遇到了这篇文章和其他几篇文章。我在这个问题上发布了包含IBOutles标签/按钮的方法,对我来说很有用,所有更改仅限于Localization.strings文件。

https://stackoverflow.com/a/15485572/1449834

答案 4 :(得分:0)

我认为直接本地化xibs不是一个好选择。我正在使用https://github.com/steipete/Aspects挂钩UILabel的awakeFromNib方法并在那里本地化文本。例如:

 #define Localized(_v_) NSLocalizedString(_v_, nil)
 NSError *err = nil;
[UILabel aspect_hookSelector:@selector(awakeFromNib)
                 withOptions:AspectPositionAfter
                  usingBlock:^(id<AspectInfo> aspectInfo) {
                      UILabel *label = aspectInfo.instance;
                      NSString *lStr = Localized(label.text);
                      if (lStr) {
                          label.text = lStr;
                      }
} error:&err];

如果您要处理UIButton和其他UIView,您可以挂钩UIView的awakeFromNib并本地化每种视图。