我有一个父主题,我确实创建了一个子主题。
我确实在子主题/lang
中放了一个文件夹来覆盖父级,所有内容都完成了。我确实用意大利语和英语翻译了我的主题。
现在我需要在注册表单中添加一个字段,所以我使用这段代码:
function tre_custom_woocommerce_register_form () {
?>
<p><label class="woocommerce-form__label woocommerce-form__label-for-checkbox inline">
<input class="woocommerce-form__input woocommerce-form__input-checkbox" name="privacy_mandatary" type="checkbox" id="privacy_mandatary" /> <span><a href="/shop/policy-privacy"><?php _e('Autorizzo il trattamento dei miei dati, come riportato alla lett. A punti 1, 2 e 3 della policy privacy', 'mychildtheme-child'); ?></a></span>
</label></p>
所以基本上我做了“创建”另一个与父母不同的语言域(mychildtheme-child
)。
在functions.php中,我确实使用了这个代码段:
function mychild_load_languages() {
load_child_theme_textdomain( 'mychildtheme-child', get_stylesheet_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'mychild_load_languages' );
在名为/languages/
的新文件夹中(与其他文件夹不同)我确实放了我的.pot和翻译。但翻译没有被调用,我的主题只有意大利语。
所以,总结一下:
我有文件夹lang
的父主题(它有效)
我有一个文件夹lang
的孩子(它的工作原理)。当我打开英语时,我翻译了所有文本(但不是新的)
我有文件夹languages
的孩子(连同上一点)不起作用。
答案 0 :(得分:0)
根据load_child_theme_textdomain
的文档,您还需要确保您的子主题根目录中还有一个.mo
文件。然后,您还需要确保语言文件夹中包含.po
和.pot
种语言文件。
此外,您需要使用与父主题相同的文本域,而不是为您的子主题创建新的文本域。根据{{3}},虽然翻译可以在您的孩子主题中,但它需要模仿父主题,因为它被视为一个主题。
该评论的摘录:
function wpdocs_child_theme_setup() { load_child_theme_textdomain( 'my_parent_theme', get_stylesheet_directory() . '/languages' ); } add_action( 'after_setup_theme', 'wpdocs_child_theme_setup' );
'my_parent_theme'=主题的名称
.mo文件必须使用纯语言文件名,例如子主题目录中的languages / de_DE.mo.
为了兼容性,请确保语言文件夹的名称与父主题语言文件夹(在您的案例中为 /lang
)和.mo
,{{1}相同}和.po
文件的格式有效。