2012-02-16 5 views
4

Я пытаюсь использовать ember.js в своем приложении Rails.Ember.js подход глобализации руля

Задайте вопрос, связанный с глобализацией содержимого шаблона просмотра handlerbars.

Должен ли я попытаться создать myview.handlebars.erb и получить строки, переведенные на серверной стороне (havent попробовал это), или я должен создать отдельные шаблоны дескрипторов на каждый язык (не звучит как действительно СУХОЙ, если нет более чистого способа)?

Какое идеальное средство для этого?

ответ

4

Ember-I18n обеспечивает решение: https://github.com/jamesarosen/ember-i18n

+0

Yaay! love that :) – thanikkal

+4

Это проблематичный подход, так как вы заканчиваете тем же шаблоном, который содержит строки «user.followers.title.other», которые не имеют смысла. В шаблоне должно быть написано следующее: «Все {{count}} Последователи», чтобы вы могли понять, что вы планируете. Лучше оберните Jed.js или другое gettext-решение в помощнике. –

6

ли вы получить эту работу на свой satisfactioin?

Другая альтернатива (то, что мы используем в http://travis-ci.org) - i18n-js. Нам это нравится, потому что он позволяет хранить все ваши локализации в одном и том же месте (config/locales/[x] .yml) и автоматически добавляет их в свой путь к ресурсам.

Часть этого DRY вещи;)

Синтаксис в ваших рукоятках это почти то же самое, мы просто нам рули помощник

Handlebars.registerHelper('i18n', function(key) { 
    return new Handlebars.SafeString(I18n.t(key)) 
}); 

, а затем {{i18n «path.to.translation "}} в представлении рулей.

+0

+1, Это действительно отличная альтернатива. – thanikkal

+1

Проблемное решение также отмечено в другом ответе. –

+1

Я хотел бы использовать это внутри '{{bindAttr ... title =" i18n 'path.to.translation' "}}' scope, как это сделать? – p1100i

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