Я использую 'handlebars_assets'
и i18n-js
в своем приложении Rails, у меня есть шаблон руля, куда я хочу перевести атрибуты объекта модели рельсов.
app / assets / javascripts / templates / questions.show.hbs
<div class="question-body">
<div><strong>{{tAttr 'body'}}:</strong> {{question.body}}</div>
{{#if question.race}}
<div><strong>{{tAttr 'which_race'}}:</strong> {{question.which_race}}</div>
{{/if}}
<div><strong>{{tAttr 'half_breed'}}:</strong> {{question.half_breed}}</div>
<div><strong>{{tAttr 'age'}}:</strong> {{question.age}}</div>
<div><strong>{{tAttr 'weight'}}:</strong> {{question.weight}}</div>
<div><strong>{{tAttr 'gender'}}:</strong> {{question.gender}}</div>
</div>
У меня есть простая форма, которую я отправляю асинхронно с remote: true
, и если запись создается, я добавляю шаблон выше в DOM.Это моя часть JS, где я обрабатываю ответ AJAX.
Handlebars.registerHelper('tAttr',
function(str){
return (I18n != undefined ? I18n.t('activerecord.attributes.question.' + str) : str);
}
);
$('#question-form').on('ajax:success', function (evt, question, status, xhr) {
var $form = $(evt.currentTarget);
var questionHTML = HandlebarsTemplates['questions/show']({
question: question,
idx: Date.now(),
authToken: $('meta[name="csrf-token"]').attr('content')
});
$('#questions').prepend(questionHTML);
$form.find('input[type=text], textarea').val('');
$form.find('.form-errors').html('');
});
Здесь у меня должны быть немецкие имена, но я получаю английские имена.Я подтвердил, что I18n.locale
- это :de
на стороне сервера, но я получаю английские имена атрибутов.Я пытался экспортировать переводы вручную rake i18n:js:export
, но это не помогло.Как я могу это исправить?