Jump to content
php.lv forumi

Recommended Posts

Posted

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?

Posted

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 ...

Posted (edited)

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
Posted (edited)

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
Posted

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ē :)

×
×
  • Create New...