【问题标题】:How to localize child theme with Loco Translate如何使用 Loco Translate 本地化子主题
【发布时间】:2015-08-02 09:26:35
【问题描述】:

我正在考虑将可本地化的字符串添加到 wordpress 子主题中,但未能成功。

我有一个带有 .php 页面的子主题,我想在其中添加一个可本地化的字符串。在我的子主题的functions.php 中,我添加了以下行:

load_theme_textdomain( 'i-craft-child', get_template_directory() . '/languages' );

接下来,我使用 Loco Translate 将文件 de_DE.pode_DE.mo 上传到子主题目录中的目录 /languages

最后,我在我的 html 页面中添加了以下行:

<span><small>><?php _e( 'Your email address is also your username and it cannot be changed', 'i-craft-child' ); ?></small></span>

但是,上面的span 以英语(而不是德语)显示。我不确定我在本地化过程中哪里失败了,如果有任何解决这个问题的建议,我将不胜感激。

【问题讨论】:

    标签: php wordpress localization


    【解决方案1】:

    确保包含你的主题文本域,你可以使用这样的东西(如果文件不存在,它会破坏你的网站,所以在测试环境中使用它)。

    $loaded = load_child_theme_textdomain( 'i-craft-child', get_template_directory() . '/languages' );
    
    if( ! $loaded ) {  
        echo 'Unable to load files';
        die;
    }
    

    另外,您是否像这样在wp-config.php 中指定了WP_LANG

    define('WP_LANG', 'de_DE'); // for example

    【讨论】:

    • 好的,一旦我回到我的转速机,我会试试。为清楚起见,父主题还调用 load_theme 函数(带有 i-craft 文本域)。我想子主题的文本域不是由父加载的,因此需要将它添加到子的functions.php中?对吗?
    • 是的,请记住,您应该改用load_child_theme_textdomain
    • 上面的链接说是无效的。
    • 已更新,请查看文档以获取有关 load_child_theme_textdomain 的更多详细信息。
    • 问题已解决。我会在下面详细回答,谢谢指点。
    【解决方案2】:

    根据上面 unixarmy 的指针,问题是函数 load_child_theme_textdomain 无法读取文件,因为我使用函数 get_template_directory() 作为参数。 get_template_directory() 将返回父主题的路径,而不是子主题。将其替换为 get_stylesheet_directory() 即可解决问题。

    【讨论】:

      【解决方案3】:

      我在 Loco 内部的高级配置中解决了这个问题:

      主题 -> 子主题名称 -> 高级。

      在此区域内,您可以定义翻译主题时将使用的“文本域”,例如:

      &lt;?php _e('My string','generatepress-child'); ?&gt;

      其中 generatepress-child 是文本域。

      在我的情况下,子主题和父主题合并在同一路径(在父路径上)和 loco 无法“获取/扫描”子主题内的字符串,所以我手动添加了新子主题这个高级部分中的路径,现在我可以翻译我的子主题中的字符串。

      在此之后,我不得不在我的 functions.php 父主题中添加这行:

      function wpdocs_child_theme_setup() {
         load_child_theme_textdomain( 'generatepress-child', get_stylesheet_directory()  );
      }
      add_action( 'after_setup_theme', 'wpdocs_child_theme_setup' );
      

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-10
        • 2018-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多