Имея дело с отсутствующим аргументом и I18n - PullRequest
0 голосов
/ 11 ноября 2010

Учитывая, что у меня есть ключ с этим ключом перевода

t('my.key', :url => @url)

И перевод на многие языки:

key: "Click %{url}"

Я делаю следующее изменение:

t('my.key', :link => @link)

key: "Click %{url}"

Ключи переведены сообществом, у меня их немало.Мы поддерживаем только английскую локаль.

Конечно же, мой тест пройден красным, потому что если этот вид отображается на любом другом языке, кроме английского, без обновления всех остальных ключей, он вернет:

missing interpolation argument in "Click %{url}" ({:link=>"..."} given)
(ActionView::TemplateError)

Как ленивый программист может решить эту проблему?Грабли задача снять ключи?Обезьяна-патч I18n для спасения: en?

1 Ответ

0 голосов
/ 13 ноября 2010

Ничего не изменилось в локализуемом разделе строки.

% {...} никогда не переводится, это просто имя переменной.

Так что можно сменить% {url} на% {link} на всех языках. (следя за тем, чтобы не повредить строки, используя редактор, который ошибается при кодировании).

Это немного похоже на изменение HTML-тегов:

   <p>Click <b>Print</b> to whatever</p>

изменить на:

   <p>Click <i>Print</i> to whatever</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...