问题标签 [nslocalizedstring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
910 浏览

iphone - iOS - 一些但不是所有的字符串出现本地化。

我已经成功地将法语本地化添加到我的应用程序中。在 XCode 4 中,只需选择 Localizable.strings 并在文件检查器中添加新的(法语)本地化。然后,我将法语翻译(从 Word - unicode 16)复制/粘贴到生成的新 Localizable.strings(法语)文件中。

我将手机(设备和模拟器)的语言更改为法语,并删除了当前安装的应用程序,清理并构建。

嘿 presto - 一切都是法语。除了这里和那里有几行仍然是英文的。这些行似乎没有共同的元素——重音、格式或参数。例如:

仍然显示为“你刚刚遇到......”而不是法语。我似乎无法弄清楚为什么这几行没有翻译,而其他一切都在翻译。非常感谢任何帮助!

谢谢,迈克尔。

0 投票
4 回答
1891 浏览

iphone - genstrings 不适用于 NSLocalizedString 的宏

我想将 "NSLocalizedString" 缩短为 "_" 所以我正在使用 macro _(x) NSLocalizedString(@x, @__FILE__)

但是现在,当我想生成用于本地化的字符串时, find . -name \*.m | xargs genstrings 它什么也不会产生。

有什么帮助吗?

0 投票
3 回答
1697 浏览

ios - NSLocalizedString 返回无处定义的文本

好吧,我正式大吃一惊。前段时间我开始了一个 IOS 项目,刚开始时有点忙于本地化,这变得有点混乱,因为我还不知道如何正确地做到这一点。

现在我决定从头开始进行本地化,因此丢弃了所有 .strings 文件,并创建了一个适当的多语言结构。我从空的 Localizable.strings 文件开始,然后运行该应用程序以查看我是否正确清理了所有内容。对于空的 Localizable.string 文件,我假设我的“NSLocalizedString”调用只会将密钥作为文本返回。他们没有。他们仍然返回我在旧 .strings 文件中的旧文本。

可以肯定的是,我在其中一个 NSLocalizedString 调用下放置了一个 NSLog 语句,如下所示:

然后我在整个硬盘中搜索返回的文本。我的硬盘上没有文件包含 NSLocalizedString 返回的字符串。而且它是和key完全不同的字符串,所以也不能用NSLocalizedString构造。

有谁知道这怎么会发生?旧信息是否被 XCode 缓存在某处?如何说服该工具使用新的 Localizable.strings 文件?显然,我已经“清理”并重建了整个项目。

0 投票
2 回答
378 浏览

iphone - cell.textLabel.text NSLocalizedString 参数

我只是想知道第二个参数NSLocalizedString的用途。

0 投票
30 回答
46495 浏览

ios - NSLocalizedString 只检索键,而不是 Localizable.strings (IOS) 中的值

我制作了一个名为“Localizable.strings”的字符串文件,并向其中添加了两种语言,如下所示:

我还将文件转换为 Unicode UTF-8 但是,当我像这样创建 UIAlertView 时:

警报视图仅显示关键文本,而不是值。例如,如果我将 UITextviews 文本设置为 NSLocalizedString(@"CONNECTIONERROR",nil),它会起作用,但警报视图仅显示密钥。有谁知道怎么了?

0 投票
1 回答
485 浏览

localization - Xcode 4.2 中的本地化

我无法在 iPhone 应用程序中进行本地化。这是我所做的:

在申请信息中,我添加了法语。我将文件Localizable.strings(UTF-16)移动到fr.lproj文件夹。该文件包含:

我将 iPhone Simulator 中的语言更改为法语,然后使用 Product -> Clean,再次运行项目,但没有任何效果。我得到“苹果”。

问题可能是什么?也许我创建Localizable.strings文件不正确?

我认为问题出在模拟器上,因为当我添加法语 xib 文件时,我遇到了同样的问题,但我不知道有什么问题。

0 投票
1 回答
55 浏览

variables - 变量没有取正确的值

我得到了这段代码:

此代码块在我第一次单击时运行良好,但在第二次单击时它总是崩溃。它崩溃了,因为令人惊讶的是, lstrGroupTitle 得到了一个奇怪的值。它怎么可能在这个简单的函数中得到错误的值?

注意: lstrGroupNumber 工作正常。

0 投票
3 回答
1619 浏览

iphone - NSLocalizedString - 构建失败

我在localizable.string (英语和挪威语)中添加了一个本地化字符串

用英语讲

在挪威语

当我构建应用程序时,我得到:

/myPath/nb.lproj/Localizable.strings:0:错误:验证失败:数据已损坏,无法读取。

我知道由于我会出错,因为当我将更改为其他内容时,例如p,构建成功。

0 投票
2 回答
622 浏览

ios - 如何使用英语以外的语言,但仍将 NSLocalizedString 与英语一起使用?

我找不到任何类似的问题,所以我们开始:

我正在开发一个 iOS 应用程序,该应用程序的第一个版本将只有法语版本,但我们计划在未来发布一个英文版本。在这一点上,我认为NSLocalizedString对所有文本都使用是个好主意,这样当需要英语时,应用程序就可以准备就绪。但是,我真的很想在我的代码中使用英语作为键值:

代替

然后我想运行 genstrings,并将 .strings 文件本地化为法语(并将其提供给翻译人员)。但如果我这样做,我怎样才能摆脱“原始”英文 .strings 文件?我在这里完全错了吗,我现在必须在我的代码中使用法语吗?

0 投票
9 回答
75180 浏览

objective-c - 使用 NSLocalizedString 的最佳实践

我(像所有其他人一样)使用NSLocalizedString本地化我的应用程序。

不幸的是,有几个“缺点”(不一定是 NSLocalizedString 本身的错),包括

  • Xcode 中的字符串没有自动完成功能。这使得工作不仅容易出错而且令人厌烦。
  • 您可能只是因为不知道已经存在等效字符串而重新定义了一个字符串(即“请输入密码”与“先输入密码”)
  • 与自动补全问题类似,您需要“记住”/复制粘贴注释字符串,否则genstring最终会出现一个字符串的多个注释
  • 如果你想genstring在你已经本地化了一些字符串之后使用,你必须小心不要丢失你的旧本地化。
  • 相同的字符串分散在您的整个项目中。例如,您NSLocalizedString(@"Abort", @"Cancel action")在任何地方都使用过,然后 Code Review 要求您重命名字符串以NSLocalizedString(@"Cancel", @"Cancel action")使代码更加一致。

我所做的(在对 SO 进行了一些搜索之后,我发现很多人都这样做)是有一个单独的strings.h文件,我#define所有的本地化代码都在其中。例如

这本质上提供了代码完成、一个更改变量名称的地方(因此不再需要 genstring),以及一个用于自动重构的唯一关键字。然而,这是以得到一大堆#define非固有结构的语句为代价的(即像 LocString.Common.Cancel 或类似的东西)。

所以,虽然这有点效果,但我想知道你们是如何在项目中做到这一点的。还有其他方法可以简化 NSLocalizedString 的使用吗?甚至可能有一个封装它的框架吗?