问题标签 [genstrings]

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 投票
3 回答
1026 浏览

ios - 更新 iOS 国际化的翻译

NSLocalizedString在我的 iOS 应用程序中提取字符串“marked”,我使用以下终端命令:

这将基本上提取所有 .m 文件中的所有标记字符串,并将它们放在我的项目 romanian 文件夹内的 Localizable.strings 文件中。

我的问题是我无法让它更新字符串文件。如果我更改/添加一些字符串,它将覆盖我的旧字符串文件。

我查看了genstrings接受的参数,查看了手册页,我似乎没有找到更新文件而不是覆盖它的选项。

如何更新翻译文件?

0 投票
1 回答
926 浏览

ios - genstrings 可以在自定义#defines 上工作吗?

iOS 用于创建本地化字符串的宏在与genstrings. 但是,我想在其中一个宏之上创建自己的#define,如下所示:

本质上,我总是想反对主捆绑,所以我觉得没有必要每次都输入它。这在代码中效果很好,但genstrings不接受我的宏。我能做些什么来让它接收我的自定义宏吗?我在手册页上看到有一个看起来像我正在尝试做的常规参数,但我无法让它工作。

0 投票
1 回答
3253 浏览

ios - 如何使用终端与 xCode 命令行工具一起工作?

上下文:我已经单独安装了命令行工具,因为“xCode->首选项->下载->组件->命令行工具->安装”的常规方法对我不起作用。

目的:我需要在我的应用程序上实现国际化/本地化,并希望使用genstrings来创建 Localizable.Strings 文件。

问题当我尝试使用终端并键入命令时

$查找。-名称 *.m | xargs genstrings -o en.lproj

我得到:

无法连接到输出目录 en.lproj

我应该如何指定目录的路径?此外,我可能还需要指定一些 *.m 文件的路径。

注意:建议我阅读genstrings 手册,但我不确定如何在使用终端时使用特定的 xCode 项目。

0 投票
1 回答
124 浏览

xcode - 删除使用 genstrings 创建的字符串

我开始本地化我的应用程序。我曾经genstrings创建 localizable.strings。这工作得很好。现在我已经在应用程序上工作并删除了几个字符串并用图标替换它们。有没有办法告诉genstrings删除所有不再使用的字符串?

谢谢

0 投票
0 回答
233 浏览

xcode - 如何仅在 Xcode 项目的活动目标文件上运行 genstrings?

我一直在使用构建阶段运行脚本来执行一个 shell 脚本,该脚本在我的项目目录中找到所有 *.m 文件,并将它们传递给 genstrings,作为创建我的可本地化字符串文件的一种方式。

在一个大型项目中,我有许多目标,而我对本地化感兴趣的应用程序并没有利用驻留在项目目录中的所有 .m 文件。事实上,由于目前正在逐步淘汰一些 .m 文件,因此绝对没有必要翻译这些文件中的字符串。

我正在寻找的是一种获取所有 *.m 文件列表的方法,这些文件设置为对当前目标处于活动状态。Xcode 将编译的同一组 *.m 文件。我想要一种只在这些文件上运行 genstrings 的好方法。最好我希望将其作为单独的构建完成,但如果它在每次构建期间或之后执行此脚本/任务就可以了。

我该怎么做?

0 投票
2 回答
155 浏览

ios - 如何从 .h 和 .m 文件 Xcode 中获取所有打开的字符串

我想在整个项目中的 .h 和 .m 文件中创建所有打开字符串 @"..." 的 excel。跨平台标准化字符串。有没有获取字符串的工具?我使用了 genstrings 但它只找到本地化的字符串。

0 投票
0 回答
638 浏览

xcode - genstrings -s 仍然匹配 NSLocalizedString*

我认为这是一个genstrings错误或“功能”,但想看看是否有人遇到过这个或知道答案。我正计划为此打开一个雷达。

我们使用自己的本地化宏。让我们称之为CustomLocalizedString。在我们的代码库中,它非常大,我们使用了很多 3rd Party 库。对于绝大多数第 3 方库,如果碰巧有它们,我们不希望它们的任何本地化字符串。当我们确实想使用它们的本地化字符串时,我们修改 3rd Party lib 以使用我们的CustomLocalizedString宏。由于我们不关心的字符串正在使用NSLocalizedString*宏,因此认为这不是问题。

本地化基本上开始标记一些有问题的字符串。经过一番研究,我意识到它来自第 3 方库。然后我进一步意识到我们还包括了其他不应该存在的字符串(我们有大量的字符串)。这些是使用NSLocalizedString*marco 的字符串。

所以我们的调用genstrings是这样的:

genstrings -o output -s CustomLocalizedString

我实际上使用xargsandfind来创建文件参数,因此为简洁起见,我省略了该部分。根据输出,看起来像是genstringsNSLocalizedStringCustomLocalizedString字符串都放入 Localizable.strings 文件中。

为了进一步验证我用这个创建了一个文件:

并跑了:

输出是:

运行man genstrings产生这个:

这听起来像是NSLocalizedString*宏会被忽略,但事实并非如此。

注意我已经重新编写了find能够只包含我们想要本地化的第 3 方库。我们的第 3 方库基本上都在一个目录中。由于团队中有很多开发人员,我宁愿尝试查找是否缺少标志或其他允许我包含 3rd Party lib 目录并使其仅正确使用CustomLocalizedString宏的东西。否则我可以预见有人没有意识到我们是如何运行的genstrings,我们突然发现我们需要本地化的字符串不是因为它们没有添加到我们的genstrings find列表中为时已晚。

0 投票
1 回答
649 浏览

ios - iOS - genStrings -s 无法使用替换功能

iOS 有一个 genStrings 函数来帮助将来自 NSLocalizedString(和相关函数)的调用本地化为键值对的输出文件以进行翻译。

看看我的 .h 文件:

这里 CustomLocalizedString 将是我的替换函数,而不是 NSLocalizedString。

让我们看看 .m 实现文件:

当我去命令行运行 genStrings 并告诉它使用我的自定义函数时:

但结果很奇怪:

如果我们检查名为 Localizable.strings 的输出文件,它看起来像这样:

0 投票
0 回答
450 浏览

ios - 找不到实用程序“genstrings”

我有一个 ios 应用程序,现在我想添加一个新的语言选项。

我确实使用 IB 的“本地化”选项轻松本地化了我的 xib 和故事板。但我也想更改 .m 文件中的硬编码字符串。我发现的所有来源都说我应该使用"genstrings".

但是当我尝试使用命令时:genstrings -o en.lproj *.m在我的项目主目录中,它给了我错误:

我找不到任何东西来解决这个问题。我也有开发者工具,xcode 版本:6.3.2 版。任何帮助表示赞赏。

0 投票
4 回答
1374 浏览

ios - 无法在 OS X El Capitan 中使用命令生成字符串

我正在使用 OS X 10.11 El Capitan(Beta 3)中的 Xcode 6.4 开发 iOS 应用程序。

每当我尝试使用终端命令进行本地化时,genstrings我都会收到消息

genstrings:错误:无法找到实用程序“genstrings”,不是开发人员工具或 PATH

自第二个测试版以来,我一直收到此错误。

有没有人必须处理这个问题?提前致谢!