在Gutenberg\'s GitHub repository 您可以看到所使用的i18n包的源代码。在这个源代码中,您将看到Jed 正在导入(line 4 of gutenberg/packages/i18n/src/index.js) 然后被用来完成大部分的翻译任务。
Jed 介绍;用于现代JavaScript应用程序的Gettext风格i18n“;(或者至少在他们的网站上是这样说的)。
你的问题是针对。采购订单文件。杰德在他们的网站上解释道:
有很多可用的。采购订单收件人。json转换器。获取文本。po文件是大多数体面的翻译公司的标准输出,因为这是一个旧标准。
我目前使用:po2json
但是,我想在将来的版本中将此功能添加到单独的Jed模块中。
However, this does not seem to apply here.
进一步挖掘发现,
setLocaleData( data: Object, domain: string )
用于传递翻译,
in a manner like so:
$locale_data = gutenberg_get_jed_locale_data( \'gutenberg\' );
wp_add_inline_script(
\'wp-i18n\',
\'wp.i18n.setLocaleData( \' . json_encode( $locale_data ) . \' );\'
);
(gutenberg_get_jed_locale_data( $domain )
being more or less a wrapper for get_translations_for_domain( $domain )
)
因此,WordPress似乎通过PHP检索翻译数据,然后将其传递给Jed。Jed本身似乎没有加载任何翻译文件。
包裹的readme also explains how to properly generate the .pot file 包含本地化字符串。
该软件包还包括pot-to-php
用于生成包含中列出的消息的php文件的脚本。pot文件。这对欺骗WordPress很有用。org翻译字符串发现自此刻起,WordPress。org无法直接从JavaScript文件解析字符串。
npx pot-to-php languages/myplugin.pot languages/myplugin-translations.php text-domain