Känns ju onödigt krångligt tycker jag, kan du inte istället ha en generell språkfil där du anger språken på språkets namn?
Eller missuppfattade jag dig?
2 svar · 164 visningar · startad av Qonos
godmorgon.
Jag håller på att göra en flerspråkig sida, men har ett problem.
jag har en katalog med de olika "langfilerna" typ
se.php
en.php
dk.php
i dessa filer har jag en variabel som heter t.ex. $language, i denna ligger (nu kommer det *S*) språket på språkets språk :)
Hur gör man för att kolla efter den variabeln i alla dessa filer för att sen kunna använda dom i t.ex. en select?
<select>
<option value="se">svenska
<option value="en">english
<option value="dk">dansk
</select>
tacksam för all hjälp jag kan få...
-- Magnus
Känns ju onödigt krångligt tycker jag, kan du inte istället ha en generell språkfil där du anger språken på språkets namn?
Eller missuppfattade jag dig?
Hmm nja det känns itne så krångligt faktiskt. Att ha en språkfil håller inte i längden eftersom det är en _massa_ saker som kommer att ligga där.. och nu har vi gjort att du laddar upp en lang fil och så sker allt "automatiskt". Fick lite kod av en kompis som fixa det jag ville
function GetLanguages()
{
$ldir = $_SERVER["DOCUMENT_ROOT"] . substr($_SERVER["PHP_SELF"], 0, strrpos($_SERVER["PHP_SELF"], "/"));
$lFiles = array(); // en array som ska innehålla alla filenames för filer in language mappen
//lista dir
if ($dir_handle = opendir(LANGUAGE_DIR))
{
while (false !== ($file = readdir($dir_handle)))
{
if ($file != "." && $file != "..")
{
array_push($lFiles, LANGUAGE_DIR ."$file");
}
}
closedir($dir_handle);
}
//klart.. öppna o parsa filer
reset($lFiles);
$langArray = array();
foreach($lFiles as $lf)
{
$fp = fopen($lf, "r");
$content = fread($fp, filesize($lf));
fclose($fp);
$lPos = strpos($content, "\$language");
if( $lPos !== false)
{// parsa o fixa fram språknamnet
$lString = substr($content, $lPos, strpos($content, ";", $lPos) - $lPos); // Nu har vi $language = "blabla"; strängen
$languageName = substr($lString, strpos($lString, "=") + 1); // ta bort allt innan = tecknet
$languageName = trim(str_replace(";", "", $languageName)); // ta bort ; o trimma.
$languageName = trim(str_replace("\"", "", $languageName)); // ta bort " o trimma. Nu har vi språknamnet.
// denna ska ju räcka---
$langArray[substr( $lf, strlen($lf) -6, 2 )] = $languageName;
}
}
return $langArray;
}