我正在使用Divi主题和Polylang插件。我使用Polylang添加波斯尼亚语(bs\\U BA)。我知道如何为Polylang注册字符串并以这种方式进行翻译,但我无法正确地处理复数,因为波斯尼亚语的1、2-4和5+有不同的形式,所以我尝试使用POEDIT。我已将此添加到我的子主题的函数中。php文件:
function my_lang_function() {
load_child_theme_textdomain( "Divi", get_stylesheet_directory() . "/includes/builder/languages" );
}
add_action( "after_setup_theme", "my_lang_function" );
这是我在自定义模块中的一行:
$output.="<li class=\'bedroom\'>".sprintf(_nx("%d bedroom", "%d bedrooms", $custom["bedroom_count"][0], "noun", "custom-strings"), $custom["bedroom_count"][0])."</li>";
我创建了一个bs\\U BA。po文件,并将其放在/includes/builder/languages文件夹中,编译为。mo并将其放在那里:
# Translation of Divi custom modules to Bosnian
msgid ""
msgstr ""
"PO-Revision-Date: 2018-09-14 20:09+0200\\n"
"MIME-Version: 1.0\\n"
"Content-Type: text/plain; charset=UTF-8\\n"
"Content-Transfer-Encoding: 8bit\\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n"
"X-Generator: Poedit 1.8.11\\n"
"Language: bs_BA@latin\\n"
"Project-Id-Version: Divi \\n"
"POT-Creation-Date: \\n"
"Last-Translator: \\n"
"Language-Team: \\n"
"X-Poedit-KeywordsList: _n:1,2,3\\r_n_noop:1,2,3\\r_nx:1,2,3\\r_nx_noop:1,2,3\\n"
#:
msgid "bedrooms"
msgstr "test bedrooms"
#:
msgid "bedroom"
msgstr "test bedroom"
我仍然只看到英语,我不知道我做错了什么。
SO网友:Gonçalo Figueiredo
您似乎在添加带有文本域“自定义字符串”的可翻译字符串,但在load\\u child\\u theme\\u textdomain中加载了文本域“Divi”。需要相同
不要使用与父主题相同的文本域。如果父主题是Divi,请使用Divi child(它应该与子主题slug匹配)。
以您孩子的主题风格。css,定义文本域。
我在某个地方读到了儿童主题的路径。采购订单和。mo文件应该与父级文件相同,但我对此不确定。您的路径似乎是自定义的(不确定),因此请将其包含在您的子主题样式中。css也是如此。
因此,
在函数中。php:
function my_lang_function() {
load_child_theme_textdomain( "divi-child", get_stylesheet_directory() . "/includes/builder/languages" );
}
add_action( "after_setup_theme", "my_lang_function" );
在任何文件中:
$output.="<li class=\'bedroom\'>".sprintf(_nx("%d bedroom", "%d bedrooms", $custom["bedroom_count"][0], "noun", "divi-child"), $custom["bedroom_count"][0])."</li>";
时尚。css:
/*
[...]
Text Domain: divi-child
Domain Path: /includes/builder/languages
*/