Для локализации Ember приложений я использую - ember-i18n
Установка
Настройка
В config/environment.js устанавливаю русскую локализацию по умолчанию:
Создание файла для русского перевода - ru
Запускаю команду генерации русской локализации, которая создаст файл app/locales/ru/translations.js - это словарь, в котором будет русский перевод:
Перевод текста
1) Добавляю в словарь app/locales/ru/translations.js строку - "Contact":"Контакты",
в темплейте:
в translations.js
Установка
$ cd my-ember-project
$ ember install ember-i18n
Настройка
В config/environment.js устанавливаю русскую локализацию по умолчанию:
var ENV = {
...
i18n: {
defaultLocale: 'ru'
},
...
}
Создание файла для русского перевода - ru
Запускаю команду генерации русской локализации, которая создаст файл app/locales/ru/translations.js - это словарь, в котором будет русский перевод:
$ ember generate locale ru
Перевод текста
1) Добавляю в словарь app/locales/ru/translations.js строку - "Contact":"Контакты",
export default {Открываю template.hbs и для слова "Contact" ставлю хелпер для перевода - {{t "Contact"}}
"Contact":"Контакт",
...
};
{{#link-to 'contact' tagName="li"}}<a href>{{t "Contact"}}</a>{{/link-to}}2) Для использования хелпера перевода {{t }} внутри двойных фигурных скобок используется простые скобки, т.е.(t "contact"). Например, используется хелпер input и нужно сделать перевод текста в placeholder="Project name"
{{input type="text" value=model.project.name placeholder=(t "Project name")}}и добавляю в словарь app/locales/ru/translations.js
export default {3) Так же в хелпер {{t }} можно передать переменные. Например,
"Project name":"Название проекта",
...
};
в темплейте:
{{t "The (model.user.name)'s project: '(model.project.name)'" username=model.user.name project=model.project.name}}
в translations.js
export default {В translations.js для перевода использовались обратные кавычки, а "{{project}}" заключен в простые кавычки.
"The (model.user.name)'s project: '(model.project.name)'": `Проект "{{project}}" пользователя {{username}}`
};
Комментариев нет:
Отправить комментарий