15

我使用本地化字符串来本地化 UI 元素。一切正常,除了本地化按钮的标题。

"21.title" = "应该是本地化文本"; //不起作用

我认为这是由按钮状态引起的(...forState:UIControlStateNormal...),标题可以通过视图状态设置。我如何在本地化文件中挑战它?

如何在本地化字符串中定义按钮标题?诀窍是什么?

注意:我知道如何从源代码中做到这一点,我的问题是关于如何通过本地化字符串文件来做到这一点。所以:我知道如何使用本地化字符串来本地化 UI,按钮除外。

4

3 回答 3

36
"21.title" = "It should be the localized text"; //does not work

应该读

"21.normalTitle" = "It should be the localized text"; //does work

反而。

于 2014-04-08T11:05:36.680 回答
7

在 Interface Builder 中,您可以设置 4 个字符串,一个用于“状态配置”下拉列表中的每个状态。

或者,或者,在代码中,您为每个状态设置按钮标题:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:NSLocalizedString(@"21.title", @"Norm!") forState:UIControlStateNormal];
[button setTitle:NSLocalizedString(@"21.title-highlighted", @"hi btn") forState:UIControlStateHighlighted];
[button setTitle:NSLocalizedString(@"21.title-selected", @"sel btn") forState:UIControlStateSelected];
[button setTitle:NSLocalizedString(@"21.title-disabled", @"dis btn") forState:UIControlStateDisabled];

编辑:为了清楚起见,您将本地化字符串添加到您的Localizable.strings文件中。只要您将其复制到您的应用程序中,您就会得到替换;当然,您可以支持多种语言。 本地化教程IB 中的本地化

于 2013-02-03T02:54:03.503 回答
0

就我而言,我已将文件发送出去进行翻译。当他们回来时,出现了一个微妙的错误

"0ZD-ku-bT7.title" = “Fechar";

请注意,他们使用了两个不同的双引号!这会以微妙的方式破坏文件,不会在编译器中失败。

正确的代码必须是

"0ZD-ku-bT7.title" = "Fechar";
于 2015-09-25T14:38:13.810 回答