Come funziona Langsys
Langsys trasforma le frasi già presenti nella tua UI nel sistema di traduzione. Non c'è alcun file di chiavi da mantenere né una fase di estrazione in fase di build: la frase nel tuo codice è sia la chiave di ricerca sia il testo predefinito nella lingua di base.
La frase è la chiave
Nell'i18n tradizionale si inventa un identificatore per ogni stringa, si salva il testo vero in un file di locale e si mantengono i due allineati per sempre. Langsys elimina questo passaggio intermedio: scrivi la frase vera e propria, e quella frase è la chiave.
// 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 }); Poiché il testo di origine è la chiave, la stessa frase scritta in qualsiasi punto della tua app corrisponde a una sola voce traducibile — la deduplicazione è automatica — e una lingua non ancora tradotta ripiega semplicemente sul testo di origine. Non esiste alcun segnaposto per chiavi mancanti.
In tempo reale e continuo
Non devi mai eseguire un comando di estrazione. Mentre la tua app esegue il rendering, l'SDK rileva le frasi che utilizza. Quelle nuove vengono tradotte automaticamente in background nelle lingue di destinazione del tuo progetto, e la tua app scarica il catalogo completo. Pubblica una nuova frase oggi: verrà tradotta poco dopo, senza dover rieseguire il deploy di un bundle di lingua.
Il ciclo di vita
- La tua UI renderizza le frasi con
t(),<Translate>e simili. - In sviluppo, una chiave di scrittura consente all'SDK di individuare e registrare le nuove frasi.
- Langsys li traduce automaticamente in ogni lingua di destinazione del tuo progetto.
- In produzione, una chiave di sola lettura recupera il catalogo completo per la lingua dell'utente.
- Cambia la lingua e l'intera interfaccia viene renderizzata di nuovo tradotta, all'istante e senza ricaricare la pagina.
Rispetto all'i18n tradizionale. Nessun en.json da modificare a mano, nessuna indirezione tipo t('some.nested.key'), nessuna fase di estrazione nella build e nessun fallback per chiavi mancanti: la frase di origine è sempre il fallback.