0

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

谢谢。

4

3 回答 3

1

是的,您可以在不本地化 XIB 的情况下本地化应用程序。

您将需要为每个标签、按钮、文本视图创建一个插座......然后在viewDidLoad设置正确的本地化字符串:

-(void) viewDidLoad {
    [super viewDidLoad];

    self.nameLabel.text = NSLocalizedString(@"name:", @"name label");
    [self.saveButton setTitle:NSLocalizedString(@"save", @"Save button title.") forState:UIControlStateNormal];
}

这就是我这样做的方式,因为更改所有本地化的 XIB 将需要很长时间,并且使用自动布局可以确保一切都适合。

于 2013-10-14T11:56:12.087 回答
1

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

从技术上讲,如果您愿意,您也可以使用NSLocalizedString获取本地化图像名称...

于 2013-10-14T11:56:34.553 回答
0

您不需要 XIB 来本地化字符串,例如。对于您使用的按钮

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

然后你在 Localizable.strings 文件中定义为哪种语言显示什么

在 Localizable.strings 中(西班牙语)

"Title" = "<Title in spanish>";
于 2013-10-14T11:55:54.240 回答