mikaelandre Skrevet 20. september 2005 Del Skrevet 20. september 2005 Hei! Jeg skal lage et slags adminsystem i php. Det skal være et visst antall brukere på forskjellige nivå, og de skal kunne registrere/endre grupper og medlemmer etter hva de har tilgang til. Det skal også skrives ut rapporter og oversikter over det som er registrert. Alt det der går greit å lage, problemet er at de vil ha det på flere språk. I utgangspunktet bare norsk og engelsk, men med mulighet til å utvide etter hvert. Hvordan gjør jeg dette? Kan jo ikke lage en if-setning hver gang jeg skal skrive noe til skjerm med de forskjellige alternativene.... Nyheter/artikler osv. er greit, det kan lagres i database, men hva med slike tilfeller som "Det er en feil med registreringen din, du må huske å ha med adresse!". Hvordan kan jeg ta høyde for alle slike tilfeller som vil komme? Og også alle småting som "Tilbake" og "Prøv igjen" vil være veldig tungvindt å lagre i en database... Noen som har noen tips? Og en ting til jeg kom på. Er det noen som vet hvor bra php er på objektorientering? Hvis jeg oppretter et objekt på ei side, vil det huskes innad i en session? Eller må jeg sende det videre i $_SESSION variabelen... Håper noen kan hjelpe meg med dette! Lenke til kommentar
Zic0 Skrevet 20. september 2005 Del Skrevet 20. september 2005 (endret) Du kan feks sette dem i et array... også bare sjekke hvilket språk det er. Endret 20. september 2005 av Zic0 Lenke til kommentar
simenss Skrevet 20. september 2005 Del Skrevet 20. september 2005 En annen, men mulig dårlig løsning, er å lage to tekstfiler: en.php og no.php. All tekst kan puttes inn i hver sin variabel. F.eks: no.php $text_0001 = 'Neste side'; en.php $text_0001 = 'Next page'; Så kan du bruke: $lang = 'en'; include($lang.'.php'); print($text_0001); Lenke til kommentar
Gjest Slettet-df17e Skrevet 20. september 2005 Del Skrevet 20. september 2005 Syntes måten til simenss hørtes flotters ut egentlig... Lenke til kommentar
Magnus Holm Skrevet 20. september 2005 Del Skrevet 20. september 2005 Mye bedere å lage det i et array sånn at det ikke kræsjer med andre variabler. English.php $lang['Next'] = "Next page"; $lang['Prev'] = "Previous page"; Også har du en funksjon som dette: function getlang($item) { echo $lang['$item']; } Lenke til kommentar
simenss Skrevet 20. september 2005 Del Skrevet 20. september 2005 Mye bedere å lage det i et array sånn at det ikke kræsjer med andre variabler. Hvis man nummererer hver variabel ($text_0001, $text_0002, $text_0003 osv) skal det mye til at du klarer å kræsje variablene. Lenke til kommentar
Equerm Skrevet 20. september 2005 Del Skrevet 20. september 2005 (endret) synst simeness sin metode hørtest best og enklest ut Endret 20. september 2005 av Equerm Lenke til kommentar
Magnus Holm Skrevet 20. september 2005 Del Skrevet 20. september 2005 Og hvis du har rundt 200 forskjellige variabler, hvordan skal man finne fram i dem? Tenk at du har en skrivefeil midt inni... Da må man lete lenge. Mye mer oversiktlig med array Lenke til kommentar
LoS Skrevet 20. september 2005 Del Skrevet 20. september 2005 (endret) Med mindre du har en editor som er mer jalla enn notisblokk så finnes det alltids søkefunksjoner der, så det er vel ikke noe problem, blir fort rotete med arrays og. Endret 20. september 2005 av LoS Lenke til kommentar
simenss Skrevet 20. september 2005 Del Skrevet 20. september 2005 Og hvis du har rundt 200 forskjellige variabler, hvordan skal man finne fram i dem? Tenk at du har en skrivefeil midt inni... Da må man lete lenge. Mye mer oversiktlig med array En måte du kan løse det på er f.eks. å sette inn // navn-på-phpfil.php Da kan du enten søke etter filnavnet på filen hvor teksten du leter etter er, eller bla deg frem F.eks: // registrering.php $text_0001 = 'Send'; $text_0002 = 'Nullstill skjema'; // kontakt.php $text_0003 = 'Kontakt meg'; $text_0004 = 'Send e-mail'; Lenke til kommentar
potetskrell Skrevet 20. september 2005 Del Skrevet 20. september 2005 Ikke det at jeg har peiling, men cms'et mitt er satt opp slikt. Noe som gjør det veldig enkelt å finne fram og lage nye språkfiler. define(_PROMPT_NEWPASSWORD, '(valgfri) Nytt passord'); define(_PROMPT_NEXT, 'Neste'); define(_PROMPT_NOTICE_BEGIN_DATE, 'Start dato'); define(_PROMPT_NOTICE_END_DATE, 'Start dato'); Lenke til kommentar
ThaMezzy Skrevet 20. september 2005 Del Skrevet 20. september 2005 Ikke det at jeg har peiling, men cms'et mitt er satt opp slikt. Noe som gjør det veldig enkelt å finne fram og lage nye språkfiler. define(_PROMPT_NEWPASSWORD, '(valgfri) Nytt passord'); define(_PROMPT_NEXT, 'Neste'); define(_PROMPT_NOTICE_BEGIN_DATE, 'Start dato'); define(_PROMPT_NOTICE_END_DATE, 'Start dato'); Dette er helt klart den beste måten å gjøre det på. Er bare å inkludere den filen som er for det språket. Bruker selv det siste eksempelet i mitt blogg script. Lenke til kommentar
mikaelandre Skrevet 20. september 2005 Forfatter Del Skrevet 20. september 2005 Ikke det at jeg har peiling, men cms'et mitt er satt opp slikt. Noe som gjør det veldig enkelt å finne fram og lage nye språkfiler. define(_PROMPT_NEWPASSWORD, '(valgfri) Nytt passord'); define(_PROMPT_NEXT, 'Neste'); define(_PROMPT_NOTICE_BEGIN_DATE, 'Start dato'); define(_PROMPT_NOTICE_END_DATE, 'Start dato'); hva er forskjellen på det der og på å ha variabler/array som forslått over? Blir det ikke bare at du setter inn feks _PROMÅT_NEWPASSWORD i php fila, og inkluderer den fila som har riktig språk? eller? Lenke til kommentar
ThaMezzy Skrevet 20. september 2005 Del Skrevet 20. september 2005 Jeg vil tro, uten at jeg skal si så mye, at det er mye mer handy å gjøre det slik, og pluss at det er vel mye mer sikrere siden du ikke bruker en variabel, men en definert streng. Dere php-guru folk her på forumet kan vel fortelle mer. Lenke til kommentar
Nervetattoo Skrevet 21. september 2005 Del Skrevet 21. september 2005 Hei! Jeg skal lage et slags adminsystem i php. Det skal være et visst antall brukere på forskjellige nivå, og de skal kunne registrere/endre grupper og medlemmer etter hva de har tilgang til. Det skal også skrives ut rapporter og oversikter over det som er registrert. Alt det der går greit å lage, problemet er at de vil ha det på flere språk. I utgangspunktet bare norsk og engelsk, men med mulighet til å utvide etter hvert. Hvordan gjør jeg dette? Kan jo ikke lage en if-setning hver gang jeg skal skrive noe til skjerm med de forskjellige alternativene.... Nyheter/artikler osv. er greit, det kan lagres i database, men hva med slike tilfeller som "Det er en feil med registreringen din, du må huske å ha med adresse!". Hvordan kan jeg ta høyde for alle slike tilfeller som vil komme? Og også alle småting som "Tilbake" og "Prøv igjen" vil være veldig tungvindt å lagre i en database... Noen som har noen tips? Den vanligste måten er nevnt, nemlig å lage en språfil pr språk som inneholder defines, variabler eller et array med oversettinger. Det fungerer iofs fint, og om du skal bruke det så anbefaler jeg å bruke array, av den grunn at du kan ha en noenlunde logisk oppbygging: $lang['errors']['notLoggedIn'] Det som ikke er nevt er gettext. Det er nok den mest korrekte løsningen, og den beste. Det kan virke som det du skal skrive er litt over nybegynner-stadiet. Jeg har ikke hatt muligheten til å laget i18n med gettext selv enda, men du finner link til en tutorial fra ONLamp blant kommentarene som ser helt kurant ut. Og en ting til jeg kom på. Er det noen som vet hvor bra php er på objektorientering? Hvis jeg oppretter et objekt på ei side, vil det huskes innad i en session? Eller må jeg sende det videre i $_SESSION variabelen... Håper noen kan hjelpe meg med dette! PHP husker ingen verdens ting, når en side er ferdiglastet så er php-prosessen død og begravet. Det vil si at du må eksplisitt lagre objekter til sesjonsvariabler før skriptet er ferdig. $_SESSION['object'] = serialize($object); $object = unserialize($_SESSION['object']); OOP-støtten i PHP 4 er helt ok, men ikke noe å hoppe i taket over. Den støtter det mest nødvendige. I PHP 5 er den forbedret en del. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå