fest Posted January 8, 2009 Report Share Posted January 8, 2009 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 More sharing options...
Grey_Wolf Posted January 8, 2009 Report Share Posted January 8, 2009 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 More sharing options...
fest Posted January 8, 2009 Author Report Share Posted January 8, 2009 (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 January 8, 2009 by fest Link to comment Share on other sites More sharing options...
marcis Posted January 8, 2009 Report Share Posted January 8, 2009 (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 January 8, 2009 by marcis Link to comment Share on other sites More sharing options...
fest Posted January 8, 2009 Author Report Share Posted January 8, 2009 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 More sharing options...
Ghenis Posted January 8, 2009 Report Share Posted January 8, 2009 Apskati TinyMCE sourci, slinkums pašām stāstīt, bet paņēmiems rullē. Link to comment Share on other sites More sharing options...
bubu Posted January 8, 2009 Report Share Posted January 8, 2009 Parastais gettext variants javaskriptam: http://code.google.com/p/gettext-js/ Link to comment Share on other sites More sharing options...
fest Posted January 8, 2009 Author Report Share Posted January 8, 2009 bubu, Ghenis- paldies, paskatīšos jūsu ieteiktos variantus. Link to comment Share on other sites More sharing options...
Recommended Posts