我的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社区对此的看法。这种方法有任何陷阱。
感谢。
编辑:请注意,当我说表格时,我不仅仅是指字幕的翻译。它还将包括与表单相关的帮助消息,错误等。
答案 0 :(得分:1)
StackOverflow上有关于如何为i18n构建YAML文件的few other个问题,我认为你的问题没有“正确”的答案。如果它适合你,那太好了!我会说你得到的任何答案都是完全主观的,更多的是关于i18n和翻译管理而不是与Rails方式有关的任何内容。
话虽如此,这里有一些关于如何设置YAML文件的关于袖口的主观评论:
您似乎已经将编译中的翻译拆分为组件,就像在Rails应用程序中将视图拆分为部分一样。您想要编辑表单翻译(或一组翻译),直接进入该表单文件并在一次点击中完成工作。如果您是所有翻译的管理员/翻译员,那就太好了,这很好,这意味着更少的文件。
如果您需要第三方为您不会说的语言完成(或重新完成)翻译,可能会产生一些潜在的烦恼吗?你需要给它们一大堆带有大量噪音的文件来过滤(未经审查的语言),而不仅仅是基本语言的文件和带有目标语言键的文件。这假设您没有直接处理文件而不使用某些工具,例如Localeapp或PhraseApp。
也许对你来说,一个快乐的媒介可能是 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工作流程的文件结构是最好的。