Wordpress:在子主题上添加新字符串(并翻译它们)

时间:2018-05-04 07:34:41

标签: wordpress

我有一个父主题,我确实创建了一个子主题。 我确实在子主题/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的孩子(连同上一点)不起作用。

1 个答案:

答案 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文件的格式有效。