月份名称的自定义翻译

时间:2019-03-13 作者:Muhammed Nasser

如何自定义WordPress中月份名称字符串的翻译?

实例

所有网站中的“1月”都是“1月11日”

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

将以下内容添加到现有functions.php 文件:

function ra_change_translate_text( $translated_text ) {
    if ( $translated_text == \'January\' ) {
        $translated_text = \'Jan11\';
    }
    return $translated_text;
}
add_filter( \'gettext\', \'ra_change_translate_text\', 20 );
如果要更改多个字符串,请改用此函数:

function ra_change_translate_text_multiple( $translated ) {
    $text = array(
        \'January\' => \'Jan11\',
        \'February\' => \'Feb22\',
        \'March\' => \'Mar33\',
    );
    $translated = str_ireplace(  array_keys($text),  $text,  $translated );
    return $translated;
}
add_filter( \'gettext\', \'ra_change_translate_text_multiple\', 20 );
您可以添加任意数量的字符串,例如:

\'April\' => \'Apr44\',
新的译文也可以是外语。下面是阿拉伯语的一个例子:

\'May\' => \'مايو\',
最后注意:如果使用此函数,请记住这将更改字符串的翻译everywhere 在WordPress站点中:前端和后端。January 将成为Jan11 无处不在。试试看。

如果你能接受,那你就可以走了。否则,如果您只想更改前端的字符串(供访问者查看),请考虑更改主题或WordPress网站的语言设置(可能不同于管理语言),正如上面一些评论中所建议的那样。

此外,为了便于参考,我在这里了解了此函数:https://ronangelo.com/change-or-translate-text-on-a-wordpress-theme/. 这是一篇非常好的帖子,如果你想了解更多关于WordPress中文本或主题翻译的信息,我建议你阅读它。

Update to the original answer:

此函数只能用于可翻译的单词-含义,即包装在这些函数中的单词( __(), _e() )...

然而,你的评论和你链接的网站让我更清楚地了解了你想要实现的目标。只需将用于显示该日期的PHP的区域设置更改为ar-LB.UTF-8. 黎巴嫩是阿拉伯地区之一,三月使用أذااااا,而其他地区使用مااس。然后,php语言环境将根据需要呈现日期,而无需深入研究翻译和字符串。

因此,在WordPress主题中,在要显示日期的位置使用此代码,而不是您已经使用的代码:

<?php 
   setlocale(LC_ALL, \'ar_LB.UTF-8\');
   echo strftime("%e %B %Y");
?>
在链接到的页面的源代码中,日期显示在以下代码行中:

enter image description here

根据你组织主题的方式,这一部分可能会header.php 或者甚至是模板部分。找到它,您将看到用于回显日期的旧PHP代码将位于标记之间。将我给你的片段粘贴到它的位置。

请记住,如果此主题不是您自己的唯一主题,并且您没有使用子主题,那么如果更新父主题,您可能会丢失该修改。

我希望这有帮助。如果你需要进一步的帮助,请告诉我。

SO网友:Qaisar Feroz

正确的方法是@Jos在对您的问题的评论中建议的,或者您可以编写一个函数,在其中可以替换从WordPress函数中提取的日期字符串,如get_the_date() 用于所需输出。

下面是一个可能有用的示例函数。

function my_custom_date($date){
    $new_date = getdate(strtotime($date));

    // Array that holds customized month\'s name
    $my_months=[
            \'January\'   => \'1st Month\',
            \'February\'  => \'2nd Month\',
            \'March\'     => \'3rd Month\',
            \'April\'     => \'4th Month\',
            \'May\'       => \'5th Month\',
            \'June\'      => \'6th Month\',
            \'July\'      => \'7th Month\',
            \'August\'    => \'8th Month\',
            \'September\' => \'9th Month\',
            \'October\'   => \'10th Month\',
            \'November\'  => \'11th Month\',
            \'December\'  => \'12th Month\',
        ];



        $new_date[\'month\']= $my_months[$new_date[\'month\']];

        return $new_date[\'month\'].\' \'.$new_date[\'mday\']. \', \'. $new_date[\'year\'];

    }
然后,您可以使用此功能在站点中显示日期。例如

echo my_custom_date( get_the_date() ); // Post publish date, within a loop

echo my_custom_date( "May 10, 2017" ); // Outputs: 5th Month 10, 2017

相关推荐

Translation for plugin

我修改了a。po文件,基本上是我以txt文件的形式打开并进行了更改,但是我上传了它,并且更改不起作用。我想知道我是否需要一个特殊的软件来做和生成一个新的。mo每次我做出改变,或者我错过了什么?提前感谢