Давайте начнем с добавления i18n-Package в ваш проект Meteor. На Atmosphere доступны различные i18n-пакеты. Я буду использовать anti:i18n-Package. Более популярным является tap:i18n, который вы также можете использовать (у меня были задержки загрузки (например, английский язык всегда сначала обслуживался, а затем явно заменялся немецким) при использовании пакета, но вы обязательно должны проверить это. ).
Идея всегда одна и та же. Существуют помощники по переводу, которые вы можете использовать, и вам нужно добавить языковой файл с парами ключ-значение для вашего языка.

Бегать

meteor add anti:i18n<br />

чтобы добавить пакет anti:i18n-Package в ваш Meteor-Project.

2. Установите язык по умолчанию

Далее мы хотим указать нашему приложению, какой язык является нашим языком по умолчанию (это язык, к которому пакет всегда будет возвращаться, когда другой язык недоступен).

// lib/startup.js<br />
Meteor.startup(function() {<br />
  return i18n.setDefaultLanguage('de');<br />
});<br />

Мы делаем это как на сервере, так и на клиенте, чтобы обе среды имели одинаковую настройку языка по умолчанию.

3. Добавление переводов

Начнем процесс перевода. Первое, что нам нужно сделать, это добавить два файла (конечно, вы можете добавить столько, сколько хотите), в которых будут храниться ключи и значения для переводов (в нашем случае мы будем переводить наш проект на английский и немецкий языки).

// lib/i18n/de.js<br />
i18n.map('de', {<br />
  helloWorld: 'Hallo Welt'<br />
});<br />
// lib/i18n/en.js<br />
i18n.map('en', {<br />
  helloWorld: 'Hello world'<br />
});<br />

Мы определили эти переводы в lib-Folder, чтобы они оба загружались в первую очередь и были доступны серверу и клиенту.

4. Добавьте переводы в свои шаблоны

Anti:i18n-Package имеет удобный помощник, который вы можете использовать в своих шаблонах:

<template name="testTemplate"><br />
  <h1>{{i18n 'helloWorld'}}</h1><br />
</template><br />

Кроме того, вы можете использовать тот же помощник для использования переведенных значений в ваших JavaScript-файлах:

Template.testTemplate.onRendered(function() {<br />
  console.log(i18n('helloWorld'));<br />
});<br />

5. Установить язык (с консоли)

Посмотрим, работает ли это! Откройте консоль браузера и введите:

i18n.setLanguage('de');<br />

Теперь вы должны увидеть немецкий перевод вашего шаблона.

Бегать:

i18n.setLanguage('en');<br />

чтобы переключить язык обратно на английский.

Потрясающий! Теперь ваше приложение переведено и доступно на разных языках.
Но изменение локали в консоли браузера не очень удобно и немного громоздко…

5. Установите язык в соответствии с настройками браузера.

Было бы намного круче, если бы мы могли отображать переведенную версию нашего приложения на основе языка, используемого браузером пользователя.
Давайте создадим простую функцию, которая будет получать язык из браузера пользователя и соответствующим образом устанавливать язык:

// client/lib/startup.js<br />
Meteor.startup(function() {<br />
  var localeFromBrowser = window.navigator.userLanguage || window.navigator.language;<br />
  var locale = 'en';<br />
  if (localeFromBrowser.match(/de/)) {<br />
    locale = 'de';<br />
  }<br />
  i18n.setLanguage(locale);<br />
});<br />

Таким образом, мы увидим переводы на немецкий язык, если в браузере пользователя установлен немецкий язык. В противном случае мы всегда будем видеть английские переводы (как запасной вариант). Вы можете легко расширить эту функцию, если хотите поддерживать и другие языки.

6. Что дальше

Это всего лишь грубая отправная точка.
Далее вы можете, например. сохранить языковой стандарт в базе данных и получать его каждый раз, когда пользователь входит в систему. Таким образом, пользователь всегда будет видеть один и тот же перевод при использовании вашего приложения со своей учетной записью, независимо от используемого им устройства.
Кроме того, вы также должны проверить другие библиотеки перевода, чтобы увидеть, какая из них соответствует вашим потребностям!