Rails i18n - 同一YML文件中的多个语言环境

时间:2013-10-15 21:09:45

标签: ruby-on-rails internationalization yaml

我的YML文件已经失控,我已经开始组织它们了。在这一点上,我正在处理大约50种形式和8种语言。那些只会增加。因此,如果我遵循推荐的重新分解方法,那么我最终会得到大约50个文件夹和8个文件。平均而言,每个表单都有大约10-20个与之相关的翻译。所以我想我会采用这种方法:

/config
  /locales
    en.yml        # will contain default English translations
    es.yml        # will contain default Spanish translations
    ......        # etc. default files for each language
    form_1.yml    # translations for form 1 and related
    form_2.yml    # translations for form 2 and related
    ..........    # etc. for the different forms
    form_50.yml   # of course, will be using actual form names and not form_1 .. form_50 :)

en.yml这样的语言文件很明显它们将包含哪些格式的翻译。但像form_1.yml这样的文件将包含以下内容:

en:
  first_name: First Name
  last_name: Last Name

es:
  first_name: Nombre
  last_name: Apellido

it:
  first_name: Nome
  last_name: Cognome

fr:
  first_name: Prénom
  last_name: Nom

...etc for more languages

或者,在同一文件中以root身份使用多种语言。这减少了我需要维护的文件从404到54以及同时查看所有语言以捕获任何错过的等优点。我已经测试了这个并且它有效。但在我全力推进此实现之前,我想知道rails社区对此的看法。这种方法有任何陷阱。

感谢。

编辑:请注意,当我说表格时,我不仅仅是指字幕的翻译。它还将包括与表单相关的帮助消息,错误等。

1 个答案:

答案 0 :(得分:1)

StackOverflow上有关于如何为i18n构建YAML文件的few other个问题,我认为你的问题没有“正确”的答案。如果它适合你,那太好了!我会说你得到的任何答案都是完全主观的,更多的是关于i18n和翻译管理而不是与Rails方式有关的任何内容。

话虽如此,这里有一些关于如何设置YAML文件的关于袖口的主观评论:

  • 您似乎已经将编译中的翻译拆分为组件,就像在Rails应用程序中将视图拆分为部分一样。您想要编辑表单翻译(或一组翻译),直接进入该表单文件并在一次点击中完成工作。如果您是所有翻译的管理员/翻译员,那就太好了,这很好,这意味着更少的文件。

  • 如果您需要第三方为您不会说的语言完成(或重新完成)翻译,可能会产生一些潜在的烦恼吗?你需要给它们一大堆带有大量噪音的文件来过滤(未经审查的语言),而不仅仅是基本语言的文件和带有目标语言键的文件。这假设您没有直接处理文件而不使用某些工具,例如LocaleappPhraseApp

  • 也许对你来说,一个快乐的媒介可能是 config / locales 树结构,如:

    form_1/form_1.en.yml
    form_1/form_1.it.yml
    form_2/form_2.en.yml
    form_2/form_2.it.yml etc...
    

    它可以让你获得语言的组合和分离......但可能比你现在拥有更多的文件。

最终,我会说最适合您的i18n工作流程的文件结构是最好的。