2014-12-10 2 views
0

У меня есть небольшой локализации YAML файл, как это:Rails I18n локализации предлоги непредсказуемые результаты

en: 
    preposition: 
    with: with 
    on: on 

и аналогичные немецкого языка. Когда я пытаюсь использовать I18n.translate('preposition.on'), он дает непредсказуемые результаты и возвращает true вместо обычного предлога. Насколько я понял во время экспериментов, Rails рассматривает значение on как true и напротив off, но как мне с этим справиться, если мне действительно нужен обычный перевод?

+0

попробуйте добавить '': on: 'on' –

+0

Пробовал уже. Единственное изменение заключается в том, что в таком случае я получаю 'translation missing en.preposition.on' и то же самое для немецкого. – kovpack

+0

Кажется, что в YAML 'on' имеет определенное значение. Тем не менее, ключ 'on_the' также не работает :) – kovpack

ответ

2

Решение здесь - http://juliankniephoff.wordpress.com/2012/09/01/reserved-words-in-yaml-and-translating-booleans-in-rails/

Это говорит, что ключи и значения, как on, no, yes действительно YAML зарезервированные слова, поэтому для того, чтобы сделать эту работу, я должен был изменить свой файл локали это:

en: 
    preposition: 
    with: with 
    "on": 'on' 

То есть, чтобы ключ и значение выглядели как строки.

Смежные вопросы