Как проверить, использовал ли Globalize запасной вариант?
Я использую:
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 запасную опцию и показать сообщение в этом случае?
1 ответ
Глобализация добавляет 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 %>