www.mamboteam.com
Friday, 04 July 2008
 
 
Ako lokalizovať reťazce v súbore .js Print E-mail
Written by SlovakSoft   
Wednesday, 20 June 2007

Ako lokalizovať reťazce v súbore .js

Problém: rozšírenia majú jazykové priečinky s lokalizovanými reťazcami, ale niekedy zostávajú nejaké slová a vety nepreložené a nemožno ich previesť na entity ako zvyčajne, pretože sa nachádzajú v súbore .js.

Predpokladajme, že ste v súbore .js našli tieto reťazce:

if ( password == userPassword ) {
oPrefs.setBoolPref("access.authenticated", true);
}
else {
alert ("Invalid password");
......
function clear()
{
sure = confirm("Are you sure?");
Najprv je potrebné vyhľadať alebo vytvoriť v jazykovom priečinku súbor myextension.properties. Potom jednoducho do neho zapíšte názvy premenných vety alebo slová, ktoré sa objavia používateľovi.

Príklad:

WrongPassMessage=Neplatné heslo
AreYouSureMessage=Naozaj to chcete?

(kde Neplatné heslo a Naozaj to chcete? sú reťazce, ktoré sa zobrazia používateľovi)
Poznámka: stačí znak =

Teraz sa vráťte naspäť do súboru .js, kde sa nachádzajú reťazce, ktoré budú lokalizované.
Na samom začiatku súboru vytvorte jeden reťazec (bundle) s adresou súboru properties, v ktorom sa majú hľadať reťazce.


var gBundle = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService);
var mystrings = gBundle.createBundle("chrome://myextension/locale/myextension.properties");

Potom nasleduje zoznam všetkých premenných, ktoré je potrebné v danom súbore .js spravovať:

var wrongpassalert = mystrings.GetStringFromName("WrongPassMessage");
var confirmmessage=mystrings.GetStringFromName("AreYouSureMessage");
Teraz môžete v súbore .js použiť premenné, ktoré potrebujete.
Pozrite príklad:


if ( password == userPassword ) {
oPrefs.setBoolPref("access.authenticated", true);
}
else {
alert (wrongpassalert);

function clear()
{
sure = confirm(confirmmessage);


Last Updated ( Thursday, 28 June 2007 )
 
 
 
Top! Top!