如何覆盖默认的WordPress核心语言文件

时间:2018-09-10 作者:Bark Berendsen

我遇到了一个小问题,我尝试了几种解决方案,但不幸的是,它们都没有奏效。也许有人知道为什么:-)

我使用的是Automatic的语法主题,它有自己的语言文件,但它也使用默认的Wordpress核心语言文件来显示主题前端的一些单词。

我已将语言设置为荷兰语(nl\\U nl),有一个词没有正确翻译,即“Aside”一词也被翻译为“Aside”。然而,这不是一个荷兰语单词,我想把它改成“Notities”。

我尝试了这三种解决方案,但都没有奏效:-(也许这与Wordpress核心语言文件中的原始单词“Aside”也被翻译成“Aside”有关?我只是猜测:-)

  1. Option 1 that did not work
  2. Option 2 idem.
  3. Option 3 by using the plugin \'Quick Localization\'
这是驻留在wp includes/post格式中的脚本。与在我的网站前端显示单词“Aside”相关的php:

    function get_post_format_strings() {
        $strings = array(
            \'aside\'    => _x( \'Aside\',    \'Post format\' ),
        );
        return $strings;
    }
我希望有人有个好主意。我将非常感激。

谢谢你,向你问好,巴克

2 个回复
最合适的回答,由SO网友:Tim 整理而成

更正Max给出的答案。要使用此方法,您需要的过滤器是gettext_with_context 因为您的字符串是通过_x()__().

请注意,传递的筛选参数是translation, 所以您应该检查源字符串($text$context) 以确保筛选的项目正确。

add_filter( \'gettext_with_context\', \'added_translation\', 20, 4 );

function added_translation( $translation, $text, $context, $domain )
{
  if( \'Aside\' === $text && \'Post format\' === $context ){
    $translation = \'Aan de kant\';
  }
  return $translation;
}
具体如何检测字符串以及是否检查当前语言环境是否为Dutch取决于您。但是,无论您使用的主题是什么,此过滤器都会工作,并且应该工作。

如果您正在对字符串进行大量改进,我建议使用加载的翻译文件in addition 安装的翻译。Example guide here 使用本地翻译添加您自己的自定义文件。(披露:我的插件)

SO网友:Max Yudin

这将有助于:

<?php
add_filter( \'gettext\', \'added_translation\', 20, 3 );

function added_translation( $text )
{
    // Search for the string and replace it with translation
    $text = str_replace( \'Aside\', \'Aan de kant\', $text );

    return $text;
}
More about gettext filter.

结束

相关推荐

我们可以在WordPress中使用corePHP代码吗?

我是WordPress的新手,在探索WP之后,我知道它完全是在OOPS PHP中开发的。所以我的问题是,为了简单起见,我是否可以使用普通php(corePHP)开发wordpress网站,因为我不知道OOPS。如果您能给出简短的是/否回答,我们将不胜感激,因为我不希望您写下冗长的解释。谢谢你!!!