【问题标题】:Ruby flash messages translationRuby Flash 消息翻译
【发布时间】:2018-11-18 15:18:10
【问题描述】:

我们的项目中有一些语言环境文件,如下所示:

notice: '%{resource_name} was successfully created.' 
alert: '%{resource_name} could not be created.'

我们使用 I18n 进行翻译。现在如果我们用俄语翻译一些东西,它看起来是这样的:

notice: '%{resource_name} был успешно создан.'

其中 %{resource_name} 是默认翻译,并且始终为英文。我如何使用自己的翻译将其翻译成其他语言?谢谢!

【问题讨论】:

    标签: ruby internationalization


    【解决方案1】:

    我假设您的资源是 Active Record 模型?如果是这样,请检查this part of documentation

    创建翻译文件:

    ru:
      activerecord:
        models:
          user: пользователь
    

    然后:

    t('notice', resource_name: User.model_name.human)
    

    【讨论】:

    • 谢谢你,我会的!
    【解决方案2】:

    您可以对每个控制器和操作进行不同的翻译,例如

    en:
      posts:
        create:
          notice: "Post was successfully created"
    
      users:
        create:
          notice: "User was successfully created"
    

    等等

    【讨论】:

    • 这可行,但不是真正的干燥或灵活的方法。
    • 不幸的是,我不知道模型的关键(resource_name)或者我可以创建具有默认结构的语言环境文件而不依赖于resource_name?
    • @Александр resource_name 值是您的控制器处理的模型(可能为每个控制器定义了该方法)。是的,你可以说类似'Resource was successfully created.' (或者类似这些没有提到创建的特定资源的任何内容)
    • 非常感谢!
    猜你喜欢
    • 2018-06-01
    • 1970-01-01
    • 2013-03-30
    • 2011-01-08
    • 1970-01-01
    • 2014-12-20
    • 2021-06-01
    • 2014-06-29
    • 1970-01-01
    相关资源
    最近更新 更多