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