Empfehlungen: Erweiterte Suche

Anwendung mehrsprachig

Fragen und Diskussionen zur Installation und Konfiguration von Cake.

Anwendung mehrsprachig

Beitragvon Luckie » Mo 20. Jul 2009, 13:21

Ich habe es wie im Buch beschrieben gemacht:
- Alle zu übersetzeden Texte in __() geschrieben
- Unter app/local die Ordner deu/LC_MESSAGES angelegt
- Mit cake i18n die default.dot Datei erzeugt
- default.dot nach deu/LC_MESSAGES als default.do kopiert
- In der bootstrap.php Datei die define-Zeile in define('DEFAULT_LANGUAGE', 'deu'); geändert
- In der Datei core.php
Code: Alles auswählen
Configure::write('Config.language', 'deu');
ergänzt

Aber trotzdem bleibt alles englisch, wenn ich die Seite neu lade. Auch das neu backen hat nicht geholfen.

Habe ich da noch was übersehen oder irgendwo einen Fehler gemacht?
Luckie
 
Beiträge: 115
Registriert: Fr 22. Mai 2009, 12:16
OS: Windows XP

Re: Anwendung mehrsprachig

Beitragvon Luckie » Di 21. Jul 2009, 09:49

Auch wen nich in den Controllern, auch im App-Controller, im beforeFilter Ereignis folgenden Code schreibe:
Code: Alles auswählen
uses('L10n');
       
$this->L10n = new L10n();
$this->L10n->get('deu');

ändert sich die Sprache nicht.
Luckie
 
Beiträge: 115
Registriert: Fr 22. Mai 2009, 12:16
OS: Windows XP

Re: Anwendung mehrsprachig

Beitragvon Jörg » Di 21. Jul 2009, 09:51

Hi,
es darf nicht "deu", sondern es muss "de" heißen. :-)

Versuche es mal mit dieser Variante:
Code: Alles auswählen
setlocale(LC_ALL, 'de_DE.utf8');
Configure::write('Config.language', 'de'); // Sprache


Gruß
Jörg
Jörg
 
Beiträge: 130
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: Anwendung mehrsprachig

Beitragvon Luckie » Di 21. Jul 2009, 10:25

Ich könnte das Buch an die Wand klatschen. Mit "de" geht es. Bis auf die Umlaute, das sind noch Fragezeichen, obwohl die po-Datei UTF-8 ist. Und machne Wörter erscheine gar nicht.

Komisch, wenn ich die deutsche default.po Datei ändere und F5 drücke, aktualisiert sich nichts. Selbst den Cache löschen hilft nicht. Ich kann die default.po Datei sogar umbenennen und es wird noch in deutsch angezeigt. Warum aktualisiert er die Texte nicht?

Im AppController habe ich jetzt:
Code: Alles auswählen
function beforeFilter() {
        header('Content-type: text/html; charset="utf-8"');
        uses('L10n');
       
        setlocale(LC_ALL, 'de_DE.utf8');           
        Configure::write('Config.language', "de");
 

Und in der Core.php:
Code: Alles auswählen
Configure::write('Config.language', "de");
Luckie
 
Beiträge: 115
Registriert: Fr 22. Mai 2009, 12:16
OS: Windows XP

Re: Anwendung mehrsprachig

Beitragvon Jörg » Di 21. Jul 2009, 17:57

Sind deine Controller, Models, Views ebenfalls als UTF-8 abgespeichert?
Ist dein Layout mit einem UTF-8 Charset versehen?

Das können alles Gründe der fehlerhaften Darstellung der Datensätze sein.

Bzgl. deiner *.po-Datei solltest du deinen Browser-Cache zusätzlich löschen.
Jörg
 
Beiträge: 130
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: Anwendung mehrsprachig

Beitragvon havanna » Di 21. Jul 2009, 22:32

Hallo,
ergänzend zu dem was Jörg bereits geschrieben hat: Wenn du etwas entwickelst, solltest du immer sicherstellen, dass du das Caching ausschaltest. Erst wenn du eine Anwendung produktiv setzt, solltest du dort das Caching einschalten.
Deine Beschreibung deutet ganz stark darauf hin, dass du das Caching eingeschaltet hast.

Ciao Thomas

P.S. und wenn du dann das Caching ausgeschaltet hast, lösche alle temporären Dateien (Views, Modells, etc.) in den Unterverzeichnissen /app/tmp/cache
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Anwendung mehrsprachig

Beitragvon mbrod » Mi 12. Aug 2009, 23:11

Bezüglich Caching habe ich folgendes merkwürdiges Verhalten von cakephp festgestellt:
Caching ist natürlch während des Entwickelns ausgeschaltet. Trotzdem werden Dateien unter app/tmp/cache/persistent erzeugt. Unter anderem auch die Datei cake_core_default_de_de. Löschen der Dateien im persistent Ordner hat nichts gebracht. Änderungen in der deu/default.po Datei wurden in cake_core_default_de_de nicht übernommen.

Ich habe dann den Ordner persistent gelöscht. Die Dateien wurden dann in app/tmp/cache abgelegt. Und siehe da: Änderungen in default.po wurden dann in den Views auch umgesetzt.

Probleme, wie oben beschrieben, mit deu oder Umlauten trotz utf-8 sind bei mir nicht aufgetreten.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: Anwendung mehrsprachig

Beitragvon euromark » Do 13. Aug 2009, 12:42

das sind keine merkwürdigkeiten^^
ob persistant und models gecached wird, hängt einzig und allein von deinem debug setting ab
du solltest es immer auf 2 haben zum entwickeln - dann werden die files zwar trotzdem angelegt, aber jedesmal frisch ausgelesen

alternativ hab ich mir ne "cake clearcache" shell geschrieben, die das für mich erledigt, wenns doch ab un an mal noch das alte zeugs ist
(wenn man doch mal auf debug 0 ist)

PS: die unterordner wie persistant zu löschen ist nich empfehlenswert
klar, dann weicht cake auf den root "tmp" ordner aus - aber damit ist auch nichts gewonnen...
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Anwendung mehrsprachig

Beitragvon mbrod » Sa 15. Aug 2009, 11:07

euromark hat geschrieben:das sind keine merkwürdigkeiten^^
ob persistant und models gecached wird, hängt einzig und allein von deinem debug setting ab
du solltest es immer auf 2 haben zum entwickeln

Steht auf 2. Und anscheinend wird doch gecacht.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: Anwendung mehrsprachig

Beitragvon euromark » Sa 15. Aug 2009, 11:51

ich vermute dass du damit der einzige bist, der dieses problem zu haben scheint
bei mir, wenn ich etwas an der .po ändere, ist es beim nächsten klick sofort verfügbar
vergleiche ich die Zeitstempel der Datei-Änderungungen, fällt mir auf dass sich immer alle Dateien mit updaten
in "persistant" - und in "models" sofern sie gerade gebraucht werden.
also nein: eigentlich ein Ding der Unmöglichkeit - sofern wir von der Version 1.2.4 sprechen natürlich
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Nächste

Zurück zu Installation und Konfiguration

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron