使用Gettext处理语法性别

dgi*_*rez 12 ruby-on-rails gettext

我正在寻找一种简单,优雅的方式来处理Rails应用程序中的Gettext语法性别,就像使用n_()方法处理复数一样.

这对英语没有兴趣,因为单词不会因性别而异,但在翻译成西班牙语时会有所不同.他/她是一个很好的英语用例.这在翻译成西班牙语时非常需要.

一个例子:

考虑用户Pablo(男性)和María(女性).

_('%{user} is tall') & {:user => user.name}
Run Code Online (Sandbox Code Playgroud)

应该翻译成

'Pablo es alto'
'María es alta'
Run Code Online (Sandbox Code Playgroud)

当然,我们可以访问 user.gender

有任何想法吗?

干杯!

sba*_*aev 13

使用标准的gettext功能,可以使用上下文来解决.喜欢称呼:

p_('Male', '%{user} is tall')
Run Code Online (Sandbox Code Playgroud)

要么

p_('Female', '%{user} is tall')
Run Code Online (Sandbox Code Playgroud)

这将在gettext目录中生成两个单独的字符串,用"Male"和"Female"上下文标记它们.