微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WooCommerce、代码片段和 WPML:允许来自新国家的翻译

如何解决WooCommerce、代码片段和 WPML:允许来自新国家的翻译

我使用以下代码片段插件向 WooCommerce 添加一个新国家/地区:

add_filter( 'woocommerce_countries','add_my_country' );
function add_my_country( $countries ) {
     $new_countries = array( 'ESTI'  => __( 'Estonia (islands)','woocommerce' ),);
     return array_merge( $countries,$new_countries );
}

add_filter( 'woocommerce_continents','add_my_country_to_continents' );
function add_my_country_to_continents( $continents ) {
    $continents['EU']['countries'][] = 'ESTI';
    return $continents;
} 

代码运行良好。

现在我正在使用 WPML 插件进行翻译,但是 WPML 没有看到这个新的国家/地区字符串。我在哪里错过了什么?如何将“爱沙尼亚(岛屿)”翻译成其他语言?

解决方法

拳头 如果您将代码保存在您的子主题 function.php 文件中,您应该首先将可翻译字符串的文本域名更改为您的子主题文本域,因此将“woocommerce”更改为您的子主题文本域。然后在 WPML 中重新扫描您的子主题以获取新的可翻译字符串。然后在“字符串翻译”部分,您将看到这些字符串。

现在,如果它不起作用,因为您使用 WPML 插件进行翻译,使用 Code Snippet 插件进行代码自定义,您可以使用 WPML ICL_LANGUAGE_CODE 常量来定位特定国家/地区代码。

那么 gettext 钩子应该适用于按国家/地区代码进行的翻译,例如:

add_filter( 'gettext','translate_some_custom_strings',10000,3 );
function translate_some_custom_strings( $translate_text,$original_text,$domain ) {
    if ( defined( 'ICL_LANGUAGE_CODE' ) && 'Estonia (islands)' === $original_text ) {
        // For Estonia
        if ( 'ESTI' === ICL_LANGUAGE_CODE ) {
            $translate_text = 'Eesti (saared)';
        } 
        // For France
        elseif ( 'FR' === ICL_LANGUAGE_CODE ) {
            $translate_text = 'Estonie (îles)';
        }
    }

    return $translate_text;
}

注意:您可能需要检查“ESTI”是否是在 WPML 中注册的国家/地区代码。

相关 WPML 线程:[Resolved] I can’t see translation for Code Snippet plugin

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?