【问题标题】:Locales directory structure for Rails 3Rails 3 的语言环境目录结构
【发布时间】:2011-03-02 18:56:29
【问题描述】:

所以我看到here 在 Rails 3 中建议的语言环境(国际化)结构基于用于模型和视图目录的类似文件分离(请参阅页面上的 3.4 语言环境文件组织)。

我有两个问题:

1) 对于控制器中使用的通知 - 例如,在重定向期间“您的记录已成功添加”,是否意图在语言环境下也有控制器目录?或者我应该只使用根语言环境目录中的默认 en.yml 文件并具有以下内容:

en:
  notices:
    create_success: "Your record was added successfully."
    update_success: "Your record was updated successfully."

这样所有通知都在同一个文件中。

2) 基于某种方式的便利性,我实际上更喜欢单个文件中的所有翻译,因为它更容易/更快地处理和查找,然后可能会共享更多项目。是否有理由将它们分开在与模型和视图类似的目录结构中? - 这可能是由于性能和文件加载造成的吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 internationalization


    【解决方案1】:

    如果有一个单独的目录用于存储 Flash 消息等对您来说似乎是合理的,那么就去做吧。指南中给出的示例正如它所说的那样,示例。以任何对您有意义的方式组织它们。

    将所有内容保存在一个文件中也是如此。它的工作原理是一样的,建议考虑拆分它的唯一原因是因为它可能变得难以管理。但如果你想那样做,那就去做吧! :) 如果你改变主意,以后可以随时分开。

    【讨论】:

    • 同意,但是在页面加载方面对性能有影响吗?即,是根据使用情况加载和缓存所有语言环境文件还是单独的?
    • 默认的 I18n 内存存储会在应用初始化时加载所有文件,因此不会影响页面加载。我怀疑这两个选项之间的性能会有任何明显的差异,但我没有运行任何基准测试。如果您对此感到担心,请运行一些测试或切换到different backend
    • 我们决定坚持推荐的目录结构;对我上面的一些示例使用模型范围,因为它们确实与模型相关;并为不适合模型和视图的所有其他人创建“一般”范围。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    相关资源
    最近更新 更多