【问题标题】:Issue with localization in iOSiOS本地化问题
【发布时间】:2014-05-01 15:33:37
【问题描述】:

在过去的两天里,我遇到了一个与本地化有关的神秘问题。 我正在尝试将语言添加到我的应用程序中,但在我看来,出了点问题。

为了简单起见,我在我当前的应用程序中添加了以下几行,以查看单词 test 是否会翻译:

- (void)viewDidLoad
{ [super viewDidLoad];
UILabel *lbl1 = [[UILabel alloc] init];
[lbl1 setFrame:CGRectMake(0,5,100,20)];
lbl1.textColor=[UIColor blackColor];
[self.view addSubview:lbl1];
lbl1.text= NSLocalizedString(@"test", nil);
}

在“项目信息”部分的本地化部分添加语言后,并选中“基于使用的国际化”。除了创建“Localizable.strings”文件并点击Localize选择语言外,test这个词并没有翻译。

顺便说一句,这里是Localizable.strings 文件:

"test" = "test translated";

我已经清理干净,并从我的手机中删除了应用程序并重新构建它,但没有任何改变!

我采用相同的代码,并通过在 xCode 上创建一个新项目来完成相同的步骤,令人惊讶的是它会翻译!

任何人都知道为什么翻译不会在我的原始应用程序中进行?

【问题讨论】:

    标签: ios localization


    【解决方案1】:

    首先,Base Internationalization 是针对故事板的,而不是针对NSLocalizedString

    其次,文件应该是Localizable.strings,而不是Localization.strings

    【讨论】:

    • 这是我的错误,我的意思是 Localizable.strings
    • 进入构建的产品目录(~/Library/Developer/Xcode/DerivedData//Build/Products/Debug-iphoneos),右击你的应用并按下显示包装内容。在那里,检查您是否有相应的 .lproj 文件夹以及它们自己版本的 Localizable.strings 可用。
    • Localizable.strings 已经存在了!它可能来自我的代码?
    • 如果文件在那里并且它包含该密钥(“test”),那么我很茫然。
    【解决方案2】:

    这件事最近发生在我身上。我做了这些事情:

    1) 从模拟器/iPhone 中删除的应用程序

    2) 清洁的应用程序(产品 -> 清洁)

    3) 已删除派生数据(Window -> Organizer -> Projects (tab) ->(从左侧选择自己的项目)-> 点击派生数据右侧的“Delete...”)

    它帮助了我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-16
      • 2012-03-26
      • 1970-01-01
      • 2011-02-18
      • 2011-07-11
      • 2011-02-23
      • 1970-01-01
      相关资源
      最近更新 更多