Toms Posted April 11, 2006 Report Share Posted April 11, 2006 (edited) Valodas nomainīšana lapā. Papētīju, kā valodas pārslēdz iekš phpBB foruma. Man nepatika :) Tiešām vienīgais variants ir darīt šādi? ... $langLAT['vards'] = 'vārds'; $langRUS['vards'] = 'imja'; // Te pēc izvēlētās valodas atiecīgo ieliek iekš $lang masīva. ... <span style="color: red;"><?=$lang['vards']?></span> Nav kāds mazāk sāpīgs veids kā attiecīgo valodu nomainīt? Bija doma par str_replace(), kurš nomaina visus vārdus uz vajadzīgajiem. Piemērs: $miksite = array('Ā','ā','Č','č','Ē','ē','Ģ','ģ','Ī','ī','Ķ','ķ','Ļ','ļ','Ņ','ņ','Š','š','Ū','ū','Ž','ž'); $normali = array('A','a','C','c','E','e','G','g','I','i','K','k','L','l','N','n','S','s','U','u','Z','z'); $nosaukums = str_replace($miksite,$normali,$nosaukums); Burtu vietā būtu attiecīgie citas valodas vārdi. Bet tad jāiebāž viss izvadāmais HTML iekš mainīgā, kurā nomaina to visu. Arī neforšs variants... Kā jūs darāt? EDIT: Man nepatīk, ka search intervāls šim forumam ir 20 sekundes. Edited April 11, 2006 by Toms Link to comment Share on other sites More sharing options...
john.brown Posted April 11, 2006 Report Share Posted April 11, 2006 Ar str_replace() gan diez vai. Ja nu vienīgi vesalas frāzes mainīt, jo frāzes uzbūve dažādās valodās var būt dažāda. Bet tas nebūs ērtāk... Es lieku failiņā ierakstus tipa: Mans teikums|Мое предложение Pēc tam sadalu masīvā, kur pirmā daļa ir atslēga, otrā - frāze vajadzīgajā valodā... Nu apm. tāpat , kā tavā pirmajā piemērā Link to comment Share on other sites More sharing options...
Kristabs Posted April 12, 2006 Report Share Posted April 12, 2006 (edited) something like http://savannah.nongnu.org/projects/php-gettext Edited April 12, 2006 by Kristabs Link to comment Share on other sites More sharing options...
ebw Posted May 22, 2006 Report Share Posted May 22, 2006 var katru valodu ielikt savaa include faila. tad teiksim ar sesiju nodod valodu un inkluudo vajadziigo valodu. lat.inc.php vai rus.inc.php attieciigi visur kur naaks teksts tur jaasaliek mainiigie un inkluud failaa tam mainiigajam jaapieshkjir attieciigo valodas vaardu. Link to comment Share on other sites More sharing options...
litt Posted May 22, 2006 Report Share Posted May 22, 2006 Man ir uztaisīts tā, ka ir "galvenais" valodas fails un tad ir pārējie (citu valodu) valodu faili. Pašā sākumā tiek samerdžoti galvenais + izvēlētās valodas fails. Tas nepieciešam tāpēc, lai nebūtu undefined, ja citas valodas failā attiecīgā frāze vēl nav pievienota un iztulkota. Link to comment Share on other sites More sharing options...
Delfins Posted May 22, 2006 Report Share Posted May 22, 2006 nu gettext ir tas pats... leiblošana... Imho nekas labāks par leiblošanu nevar būt... Link to comment Share on other sites More sharing options...
Toms Posted May 23, 2006 Author Report Share Posted May 23, 2006 Te daži pārprata. Man neinteresē kā panākt divu valodu ieviešanu. Es negribu visur iekš HTML, kur kāds tulkojams vārds, rakstīt <?=$val['kaut_kads_teksts']?> utt Izskatās, ka gettext arī to padarīšanu nepaātrinās... (domāju koda rakstīšanas ātrumu) Link to comment Share on other sites More sharing options...
john.brown Posted May 23, 2006 Report Share Posted May 23, 2006 A kā tad tu gribēji? Lai pats saprot, kā tulkot? Smarty kaut kā ar gettext varēja sajūgt kopā lai veikli tulko. Pameklē... Vai taisi html`us visās valodās, un lieto pēc vajadzības :) Link to comment Share on other sites More sharing options...
litt Posted May 24, 2006 Report Share Posted May 24, 2006 Es negribu visur iekš HTML, kur kāds tulkojams vārds, rakstīt <?=$val['kaut_kads_teksts']?> Kas Tev liedz uztaisīt vairākus valodu failus, piemēram, lang_lv.php un lang_en.php abos failos ir masīvi $LANG. LV failā tas ir apmēram $LANG = array( 'title' => 'nosaukums' ,'title2' => 'nosaukums2' ); EN failā tas ir apmēram $LANG = array( 'title' => 'title in english' ,'title2' => 'title in english 2' ); Visur savā HTMLā saliec <?php echo $LANG['title']; ?> un pie lapas ielādes inclūdo vajadzīgo failu.. Kodā nekas nav jāmaina, valodu failus var taisīt cik grib Link to comment Share on other sites More sharing options...
J0ke Posted May 24, 2006 Report Share Posted May 24, 2006 parasti jau izmanto constantes ne variables :> vairākus lang.inc.php eng.inc.php define("TITLE", "Hello world."); lat.inc.php define("TITLE", "Čau pasaule."); un tad attiecīgi <title><?=TITLE?></title> Link to comment Share on other sites More sharing options...
andrisp Posted May 24, 2006 Report Share Posted May 24, 2006 kāds labums no konstantēm ? Link to comment Share on other sites More sharing options...
J0ke Posted May 24, 2006 Report Share Posted May 24, 2006 iz manuāļa * Constants may not be redefined or undefined once they have been set; and * Constants may only evaluate to scalar values. so primāri drošībai Link to comment Share on other sites More sharing options...
v3rb0 Posted May 24, 2006 Report Share Posted May 24, 2006 bet cik līkam ir jābūt scriptam, lai netīšam redefinētu labeļus ar kaut ko kas nav labelis un vēl labāk, lai enduseris varētu kaut ko labeļos savu iedabūt iekšā? Link to comment Share on other sites More sharing options...
litt Posted May 24, 2006 Report Share Posted May 24, 2006 Masīva spēks slēpjās tajā, ka sākumā es samerdžoju "galveno" valodas failu ar izvēlēto valodas failu. Tādējādi NEKAD nebūs situācija, ka būs kaut kāds undefined, ja kļūdas pēc kādā no valodu failiem neesmu nodefinējis kādu valodas rindiņu (tā vietā būs rindiņa no defaultā valodas faila) Link to comment Share on other sites More sharing options...
J0ke Posted May 24, 2006 Report Share Posted May 24, 2006 ēm... un kā tas atsaucas uz performanci? ;> Link to comment Share on other sites More sharing options...
Recommended Posts