Lingue e scrittura da destra a sinistra
Le pagine per l'utente finale (login ospitato, portale account, email) sono disponibili in 30 lingue. Tre di queste si scrivono da destra a sinistra: arabo (ar), persiano (fa) ed ebraico (he). La dashboard e questa documentazione sono disponibili in 8 lingue: turco, inglese, francese, tedesco, coreano, giapponese, italiano e spagnolo.
Come viene scelta la lingua
Le pagine ospitate scelgono la lingua da queste fonti, in quest'ordine. Ogni fonte viene confrontata con le lingue in cui la pagina è tradotta; se nessuna corrisponde, si prova la fonte successiva:
- Il parametro
ui_localesdella richiesta di autorizzazione OIDC, come elenco ordinato (le prime 10 voci). - L'intestazione
Accept-Languagedel browser.
Se nessuna fonte corrisponde, viene usato l'inglese (en). I tag di regione ricadono sulla lingua base (de-AT diventa de). I valori vengono solo confrontati, mai copiati nella pagina.
Le lingue abilitate per un ambiente sono pubblicate come ui_locales_supported nei metadati dell'OpenID Provider e come locales nella risposta di /fapi/v1/environment, così la tua applicazione può offrire solo quelle. Le pagine ospitate non limitano ancora la scelta a questo elenco, e la lingua predefinita dell'ambiente non viene ancora usata come ripiego; fino ad allora il ripiego è sempre l'inglese.
Non ancora disponibile (piano §70): un selettore di lingua che ricorda la scelta in un cookie idp_locale, e l'uso del locale dell'utente autenticato. Finché non saranno rilasciati, la lingua viene scelta di nuovo a ogni richiesta.
Pagine da destra a sinistra
- Ogni pagina ospitata e il portale account riportano
<html lang=… dir=…>;dirèrtlperar,faehe. I template email riportano lo stessodirsull'elemento radice. - Il CSS personalizzato accetta solo proprietà di direzione logiche, come
margin-inline-start,padding-inline-endeborder-inline-start, etext-align: start. Le proprietà di direzione fisiche comemargin-leftvengono rifiutate conphysical_property, e i valorilefterightconphysical_value. Le proprietà che spostano un elemento sopra un altro, inclusipositione la famigliainset, non sono affatto accettate. - I campi per il codice monouso e il codice di recupero sono sempre disposti da sinistra a destra; i campi identificativi usano
dir="auto", così un indirizzo mantiene la propria direzione. - Il nome dell'applicazione nella schermata di consenso è isolato con
<bdi>, così un nome da sinistra a destra non interrompe una frase da destra a sinistra. Gli altri nomi, come i nomi delle organizzazioni nel selettore di organizzazione, non sono ancora isolati.
Caratteri di controllo bidi
- I nomi visualizzati forniti dal cliente e mostrati nella schermata di consenso, come il nome dell'applicazione, vengono privati dei caratteri di controllo, dei caratteri di formattazione invisibili (inclusi i controlli bidi U+202A–U+202E e U+2066–U+2069) e dei separatori di riga o di paragrafo, così un nome non può riordinare o falsificare il testo che lo circonda.
- Le sostituzioni di testo personalizzate nel branding rifiutano i controlli bidi U+202A–U+202E e U+2066–U+2069 con il codice di errore di campo
bidi_control_character, e gli altri caratteri di controllo concontrol_character(422 validation_failed; la voceerrors[]punta al testo). - I valori di testo inseriti nelle email, come il nome dell'applicazione, vengono rifiutati se contengono caratteri di controllo o di formattazione invisibili; il zero-width joiner e il non-joiner (U+200D, U+200C) sono consentiti perché le scritture persiana e indiche ne hanno bisogno.
Codici, date e numeri
I codici monouso e i codici di recupero sono mostrati con cifre ASCII in tutte le lingue, perché l'utente potrebbe digitarli su un altro dispositivo. L'orario di un evento di sicurezza in un'email usa il formato di data e ora CLDR della lingua dell'email e il fuso orario del destinatario (UTC quando non è noto); una lingua senza dati CLDR per date mostra l'orario come YYYY-MM-DD HH:MM UTC.
Font per altre scritture
L'elenco dei font consentiti include le famiglie Noto Sans per arabo, ebraico, giapponese, coreano, cinese semplificato, thai e devanagari. Una famiglia per il cinese tradizionale non è ancora nell'elenco (non verificata). Vedi Personalizza le pagine di login per font e token.