Як працює Langsys
Langsys перетворює речення, які вже є у вашому інтерфейсі, на систему перекладу. Немає ні файлу ключів, який треба підтримувати, ні кроку вилучення під час збирання — фраза у вашому коді є і ключем пошуку, і значенням за замовчуванням для базової мови.
Фраза — це ключ
У традиційній 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 — the phrase IS the key and the base-language default
t('Hello, {name}!', 'Greetings', { name }); Оскільки вихідний текст є ключем, одна й та сама фраза в будь-якому місці вашого застосунку — це один запис для перекладу: дедуплікація відбувається автоматично, а локаль, яку ще не перекладено, просто повертається до вихідного тексту. Заповнювачів для відсутніх ключів не існує.
У реальному часі та безперервно
Вам ніколи не потрібно запускати команду вилучення. Поки ваш застосунок відображає інтерфейс, SDK виявляє фрази, які він використовує. Нові фрази автоматично перекладаються машинним перекладом у фоновому режимі на цільові локалі вашого проєкту, а застосунок отримує готовий каталог. Випустіть нове речення сьогодні — невдовзі воно буде перекладене, без повторного розгортання пакета локалі.
Життєвий цикл
- Ваш інтерфейс відображає фрази за допомогою
t(),<Translate>та подібних засобів. - Під час розробки ключ для запису дає змогу SDK виявляти й реєструвати будь-які нові фрази.
- Langsys машинно перекладає їх на всі цільові локалі вашого проєкту.
- У робочому середовищі ключ лише для читання отримує готовий каталог для локалі користувача.
- Змініть локаль — і весь інтерфейс миттєво перемальовується перекладеною версією, без перезавантаження.
Порівняно з традиційним i18n. Жодного en.json для ручного редагування, жодної непрямої адресації t('some.nested.key'), жодного кроку вилучення у збірці та жодних запасних варіантів для відсутніх ключів — запасним завжди є вихідне речення.