【问题标题】:Error when localize ios app to support multiple languge本地化 ios 应用程序以支持多种语言时出错
【发布时间】:2014-03-05 10:49:16
【问题描述】:

我有两个问题

  1. 有没有关于本地化 iOS 应用以支持多语言的教程,应用不使用情节提要
  2. 我在没有情节提要的情况下做我的应用程序,我通过在我的项目方向创建 Base.lproj 文件夹对其进行本地化,将 .xib 复制到其中,并在 Project->Info->Localization 中添加语言。(我在演示中成功测试)但是当我在模拟器上构建和运行我的应用程序时,我的应用程序不会根据模拟器上的设置语言更新,它只会在我重建时更新。谁能给我一个理由或可疑的问题?

【问题讨论】:

  • 很奇怪!!问题仅在我在模拟器上测试时发生,但在设备上我的项目完全运行。如果是 Xcode 的 bug?
  • 有时会发生。从模拟器中删除您的应用程序,在 Xcode 中清理您的项目(在 Product -> Clean 中),如果您有多个项目和库,请对 所有 项目和库执行此操作。之后,重建所有内容并再次部署到模拟器。

标签: ios iphone objective-c


【解决方案1】:

当您在 Xcode 项目中本地化资源时,您不需要复制任何东西:Xcode 会为您完成一切。如果您开始到处复制内容,您可能会迷路,甚至可能无法将文件复制到您的应用程序包中。

你需要做的是:

1/ 在你的 Xcode 项目中引用所有语言

2/ 使用 Xcode 在您的项目中创建一个新的“Strings”文件,将其命名为“Localizable.strings”,然后通过 Xcode 创建它的本地化版本,使用文件检查器

3/ 创建多个版本的字符串文件后,输入您将在应用中测试的示例字符串,例如:

"HELLO_STR" = "Hello, world";

在您的英文版本中,并且

"HELLO_STR" = "Bonjour tout le monde";

在您的法语版本中。 然后在您的应用程序启动代码中,添加以下行:

NSLog(@"%@", NSLocalizedString(@"HELLO_STR", nil));

您的控制台中记录的消息现在应该与您的设备或模拟器语言设置相对应。

4/ 您现在需要将所有本地化字符串添加到 Localizable.strings 文件中。

5/ 至于 XIB,它的工作方式与 Storyboard 完全相同:您可以要求 Xcode 创建所有 XIB 的可本地化版本。 Xcode 以与我们在步骤 1-4 中构建的字符串文件大致相同的方式复制和捆绑它们。最好在“完成”界面设计之后再这样做,因为对一个本地化 XIB 版本的任何后续修改都必须在所有其他本地化版本中重复。

祝你好运。

【讨论】:

  • 我的问题没有解决,我的默认项目没有 en.lproj 文件夹,导致我必须创建 en.lproj 文件夹并将可本地化的文件复制到其中。而且我不使用故事板。我为这个问题浪费了几个小时,对我有什么建议吗?谢谢你。
猜你喜欢
  • 2016-10-15
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
相关资源
最近更新 更多