Multilingue per definizione

In Metnos la lingua è una proprietà dell'intera istanza, non una preferenza del singolo utente. Il nucleo del runtime conserva una sola lingua per utenti, canali e richieste concorrenti. Cambiarla è quindi una modifica deliberata della configurazione globale. Questo è il contratto architetturale; alcune superfici storiche non lo rispettano ancora completamente e sono indicate in questa pagina.

Molti sistemi nascono in una lingua e vengono localizzati in seguito. Questo approccio traduce pulsanti e messaggi, ma può lasciare in un'altra lingua le istruzioni date ai modelli, le descrizioni degli strumenti o le espressioni usate per comprendere una richiesta. Metnos parte da un vincolo diverso: una funzione non è davvero multilingue se lo è soltanto la sua superficie.

Diagramma con testo inglese: lingua dell'istanza, contesto del turno, sorgenti linguistiche coordinate, esecuzione con autorità invariata e risposta con ripiego sull'inglese; sotto, compilazione e firma del catalogo Tutor.
I cinque passaggi numerati descrivono il percorso di una richiesta; il percorso inferiore mostra invece come viene verificato il catalogo Tutor. Le frecce indicano una sequenza, non un ciclo automatico.
  1. Lingua dell'istanza. La lingua appartiene all'istanza Metnos ed è condivisa da utenti e canali.
  2. Vincolo propagato. Ogni richiesta riceve la lingua dell'istanza e non può sostituirla, anche durante esecuzioni concorrenti.
  3. Quattro sorgenti coordinate. Prompt, manifest degli executor, messaggi deterministici e lessico di riconoscimento restano distinti ma coerenti.
  4. Ripieghi dichiarati. Se manca un testo, Metnos segue una catena nota e rende visibile il debito di traduzione.
  5. Stessa lingua, canali diversi. I percorsi principali propagano la lingua dell'istanza alla chat web, alle notifiche e ai dispositivi associati.
  6. Verifica prima del supporto. Una lingua è dichiarata supportata soltanto dopo controlli di copertura, struttura e qualità.

Che cosa significa «per definizione»

Significa che la lingua entra nei confini del sistema, non soltanto nei suoi testi. Il nucleo la legge dalla configurazione firmata e la conserva in un contesto isolato per ogni esecuzione concorrente. Un valore ricevuto da una richiesta non può sostituirla. I componenti destinati alle persone devono usare quel medesimo valore: questo è un requisito verificabile, non la dichiarazione che ogni pagina storica sia già stata migrata.

Nei percorsi gestiti dal nucleo, tutti gli utenti e tutti i canali collegati alla stessa istanza ricevono quindi la medesima lingua. Se occorrono due lingue nello stesso momento, servono istanze Metnos distinte; cambiare la lingua di un'istanza è una modifica globale per quell'istanza.

Lingua e autorizzazione restano separate. Cambiare la lingua dell'istanza non amplia i permessi, non cambia il proprietario e non concede nuove capacità a un executor. Cambia la resa e la comprensione, non l'autorità.

Un solo intento, quattro livelli linguistici

Il punto non consiste nel tradurre automaticamente più testo. Consiste nel riconoscere che un agente usa la lingua in punti diversi, ciascuno con una funzione e un rischio propri. Metnos li mantiene separati, così una lacuna può essere individuata e corretta senza fingere che l'intero sistema sia già pronto.

LivelloA che cosa servePerché non può essere sostituito dagli altri
Prompt Forniscono ai modelli istruzioni, criteri e lingua attesa della risposta. Un'interfaccia tradotta non impedisce a un modello di ricevere istruzioni nella lingua sbagliata.
Manifest degli executor Descrivono al pianificatore le azioni disponibili e il significato degli argomenti. Tradurre il risultato non basta se lo strumento è stato scelto partendo da una descrizione non adatta alla lingua dell'istanza.
Catalogo dei messaggi Rende errori, conferme, etichette e notifiche deterministiche. Questi testi devono restare affidabili anche quando un modello non è disponibile.
Lessico di riconoscimento Riconosce modi naturali di esprimere intenti, oggetti e parametri. Mostrare parole italiane non insegna automaticamente al sistema a comprendere tutte le formulazioni italiane.

Il vocabolario delle azioni applica già questo contratto da capo a fondo. I nomi canonici come run e open non vengono tradotti; le forme naturali usate per riconoscerli vivono nel lessico di detection versionato, mentre i rispettivi confini semantici sono chiavi del catalogo i18n. Una nuova lingua deve conservare tutte le azioni canoniche: un mapping parziale non supera il controllo di copertura e le forme ambigue vengono segnalate per la validazione linguistica.

Eccezione attuale: affinity. Le espressioni del manifest usate per avvicinare una richiesta a un executor sono ancora una lista unica che può mescolare più lingue. Il TODO AFF-I18N-001, con priorità massima, richiede analisi, confronto fra alternative, specifica e sviluppo prima di dichiarare questo livello pienamente conforme all'i18n.

Un ripiego esplicito, non una falsa completezza

La mancanza di una traduzione non deve trasformarsi né in una frase inventata né in un comportamento nascosto. Ciascun livello segue una regola deterministica:

Il ripiego garantisce continuità, non certifica la qualità linguistica. Una lingua può essere presente nel catalogo mentre alcune risorse sono ancora in revisione. Metnos conserva questa distinzione: disponibile non significa automaticamente supportata in modo completo.

Traduzioni che ricordano da dove provengono

Una traduzione invecchia quando cambia il testo da cui era stata ricavata. Per evitare che una frase corretta ma superata sembri ancora valida, Metnos registra le impronte del testo corrente e della sorgente usata per tradurlo. Se una lingua viene aggiornata, le versioni non più allineate vengono segnalate per la revisione. Il confronto è strutturale e deterministico; l'eventuale modello propone il nuovo testo, ma non decide che sia corretto.

Il medesimo principio protegge le personalizzazioni. Gli aggiornamenti del catalogo distribuito aggiungono nuove chiavi e possono aggiornare una precedente versione ufficiale, ma non devono sovrascrivere alla cieca una traduzione scelta localmente. La provenienza fa parte della decisione di aggiornamento.

Dal server ai dispositivi, senza due sistemi linguistici

Un executor remoto non possiede una seconda politica linguistica. Riceve il contesto ammesso dal server e un repertorio limitato dei messaggi operativi che può dover rendere sul dispositivo. Questo repertorio viene generato dalla base pubblica e immutabile della distribuzione, non dal catalogo personale di chi compila il pacchetto: una personalizzazione locale non può quindi finire per errore in un artefatto pubblicato.

La stessa regola governa i percorsi principali dei canali. Telegram, la chat web e le attività differite ricevono la lingua dell'istanza e non mantengono una preferenza indipendente per ciascun utente.

Copertura corrente, non ideale. Alcune pagine HTML autonome ereditate dal runtime usano ancora testi italiani scritti direttamente nel codice: fra queste figurano la pagina finale di OAuth, la vecchia vista dei timer e alcune viste autonome. Non passano tutte dal catalogo i18n. Il nucleo della chat e le pagine amministrative basate sui template seguono il contratto, ma l'intera interfaccia non può ancora essere definita completamente localizzata.

Dove sta l'innovazione

Il valore architetturale consiste nel trattare il multilinguismo come una proprietà trasversale verificabile, alla pari dell'identità e della provenienza, invece che come una fase editoriale conclusiva. Questo porta tre vantaggi concreti:

Non è una promessa di traduzione perfetta. I modelli possono ancora produrre una formulazione mediocre, una lingua nuova può avere un lessico incompleto e una revisione umana resta indispensabile. L'innovazione consiste nel rendere questi limiti parte del contratto, quindi misurabili e correggibili.

Come viene preparata una nuova lingua

Quando, durante l'installazione, viene indicata una lingua diversa da italiano o inglese, Metnos non finge che sia già pronta. Normalizza il codice BCP-47 e, dopo la creazione della chiave d'installazione, registra atomicamente una richiesta firmata con data, stato e versione del corpus in $METNOS_USER_STATE/i18n/localization_request.json. L'istanza si avvia temporaneamente in inglese e la richiesta resta in attesa di elaborazione. La sola installazione non traduce automaticamente l'intero sistema.

La pipeline completa esiste, ma oggi viene avviata con gli strumenti amministrativi. materialize censisce prompt, campi testuali dei manifest, messaggi, lessico di riconoscimento, documentazione pubblica, repertorio dei dispositivi e catalogo Tutor. advance traduce un numero limitato di risorse, registra le impronte e sottopone a verifica semantica ciò che può essere valutato automaticamente. Le risorse delicate, come espressioni regolari e controlli di consenso, richiedono revisione umana. Il campo affinity non fa ancora parte di questo inventario.

Esistono anche due lavori periodici più circoscritti. Il timer di servizio, normalmente ogni cinque minuti, elabora i messaggi già in attesa nel catalogo i18n; lo scheduler esegue un ripiego ogni sei ore e tratta anche il lessico di riconoscimento. Questi lavori smaltiscono code già materializzate, ma non sostituiscono l'avanzamento esplicito della pipeline completa. Dopo che tutte le risorse obbligatorie hanno superato i rispettivi controlli, il comando di attivazione ricompila i cataloghi pubblici, verifica manifest e copertura, aggiorna la configurazione firmata e può riavviare il servizio nella nuova lingua.

  1. Avvio provvisorio. La lingua richiesta viene registrata e l'istanza resta operativa in inglese.
  2. Inventario amministrativo. Ogni risorsa censita riceve una sorgente, un codice lingua, un'impronta e uno stato.
  3. Traduzione limitata. I worker acquisiscono lotti finiti e conservano gli errori senza perdere il lavoro precedente.
  4. Revisione e controlli. Placeholder, schemi, manifest, lessico, documenti e cataloghi derivati devono superare i rispettivi gate.
  5. Attivazione esplicita. Solo dopo il superamento dei controlli l'amministratore rende autorevole la nuova lingua e riavvia l'istanza.

Che cosa resta invariato. La traduzione non modifica nomi degli executor, chiavi, schema degli argomenti, permessi, proprietario, policy o firme. Cambia la lingua con cui Metnos comprende e spiega; non cambia ciò che Metnos è autorizzato a fare.

Per approfondire