如何自定义WordPress中月份名称字符串的翻译?
实例
所有网站中的“1月”都是“1月11日”
如何自定义WordPress中月份名称字符串的翻译?
实例
所有网站中的“1月”都是“1月11日”
将以下内容添加到现有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");
?>
在链接到的页面的源代码中,日期显示在以下代码行中:根据你组织主题的方式,这一部分可能会header.php
或者甚至是模板部分。找到它,您将看到用于回显日期的旧PHP代码将位于标记之间。将我给你的片段粘贴到它的位置。请记住,如果此主题不是您自己的唯一主题,并且您没有使用子主题,那么如果更新父主题,您可能会丢失该修改。
我希望这有帮助。如果你需要进一步的帮助,请告诉我。
正确的方法是@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
我修改了a。po文件,基本上是我以txt文件的形式打开并进行了更改,但是我上传了它,并且更改不起作用。我想知道我是否需要一个特殊的软件来做和生成一个新的。mo每次我做出改变,或者我错过了什么?提前感谢