Jump to content
php.lv forumi

lv to latin


Rich Bitch

Recommended Posts

vai ir kaada funkcija, kas tekstu lv paartaisa par tekstu ar latiinu burtiem?

Piem.

LV:

Šodien ir skaista diena.

LATIN:

Sodien ir skaista diena.

Esmu redzeejis, ka daudzi taa veido url (piem. worpress), kur virsrakstu kaadam ierakstam paartaisa par url un man to pashu savajadzeejaas.

Link to comment
Share on other sites

Ja ir pieejams iconv modulis, tad tas ir pavisam vienkārši

setlocale(LC_ALL, 'en_US.UTF8');

function clearUTF($s)
{
$r = '';
$s1 = iconv('UTF-8', 'ASCII//TRANSLIT', $s);
for ($i = 0; $i < strlen($s1); $i++)
{
	$ch1 = $s1[$i];
	$ch2 = mb_substr($s, $i, 1);

	$r .= $ch1=='?'?$ch2:$ch1;
}
return $r;
}

echo clearUTF('Šíleně žluťoučký Vašek úpěl olol! This will remain untranslated: ķūlīš :)) hahaha ');

 

setLocale ir obligāti jāizsauc.

Link to comment
Share on other sites

uzraksti savu f-ju ;)

 

tev tik vajadzees kodu tabulu un

 

$kodejums[0]='@[ā]@mu'; $dekodejums[0]='a';

$kodejums[1]='@[Ā]@mu'; $dekodejums[1]='A';

$kodejums[2]='@[č]@mu'; $dekodejums[2]='c';

......

 

$strings=preg_replace($kodejums,$dekodejums,$strings); // nomaina uz latinju burtiem

 

un tas arii viss...

Link to comment
Share on other sites

es reku šitādu izmantoju

   function generate_title($title){
  	 $title=strtolower($title);
  	 $chars=array("ā"=>"a","č"=>"c","ē"=>"e","ģ"=>"g","ī"=>"i","ķ"=>"k","ļ"=>"l","ņ"=>"n","š"=>"s","ū"=>"u","ž"=>"z","-"=>"_"," "=>"_",);
  	 foreach($chars as $key=>$value){
  	   $title=str_replace($key,$value,$title);
  	 }
  	 $title=ereg_replace("[^a-z0-9_]","",$title);
  	 return $title;
  }

Link to comment
Share on other sites

Grey_Wolf, priekš kam preg_replace ? Tas tak būs overkills, jo pietiek taču ar str_replace().

Btw, sakompilētie preg patterni paliek kešā, tākā uz apache+mod_php vēl vajadzētu patestēt, lai būtu skaidra bilde.

 

Kādam nav *elegants* variants, lai arī rus čarus pārvērstu par latīņu? Ja nav, derēs arī ar replac`iem :)

Link to comment
Share on other sites

×
×
  • Create New...