Du er endnu ikke logget ind!
Har du glemt dit kodeord?

Er du ny her på Codefinder?

Opret en ny profil, ved at klikke på knappen her til højre.
Del på:
23. april, 2012 kl. 15:46 under PHP af Mikkel

Hej kære alle med-udviklere :)

Jeg sysler lidt med muligheden for at oversætte mit website til andre sprog end dansk og har fundet GetText rimelig passende, da det eftersigende skulle være nemt og lækkert at benytte når man har +10 undersider.

Er der nogle herinde der har erfaring med GetText og POedit (windåse) og som gerne vil hjælpe mig lidt i gang?

Jeg har hentet POedit og forsøger at oprette et nyt katalog, men programmet fortæller at det ikke fandt nogle filer. Jeg har googlet en del omkring POedit og GetText men syntes ikke rigtigt jeg bliver klogere :)

Hvad hulen skal man skrive som basissti?

Er der eventuelt nogle af jer som har et simpelt eksempel af hvordan en .mo fil skal se ud?

Håber I vil hjælpe mig lidt i gang.

#1
Skrev en kommentar for 1 år siden

Åh hat, prøv at køre lokalt sagde manden...

Nu fik jeg da genereret en .mo + .po fil, men hvordan hulen får jeg min PHP fil oversat?
Jeg har fundet Simon Jensen's "guide" -> http://www.simon-jensen.net/saadan-oversaetter-du-din-webapplikation.html og lavet stisystemet som han skriver, men den giver bare blank side med følgende kode;

<?php
gettext("Hej verden");
?>

I min .po har jeg (udover indstillingerne) følgende;

#: F:\Network\www\Mikkel\Lagersystem/test.php:2
msgid "Hej verden"
msgstr "Hello world"

test.php returnerer bare med blank side.

#2
Skrev en kommentar for 1 år siden (redigeret)

Der skulle selvf stå: echo gettext(); men den returnerer stadig ikke den oversatte version.

#3
Skrev en kommentar for 1 år siden

Jeg plejer at bruge array metoden som ham Simon beskriver på sin hjemmeside. Jeg syntes ikke rigtigt at hans argumenter holder tæt mht. hvis man laver en stavefejl.

Anyway jeg plejer at gøre det at jeg laver en fil f.eks. lang/da.php og i min fil med klasser osv. laver jeg en klasse kun til sprog.
Nogen i den her stil:

class Lang {
protected $lang;
public function __construct($lang){
$this->lang = $lang;
}
public function get($var){
include('lang/'.$this->lang.'.php');
return $da[$var];
}
}

Og i de klasser jeg så bruger det, gør jeg sådan her:

class main {
// Bla bla bla
public $lang;
public function helloWorld(){
$this->lang = new Lang('da')
echo $this->lang->get('HelloWorld');
}
}

Det er jo egentlig meget simpelt, men ja jeg ved godt det ikke rigtigt svarer dig på dit oprindelige spørgsmål.

#4
Skrev en kommentar for 1 år siden (redigeret)

#3 Jaeh jeg havde også overvejet at benytte arrays, men kom i tanke om en artikel jeg har læst om netop den måde, hvor forfatteren virkelig pointerede hvorfor man ikke bør gøre det på denne måde - især hvis websitet har mange undersider etc.

Jeg fandt en løsning ved at bruge php-gettext, som virker ganske forbløffende på samme måde som selve modulet gettext. Og med denne løsning virker den kode som jeg skrev i tråden.
Så d'et bar dajligt
:-)

#5
Skrev en kommentar for 1 år siden

Fair nok :)
Det var da godt du fandt en løsning :)

#6
Skrev en kommentar for 1 år siden

Tjaeh .. men ellers tak for dit input :-)

Du skal være logget ind og oprettet som bruger, for at deltage i tråden.