我在示例应用程序中使用了英语和西班牙语的本地化语言。我为英语和西班牙语添加了Localizable.strings类。我知道可以本地化图像,XIB和标签文本。但我想知道,是否可以本地化iPhone应用程序而无需本地化其XIB,甚至需要将XIB本地化?或者我们可以在Interface Builder中将按钮标题设置为NSLocalizedString(@“TITLE”,nil)吗?我知道这不会是正确的做法。请建议我进一步处理。本地化我的iPhone应用程序而不使用XIB本地化?
谢谢。
我在示例应用程序中使用了英语和西班牙语的本地化语言。我为英语和西班牙语添加了Localizable.strings类。我知道可以本地化图像,XIB和标签文本。但我想知道,是否可以本地化iPhone应用程序而无需本地化其XIB,甚至需要将XIB本地化?或者我们可以在Interface Builder中将按钮标题设置为NSLocalizedString(@“TITLE”,nil)吗?我知道这不会是正确的做法。请建议我进一步处理。本地化我的iPhone应用程序而不使用XIB本地化?
谢谢。
是的,你可以本地化应用没有本地化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将会花费很长时间,并且通过自动布局,您可以确保一切都将合适。
你不需要XIB来本地化字符串,例如。为按钮,使用像
[button setTitle:NSLocalizedString(@"Title","description") forState:UIControlStateNormal];
,那么你在Localizable.strings文件定义显示的内容的语言
在Localizable.strings(西班牙语)
"Title" = "<Title in spanish>";
本地化XIB文件的原因是,不同语言的文本长度不同,因此UI中视图的大小需要更改。这可以在XIB或代码中处理(如sizeToFit
和重定位/自动布局约束)。
从技术上讲,你也可以使用NSLocalizedString
的,如果你想要得到本地化的图像名称...
@WainThanks和一个赞成你最好的建议。 –
感谢all..But我的UILabel和UIButton的尝试。但只有UILabel文本正在根据国家语言而不是UIButton标题文本进行更改。 –
对不起,其实我错了。现在它工作正常。非常感谢 –