为什么我的UILabel在使用其他语言时没有初始化? (iOS本地化)

时间:2013-05-16 04:11:56

标签: iphone ios xcode localization uilabel

我正在将本地化应用到我正在处理的iPhone应用程序中,并慢慢浏览整个应用程序中的所有文本/字符串/标签,以动态地检索通过Localizable.strings完成的正确语言翻译 - 我正在测试两个语言,以确保它正常工作。自然英语,也是捷克语。

到目前为止,在这个特定的UILabel之前我没有遇到任何问题。

在使用英文的iPhone和应用程序时,没有任何问题。但是,当将iPhone语言更改为捷克语并测试应用程序时,我的一个UILabel甚至不会初始化。如果我像这样强制文本,那就无所谓了:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSLog(@"show: %@", self.segmentedControlTitle);

    self.segmentedControlTitle.text = @"test";

    // Other code
}

基本上,当使用其他语言时,它只显示故事板中设置的占位符文本。到目前为止,我设置的所有其他标题甚至可以使用实际的本地化方法完美地工作;

- (void)viewDidLoad
{
    // The other code...

    [self.segmentedControl setTitle:NSLocalizedString(@"VIEWALL_all", nil)
                 forSegmentAtIndex:0];
}

有什么想法吗?可以发布更多代码,如果需要,但我假设一切都正确建立,看起来好像它都用英语。它必须是我忽略的简单事物。我尝试过Clean,从模拟器和我的iPhone中删除应用程序,再次尝试构建......同样的故事。也发生在同事的iPhone上。

提前致谢。 (另外,我对iOS开发人员来说还是有点新鲜)

戴夫

1 个答案:

答案 0 :(得分:0)

归功于Carl Veazey。你的评论帮我解决了这个问题。

所以我已经吸取了教训,当你应用本地化时,你实际上也可以将它应用到你的故事板 - 因此为每种语言创建单独的。

所以我的问题是故事板的英文版有IBOutlet连接,而捷克版没有。

因为我将从Localizable.strings文件以编程方式应用所有这些字符串,所以我不需要将故事板本地化 - 我已经删除了捷克语版本并且正在通过代码应用所有内容。无论如何,我认为这是更好的做法。

再次感谢!