Jump to content
php.lv forumi

JS failu tulkošana


fest

Recommended Posts

Tīri zinātniska interese- kādas metodes jūs izmantojat JS failu tulkošanai? Es runāju par daudzvalodu aplikācijām- kāds ir elegantākais veids, kā panākt, ka lietotājam, kas profilā ir norādījis angļu valodu, ar JS ģenerētais saturs ir angliski, un latviešu lietotājam- latviski?

 

Varianti, ko pašlaik apsveru:

1) Dinamiski ģenerēt JS, kurā tulkojamais teksts tiek veidots izmantojot gettext. Tā kā pārējai aplikācijai izmantoju gettext, šis būtu diezgan elegants variants- nebūtu jātulko teksti vairākās vietās.

 

2) Tā kā dinamiski ģenerēt visus JS failus varētu būt diezgan neefektīvi, varētu izmantot kaut ko līdzīgu gettext implementācijai, tikai ar JS- respektīvi programma, kas pāriet pāri JS failiem un meklē f-jas _e() vai __(), no šo f-ju argumentiem uzģenerē gettext katalogu, un pēc tam ar vēl vienu programmu izveidot JS objektu, kuru pēc tam izmanto šīs tulkošanas f-jas (_e(), __()). Vienīgi, pie diezgan lielas vārdnīcas varētu iebremzēt lapas ielādi. Kaut gan, parasts teksts angļu/latviešu valodā diezgan labi saspiežas ar gzip. Vēl varētu veidot atsevišķus "namespaces" un reāli lādēt tikai messages no tā scope, kas tiks izmantots pašreizējajā lapā.

 

Variantu ar atsevišķiem failiem priekš atsevišķām valodām nemaz neapsveru.

 

Vai ir kādi ieteikumi par šo tēmu- kā labāk darīt?

Link to comment
Share on other sites

elementari 'mendelson' ...

pie jebkaads Textu pieprasiisanas serverim noraadam konkreto text Nr tas ir teiksim LV =0 RU=1 ENG=2 utt..

talak jau skatamies ko Users izveleejies .. teiksim izvelaas RU taatad nomanam Globalo JS varabli uz 2 un talak pieprasam textu ..

var valoda =0; // valodas varablis

function aaaa(teksta_dala)
{
// te savacam tekstu 
'teksts_'+valoda
}

attieciigi PHP (serversaida) skatamies ko iisti vajag ja teksts_2 --> dodam ENG ja teksts_0 todam LV ..

Saada pieeja dod iepeju to visu Elementari sasinhronizeet ar JS ...

Link to comment
Share on other sites

Tā arī īsti nesapratu, kā tu biji to domājis. Katru rindiņu ar atsevišķu AJAX pieprasījumu ņemt no servera? Ja tā, tas taču ir neprāts...

Kādā veidā tu domā glabāt tulkojamos un iztulkotos stringus? Nu ok, glabāšana mani īsti neinteresē- vairāk veids, kā padot tulkojamos datus uz JS un no JS smuki viņus parādīt.

Edited by fest
Link to comment
Share on other sites

Par cik pats JS praktiski neko vairāk par kādu alert'u neizmet (lasi - izmet tikai alert'us, nevis ģenerē html or smth), tad es daru tā, ka html'ā definēju valodas mainīgos, tb

HTML, PHP:

<html>
...
<script type="text/javascript">
 var lang = new Array();
 var lang["kaut_kas_1"]="<?=gettext("kaut_kas_1");?>";
 var lang["kaut_kas_2"]="<?=gettext("kaut_kas_2");?>";
</script>
</html>

JS:

function funkcija(){
 // bla bla bla
 alert(lang["kaut_kas_1"]);
}

Edited by marcis
Link to comment
Share on other sites

marcis, pašlaik es darīju tāpat, jo vajadzēja vienkārši Thickbox iztulkot priekš vienas lapas.

Taču lielākiem projektiem šī pieeja neder- ja vien lang masīvs netiek ģenerēts no kaut kā automātiski.

Tā teikt, meklēju risinājumu ar skatu nākotnē :)

Link to comment
Share on other sites

×
×
  • Create New...