2

我在用:

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 是否使用了回退选项并在这种情况下显示消息?

4

1 回答 1

5

Globalizetranslated_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 %>
于 2016-11-18T20:25:43.597 回答