Altså, at hente det fra databasen er jo IKKE en ordentlig mulighed .. det er for langsomt .. men hvis man bruger \"sprogfiler\" hvor det ligger statisk .. er det vel godt nok ?
Ja. Det er en mulighed. Det virker OK hvis teksten på dit site ikke er noget der ændrer sig for ofte. Jeg har selv brugt det. Ændrer teksten sig ofte bør du gøre det på en anden måde.
Så kan du eventuelt lave det lidt smartere ved at indlæse teksten fra en database og måske lave et eller andet lille smart program/side, der gør det hurtigt og nemt at ændre for kunderne - eller dig selv.
men jeg har været med til at lave et site hvor man kan vælge forskellige sprog.
man vælger sprog ved et link, languag=dk eksempelvis.
Så includer den textfilerne fra mappen \"dk\" include(\"languages/\".$language.\"/filename.php\");
i sprogfilen ligger alle tekster som konstanter: DEFINE(\"WELCOME_TEXT\",\"Velkommen til denne side\"); navnet på konstanten skal selvfølgelig hedde det samme i alle language-filer.
det var lige en hurtig forklaring, håber du fatter det, hehe
måden phpMyAdmin gør det på er meget statisk og slavisk. En includefil hvor titler/texter så pastes ind hvor de passer ind. En overall ok løsning for den mindre løsning og med det infoindhold i har på 3rdlevel.dk ville jeg ikke begynde med andet.
Jeg bruger selv løsningen på mindre sprogversionerede sites - dog opdeler jeg normalt sprogfilerne så de passer til underområder af en site fremfor at inkludere en \"røvfuld\" informationer man alligevel ikke paster ind på en side.
tdaugaard -> man kan gøre det på mange metoder, det var mere systemet med at includere sprogfilerne jeg ville illustrere. jeg tænker at grunden til konstanter er valgt, er at de i teorien skulle vare hurtigere end alm variabler... om konstanter er det i praksis skal jeg ikke kunne sige :)
the exchange project (en open source shop) laves også på den måde htx98i17 beskriver. Det er muligt at det tager længere tid at programmere, når du skal sidde og lave konstanter hele tiden, ´men bagefter er det meget nemt at oversætte hele applikationen...iøvrigt minder det vel lidt om den måde f.eks Java laver internationalization
Du kan bruge gettext etc som barlach henviser til eller du kan lave noget selv - det kunne være noget a la dete:
Du kan have nogle language filer som ligger sådan:
lang/en/lang.php lang/da/lang.php
Den engelske kunne se sådan ud:
<? $arr_lang[\"about us\"] = \"about us\"; $arr_lang[\"about us text\"] = <<<EOT <h2>about us</h2> <p>Here is a little text about us...</p> EOT; ?>
Den danske kunne se sådan ud:
<? $arr_lang[\"about us\"] = \"om os\"; $arr_lang[\"about us text\"] = <<<EOT <h2>om os</h2> <p>Her er noget text om os...</p> EOT; ?>
Nu Include()\'er du blot den du skal bruge - hvis du har mange variable kan det være en god idé altid at Require()\' default-sproget - så ser det ikke helt så dumt ud hvis du mangler nogle variable i en af de andre filer...
Anyway, så kan du have en funktion som ser
function _($str) { global $arr_lang; return $arr_lang[$str]; }
Så kalder du bare fra en php-side sådan:
<h1><?= _(\"about us\") ?></h1> <?= _(\"about us text\") ?>
Jeg har lavet det nu .. på samme måde som phpMyAdmin ... hmm .. men hvem skal have point ? (ljweb, shut up! *griner*)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.