函数中有第二个参数__()
。应该将其设置为您用于插件或主题的域。在下面的示例中,我使用'text_domain'
。您的域字符串应该是唯一的。它不应与任何其他域字符串匹配。不使用文本域参数默认为'default'
WordPress域名。请参阅链接查看更多细节。
始终使用字符串('text_domain'
)。切勿在字符串中使用变量,函数或常量。如果没有该字符串,大多数(全部?)翻译程序将看不到它。
您的代码:
echo __( 'Hello ' . $first . ' you own me money.' );
不要在字符串中包含变量。
更好的方法:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
要不就:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
该%s
占位符告诉翻译人员,一个字符串在那里发生。使用%d
的号码。还有其他占位符。
(此句子的语法错误是英语。请根据您的意思使用'Hello %s, you owe me money.'
或'Hello %s, you own my money.'
。)
您的代码:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
不要翻译HTML。任何语言都相同。
更好的方法:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
或将其分为多行:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
如果不清楚“ 顶部”和“ 底部”是什么,则可以使用_x()
来解释这些术语的上下文。
您可以在这里找到其他翻译案例:国际化:您做错了