Vai al contenuto
lurno
Tutti gli articoli
Blog

Scegliere un LMS che funzioni davvero in arabo

Una traduzione in arabo e un prodotto costruito in RTL sono due cose diverse. Che cosa si rompe quando la direzione arriva per ultima, e la prova di un'ora che lo scopre.

The Lurno teamAugmental13 min di lettura

Un LMS con una traduzione in arabo e un LMS costruito per la scrittura da destra a sinistra sono due prodotti diversi, e una demo fatta in inglese non le dirà quale dei due sta comprando. La traduzione è un file di stringhe. La direzione è una proprietà del layout, delle icone, del formato delle date, dell'ordinamento, delle maniglie di trascinamento e del motore che genera i PDF — e il file di stringhe non tocca nessuna di queste cose. Chieda a ogni fornitore un accesso alla versione araba, in arabo, e insista sulle parti che nessuno mostra in demo.

Nel Golfo e in Nord Africa scuole e academy oggi comprano bilingue per impostazione predefinita: arabo per i discenti e i tutori, inglese o francese per il team dei sistemi, una sola piattaforma che regge entrambi senza che nessuna delle due metà sembri un adattamento. La modalità di fallimento è raramente una funzionalità mancante. È una pagella di fine trimestre che stampa al contrario il nome di un alunno, e un dirigente scolastico che smette silenziosamente di fidarsi del sistema.

La traduzione è un file. La direzione è il layout.

Un traduttore può completare un file di stringhe in due settimane, e rivederlo è un giro di screenshot. È lavoro vero, ed è la metà facile.

La direzione tocca ogni regola che dice sinistra o destra, ogni icona che punta da qualche parte e ogni misura presa dal bordo sinistro di un contenitore. Dove è stata una variabile fin dall'inizio, l'elemento radice porta `dir="rtl"` e il foglio di stile usa proprietà logiche — `margin-inline-start` invece di `margin-left` — così l'interfaccia si rispecchia da sola e resta speculare via via che si aggiungono schermate. Dove sinistra e destra sono scritte dentro mille regole, l'arabo è un rifacimento di ogni schermata, ed è per questo che viene messo in calendario e poi rimandato.

Lurno

La direzione come variabile: ogni schermata impaginata con inizio e fine logici, così l'arabo è un'impostazione e la prossima funzionalità esce speculare il giorno stesso in cui esce.

Not this

Un file di stringhe arabe versato dentro un layout misurato dal bordo sinistro, poi rattoppato schermata per schermata man mano che arrivano le lamentele.

Supporto da destra a sinistra (RTL)

Non è una traduzione. È l'interfaccia riflessa lungo l'asse verticale — navigazione, tabelle, etichette dei campi, barre di avanzamento, pannelli laterali, ordine di focus — più frasi che mescolano l'arabo con parole e cifre latine senza rompersi, cifre e calendari coerenti con il Paese, ordinamento e ricerca consapevoli dell'arabo, e documenti che rendono l'arabo come scrittura corsiva collegata. Un prodotto ce l'ha quando la direzione è stata una variabile fin dall'inizio; non ce l'ha quando l'arabo è stato aggiunto al file di stringhe.

Un LMS supporta l'arabo se ha una traduzione in arabo?

Non da sola. Una traduzione le dà parole arabe dentro un layout da sinistra a destra, che è circa metà del lavoro. L'altra metà è la direzione: l'interfaccia speculare, le icone che puntano nel verso giusto, la punteggiatura che finisce all'estremità corretta di una frase che contiene una parola latina o un numero, cifre e calendari coerenti con il Paese e non con la lingua, nomi che si ordinano e si cercano come si ordinano i nomi arabi, e PDF che rendono l'arabo come scrittura collegata. Chieda quali di queste cose sono fatte oggi, schermata per schermata.

Che cosa si rompe quando la scrittura da destra a sinistra arriva tardi

Niente di tutto questo è esotico. Sono classi di bug ordinarie, e si presentano più o meno in quest'ordine in ogni prodotto che ha aggiunto l'arabo in un secondo momento.

Il layout che si ribalta solo a metà

Il corpo della pagina si rispecchia e la struttura attorno no. La barra laterale resta a sinistra, il pannello entra dal bordo sbagliato, una barra di avanzamento si riempie da sinistra, così un discente arrivato a tre quarti del percorso risulta appena partito. La riga di intestazione di una tabella si rispecchia mentre le celle no, e ogni valore finisce sotto l'intestazione sbagliata: è il caso peggiore, perché sembra un problema di dati e non di layout. Poi ci sono i piccoli: i puntini di sospensione all'estremità sbagliata di una stringa troncata, i tooltip dal lato sbagliato, un ordine di tabulazione che non segue più l'occhio.

Icone che puntano dalla parte sbagliata

Alcune icone devono rispecchiarsi e altre no, e la regola riguarda il significato. Si rispecchia ciò che indica uno spostamento dentro il contenuto: frecce avanti e indietro, chevron successivo e precedente, rispondi, rientra, la freccetta che apre un albero. Non si rispecchia ciò che raffigura un oggetto o una convenzione: un orologio gira ancora in senso orario, una spunta resta una spunta, il play non punta a sinistra in arabo. Farlo a metà è peggio che non cominciare: una freccia indietro che punta a destra accanto a una freccia avanti che punta a destra non si legge come una coppia.

Frasi che corrono in due direzioni

Quasi nessuna frase araba reale, dentro un LMS, è puramente araba. Contiene un codice di corso, un numero di versione, un nome di file, un punteggio o il nome inglese di un prodotto. L'algoritmo bidirezionale Unicode decide dove va ciascuna sequenza; se la cava bene con il testo marcato correttamente e male con le stringhe che uno sviluppatore ha incollato insieme. I sintomi sono riconoscibili: un punto fermo all'estrema sinistra, parentesi che si scambiano così che quella di chiusura apre la frase, un numero di versione riordinato.

La soluzione è strutturale, non ingegnosa: una sola stringa tradotta con un segnaposto, e il valore isolato perché l'algoritmo lo tratti come un'unità.

an Arabic sentence with one Latin value inside it

  concatenated   part1 + fileName + "."
                 → value and full stop land on the wrong side,
                   and only for some values

  interpolated   t("upload.done", { file })     one string, one placeholder
  isolated       <bdi>{{file}}</bdi>            or unicode-bidi: isolate

  where to look  learner names, file names, course codes, scores —
                 anything dropped into a translated sentence

Cifre, date e settimana

L'arabo non è un'unica localizzazione. L'Egitto e buona parte del Golfo scrivono le cifre arabo-indiane orientali (٠١٢٣٤); il Marocco, l'Algeria e la Tunisia scrivono le cifre che usa questa frase, quindi una piattaforma con una sola localizzazione `ar` sbaglia da qualche parte — e si vede su un voto che un genitore legge ad alta voce al telefono. Le istituzioni saudite hanno spesso bisogno delle date hijri accanto a quelle gregoriane nello stesso documento. La settimana lavorativa è un'impostazione per Paese: gli Emirati Arabi Uniti hanno spostato il settore pubblico a un fine settimana sabato–domenica nel 2022, mentre l'Arabia Saudita e l'Egitto mantengono venerdì–sabato. Il Ramadan è la prova più severa, perché per un mese la giornata scolastica si accorcia e ogni promemoria programmato deve spostarsi con essa.

Ordinamento e ricerca

Un elenco di classe ordinato per codepoint non è ordinato alfabeticamente. Le varianti dell'alef (ا أ إ آ) si ordinano separatamente, così أحمد e احمد finiscono in due metà diverse dello stesso registro. La taa marbuta (ة) e la haa (ه) a fine nome si digitano in modo intercambiabile, come pure la yaa (ي) e l'alef maqsura (ى), a seconda della tastiera. La ricerca ha bisogno della stessa normalizzazione, così una segreteria che digita احمد trova أحمد — altrimenti il personale decide che il campo di ricerca è rotto e torna al foglio di calcolo. E molti nomi arabi sono una catena di nome proprio, padre, nonno e nome di famiglia, che un modulo con due campi tronca senza dire niente.

Tutto ciò che si può trascinare

Trascinare un modulo al suo posto dentro un corso, o una scheda su una dashboard, è aritmetica sulle coordinate x. Da destra a sinistra il segno si inverte, e una libreria che ricava l'indice di rilascio dalla distanza dal bordo sinistro del contenitore lascia cadere l'elemento all'estremità opposta. Storicamente i browser non erano d'accordo sul segno di `scrollLeft` nei contenitori da destra a sinistra, quindi una griglia orizzontale può scorrere nel punto sbagliato in un solo browser. E il tasto freccia sinistra ora deve spostare un elemento in avanti. Il fatto che un fornitore abbia azzeccato o meno questa parte le dice se qualcuno di lingua araba abbia mai costruito un corso dentro il prodotto — negli screenshot non si vede.

PDF e certificati

Questo pezzo si rompe per ultimo e nel modo più pubblico, perché il documento esce dall'edificio. L'arabo è corsivo: ogni lettera assume una forma diversa a seconda delle vicine, e il lam seguito dall'alef diventa un'unica legatura. Per disegnarlo servono un font che contenga i glifi arabi, un motore di shaping che scelga la forma giusta per ogni posizione, e il riordino bidirezionale prima che qualsiasi cosa venga posizionata. Una pipeline che disegna i caratteri uno alla volta nell'ordine di memorizzazione dà il risultato classico — un nome in lettere staccate, al contrario — riconoscibile all'istante da qualsiasi lettore arabo e da nessuno nel comitato d'acquisto. I certificati aggiungono uno strato: un campo nome dimensionato per un nome latino, e una pagina di verifica che si rende da sinistra a destra mentre il certificato no.

Perché in un PDF il testo arabo esce al contrario o con le lettere staccate?

Perché il renderer sta disegnando caratteri invece di comporre testo. Le lettere arabe cambiano forma a seconda delle vicine e alcune coppie si fondono in un'unica legatura, quindi per un risultato corretto servono tre cose: un font che contenga i glifi arabi, un motore di shaping che selezioni la forma contestuale giusta per ogni lettera, e il riordino bidirezionale applicato prima che i glifi vengano posizionati. Le pipeline che posizionano i caratteri uno per uno nell'ordine di memorizzazione saltano le ultime due. È una proprietà della pipeline documentale e non dell'interfaccia, ed è per questo che una piattaforma può sembrare corretta in arabo sullo schermo e produrre comunque un certificato inutilizzabile.

Le parole che usa una scuola non spetta al fornitore sceglierle

Docente, tutore e classe sembrano termini fissi. Sono lessico locale, e variano per Paese, per curriculum e per settore tanto quanto per lingua.

  • Tutore. In buona parte del Golfo l'adulto responsabile di un alunno è ولي الأمر, la formulazione giuridica, e una scuola insisterà su quella. Una scuola con curriculum britannico nella stessa città dice genitore.
  • Classe. In un sistema è un anno di corso, in un altro una sezione a orario (شعبة), in una scuola con curriculum americano è la homeroom, presso un ente di formazione è una coorte.
  • Docente. معلم, مدرس e أستاذ portano registri e livelli di anzianità diversi. Un ente di formazione dice formatore e discente. Una scuola del sistema francese in Marocco dice enseignant sul lato francese e qualcos'altro sul lato arabo, per la stessa persona.

Questi termini variano lungo due assi insieme — per lingua e per organizzazione — e un file di traduzione copre solo il primo: una parola araba per chiave, scelta dal traduttore del fornitore, identica per tutti su quella release. Così, quando una scuola chiede tutore al posto di genitore, un prodotto basato su file di stringhe ha tre risposte e sono tutte cattive: cambiarlo per tutti, biforcare il file di localizzazione per un solo cliente, oppure dire di no.

Chieda invece la terminologia come configurazione: un'etichetta per organizzazione per ogni ruolo e per ogni sostantivo di raggruppamento, impostata in modo indipendente in ciascuna lingua e applicata ovunque quel termine compaia. L'etichetta nel menu di navigazione è la parte facile. Il segno di una versione superficiale è un menu che dice tutore mentre l'email di notifica, l'intestazione del report e il PDF esportato dicono ancora genitore.

Un LMS può usare parole diverse per docente e tutore in Paesi diversi?

Solo se i termini sono configurazione e non traduzione. Un file di traduzione contiene una sola parola araba per chiave, uguale per ogni cliente su quella release, quindi due scuole sulla stessa piattaforma non possono ricavarne lessici diversi. La terminologia locale ha bisogno di un'impostazione per organizzazione per ogni ruolo e per ogni sostantivo di raggruppamento, tenuta separatamente per lingua e applicata all'interfaccia, alle notifiche, ai report e ai documenti. Per verificarlo, cambi un termine e vada a cercare quello vecchio dentro un'email e un PDF.

Una prova che può fare in un'ora

Non chieda se la piattaforma supporta l'arabo. Tutti rispondono di sì e ciascuno intende qualcosa di diverso. Chieda un accesso a un tenant in arabo con contenuti veri e nomi veri dentro, poi esegua questa sequenza.

  1. Passi all'arabo e ricarichi la pagina. Si rispecchia tutta la struttura, o solo la parte centrale?
  2. Apra un modulo. Controlli le etichette, il segno di campo obbligatorio, il messaggio di validazione e una stringa troppo lunga per il suo riquadro.
  3. Trovi una frase che contenga una parola latina o un numero. La punteggiatura sta all'estremità corretta?
  4. Ordini un elenco di nomi arabi. I nomi che iniziano con أ e ا stanno insieme? Adesso ne cerchi uno digitato senza la hamza.
  5. Iscriva un discente il cui nome legale ha quattro parti, e guardi che cosa conserva il modulo.
  6. Trascini un modulo in una nuova posizione dentro un corso. Poi lo rifaccia con la tastiera.
  7. Generi un certificato per un discente con un nome arabo, apra il PDF su un telefono, poi apra la sua pagina di verifica.
  8. Cambi un termine — da genitore a tutore — poi trovi dove sopravvive la parola vecchia.
  9. Dia l'accesso a un collega di lingua araba che non era alla riunione, e lo guardi lavorare venti minuti senza aiuto.

Un fornitore può aggiungere il supporto da destra a sinistra in un secondo momento?

Sì, ed è un lavoro più grande di quanto sembri: rivedere le regole di layout su ogni schermata, verificare ogni icona direzionale, isolare ogni valore interpolato dentro una stringa tradotta e modificare la pipeline documentale perché i PDF compongano l'arabo correttamente. I fornitori lo portano a termine. Quello che conta sono il calendario e la definizione: chieda quali schermate sono speculari oggi, se le funzionalità nuove escono già speculari oppure vengono rattoppate dopo, e che cosa significa «supportato» per i PDF. Un impegno senza una release indicata per nome è l'impegno a provarci.

Dove ci collochiamo noi

Una di queste piattaforme la costruiamo noi, quindi pesi questa sezione di conseguenza. Lurno è disponibile in quattro lingue di prodotto — inglese, arabo, francese e italiano — con il supporto completo da destra a sinistra per l'arabo: si rispecchia l'interfaccia, non solo le stringhe. Questo è un fatto, non un argomento. L'argomento è che dovrebbe verificarlo, sul nostro prodotto come su quello di chiunque altro, con l'ora descritta qui sopra e non con una tabella di funzionalità.

I gruppi bilingui incontrano due problemi lo stesso giorno: la direzione e l'identità. Un gruppo che gestisce una scuola in lingua araba e una in lingua inglese vuole che ciascuna assomigli a sé stessa — logo, colori, pagina di accesso e dominio propri — e questo è branding white-label, non un'impostazione di lingua. La pagina sui gruppi di scuole spiega come le due cose stanno insieme quando una sola piattaforma regge più scuole. Se dal suo edificio escono certificati con sopra i nomi dei discenti, chieda della pipeline documentale in arabo prima di firmare.

Il motivo per essere severi non è estetico. Una piattaforma che funziona a metà in arabo riporta tutti nella lingua del team dei sistemi, e i discenti e i tutori per cui è stata comprata smettono di aprirla. È un fallimento silenzioso, impiega un trimestre ad arrivare a un qualsiasi report, e nessun elenco di funzionalità lo prevede.