【问题标题】:WordPresas - Add string translations to an existing .poWordPresas - 将字符串翻译添加到现有的 .po
【发布时间】:2021-03-09 01:45:26
【问题描述】:

我使用的主题是意大利语翻译不完整。使用编辑器,我添加了新行并使用 Poedit 生成了 .mo。 我的疑问是我什么时候下载更新,什么时候我的翻译可能会被覆盖。

有没有办法避免重新同步新的翻译(代码在 _e() 函数中使用域)?

【问题讨论】:

    标签: wordpress language-translation poedit


    【解决方案1】:

    您可以将“自定义” .po 和 .mo 文件放入 /wp-content/languages/plugins,它将覆盖插件的原始 .po .mo 文件。因此,即使您更新了插件,您的自定义翻译文件也会被使用。

    例如,如果您将 Akismet 插件翻译成意大利语,您在 /wp-content/languages/plugins 中的文件将是

    akismet-it_IT.mo
    akismet-it_IT.po
    

    编辑:

    或者,您可以将此代码添加到您的子主题的functions.php 以进行字符串翻译。您可以根据需要附加此代码来翻译单词。我在末尾添加了两行(hello2 和 hello3)作为示例。

    // Translate Text
    add_filter('gettext', 'translate_text'); 
    add_filter('ngettext', 'translate_text');
    
    function translate_text($translated) { 
    $translated = str_ireplace('Hello', 'Ciao', $translated); 
    $translated = str_ireplace('Hello2', 'Ciao2', $translated); 
    $translated = str_ireplace('Hello3', 'Ciao3', $translated);  
    
    return $translated; 
    }
    

    【讨论】:

    • 感谢@ozgur,那么将原始(和部分).po 仅与我新添加的字符串合并的可能性如何?
    • 我以为你已经合并了它们。您应该能够将它们与 poedit 合并
    • 是的,但是如果新版本的插件可能带有新的字符串,可能有些翻译了有些没有,我必须手动同步吗?
    • 我的解决方案只用您的自定义 .po 文件覆盖插件的 .po 文件。 Wordpress 不会将插件的更新字符串与您的自定义字符串合并。不过,您可以手动将新字符串添加到您的 .po 文件中。
    • @Zeno 我添加了一个替代的字符串翻译解决方案,您可以从您的 functions.php 中完成。如果你只有几个翻译,你可以使用它。
    猜你喜欢
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2015-10-29
    相关资源
    最近更新 更多