Avatar billede learner Praktikant
15. oktober 2005 - 14:44 Der er 5 kommentarer og
1 løsning

Har flyttet og gettext virker ikke mere. Hjælp

Hej, jeg er flyttet fra surftown til danhost og danhost har installeret gettext for mig :o) Men det virker ikke ved danhost.

Jeg har læst lidt her:
http://dk2.php.net/manual/da/function.gettext.php
Om at man evt skal genstarte apache. Kan det være fejlen? Hvis ja, hvordan gentarter jeg så apache?

Jeg har prøvet at ændre dir-navn hvor mo filen ligger fra \translations\pl til \translations\pl_PL og det hjalp heller ik.

mine mo filer er gemt i utf-8 format og det hele virkede som sagt før jeg flyttede til danhost.

Lidt af mit kode:
setlocale(LC_ALL, "pl_PL.UTF-8");
bindtextdomain ("messages", $_SERVER["DOCUMENT_ROOT"]."/translations");
textdomain ("messages");
bind_textdomain_codeset("messages", "UTF-8");

Link til min phpinfo() ved danhost:
http://reiseselskaper.com/test.php
Avatar billede learner Praktikant
15. oktober 2005 - 14:45 #1
det virker ikk = Den oversætter ikke. Hjemmesiden virker fint nok, men der bliver ikke oversat. Bare for en ordens skyld :o)

På forhånd tak
Avatar billede learner Praktikant
15. oktober 2005 - 15:45 #2
Jeg har muligvis fundet ud af det nu.
Jeg har indsat putenv ("LANG=pl");
men nu virker utf-8 ikke så de polske specialtegn er forkerte :o)

Nogen der har et forslag?
Avatar billede learner Praktikant
15. oktober 2005 - 23:09 #3
Nå, nu er jeg så gået over til at benytte putenv istedet for setlocale og det virker næsten.

Nu har jeg vist kun et problem tilbage. Sommetider henter den det forkerte sprog sådan helt uden videre. Hvordan dælan kan det være?
Avatar billede learner Praktikant
16. oktober 2005 - 01:06 #4
Jeg løste problemet (tror jeg nok) :o)
Jeg har lavet denne funktion som jeg kører hver gang jeg skal bruge et nyt sprog til gettext.

function init_gettext_to($iso){
    bindtextdomain ("rejseagenten", $_SERVER["DOCUMENT_ROOT"]."/translations");
    textdomain ("rejseagenten");
    bind_textdomain_codeset("rejseagenten", "UTF-8");
    putenv ("LANG=".substr($iso, 0, 2));
    putenv ("LANGUAGE=".substr($iso, 0, 2));
    setlocale(LC_ALL,$iso.".UTF-8");
}

sprogfilerne (.mo) ligger således i ./translations/da/LC_MESSAGES/
De er alle gemt i utf-8 unicode ligesom databasen også kører utf-8

Og jeg gør således:
init_gettext_to("da_DK");
echo _("Hi");
// udskriver 'Hej'
init_gettext_to("no_NO");
echo _("Hi");
// udskriver 'Hei'

Og nu virker det vist altsammen.

Men har du en kommentar til min måde at gøre det på, så skriv endelig :o)
Avatar billede learner Praktikant
16. oktober 2005 - 02:00 #5
ps hvis man kører safe_mode on skal man tilføje dette til sin php.ini :

default_charset = "UTF-8"
safe_mode_allowed_env_vars = PHP_,LANG,LANGUAGE

Håber det kan hjælpe nogen :o)
Avatar billede learner Praktikant
10. december 2005 - 12:32 #6
lukker
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