在翻译中,我应该用_n作为代词吗?

时间:2013-02-25 作者:James Mitch

I use _x() now! I accepted the answer just because he understood right and was first. So don\'t get confused!

$like_me_on = __(\'Like me on %s\', \'my-plugin\');
$like_us_on = __(\'Like us on %s\', \'my-plugin\');

$follow_me_on = __(\'Follow me on %s\', \'my-plugin\');
$follow_us_on = __(\'Follow us on %s\', \'my-plugin\');

$my_x_profile = __(\'My %s profile\', \'my-plugin\');
$our_x_profile = __(\'Our %s profile\', \'my-plugin\');
我有这段代码,我阅读了关于\\u n()的内容,只看到了带有$count的示例on wordpress codex.

文本是针对一系列稍后将成为%s的社会服务的,如果我使用\\n,那么我会将这些变量组合在一起,但翻译字符串的阅读会更加复杂。那么,什么是最佳实践呢?这是用于代词还是仅用于数字?

2 个回复
最合适的回答,由SO网友:Eugene Manuilov 整理而成

这是一个有趣的想法,我认为这样的方法对你会有用。我建议您最好使用以下结构:

// $singular = 1 - for \'me\', 2 - for \'us\'
$like_on = _n(\'Like me on %s\', \'Like us on %s\', $singular, \'my-plugin\');
在这种情况下,更容易理解如何翻译短语。

同时阅读此问题How-to: Translate plural forms for themes/plugins with PoEdit 了解如何配置poedit 支持WordPress关键字的复数形式(如_n, _n_noop, _nx_nx_noop).

SO网友:fuxia

不,你不应该。使用_n()placeholder 可以包含不同的数字。_n() 不适用于金额硬编码在字符串中的情况。

您应该使用的是context 参数:

$our_x_profile = _x(\'Our %s profile\', \'Social services like Facebook\', \'my-plugin\');

结束

相关推荐

Plugin Localization

我刚刚为wp构建了我的第一个插件,即使它不是一个伟大的“代码诗意”;)它正常工作。这是一个使用GalleryView 3.0 jquery插件转换默认wp库的插件(http://spaceforaname.com/galleryview).我唯一不能做的就是本地化。此插件的本地化意味着转换管理界面,在这里可以配置jquery插件选项来更改结果库的外观。我试着关注网络上数百万的教程,在论坛上阅读了很多关于这个问题的帖子,并遵循了codex的指南。。。但仍然没有运气。这就是我所做的:每个文本行都位于gette