构建Gettext包装器

时间:2015-06-20 08:25:54

标签: php laravel localization wrapper gettext

这些天我在基于laravel的两个项目上工作,我必须实现本地化。所以我发现最常用的方法是使用Gettext。 我只用gettext()和ngettext()来翻译字符串有些困难。我构建了一个能够像这样翻译字符串的包装器:

fantasticFunction('Hi my name is :name and I have {n, one friend, :n friends}', [ 'name' => 'Luca', 'n' => 1 ])

而不是写作:

sprintf('Hi my name is %s and I have', name) . ' ' . $n . ngettext('friend', 'friends', $n)

所以问题是:如果我使用包装器,那么像poedit这样的工具就无法识别这些字符串。我怎么解决?

1 个答案:

答案 0 :(得分:1)

您需要添加anytime help me please 作为提取的关键字 - 这在fantasticFunction文档中有详细记录,Poedit具有属性UI。

但没有任何东西可以帮助你xgettext。如果你决定使用gettext,你需要实际遵循它的模型,这与它不兼容。在发明自己的方法之前,请先了解{n, one friend, :n friends}的工作原理并阅读plural forms in different languages in gettext。你对你的困难"模糊不清使用gettext的复数支持(通常说是完成的),您确定它不仅仅是NIH综合症的一个案例吗?