如何在WordPress页面中使用翻译功能

时间:2017-03-15 作者:samurdhilbk

我正在使用几个语言文件(.po, .mo) 用于多语言翻译目的。这些文件的源根被指定为我的主题目录的根,翻译可以很好地用于.php 位于此目录树中的文件。但是如何对WordPress页面中包含的内容执行相同的操作?

我通过使用Insert PHP 插件。例如,我可以这样做,

[insert_php]
    _e(\'Hello\', \'my_domain\');
[/insert_php] 
由于WordPress页面的内容保存在wp_posts 表,我无法将其添加为.po 文件那么,如何实现WordPress页面中直接包含的内容的翻译呢?

1 个回复
SO网友:Ben Casey

而不是使用使用eval() 函数,您可以编写一个简单的短代码来处理翻译。类似这样:

您将面临的问题是,像POEdit这样的工具不会自动提取字符串,您需要手动将字符串添加到翻译PO文件中。

/**
 * [__]My string to translate[/__]
 * 
 * @param $atts
 * @param $content
 * @return string|void
 */
function my_translate_shortcode( $atts ,$content ){

    $atts = shortcode_atts( [
        \'textdomain\' => \'mytextdomain\'
    ], $atts );


    return __( $content, $atts[\'textdomain\'] );

}
add_shortcode( \'__\',  \'my_translate_shortcode\' );

相关推荐

multi-language WordPress site

我正在制作由WordPress支持的多语言网站。WPML 不是免费的,而且它对数据库进行了太多额外的sql查询,所以对于我的站点来说,这不是一个好的解决方案。qTranslate 将所有语言保存在一个数据库行中,以后移动到另一个多语言插件非常复杂。<?php _e( \'<!--:en-->english text<!--:--><!--:de-->german text<!--:-->\' ); ?> xLanguage 两年多没有更新