3

世界上还有其他I18n选择吗?

我只是不喜欢 I18n 存储翻译键的方式。我想像 Magento 一样存储和使用它们 - 例如,密钥只是我想使用英语语言环境显示的字符串。

因此,当我想翻译它时,我只需nl_NL.csv使用简单的键值格式为文件提供正确的nl_NL语言环境名称(是我的短语的荷兰语类似物。如果 Magento 没有找到翻译文件或翻译键 - 它会显示键本身。虽然关键是英文短语,但我的 HTMl 将“退回”到英文语言环境。

我已经看到了一些覆盖默认 I18n 行为(fast-gettextgem 或自定义 I18n 后端)的方法,但是没有我上面描述的 gems 吗?

4

2 回答 2

3

Ruby i18n 提供了一堆开箱即用的后端,包括一个 gettext 实现。应该很简单。

I18n::Backend::Simple.include(I18n::Backend::Gettext)

如果您不喜欢默认的 gettext 实现,它至少应该提供一个起点来编写您自己的实现。如果您想扩展或替换Simple后端以存储密钥或执行不同的查找,那也应该是可行的。简单的后端实际上非常简单,不到 100 loc。

于 2012-11-09T19:28:35.773 回答
3

fast_gettext你可以这样翻译:_("Hello world!") 它有一个可选的网络界面http://github.com/grosser/translation_db_engine 截图:http ://renderedtext.com/images/blog/2012- 10-02/welcome_translations.png)并支持多个后端,因此可能可以添加一个 .csv 后端。

高级选项:

其他一些想法在http://ruby-i18n.org/wiki

于 2013-04-10T11:06:22.243 回答