Sprog filer

Tags:    php

Hej

Jeg er igang med et større projekt, hvor jeg meget gerne vil ha lavet en sprog fil af en art...

Så man via en select box kan skifte sprog til Tysk , Dansk , Engelsk.

Men jeg har desværre ikke den fjerneste idé om hvordan man laver det,

nogen der kan komme med nogle punkter eller give mig en lille idé til hvordan det laves...





9 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
GNU det lyder da lidt spændende... kunne være jeg skulle prøve kræfter af med det

Okay skal man så til at indtaste en hel ordbog, før det virker eller hvad


Nej nej... Så ville det jo kræve alt muligt grammatisk.. Selv kæmpestore Google klarer ikke den opgave til fulde.. :p

Nej, det man ville gøre var at skrive sætninger ind. Sætning, ikke ord. Så ville du hente den givne sætning på det sprog som nu skulle bruges..



Rettede lige en fejl. Det hedder ikke YUML, men YAML. :) Anyway, samme koncept.

Der er mange underlige måder man kan lave sprogfiler på. Nogle metoder bygger på at samle alle versioner i en og samme fil. Her er xml en god idé. Andre adskiller det, men stadig med xml. Nogle er simple tekstfiler og sidst men ikke mindst er der den allerede nævnte metode.

Som nævnt struktures "koden" i sætninger. Sætningerne tilknyttes et unik id - gerne meget beskrivende, således at man kan hente indholdet senere.

Da vil man kunne skrive flg:
Fold kodeboks ind/udKode 

Her er variablen $lang importeret fra en sprog fil.

Dette kan resultere i nogle meget lange sprog filer, og kan hurtigt blive uoverskueligt. Men disse filer kan jo også deles op efter behov.



Andre steder bruger man definerede konstanter importeret fra en sprogfil, men konceptet er det samme.

Dynamisk indhold, nyhedstekster etc. skal selvfølgelig skrives ind i databasen for hvert sprog du vil have det vist på. Fx have et felt for hver nyhed der hedder lang, hvor du så kan hente den rigtige post ud efter sprog.



Du kan f.eks. sætte sproget i en session f.eks.

Fold kodeboks ind/udKode 


Så kan du på dine andre include din sprogfil
Fold kodeboks ind/udKode 


Din sprog fil kunne så indeholde et array med det hele.
Fold kodeboks ind/udKode 


Så kan du hente den med $lang['welcome']

Nu har jeg bare ikke nogen anelse om hvor godt det performer, men har selv brugt det engang og det syntes at virke okay. Du skal lige være ops på at det array jeg har lavet, måske ikke er helt rigtig, fordi jeg har ikke lige tid til at teste.



Den nemmeste metode er som Martin nævner og virker helt fint og uden problemer.

Ellers kan man bruge noget XML eller YAML ting, for at gøre det lettere at redigere i sprogfilerne.



Indlæg senest redigeret d. 15.05.2008 21:50 af Bruger #10216
GNU det lyder da lidt spændende... kunne være jeg skulle prøve kræfter af med det

Okay skal man så til at indtaste en hel ordbog, før det virker eller hvad



Nej, du skal selvfølgelig sætte alle de ord ind der skal være fler-sprogede. f.eks. din menu kunne være som følende:

Fold kodeboks ind/udKode 


De 2 sprog er adskilt i hver sin fil.

Så der bliver en del som skal skrives ind i array'et, men når det så er ordnet, så kan folk jo også lave deres egen oversættelse hvis de ved strukturen ;)



Indlæg senest redigeret d. 15.05.2008 20:42 af Bruger #6559
Okay.. jamen jeg vil om jeg kan få det til at fungere




jep.. er ved at have styr på det, Tak for hjælpen alle,



t