Forskellige sprog

Tags:    php

<< < 12 > >>
Hejsa.

Jeg kunne godt tænke mig at man kan vælge hvilket sprog man ønsker at bruge som bruger.

Derved vil jeg gerne gøre så man kan tilføje flere sprog blot ved at lave en oversættelse af et eksisterende sprog som fx til Joomla.

Men hvordan gør jeg det?

Indtil videre har jeg tænkt på at gemme i min brugertabel det valgte sprog på den enkelte bruger, og som default er den sat til engelsk.

Men hvordan gør jeg så med min menu og alle de andre punkter i systemet.

Ved det er meget kryptisk forklaret men kan ikke komme på andre måder desværre :S



11 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 22 karma
Sorter efter stemmer Sorter efter dato
Det kan gøres med gettext() også kendt som po/mo filer, XML JSON eller CSV, eller noget andet. Men da .INI filer normalt kendes som konfigurations filer, vil det være lidt uhensigtsmæssigt at bruge disse.
Men hvis ini-filer også kan håndtere multiline text, så kan de vel egentlig også bruges.



normalt laver man en translation fil eller flere translation filer. Hvor hver enkelt system defineret ord / sætning er oversat. Og filen er opsat som en key => value, lidt som når man i PHP har et array:

translate_dk.ini
Fold kodeboks ind/udKode 

translate_uk.ini
Fold kodeboks ind/udKode 

I din template vil du så bruge de her oversættelser i stilen med:
Fold kodeboks ind/udHTML kode 



Noget i den stil. Er det man plejer, at gøre. Selve indholdet / content på siden, plejer man så, at gemme i to forskellige versioner i databasen.




Indlæg senest redigeret d. 30.08.2012 08:19 af Bruger #17081
Du kan evt. gøre brug af zend_translate ... Et udemærket modul til oversættelse.

EDIT: Nu med link: http://framework.zend.com/manual/en/zend.translate.html



Indlæg senest redigeret d. 30.08.2012 19:22 af Bruger #17081
Hvilken platform taler du om?



Super det er på den måde som du snakker om Dan.

Men du er nød til at uddybe det noget mere, for jeg forstår ikke hvordan jeg får det til at virke.

Sådan som jeg har forstået det, så laver jeg i bund og grund et array.
Fold kodeboks ind/udPHP kode 


Men så skal jeg vil inkludere min ini-fil eller hvad?
Forstår ikke koblingen mellem min ini og udskrivningen



Ini-filen er oversættelses filen ... Så du laver ikke et array, men en ini fil. Alt efter hvilket sprog den enkelte person har henter du den enkelt oversættelse ind.

Jeg vil så foreslå, at du bruger et template system evt. PHP Twig for, at gøre HTML (og oversættelses) processen lettere for dig selv.

Hvordan du loader en ini-fil må du kunne Google dig frem til, men hele processen burde være forholdsvis simpel.



Jeg har set det som ini filer, men kan vel også være noget andet



Enig med Michael, men hvis du dog selv ønsker at lave en løsning, så vil jeg da anbefale at du laver dit array statisk.



gettext som michael nævner er defacto standarden og den rigtige^tm måde at gøre det på. De fleste er nok stødt på det i form af _ aliaset. http://php.net/gettext

Dog er det nok lidt nemmere at bruge et assoc-array til hvert sprog, hvis det bare er et lille projekt.

INI-løsningen er jeg ærligtalt ikke stødt på før - og selvom den er meget smart, så er det jo lidt at bruge en skruetrækker som hammer. :)



Som sagt, syntes bare det er den løsning jeg har set, men kan jo sagtens tage fejl :)



<< < 12 > >>
t