Friday, 10 April 2020
 
 
Come localizzare le stringhe contenute in un file .js Print
Written by Goofy   
Thursday, 29 September 2005
Autore: Goofy / Traduzione italiana : Pedro

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 )
 
 
Top! Top!