我在我的示例应用程序中使用英语和西班牙语的本地化。我已经为英语和西班牙语添加了Localizable.strings类。我知道可以本地化图像,XIB和标签文本。但我想知道是否有可能在没有本地化XIB的情况下本地化iPhone应用程序,甚至是什么需要使XIB本地化?或者我们可以在Interface Builder中将按钮标题指定为NSLocalizedString(@“TITLE”,nil)吗?我知道这不是正确的方法。请建议我继续进行。
感谢。
答案 0 :(得分:1)
是的,您可以在不本地化XIB的情况下本地化应用程序。
您需要为每个标签,按钮,textview,...创建一个插座
然后在viewDidLoad
中设置正确的本地化字符串:
-(void) viewDidLoad {
[super viewDidLoad];
self.nameLabel.text = NSLocalizedString(@"name:", @"name label");
[self.saveButton setTitle:NSLocalizedString(@"save", @"Save button title.") forState:UIControlStateNormal];
}
这就是我这样做的方式,因为更改所有本地化的XIB只需要很长时间,并且通过自动布局,您可以确保一切都适合。
答案 1 :(得分:1)
本地化XIB文件的原因是不同语言的文本长度不同,因此UI中的视图大小需要更改。这可以在XIB或代码中处理(例如sizeToFit
和重新定位/自动布局约束)。
从技术上讲,如果您想要... {/ p>,您还可以使用NSLocalizedString
获取本地化图片名称
答案 2 :(得分:0)
您不需要XIB来本地化字符串,例如。对于您使用的按钮
[button setTitle:NSLocalizedString(@"Title","description") forState:UIControlStateNormal];
然后在Localizable.strings文件中定义要显示哪种语言的内容
在Localizable.strings(西班牙语)
"Title" = "<Title in spanish>";