Localized.strings 编译了两次?

发布于 2024-11-08 16:03:37 字数 82 浏览 0 评论 0原文

当我从 xcode3 切换到 xode4 时,我发现,对于应用程序中的几个字符串,我必须编译它两次才能使其本地化...... 有人遇到过同样的问题吗?

when I switch from xcode3 to xode4, I have found that, for several strings there in the App, I have to compile it twice in order to make it localized ...
Anyone ever has the same issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

櫻之舞 2024-11-15 16:03:37

我已经看到在“资源”构建阶段两次引用字符串文件时会发生这种情况。发生这种情况时,Xcode 不会警告您,并且可能会导致奇怪或未定义的行为。查看所有构建阶段并确保该文件仅位于一处。

I have seen this happen when the strings file is referenced twice in the "Resources" build phase. Xcode will not warn you when this happens, and it may cause strange or undefined behavior. Look through all your build phases and make sure the file is in only one place.

如痴如狂 2024-11-15 16:03:37

如果您遇到像我一样的情况,您有两个 Localized.strings 文件(因为您正在使用一些其他框架(如 ShareKit),这些框架本身使用 Localized.strings 文件),那么您还可以执行以下操作:

  1. 将附加的 Localized.strings 文件重命名为 sth。就像 RenamedFile.strings 这样,最后就有 <= 1 个 Localizes.strings 文件。

  2. 搜索并替换所有出现的情况
    NSLocalizedString(key, 描述);
    与 RenamedFile.strings 相关
    NSLocalizedStringFromTable(key, @"RenamedFile", description);

示例:
假设你有
(A) 你自己的 Localized.strings 文件
(B) 和 Localized.strings 文件导致您使用 ShareKit,它也有自己的本地化。

  1. 将 ShareKit 的 Localized.strings 重命名为 ShareKit.strings
    (使用 Git 和 Xcode 4,我在重命名文件时遇到了一些问题,但它是可以解决的)。

  2. 在 ShareKit 文件夹中查找所有出现的 NSLocalizedString(应该是 3 个)并替换它们:

    • NSLocalizedString(key, key);
      -> NSLocalizedStringFromTable(key, @"ShareKit", key);
    • NSLocalizedString(@"断开与 Facebook 的连接", @"辅助功能标签");
      -> NSLocalizedStringFromTable(@"断开与 Facebook 的连接", @"ShareKit", @"辅助功能标签");
    • NSLocalizedString(@"连接到 Facebook", @"辅助功能标签");
      -> NSLocalizedStringFromTable(@"连接到 Facebook", @"ShareKit", @"辅助功能标签");

If you have the case like me, that you have two Localizable.strings files (because you are using some additional framework(s) (like ShareKit) that use Localizable.strings file(s) themselves) then you can also do the following:

  1. Rename the additional Localizable.strings file(s) to sth. like RenamedFile.strings so that in the end there is <= 1 Localizable.strings file.

  2. Search and replace all occurrences
    NSLocalizedString(key, description);
    related to the RenamedFile.strings with
    NSLocalizedStringFromTable(key, @"RenamedFile", description);

Example:
Lets say you have
(A) your own Localizable.strings file
(B) and a Localizable.strings file cause you use ShareKit which has it's own localizations as well.

  1. Rename Localizable.strings of ShareKit to ShareKit.strings
    (using Git and Xcode 4 I had some problems renaming the files, but it was solvable).

  2. Look for all the occurrences of NSLocalizedString in the ShareKit folder (should be 3) and replace them:

    • NSLocalizedString(key, key);
      -> NSLocalizedStringFromTable(key, @"ShareKit", key);
    • NSLocalizedString(@"Disconnect from Facebook", @"Accessibility label");
      -> NSLocalizedStringFromTable(@"Disconnect from Facebook", @"ShareKit", @"Accessibility label");
    • NSLocalizedString(@"Connect to Facebook", @"Accessibility label");
      -> NSLocalizedStringFromTable(@"Connect to Facebook", @"ShareKit", @"Accessibility label");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文