Pseudolocalizzazione
Introduzione
Quando si crea un gioco, il processo di localizzazione inizia solitamente al termine dello sviluppo. Ciò significa che le traduzioni non sono disponibili durante lo sviluppo per testare se il progetto è correttamente internazionalizzato.
Godot offre la pseudolocalizzazione al fine di testare la robustezza del progetto con diverse localizzazioni. La pseudolocalizzazione simula i cambiamenti che potrebbero avvenire durante la localizzazione. In questo modo, eventuali problemi di internazionalizzazione si possono individuare dalle prime fasi dello sviluppo.
Vedi anche
È possibile osservare il funzionamento della pseudolocalizzazione in azione attraverso il progetto demo Pseudolocalizzazione.
Abilitare e configurare la pseudolocalizzazione
Per abilitare la pseudolocalizzazione e le relative configurazioni basta attivare una casella di spunta nelle impostazioni del progetto. Queste impostazioni si trovano in Progetto → Impostazioni del progetto → Generale → Internazionalizzazione → Pseudolocalizzazione dopo aver abilitato l'opzione Avanzate nella finestra di dialogo delle impostazioni del progetto:
La pseudolocalizzazione può anche essere attivata in fase di esecuzione da uno script.
Configurazione della pseudolocalizzazione
La pseudolocalizzazione in Godot può essere configurata in base al caso d'uso specifico del progetto. Ecco le proprietà di pseudolocalizzazione che si possono configurare tramite le impostazioni del progetto:
replace_with_accents: sostituisce tutti i caratteri nella stringa con le loro varianti accentate. "The quick brown fox jumped over the lazy dog" sarà convertito in "Ŧh̀é q́üíćḱ ḅŕôŵή f́ôx́ ǰüm̀ṕéd́ ôṽéŕ ŧh̀é łáźý d́ôǵ" quando questa impostazione è abilitata. Si può utilizzare per individuare stringhe non tradotte che non avranno accenti, ma è anche utile per individuare i glifi che mancano nei font utilizzati dal progetto.double_vowels: raddoppia tutte le vocali nella stringa. È una buona approssimazione per simulare l'espansione del testo durante la localizzazione. Si può utilizzare per individuare testo che potrebbe fuoriuscire dal proprio contenitore (tra cui pulsanti).fake_bidi: testo bidirezionale fittizio (simula testo da destra a sinistra). Utile per simulare sistemi di scrittura da destra a sinistra, nonché per verificare potenziali problemi di layout che si presentano nelle lingue che utilizzano sistemi di scrittura da destra a sinistra.override: sostituisce tutti i caratteri nella stringa con un asterisco (*). Questo è utile per trovare rapidamente testo che non è localizzato.expansion_ratio: si può utilizzare nei casi in cui raddoppiare le vocali non è un'approssimazione sufficiente. Questa impostazione aggiunge alla stringa dei trattini bassi (_) e la espande del rapporto specificato. Un rapporto di espansione di0.3è sufficiente per la maggior parte dei casi pratici; aumenterà la lunghezza della stringa del 30%.prefixesuffix: queste proprietà si possono utilizzare per specificare un prefisso e un suffisso in cui racchiudere il testo.skip_placeholders: ignora i segnaposto per formattare le stringhe come%se%f. Questo è utile per identificare i punti in cui sono necessari più argomenti per visualizzare correttamente la stringa formattata.
Tutte queste proprietà si possono attivare o disattivare in base alle esigenze del progetto.
Configurare la pseudolocalizzazione in fase di esecuzione
La pseudolocalizzazione può essere attivata o disattivata in fase di esecuzione attraverso la proprietà pseudolocalization_enabled nel TranslationServer. Tuttavia, se è necessario configurare le proprietà di pseudolocalizzazione in fase di esecuzione, è possibile fare ciò direttamente utilizzando ProjectSettings.set_setting(property, value) e poi chiamando TranslationServer.reload_pseudolocalization(), il quale rianalizza le proprietà di pseudolocalizzazione e ricarica la pseudolocalizzazione. Il seguente frammento di codice attiva le proprietà replace_with_accents e double_vowels e poi chiama reload_pseudolocalization() affinché le modifiche vengano applicate:
ProjectSettings.set_setting("internationalization/pseudolocalization/replace_with_accents", true)
ProjectSettings.set_setting("internationalization/pseudolocalization/double_vowels", true)
TranslationServer.reload_pseudolocalization()