2013-10-14 122 views
0

我在示例应用程序中使用了英语和西班牙语的本地化语言。我为英语和西班牙语添加了Localizable.strings类。我知道可以本地化图像,XIB和标签文本。但我想知道,是否可以本地化iPhone应用程序而无需本地化其XIB,甚至需要将XIB本地化?或者我们可以在Interface Builder中将按钮标题设置为NSLocalizedString(@“TITLE”,nil)吗?我知道这不会是正确的做法。请建议我进一步处理。本地化我的iPhone应用程序而不使用XIB本地化?

谢谢。

+0

感谢all..But我的UILabel和UIButton的尝试。但只有UILabel文本正在根据国家语言而不是UIButton标题文本进行更改。 –

+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将会花费很长时间,并且通过自动布局,您可以确保一切都将合适。

0

你不需要XIB来本地化字符串,例如。为按钮,使用像

[button setTitle:NSLocalizedString(@"Title","description") forState:UIControlStateNormal]; 

,那么你在Localizable.strings文件定义显示的内容的语言

在Localizable.strings(西班牙语)

"Title" = "<Title in spanish>"; 
1

本地化XIB文件的原因是,不同语言的文本长度不同,因此UI中视图的大小需要更改。这可以在XIB或代码中处理(如sizeToFit和重定位/自动布局约束)。

从技术上讲,你也可以使用NSLocalizedString的,如果你想要得到本地化的图像名称...

+0

@WainThanks和一个赞成你最好的建议。 –