2017-02-27 14 views
0

arbeiten ich mit CakePHP in eine sehr frustrierende Problem laufen 3. Ich habe gerade aktualisiert alle Dateien meine .ctp zu verwenden (Doppel _), aber ich kann es nicht die lokalisierten Strings zu drucken bekommen.CakePHP 3 Internationalisierung nicht

Ich habe das Standard-Gebietsschema festgelegt in config/app.php en_150:

App' => [ 
     'namespace' => 'App', 
     'encoding' => env('APP_ENCODING', 'UTF-8'), 
     'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_150'), 
     ... 

Ich habe versucht, das Gebietsschema direkt in config/bootstrap.php Einstellung, aber es hatte keine Wirkung:

ini_set('intl.default_locale', Configure::read('App.defaultLocale')); 

erzeugte ich die POT-Dateien mit Kuchen i18n-Extrakt, und dann für die en_150 locale Kuchen i18n init tat. Ich glaube, dass sie in den richtigen Pfad sind:

$ find src/Locale/ 
src/Locale/ 
src/Locale/default.po 
src/Locale/cake.pot 
src/Locale/default.pot 
src/Locale/en_150 
src/Locale/en_150/default.po 
src/Locale/en_150/default.po.po 
src/Locale/en_150/cake.po 
src/Locale/en_150/default.mo.po 
src/Locale/default.mo 

Das Seltsamste ist, ich die Übersetzer Klasse aktualisiert (Verkäufer/cakephp/cakephp/src/I18n/Translator.php) jede Nachricht Schlüssel zu protokollieren, die nachgeschlagen Wesen und ich sehe meine Schlüssel und DebugKits Schlüssel. Die Schlüssel von debugKit werden jedoch zweimal gesucht, einmal aus dem Speicher und dann aus dem Fallback. Meine Schlüssel werden jedoch nie mit Fallback nachgeschlagen.

debugkit der Schlüssel:

2017-02-27 13:47:16 Fallback lookup Event: Controller.beforeRender 
2017-02-27 13:47:16 Event: Controller.beforeRender 
2017-02-27 13:47:16 View Render start 
2017-02-27 13:47:16 Fallback lookup View Render start 
2017-02-27 13:47:16 View Render start 

meine Schlüssel:

2017-02-27 13:47:16 AppName 
2017-02-27 13:47:16 Sign in to start your session 
2017-02-27 13:47:16 Email 
2017-02-27 13:47:16 Password 
2017-02-27 13:47:16 Remember Me 
2017-02-27 13:47:16 Sign In 

Diese irgendwie macht mich denken, dass die ‚Rückfall‘ eigentlich ist, was in die Datei geht und die Übersetzungen liest. Und das passiert aus irgendwelchen Gründen nicht für meine Übersetzungen.

Was ich versucht habe, so weit:

  1. löschen Cache (über 100 mal)
  2. das Standardgebietsschema festgelegt (in config/app.php) auf etwas anderes als en_150 (ich war dies besorgt ein ungültiger locale Namen für cakephp)
  3. Schalter zwischen POT < wäre -> .po Dateierweiterungen für die Übersetzungsdateien
  4. Aktualisierung .po Dateien in nano & poedit

Ich habe versucht, dies für die letzten 4 Tage zu beheben, so dass ich auf jeden Fall viele andere Dinge habe ich versucht, nicht gerade jetzt erinnern kann.

werde ich jede Zeiger jemand schätzen

+0

Update: Ich habe von CakePHP 3,3-3,4 versucht zu aktualisieren, bleibt das Problem –

Antwort

1

Es stellte sich heraus zur Verfügung stellen kann ein Berechtigungsproblem sein. Ich habe es vorher nicht bemerkt, weil ich die Berechtigungen und den Besitz aller Dateien & Ordner unter Locale, aber nicht den Locale-Ordner selbst aktualisiert hatte.