在不使用XIB本地化的情况下本地化我的iPhone应用程序?

时间:2013-10-14 11:49:19

标签: iphone ios localization localizable.strings

我在我的示例应用程序中使用英语和西班牙语的本地化。我已经为英语和西班牙语添加了Localizable.strings类。我知道可以本地化图像,XIB和标签文本。但我想知道是否有可能在没有本地化XIB的情况下本地化iPhone应用程序,甚至是什么需要使XIB本地化?或者我们可以在Interface Builder中将按钮标题指定为NSLocalizedString(@“TITLE”,nil)吗?我知道这不是正确的方法。请建议我继续进行。

感谢。

3 个答案:

答案 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>";