1

所以我认为我有翻译集的所有配置,但是我的可翻译字符串没有加载到 .po 或 .pot。

在functions.php中:

function opportune_child_setup() {
    load_child_theme_textdomain( 'opportune', get_stylesheet_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'opportune_child_setup' );

在 style.css 中:

/*
[...]
Text Domain: opportune
*/

可翻译字符串(示例):

<label for="custom_field"><?php _e( "Company Tax ID", 'opportune' ) ?></label>

翻译文件目录:

themes/opportune-child/languages/opportune.pot
themes/opportune-child/languages/pt_PT.mo
themes/opportune-child/languages/pt_PT.po

.po 和 .mo 文件是使用 Poedit 基于父主题中的 opportune.pot 创建的(位于等效目录中:)

themes/opportune/languages/opportune.pot

我什至在我的 wp-config.php 中进行了硬编码(尽管已经在 WP Admin 中设置):

define('WP_LANG', 'pt_PT');

我要查看字符串是否已加载到 .po 或 .pot 的操作是:我转到带有可翻译字符串的页面,进行硬刷新(删除缓存),下载 .po 和 .pot,然后搜索字符串。从未加载任何字符串。

我使用了Loco Translate插件,我认为配置正确,但仍然没有结果。

我错过了什么?非常感谢!

4

1 回答 1

0

首先,子主题不应使用与父主题相同的文本域。

如果您只使用父主题中的字符串,则只需翻译父主题。但是,如果您将新字符串添加到您自己的 PHP 文件中,那么请使用单独的文本域。

因此,如果“公司税号”是您添加的字符串并且它不在父级中,请确保它位于与子主题文件夹匹配的文本域中,即“opportune-child”。


其次,正如您所说,字符串不会自动“加载到 po 文件中”。您可以通过从 PHP 文件中提取字符串来创建 .pot 文件。然后你基于你的 .po 文件。阅读有关WordPress 国际化的信息以了解此过程。

不要“基于 opportune.pot”创建文件,因为父主题是一个单独的实体。您只需要提取和加载您为孩子定义的字符串。让父母照顾好自己。


这里有翻译子主题的指南: https ://localise.biz/wordpress/plugin/child-themes

全面披露:我是作者。

于 2018-09-10T16:27:08.180 回答