Come localizzare le stringhe contenute in un file .js |
|
Written by Goofy
|
Thursday, 29 September 2005 |
Questo problema si pone con estensioni che hanno la cartella locale con le stringhe traducibili, ad eccezione di alcune parole o frasi che non possono essere trasformate in ENTITY come si è soliti fare, poiché appartengono ad un file .js . La soluzione esiste, ma è leggermente dispendiosa, e a volte si impiega più tempo per una piccola parola, anziché... Per prima cosa, si deve cercare o creare un file .properties nella propria cartella locale, quindi scrivere semplicemente il nome della variabile e la frase o parola che dovrà apparire nella propria lingua Per esempio: WrongPassMessage=Password non valida (dove Password non valida è la stringa di testo da tradurre) Nota bene : 1. Un semplice segno = è sufficiente 2. Ricordate di controllare la corretta codifica dei caratteri accentati prima di salvare il file. | Si deve ora indicare all'estensione che le stringhe di cui necessita sono nel file .properties, per ottenre ciò si scrivano linee simili a queste nel file xxxoverlay.xul ubicato nella cartella content: <stringbundleset id="stringbundleset"> <stringbundle id="nome estensione-strings" src="chrome://nome estensione/locale/extensionname.properties"/> </stringbundleset> La stringbundle che si è definita (con il nome id) è un tipo di pacchetto che contiene tutte le stringhe che si sono inserite file .properties. Naturalmente, si deve aggiungere anche la sorgente del file, cioè il suo percorso all'interno dell'estensione. | Ci si può quindi dedicare al file .js , supponendo che si conosca già dove sono ubicate le stringhe da tradurre. Il punto fondamentale è semplice: si deve operare una sostituzione di variabili La linea chiave sarà simile a questa: var wrongpassalert=document.getElementById('nome estensione-strings').getString("WrongPassMessage"); var corrisponde ad una variabile; wrongpassalert corrisponderà all'elemento WrongPassMessage come definito nel file properties, e verrà visualizzato nella finestra delle opzioni o negli alert; document.getElementById è l'identificante per lo script a cui fare riferimento per lo speciale insieme degli elementi corrispondenti a "nome estensione-strings"; getString corrisponde alle variabili specifiche da estrarre da stringbundle. | Ora, se necessario, si può utilizzare la variabile "wrongpassalert" all'interno del file .js, come nell'esempio sottostante: if ( password == userPassword ) { oPrefs.setBoolPref("access.authenticated", true); } else { alert (wrongpassalert); oPrefs.setBoolPref("access.authenticated", false) |
|
Last Updated ( Sunday, 05 March 2006 )
|