【问题标题】:How to check if Globalize has used a fallback如何检查 Globalize 是否使用了后备
【发布时间】:2016-11-15 21:27:10
【问题描述】:

我正在使用:

gem 'rails', '4.0.0'
gem 'globalize', '~> 4.0.2'

在我的 Image.rb 模型中,我有两列要翻译(英语和德语):

translates :name, :description

在 application.rb 我设置:

config.i18n.fallbacks = true

一切正常。我有一个英文描述,如果我将语言更改为德语,它会显示德语描述(如果有的话),否则显示英文文本。问题是大多数图像描述仍然没有德语翻译,所以我想在德语网站上添加一条短信,说目前没有德语翻译,但我们会显示英文文本,直到有德语翻译可用。

我打算在我的视图中添加类似的东西

if fallback.true?
  Message: This text has not been translated yet and is shown in English

有没有办法检查 Globalize 是否使用了回退选项并在这种情况下显示一条消息?

【问题讨论】:

    标签: ruby-on-rails ruby internationalization globalize


    【解决方案1】:

    Globalize 将translated_locales 方法添加到已翻译模型的实例中。

    translated_locales 返回特定实例的所有可用语言环境的数组。当此数组不包含当前的 I18n.locale 时,将使用回退。

    你可以这样使用:

    <%= image.name %>
    <%= image.description %>
    
    <% unless image.translated_locales.include?(I18n.locale) %>
      Message: This text has not been translated yet and is shown in English
    <% end %>
    

    【讨论】:

    • 正是我需要的!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2022-01-01
    • 2017-12-02
    • 1970-01-01
    • 2020-03-05
    • 2020-09-26
    相关资源
    最近更新 更多