我做了a plugin with existing localization on WordPress.org 免费。我迁移到block。并通过将其与npx @wordpress/create-block todo-list
. 我通读了一遍the Block Editor guide on internationalization 但在todo列表示例中,它的工作方式似乎有一些不同。
结果是我所有的__
php函数工作并转换所有字符串。但是我的__
JavaScript函数不会在翻译时翻译任何翻译。wordpress。组织机构
我尝试和检查的内容:
阻止。json包含"textdomain": "simpletoc"
编辑。js包含import { __ } from \'@wordpress/i18n\';
插件。php包含Text Domain: simpletoc
我没有更改它,但我使用了如下\\uuuu函数:
<ToggleControl
label={__("Remove heading", "simpletoc")}
可悲的是,它以前在4.8版中没有阻塞。json,但我想避免回到那个位置。令人惊讶的是,在块中的描述。json确实会被翻译,但不会
__
代码中的函数。在这样做之前,我试着使用一些东西:
在我尝试使用的init hook中
function register_simpletoc_block()
{
wp_set_script_translations( \'simpletoc-js\', \'simpletoc\' );
register_block_type( __DIR__ . \'/build\' , [
\'render_callback\' => __NAMESPACE__ . \'\\\\render_callback\'
]);
}
add_action( \'init\', \'register_simpletoc_block\' );
我试过这个,但也不起作用:
wp_set_script_translations( \'simpletoc\', \'simpletoc\' );
或
wp_set_script_translations( \'simpletoc-toc-editor-script-js\', \'simpletoc\' );
因为这是古腾堡编辑页面上的脚本
但由于我没有设置;simpletoc js“;我不知道这是否有必要。如果有人能解释或者至少帮我调试一下,那就太好了。
始终为空:
<script id=\'simpletoc-toc-editor-script-js-translations\'>
( function( domain, translations ) {
var localeData = translations.locale_data[ domain ] || translations.locale_data.messages;
localeData[""].domain = domain;
wp.i18n.setLocaleData( localeData, domain );
} )( "simpletoc", { "locale_data": { "messages": { "": {} } } } );
</script>
如果我安装旧的4.8插件,这部分包含来自translate的数据。wordpress。像往常一样组织。
此标签适用于:https://github.com/mtoensing/simpletoc/archive/refs/tags/4.8.zip此标记没有(block.json)https://github.com/mtoensing/simpletoc/archive/refs/tags/5.0.1.zip我错过了什么?