38

我有这个非常令人费解的问题。

我在 XCode 中创建了一个 Localizable.strings 文件,然后在其中创建了 2 种语言。

我用语言翻译填充了这些文件,进行了构建/清理,然后重新构建,但是本地化字符串无法显示在我的项目中。如果我尝试类似:

self.title = NSLocalizedString(@"HEAD", nil);

只有“HEAD”而不是翻译出现在设备模拟器中。

这是我的项目层次结构:

项目层次结构

这是英文本地化文件的内容: 在此处输入图像描述

有任何想法吗?

4

13 回答 13

78

我自己找到了答案。

除了再次清理和构建项目以及我上面描述的所有内容。您还必须在 iPhone 模拟器中删除该应用程序,然后重新构建它!之后它完美地工作。

谈论让它变得简单苹果......

于 2012-06-25T18:58:29.380 回答
39

请确保:

  1. 该文件称为:“Localizable.strings”。
  2. “Localizable.strings”属于您正在处理的目标。
于 2015-01-26T19:58:13.377 回答
20

几项检查:

  1. 确保文件名准确Localizable.strings且包含在目标中
  2. 每个字符串都以;
  3. 每个字符串都用双引号引起来"
  4. 注释以//(NOT #)开头
于 2016-09-03T10:23:48.667 回答
14

确保在 Build Phases、Copy Bundle Resources 下有 Localizable.strings。

于 2014-10-16T11:33:47.127 回答
5

如果第一个字母是大写 Localizable.strings,请检查文件名

于 2015-10-14T11:59:14.740 回答
3

@jbssm 的解决方案有效,但更好的方法(确保资源将保持更新而无需每次清理和删除)将添加一个自定义脚本构建阶段,该阶段更改 Localizable.bundle 的访问时间。

https://stackoverflow.com/a/19274844/414037中所述

于 2014-01-22T15:36:16.750 回答
2

我自己找到了 1 个答案。

确保所有值都以 ; 结尾。否则,它不起作用..

于 2014-01-29T08:09:15.793 回答
2

除了此线程中其他地方提到的所有提示外,Localizable.strings在某些情况下还必须位于项目根文件夹中。

于 2018-08-28T16:07:19.533 回答
0

就我而言,我的 Localizable.strings 文件格式不正确,因为有一些剩余的文本。编译器没有抱怨,但是文件非法部分之后的所有字符串都被忽略了。我的文件看起来像这样:

“键1” = “字符串1”;

  • 一个字符串

  • 一个字符串

  • 一个字符串

一个字符串";

“键2”=“字符串2”;

因此,请务必手动检查任何未正确处理的 Localizable.strings。您不能相信编译器会捕获所有格式错误。

于 2016-08-30T15:37:13.527 回答
0

我在本地化上的两分钱。我已经对本地化文件进行了调整,添加和删除了它们,并且该项目经历了许多 Xcode 更新。后来发现除了英文没有本地化工作。

问题是我必须进行base本地化,当我这样做时,我必须在右侧打勾,左侧添加了一个文件,并且应用程序中出现了其他翻译。那里肯定有弦...

在此处输入图像描述

于 2017-08-16T12:47:42.187 回答
0
  1. 替换 Localizable.strings 的位置
  2. 使用记事本中的 Localizable.strings 剪切和过去进行交叉验证,以便我们可以轻松识别隐藏的字符和崇高的文本。请按照以下步骤解决它。
  3. 确保文件名完全是 Localizable.strings 并包含在目标中
  4. 每个字符串都以 ; 结尾
  5. 每个字符串都用 " 双引号引起来
  6. 注释以 //(不是 #)开头

还要删除 iPhone 模拟器中的应用程序,然后重新构建它!之后它完美地工作。

于 2018-07-03T07:34:22.953 回答
0

我还必须设置给定 .strings 文件的编码。

为此,请在项目导航器中选择文件,然后在右侧面板上的“文本设置”部分中选择编码。我使用了 Unicode(UTF-8)。

在此处输入图像描述

于 2019-07-19T09:50:41.990 回答
-1

我想就另一个可能与 UIButton 相关的问题发出警告,该问题看起来像是本地化不起作用。

为了在 UIButton 上设置文本,请使用:

setTitle(_ title: String?, for state: UIControl.State)

代替:

button.titleLabel?.text
于 2019-10-22T09:11:45.340 回答