Hoe Langsys werkt
Langsys maakt van de zinnen die al in je UI staan het vertaalsysteem. Er is geen sleutelbestand om te onderhouden en geen extractiestap tijdens het bouwen — de zin in je code is zowel de opzoeksleutel als de standaardtekst in de basistaal.
De zin is de sleutel
Bij traditionele i18n verzin je voor elke string een identifier, sla je de echte tekst op in een locale-bestand en houd je die twee voor altijd synchroon. Langsys schrapt die omweg: je schrijft de daadwerkelijke zin, en die zin is de sleutel.
// 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 }); Omdat de brontekst de sleutel is, is dezelfde zin die ergens in je app staat één vertaalbare invoer — ontdubbeling gaat automatisch — en een taalvariant die nog niet is vertaald, valt gewoon terug op de brontekst. Een placeholder voor een ontbrekende sleutel bestaat dus niet.
Realtime en continu
Je hoeft nooit een extractieopdracht uit te voeren. Terwijl je app rendert, ontdekt de SDK de zinnen die erin worden gebruikt. Nieuwe zinnen worden op de achtergrond automatisch vertaald naar de doellocales van je project, en je app haalt de voltooide catalogus op. Publiceer vandaag een nieuwe zin; die wordt kort daarna vertaald, zonder dat je een locale-bundel opnieuw hoeft te deployen.
De levenscyclus
- Je UI geeft zinnen weer met
t(),<Translate>en dergelijke. - Tijdens de ontwikkeling kan de SDK met een schrijfsleutel nieuwe zinnen herkennen en registreren.
- Langsys vertaalt ze automatisch naar elke doeltaal van je project.
- In productie haalt een alleen-lezen sleutel de voltooide catalogus op voor de taalregio van de gebruiker.
- Wijzig de locale en de hele UI wordt direct opnieuw vertaald weergegeven, zonder herladen.
Versus traditionele i18n. Geen en.json om met de hand te bewerken, geen omweg via t('some.nested.key'), geen extractiestap in je build en geen terugval bij ontbrekende sleutels — de brontekst is altijd de terugval.