Jak działa Langsys
Langsys zamienia zdania, które już masz w interfejsie, w system tłumaczeń. Nie trzeba utrzymywać pliku kluczy ani wykonywać wyodrębniania na etapie budowania — fraza w kodzie jest zarazem kluczem wyszukiwania i domyślnym tekstem w języku bazowym.
Fraza jest kluczem
W tradycyjnym i18n dla każdego ciągu znaków wymyślasz identyfikator, prawdziwy tekst przechowujesz w pliku języka i na zawsze musisz pilnować, by oba były zsynchronizowane. Langsys eliminuje ten pośredni krok: piszesz właściwe zdanie, a to zdanie jest kluczem.
// 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 }); Ponieważ tekst źródłowy jest kluczem, ta sama fraza zapisana w dowolnym miejscu aplikacji to jeden wpis do przetłumaczenia — deduplikacja odbywa się automatycznie — a język, który nie został jeszcze przetłumaczony, po prostu wraca do tekstu źródłowego. Nie ma czegoś takiego jak symbol zastępczy brakującego klucza.
W czasie rzeczywistym i w trybie ciągłym
Nigdy nie uruchamiasz polecenia ekstrakcji. Gdy aplikacja się renderuje, SDK wykrywa używane w niej frazy. Nowe są tłumaczone maszynowo w tle na docelowe języki Twojego projektu, a aplikacja pobiera gotowy katalog. Dodaj dziś nowe zdanie — zostanie przetłumaczone chwilę później, bez ponownego wdrażania paczki językowej.
Cykl życia
- Twój interfejs renderuje frazy za pomocą
t(),<Translate>i podobnych narzędzi. - W środowisku deweloperskim klucz do zapisu pozwala SDK wykrywać i rejestrować wszelkie nowe frazy.
- Langsys tłumaczy je maszynowo na każde docelowe ustawienie regionalne w Twoim projekcie.
- W środowisku produkcyjnym klucz tylko do odczytu pobiera gotowy katalog dla ustawień regionalnych użytkownika.
- Zmień ustawienia regionalne, a cały interfejs natychmiast wyrenderuje się ponownie w nowym języku — bez przeładowania strony.
W porównaniu z tradycyjnym i18n. Bez ręcznej edycji en.json, bez pośrednictwa t('some.nested.key'), bez etapu ekstrakcji w buildzie i bez zastępczych wartości dla brakujących kluczy — zdanie źródłowe zawsze jest wartością zastępczą.