我想在xib视图中本地化文本。目前我对每种语言都有几个xib。
是否可以在xib文件中本地化文本而不为每种语言创建单独的xib?
答案 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文件。
答案 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并本地化每种视图。