← Концепції

Як працює Langsys

Langsys перетворює речення, які вже є у вашому інтерфейсі, на систему перекладу. Немає ні файлу ключів, який треба підтримувати, ні кроку вилучення під час збирання — фраза у вашому коді є і ключем пошуку, і значенням за замовчуванням для базової мови.

Дивитися · 0:30 Робочий процес

Фраза — це ключ

У традиційній i18n для кожного рядка вигадують ідентифікатор, зберігають справжній текст у файлі локалі й вічно підтримують їхню синхронність. Langsys прибирає цю прокладку: ви пишете справжнє речення, і саме це речення є ключем.

Традиційний
// Traditional i18n — indirection + a keys file to maintain
t('greetings.hello');            // what does this say? open en.json to find out

// en.json
{ "greetings": { "hello": "Hello, {name}!" } }
Langsys
// Langsys — the phrase IS the key and the base-language default
t('Hello, {name}!', 'Greetings', { name });

Оскільки вихідний текст є ключем, одна й та сама фраза в будь-якому місці вашого застосунку — це один запис для перекладу: дедуплікація відбувається автоматично, а локаль, яку ще не перекладено, просто повертається до вихідного тексту. Заповнювачів для відсутніх ключів не існує.

У реальному часі та безперервно

Вам ніколи не потрібно запускати команду вилучення. Поки ваш застосунок відображає інтерфейс, SDK виявляє фрази, які він використовує. Нові фрази автоматично перекладаються машинним перекладом у фоновому режимі на цільові локалі вашого проєкту, а застосунок отримує готовий каталог. Випустіть нове речення сьогодні — невдовзі воно буде перекладене, без повторного розгортання пакета локалі.

Життєвий цикл

  1. Ваш інтерфейс відображає фрази за допомогою t(), <Translate> та подібних засобів.
  2. Під час розробки ключ для запису дає змогу SDK виявляти й реєструвати будь-які нові фрази.
  3. Langsys машинно перекладає їх на всі цільові локалі вашого проєкту.
  4. У робочому середовищі ключ лише для читання отримує готовий каталог для локалі користувача.
  5. Змініть локаль — і весь інтерфейс миттєво перемальовується перекладеною версією, без перезавантаження.

Порівняно з традиційним i18n. Жодного en.json для ручного редагування, жодної непрямої адресації t('some.nested.key'), жодного кроку вилучення у збірці та жодних запасних варіантів для відсутніх ключів — запасним завжди є вихідне речення.

Пошук у документації та Навчальному центрі