从.mo文件进行的翻译在主题中不起作用

时间:2019-11-23 作者:Camilo

我正在尝试为我的主题添加翻译。我通过了documentation 还有很多关于Wordpress开发堆栈的问题。

在我的style.css 文件:

/*
Theme Name: My Theme
Text Domain: my-theme
*/
已在my中加载文本域functions.php 文件:

add_action( \'after_setup_theme\', \'my_theme_load_theme_textdomain\' );
function my_theme_load_theme_textdomain() {
    load_theme_textdomain( \'my-theme\' );
}
还尝试将第二个参数传递给load_theme_textdomain():

load_theme_textdomain( \'my-theme\', get_template_directory() . \'/languages\' );
已添加_e( \'Featured\', \'my-theme\' ) 在我的index.php 文件也在没有第二个参数的情况下进行了尝试_e( \'Featured\' ).

添加了两者es.moes.po 将文件放入languages 我的主题根目录中的文件夹。

  • languages\\es.mo
  • languages\\es.po
还尝试使用文本域作为前缀来命名它们:my-theme-es.momy-theme-es.mo.

的内容es.po 具体如下:

msgid "Featured"
msgstr "Destacados"
Thees.mo 文件是使用生成的Poedit 免费版本。也尝试了po2mo.net.

我在“常规设置”页面中将语言设置为西班牙语。还尝试添加define( \'WPLANG\', \'es\' ) 给我的wp-config.php 文件

但是每次呈现页面时,我都会看到“特色”而不是“Destacados”。

我正在Windows(XAMPP)上使用WordPress 5.3。我和phpinfo() 已启用GetText支持。

有什么线索吗?

谢谢你的时间。

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

从头开始创建一个新主题,看看是否有相同的结果。我用这些文件和翻译作品进行测试

style.css

/*
Theme Name: My Theme
*/

functions.php

<?php

add_action( \'after_setup_theme\', \'my_theme_load_theme_textdomain\' );

function my_theme_load_theme_textdomain() {

    load_theme_textdomain( \'my-theme\', get_template_directory() . \'/languages\' );

}
languages/es_ES.po (文件languages/es_ES.mo 使用poedit创建)

msgid "Featured"
msgstr "Destacados"

index.php

<?php

_e( \'Featured\', \'my-theme\' );

相关推荐

WordPress and Localization

我知道WordPress支持多种语言-您可以在这里阅读更多详细信息http://codex.wordpress.org/WordPress_in_Your_Language 我的问题是,本地化版本与标准英语版本有什么区别?它是否只包含额外的语言文件?我应该寻找什么?谢谢