【问题标题】:Single YAML file VS multiple YAML files in different folders and subfolders单个 YAML 文件 VS 不同文件夹和子文件夹中的多个 YAML 文件
【发布时间】:2019-01-20 23:07:16
【问题描述】:
我正在致力于自动化翻译工作流程并改进整个 Rails 网站的本地化流程。我使用的是 SimpleBackend,所以只有 YAML 文件用于存储翻译。
当前的语言环境目录由文件夹、子文件夹(在某些情况下)和那些包含 yml 文件的子文件夹组成。我正在考虑将该项目与 Transifex 等第三方工具集成以进行翻译管理,因此可能对每种语言使用单个 YAML 文件可能有利于工作流程的管理。
如果有人能突出这两种结构的优缺点,那么决定我是否应该从嵌套文件结构切换到单文件模式将非常有帮助。此外,该项目是一个具有积极贡献者的开源项目,因此正在考虑长期解决方案。
谢谢!
【问题讨论】:
标签:
ruby-on-rails
yaml
translation
rails-i18n
transifex
【解决方案1】:
我认为无论您使用何种工具来使流程顺利进行,都会在此决定中发挥重要作用。您应该探索 Transifex 究竟希望输出的结构如何,并尝试保持您当前的输入结构,并在做出决定之前试一试。
但是,在我看来,对于具有大量可翻译文本的大型应用程序,我的偏好是允许在您的默认语言环境中使用多个 yaml 文件,并为每个外语翻译提供一个或两个合并的 yaml 文件。如果您的应用程序中没有很多可翻译的文本,那么单个文件可能适合您,但考虑到它已经被拆分,很有可能这是更好的选择。在一个有许多贡献者的团队中,您最终可能会得到一个非常高的流失文件(可能有很多合并冲突),每个人都在不断变化。
拆分成单独的文件可以让您在逻辑上分离出文本以匹配应用程序中的域,例如用于邮件程序(甚至每个邮件程序)的单独 yaml 文件,以及用于每个域(或控制器)的单独 yaml 文件。无论哪种方式,它都能让您控制您的组织战略。
但是,IMO 将您的外国翻译分开以反映该结构并没有太大价值。我使用过的系统(不是 Transifex)会为您生成外文翻译文件,因此您只需与 Web 界面同步并提交结果。