Jump to content
php.lv forumi

Lapa vairākās valodās


Toms

Recommended Posts

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 by Toms
Link to comment
Share on other sites

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

  • 1 month later...

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

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

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

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

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

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

×
×
  • Create New...