将自定义主题设置为可翻译

时间:2016-04-01 作者:WalterV

我创建了一个我自己的主题,现在我希望它可以翻译。

我制作了两个文件:

theme.pot

msgid "know_more"
msgstr "Vuoi saperne di più?"

it_IT.po

msgid "know_more"
msgstr "Vuoi saperne di più?"
然后在索引主题文件中,我写道:

<h2><?php _e(\'know_more\',\'\'); ?></h2>
但当我运行该网站时,它只会显示:know\\u more

1 个回复
最合适的回答,由SO网友:Luis Sanz 整理而成

要正确执行此操作,需要生成有效的。mo文件并在主题函数中加载文本域。php:

function wpse222346_localize_theme() {

    load_theme_textdomain( \'your_theme_domain\', get_template_directory() . \'/languages\' );

}

add_action( \'after_setup_theme\', \'wpse222346_localize_theme\' );
有关load\\u theme\\u textdomain功能的更多信息,请查看WordPress Codex:https://codex.wordpress.org/Function_Reference/load_theme_textdomain

然后使用主题的文本域调用可翻译字符串:

<h2><?php _e( \'know_more\', \'your_theme_domain\' ); ?></h2>
此外,强烈建议使用工具自动创建POT文件。它使可维护性变得更加容易。有很多选择,例如Poedit, 多台在线发电机,makepot.php 甚至还有一个很好的插件,可以从WordPress仪表板上执行此操作,名为LocoTranslate. 其中大多数还将帮助您创建。采购订单和。MO文件。

相关推荐

month name translation

我使用birdtips主题,它将发布日期格式化为$birdtips_posted = date(__(\'Y. F j.\', \'birdtips\'), strtotime(get_the_time(\"Y-m-d\"))); 其中Y.F.j.已经被改写以反映我的语言。据我所知,\\uuuu是翻译功能,但我如何告诉Wordpress我使用匈牙利语,它会自动翻译月份名称,或者我应该在中给出名称。采购订单文件?