Kavacky Posted July 4, 2013 Report Share Posted July 4, 2013 Jā, ir cilvēkiem problēmas, kā redzams. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted July 4, 2013 Report Share Posted July 4, 2013 (edited) Filozofiskas dabas jautājums. @Kavacky - kur kādas problēmas? Edited July 4, 2013 by jurchiks Quote Link to comment Share on other sites More sharing options...
codez Posted July 4, 2013 Report Share Posted July 4, 2013 Ja nav templeiti, tad PHP visdrīzāk, es darītu tā: Būtu tulkošanas objekts, kurš tulko, piem., $t = new Translator($lang); echo $t('login'); $t() ņemtu skatītos, ka atbilstošai $lang un 'login' kombinācijai ir tulkojums APC kešā, ja nav, ielādē no db un iemet kešā. $t objekts būtu pieejam vai nu konteksta objetkā, vai globāls singletons, atkarībā no kopējās aplikācijas arhitektūras. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted July 4, 2013 Report Share Posted July 4, 2013 Filozofiskas dabas jautājums. @Kavacky - kur kādas problēmas? Nu te tulkošana, piemēram. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted July 4, 2013 Report Share Posted July 4, 2013 (edited) Kāpēc tulkošana ir problēma? @codez - skaidrs, tātad tavs risinājums ir APC. It kā kaut kas tāds man uz servera ir uzlikts, jāskatās. Vienīgais, vai ir vērts, ja man visi tulkojumi patreiz sver tikai 12kb... Edited July 4, 2013 by jurchiks Quote Link to comment Share on other sites More sharing options...
Kavacky Posted July 4, 2013 Report Share Posted July 4, 2013 Es taču nezinu, kāpēc te jau otrā lapa ar atbildēm ir sarakstīta par tulkošanas problēmu... Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted July 8, 2013 Report Share Posted July 8, 2013 Interesants temats, paldies par padalīšanos. PHP laikā darīju tā, ka katru templeitu prekompilēju katrai valodai ar jau no db paņemtiem tulkojumiem. Respektīvi, ja ir index.tpl.php templeits, tad, to prekopilēju index.en.tpl.php, index.lv.tpl.php, utt. Ja izmainu templeitu, tulkotie templeiti tiek prekompilēti, ja izmainu tulkojumus db, tad jāpārkompilē visi templeiti. Parkompilēšana protams notika uz pirmo requestu uz šo templeitu. Vai veici benchmarkus, kāds bija ieguvums? Quote Link to comment Share on other sites More sharing options...
codez Posted July 8, 2013 Report Share Posted July 8, 2013 Vai veici benchmarkus, kāds bija ieguvums? Benchmark-us neveicu, bet galvenā mana vēlme bija, lai tulkojumi glabātos db. Un tas nozīmē, ka tulkojumi ir jākešo, jo pieprasīt katru reizi tos no db būtu pārāk neefektīvi. Principā ir divi kaut cik derīgi varianti: 1)glabāt tulkojumu operatīvajā atmiņā, piemēram, APC. 2)tulkot visu templeitu. Tā kā 1. variants ietver visas tās pašas darbības, kuras 2. un vēl papildus, tad 2. izvēlējos kā efektīvāko. Quote Link to comment Share on other sites More sharing options...
F3llony Posted July 8, 2013 Report Share Posted July 8, 2013 1. Kā tu atseko, kādi tulkojumi ir izmantoti kados templeitos? 2. Cik miljonus gadu aizņem viss tas error-proof pārbaudes kods, erm, vai viss ir up to date? 3. Kāpēc tu pie katra requesta pieprasi atjaunošanas laiku tulkojumiem db? Kur un kā tu nodrošini šo atjaunošanas laiku un tā ieguvi? 4. Kas notiks, ja APC nebūs stat? Erm, mana implementācija: tulkojumi db, pie izmaiņām tiek ielādēti kešā - atkarībā no kastes: failu sistēma, memcache, memory tabula, apc user store. Templeits pie tulkojuma maiņām netiek aiztikts, jo, imho tas ir lieki. Ielādēti tiek tikai tie tulkojumi, kas ir konkrētajā aplikācijas skoupā vai tiek atsevišķi pieprasīti - eg. nav milzīgs masīvs ar 10k teksta biksītēm. Translācija notiek caur statisku metodi kura pieņem tulkojuma atslēgu, skoupu un kontekstu, saņem tulkojumu, ja eksistē, ja neeksistē paņem defaultu, pēc tam pārbauda, vai tekstā ir ievietoti kādi mainīgie, kuri būtu aizstājami, ja ir, tie tiek aizstāti un tulkotais teksts atgriezts. Tulkošanas metode tiek kompilēta no templeita tega templeita kešā. Closures un anonīmās funkcijas tulkojuma tekstā ir very welcome. Sintakse šādi {% translate "hello_user" "Hello, %user%, how is your day? You have %array.has.dot.notation% something." %} Puslīdz tā. Ja neko nepiemirsu. Quote Link to comment Share on other sites More sharing options...
codez Posted July 8, 2013 Report Share Posted July 8, 2013 1. Kā tu atseko, kādi tulkojumi ir izmantoti kados templeitos?Pie templeita kompilācijas, tiek veikti attiecīgo tulkojumu ieraksti db.2. Cik miljonus gadu aizņem viss tas error-proof pārbaudes kods, erm, vai viss ir up to date?Ir komanda, pārkompilēt visus templeitus.3. Kāpēc tu pie katra requesta pieprasi atjaunošanas laiku tulkojumiem db? Kur un kā tu nodrošini šo atjaunošanas laiku un tā ieguvi?Ir tulkojumu CMS, kurā var tulkot, pie tam ar lietotāju privilēģijām, gan tulkot konkrētu valodu. Kad tulkotājs iztulko, admins piespiež komandu - pārkompilēt templeitus. Bet tieši šī pati problēma pastāv kešojot katru tulkojumu atsevišķi. 4. Kas notiks, ja APC nebūs stat?A, kas notiks, ja admins izraus servera vadu? Un būs tas pats, kas tavā variantā, kurā arī templeita fails ir jānolasa no diska. Quote Link to comment Share on other sites More sharing options...
F3llony Posted July 9, 2013 Report Share Posted July 9, 2013 Vispār jau APC ar stat-off ir normāls produkcijas iestatījums. ;) E.g katru reizi, kad kāds juzers nomaina kādu simbolu tulkojumos, tad adminam manuāli jaatjauno tulkojumi? Thats kinda sad. Quote Link to comment Share on other sites More sharing options...
marrtins Posted July 9, 2013 Report Share Posted July 9, 2013 Ja jau piep*ies pie produkcijas, tad arī produkcijā tulkojumi nebūtu jāmaina :D Quote Link to comment Share on other sites More sharing options...
F3llony Posted July 9, 2013 Report Share Posted July 9, 2013 Ja jau piep*ies pie produkcijas, tad arī produkcijā tulkojumi nebūtu jāmaina :D Mh, tulkojumu maiņa ar web ui pamatā paredzēta lai end jūzers varētu kaut ko pamainīt pēc savām velmēm neraustot supportu. Tik pat labi jau var arī vispār nekam tulkojumus neturēt. Arī lapām kas ir tikai latviski lieku tulkojumu moduli, lai pilsoņi paši var tekstus uz saviem pamainīt. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted July 10, 2013 Report Share Posted July 10, 2013 Pieeja "end jūzers kaut ko var pamainīt" ir garām saknē. Kaut kāds sovjetu atavisms. Quote Link to comment Share on other sites More sharing options...
rpr Posted July 10, 2013 Report Share Posted July 10, 2013 Un kā tu to pamato klientam, ka viņš grib palabot? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.