问题标签 [xgettext]
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.
scala - 有没有办法让 GNU xgettext (或类似的东西)与 scala 文件一起工作?
我们使用GNU gettext 实用程序直接从我们的代码库创建 PO 文件。然而,问题是我们的一些代码库是用 Scala 编写的(大部分是 Java)。我们正在使用 gradle 进行构建和部署。
据我所见,根据 xgettext 文档,Scala 不是受支持的语言:
5.1.3 输入文件语言的选择
'-L 名称'</p>
'--language=name' 指定输入文件的语言。
支持的语言有 C、C++、ObjectiveC、PO、Shell、Python、Lisp、EmacsLisp、librep、Scheme、Smalltalk、Java、JavaProperties、C#、awk、YCP、Tcl、Perl、PHP、GCC-source、NXStringTable、RST、 RSJ、Glade、Lua、JavaScript、Vala、GSettings、桌面。
有没有办法将 xgettext 用于 Scala 文件?我发现这个 sbt 编译器插件可以满足我们的需要,但不幸的是我们使用的是 gradle 而不是 sbt。
javascript - 使用 xgettext 从 VueJS 文件中提取可翻译的字符串
我正在尝试使用xgettext
从 VueJS 文件中提取要翻译的字符串。不过,我无法xgettext
识别 VueJS 计算属性中的 JS。
例如,我<template>
喜欢这样的一个元素:
<input :placeholder="translator.gettext('Phone')" />
像这样运行时无法识别xgettext
:
xgettext --from-code=UTF-8 --language=JavaScript
但是如果我有一个可翻译的字符串作为函数调用,它就会被拾取。例如:
input
占位符未被拾取,但其他 2 个字符串被拾取。
我相信这是因为xgettext
认为 html 属性中的任何内容都只是一个字符串,但 VueJS 会将以 a 为前缀的属性中的任何值:
作为纯 JavaScript 运行。
有什么办法可以xgettext
理解这段代码是 JS 而不仅仅是字符串?
python-3.x - 翻译 gettext 范围之外的字符串
我正在我的 Discord 机器人上实现获取文本,并且我有一些来自配置文件的字符串,例如:我想要的游戏来自的区域(全球服务器、韩国服务器、日本服务器、亚洲服务器等)也可以翻译成。由于这些文件存储为 JSON,因此我不能真正使用获取文本。
所以我想知道我能做些什么来翻译这些字符串?我想出了一些可以解决我的问题的方法,但它们对我来说看起来不太好。
方法 1 - 使用 .py 文件进行这些设置
这是不言自明的。我可以使用 python 模块来存储配置,这将允许我使用 _(...) 获取文本函数,该函数将允许 xgettext 获取要翻译的字符串。
方法 2 - 对字符串进行硬编码
这将有两种方式,将它们硬编码在它们将要使用的模块中,或者在我将硬编码来自外部数据源的所有字符串的模块中。
有没有更好的方法来解决这个问题?
string - xgettext - 如何提取由空值分割的字符串
从gst-plugins-base提取字符串(使用 xgettext)时存在问题,其中字符串具有空分隔符 -
我正在使用 xgettext-0.21 来提取字符串 -
我只得到一根弦——
虽然我也应该得到“经典摇滚”、“乡村”、“舞蹈”等......
有没有其他方法可以提取这些字符串?也许是其他工具或通过 xgettext 命令使用特定标志?
xgettext - xgettext 关键字匹配覆盖方法
在 xgettext 手册中有对“totalnumargs”和“这对于消除 C++ 中重载函数调用的歧义很有用”的解释。
我正在使用 xgettext 从 C# 应用程序中提取标签,我遇到一个方法有 2 个重载的情况,有时消息位于位置 3,有时位于位置 4。(我无法更改)
我认为 totalnumargs 的解释可能会有所帮助,但我找不到任何用于查看我是否可以使用它的示例。
你以前用过这个论点吗?你有一个可行的例子吗?
gettext - 使用 xgettext 和 msginit 生成 .po 文件时出现 msgfmt 错误
使用以下命令生成 .po 文件时:
xgettext test.js -o test.pot -L JavaScript --from-code=UTF-8
msginit -i test.pot -o de.po --locale=de
我得到以下标题:
使用检查此文件时
msgfmt -cv /dev/null de.po
出现以下错误
我在文件中更改了charset=ASCII
to但得到了同样的错误。我正在使用 Ubuntu Server 20.04 和 gettext-tools 版本 0.19.8.1charset=UTF-8
de.po
php - Poedit:Html/Html5 文件的“源代码不可用错误”
每当我尝试从源代码中提取 Html5 源文件时,我都会收到“源代码不可用错误”。
请注意,当我将其扩展名更改为 .php 或尝试从任何 php 文件中提取时,提取现有源代码时不会出错。不幸的是,这种选择是不可行的。
这是配置源文件路径的目录属性:
这是尝试提取源代码以便可以在 poedit 中翻译时产生的错误:
c# - xgettext 工具无法使用 C# 和 NGettext 库提取带有上下文的字符串
我正在使用NGettext工具来本地化我的 C# 代码,并且我使用了与他们的示例相同的帮助程序类。
所以我的 C# 代码如下所示:
有效(复数有效,带参数的字符串格式有效),但是当我使用上下文时,xgettext 工具不会翻译/找到它:
执行 xgettext 工具的命令行参数是:
这个命令行参数我哪里错了?或者这是 xgettext 工具的错误?
xgettext - Xgettext 不适用于安装了 apache2 和 gettext 的 Debian 10
给定:已安装 debian10 + apache2 + gettext 包。有一个带有一些 php+html 代码的 .php 文件。我尝试使用 xgettext 从这个 .php 文件中获取要翻译的字符串并将它们保存到 .pot 文件中。从指令(https://www.systutorials.com/docs/linux/man/1-xgettext/):
xgettext testfile.php -o locale/pot/testfile.pot
“locale”文件夹和“testfile.php”文件在同一个目录下。“locale/pot”文件夹也是 777 可写的,“testfile.php”也是 777。当我从 shell(从 root)运行上面提到的命令时,没有生成 testfile.pot。我还尝试添加 --debug 选项,但在 shell 中没有信息/没有错误。可能是什么原因?
UPD:我刚刚也尝试过:
xgettext testfile.php -o locale/pot/testfile.pot --debug --force-po
并使用 --force-po 它创建一个文件“testfile.pot”,但没有用于翻译的字符串 - 仅包含内容的模板:
所以还是没有运气...
python - xgettext 无法提取标签属性
我被xgettext
HTML 模板中缺少的标签属性所困扰,例如:
返回
wherea
的title
属性被跳过。
FWIW,模板语言是 Pythonbottle
的SimpleTemplate Engine,与标准不兼容pybabel
。
(说实话,你会得到相同的结果——即标记属性被忽略——使用pybabel
的 javascript 提取器,我宁愿将其与以下内容一起使用babel.cfg
)
我做过的其他尝试:使用与 SimpleTemplate Engine 的模板继承语法不兼容的 Jinja2 提取器{{!base}}