Avatar billede woowii Nybegynder
25. august 2007 - 18:18 Der er 10 kommentarer og
1 løsning

Flere sprog - hvad er smartest?

Hej,

Jeg står og skal lave en større side og skal dertil have mulighed for flere sprog. Jeg har tænkt lidt over det og jeg har flere idéer til hvordan det kan laves, så det er ikke hvordan det udføres jeg skal have hjælp til (men input modtages naturligvis gerne ;)) - det jeg vil høre jer (som har erfaringer med det) om er hvilken der er smartest.

Spørgsmålet er egentlig meget simpelt - er det bedst at gemme det i database eller er det bedst at gemme det i filer? Der er jo fordele ved begge - umiddelbart er det lettere at rode med hvis det ligger i en database, men hvis man skal tilføje flere sprog og får andre til at oversætte er det jo ret smart hvis man "bare" har en fil der skal ændres i (også sikkerhedsmæssigt). Hastigheden betyder selvfølgelig også noget alt efter hvor stor og kendt siden bliver, så hvis det ene er langt hurtigere end det andet er det selvfølgelig også en ting der er værd at tage i betragtning.

Håber jeg fik gjort det klart nok - ellers må jeg prøve at uddybe. :)
Avatar billede leif Seniormester
25. august 2007 - 18:24 #1
Hvis man prøver at kigge på fx. osCommerce så bruger de en blandig af Database og Filer. Filerne er til de mere faste tekster og Databasen bruger de til Kategorier, Produkter og lign., jeg synes det er en OK løsning.

Da jeg lavede en side med flere sprog brugte jeg database, da jeg synes det var det nemmeste.
Avatar billede neoman Novice
25. august 2007 - 18:35 #2
Jeg arbejder selv i ASP.NET for tiden, og der har man nogle såkaldte "ressourcefiler" hvor alle faste tekster hentes i en version afh. af brugerens "culture".

Har selv haft andre løsninger, både med tekster i en XML fil, eller gemt i databasen. I begge tilfælde blev teksterne cachet på serveren efter første hentning, således at alle de andre brugere, som anvendte samme sprog, ikke belastede datakilden yderligere. Hvis du anvender caching så er det rimeligt underordnet hvor data hentes henne. Portering til et nyt sprog er meget nemmere med en XML fil, for det kan man tit få frivillige til, uden tekniske problemer:-)
Avatar billede liit42 Nybegynder
25. august 2007 - 19:30 #3
Jeg ved at mange bruger 'gettext' - jeg har ikke selv arbejdet med det, men det kan være et forsøg værd at kigge på

http://www.gnu.org/software/gettext/

http://www.php.net/manual/en/ref.gettext.php
Avatar billede whatever Nybegynder
25. august 2007 - 19:32 #4
Apropos gettext. Så husk at det skal være slået til i php opsætningen på serveren, ellers virker det ikke.
Avatar billede woowii Nybegynder
25. august 2007 - 22:27 #5
Tak for svarene - det ga' mig lidt at tænke over. Aner ikke hvem der skal have point her, men hvis I gerne vil have nogle så smid et svar.
Avatar billede liit42 Nybegynder
25. august 2007 - 23:06 #6
pas
Avatar billede majbom Novice
27. august 2007 - 09:33 #7
ved ikke om du har en ide om hvordan du skal gøre det endnu, men jeg gør følgende:

laver en fil pr sprog, med f.eks.:
//lang-dk.php
define("INDEX", "Forside");
define("PRODUCTS", "Produkter");
define("ABOUT", "Om os");
define("CONTACT", "Kontakt");

//lang-en.php
define("INDEX", "Index");
define("PRODUCTS", "Products");
define("ABOUT", "About");
define("CONTACT", "Contact");

//index.php
session_start();
if(!isset($_SESSION['lang'])){
  $_SESSION['lang'] = "dk";
}
require("lang-".$_SESSION['lang'].".php");

og så links der sætter $_SESSION['lang'] til det ønskede sprog...
Avatar billede majbom Novice
27. august 2007 - 09:35 #8
hov, glemte lidt

du bruger det således:
echo "<a href=\"products.php\">".PRODUCTS."</a>";

der hvor der står .PRODUCTS. vil der så komme til at stå hvad der står i define'n i den valgte sprogfil
Avatar billede woowii Nybegynder
27. august 2007 - 18:36 #9
Jeg besluttede mig for at bruge en kombination af database og tekstfiler - dog havde jeg umiddelbart bare tænkt mig at bruge "almindelige" variabler ($products = "produkter") fremfor define, mest fordi jeg aldrig rigtig har brugt define. Hvad er fordelen ved det fremfor at bruge variabler? :)
Avatar billede dkfire Nybegynder
28. august 2007 - 16:07 #10
Fordelen ved define i dette tilfælde er at du ikke kan overskrive dine defines når de først er lavet, hvor i mod du godt kan overskrive værdier i variabler. Derud over er det nemt at overskue hvad der er tekst og hvad der er værdier som du kan rode med.
Avatar billede woowii Nybegynder
08. september 2007 - 20:14 #11
Endte med at bruge database - lukker eftersom ingen har lagt et svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester