NSLocalizedString问题

时间:2010-11-28 13:50:33

标签: objective-c nslocalizedstring

我有:

-(IBAction)about {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"About", @"Title of AlertView")
                                                    message:@"App name \n© My  name \n2010"
                                                   delegate:self
                                          cancelButtonTitle:NSLocalizedString(@"Back", @"Cancel Button Title")
                                          otherButtonTitles:nil];
    [alert show];
    [alert release];
}

在Localizable.strings中:

/* Title of AlertView */
"About" = "Über";
/* Cancel Button Title */
"Back" = "Zurück";

我的问题:当语言是德语时它是德语但是当我将语言改为英语时,警报视图仍然是德语

怎么了?

2 个答案:

答案 0 :(得分:32)

如果你使用xCode 4,你将面临这样的问题。请尝试以下步骤:

  1. 从设备中删除应用程序
  2. 选择项目树的根节点以获取项目的属性
  3. 选择“构建阶段”标签
  4. 点击“添加构建阶段”,然后选择“复制文件”
  5. 在“复制文件”视图中选择“资源”
  6. 添加Localizable.strings文件
  7. 为项目执行“清理”
  8. “构建并运行”

答案 1 :(得分:9)

使Localizable.strings文件可本地化(单击它,按cmd + i并按“Make file localizable”按钮)并添加德语和英语本地化。然后将德语本地化写入该文件的德语版本,并保留英文版本:

/* Title of AlertView */
"About" = "About";
/* Cancel Button Title */
"Back" = "Back";