https://codex.wordpress.org/Function_Reference/register_taxonomy
我有这些疑问_x( \'Categories\', \'taxonomy general name\' )
是不是taxonomy general name
文本域?这不会导致多重翻译吗__( \'All Categories\' ),__( \'Edit Category\' )
etc似乎没有任何文本域,是否需要
https://codex.wordpress.org/Function_Reference/register_taxonomy
我有这些疑问_x( \'Categories\', \'taxonomy general name\' )
是不是taxonomy general name
文本域?这不会导致多重翻译吗__( \'All Categories\' ),__( \'Edit Category\' )
etc似乎没有任何文本域,是否需要_x( \'Categories\', \'taxonomy general name\' )
是不是taxonomy
general name
文本域?这不会导致多重翻译吗?
那个taxonomy general name
是gettext 或POT文件中使用的翻译上下文。文本域是third parameter, 默认为default
.
来自Codex:
有时,一个术语在多个上下文中使用。虽然它在英语中是同一个单词,但在某些语言中可能需要进行不同的翻译。例如,单词“Post”既可以用作动词(“单击此处发表评论”),也可以用作名词(“编辑此帖子”)。在这种情况下_x()
应使用函数。类似于__()
, 但它还有第二个参数——上下文:
if ( false === $commenttxt ) $commenttxt = _x( \'Comment\', \'noun\', \'my-text-domain\' );
if ( false === $trackbacktxt ) $trackbacktxt = __( \'Trackback\', \'my-text-domain\' );
if ( false === $pingbacktxt ) $pingbacktxt = __( \'Pingback\', \'my-text-domain\' );
...
// some other place in the code
echo _x( \'Comment\', \'column name\', \'my-text-domain\' );
“会不会导致多重翻译?”—是的,会的。但这就是为什么_x()
具有上下文参数。它可以帮助您(作为开发人员)根据上下文检索正确的翻译。(调用时必须始终指定上下文_x()
.)<小时>__( \'All Categories\' ),__( \'Edit Category\' )
etc似乎没有任何文本域,是否需要?
就像_x()
函数,调用时__()
, _e()
, 等等。在不指定文本域的情况下,文本域默认为default
; 因此:
__( \'All Categories\' )
相当于__( \'All Categories\', \'default\' )
__( \'Edit Category\' )
相当于__( \'Edit Category\', \'default\' )
__()
用法如果你希望你的插件/主题是可翻译的(即本地化/国际化),那么是的,你的插件/主题应该有一个文本域,并且在使用__()
, _e()
, 或者WordPress中的其他翻译/获取文本功能。
希望能有所帮助,要想在WordPress中获得关于国际化和本地化的深入指南,请查看Codex. =)
更新这里有一个更精确的解释default
文本域:
WordPress加载时,将加载MO(.mo
) 默认文本域的文件default
作为其唯一标识符。默认情况下,MO文件存储在wp-content/languages
; 因此,如果您的站点语言为意大利语,则加载到文本域中的MO文件之taxonomy general name
二 是wp-content/languages/it_IT.mo
.
例如,当您调用__()
作用without 指定文本域,或使用文本域default
, 像这样:
__( \'All Categories\' )
__( \'All Categories\', \'default\' )
然后WordPress将使用从default
\'s MO文件(例如。wp-content/languages/it_IT.mo
) 并在这些翻译条目中查找文本的翻译。因此,如果您希望WordPress查找从主题或插件的MO文件解析的翻译条目,请确保指定正确的文本域,如下所示:
__( \'All Categories\', \'my-theme\' )
__( \'All Categories\', \'my-plugin\' )
因为省略了文本域(或将其设置为default
) WordPress是否会自动查找主题/插件的翻译条目,并且相同的文本是否会存在于另一个文本域的翻译条目中。我的php非常有限。我编辑现有的东西以使其工作,通常可以或多或少地理解代码在做什么,但我自己无法编写代码。我会尽力解释我的情况。我有一个Woocommerce插件,它将产品显示为列表(在表中),而不是单独的框。此表有一个单元格,用于表示产品的“名称”。我希望在每行的每个名称下的第二行显示分类法的内容。假设现在是(3列/行):第1行:名称1 |评级|添加到购物车按钮第2行:名称2 |评级|添加到购物车按钮我希望它是:行1:名称1 |评级|添加到购物车按钮分类国家/地区||第2行:名称2 |评级|添加到购物车