5

In meiner CakePHP-Anwendung, Durch die Verwendung von cake.bat habe ich POT-Dateien erstellt und mit PoEdit PO-Dateien erstellt. Also durch Schreiben __ ('Myword') kann ich lokalisiertes Wort in meiner Anwendung erfolgreich sehen.Lokalisieren von timeAgoInWords in CakePHP

Aber jetzt muss ich "timeAgoInWords" lokalisieren. Wenn ich Kuchen i18n Extrakt laufen, Skript erhalten nicht die _dn() Wörter CakeTime http://api20.cakephp.org/view_source/cake-time#line-522

Also ich eine dummy.ctp Datei erstellt und Kopieren-Einfügen Inhalte von Kuchen- Zeitdatei zu Dummy-Datei. Ich laufen Kuchen Skript und POEdit wieder. Und es Instanzen geschaffen, wie unten, in die Datei app/locale/TUR/LC_MESSAGES/default.po

#: View\App\dummy.ctp:30;33 
msgid "%d minute" 
msgid_plural "%d minutes" 
msgstr[0] "%d dakika" 
msgstr[1] "%d dakika" 

In core.php i bereits eingestellten Standardsprache Türkisch:

Configure::write('Config.language', 'tur'); 

Aber Wenn ich meine Anwendung überprüfe, kamen die Ergebnisse von timeAgoInWords auf Englisch.

Wie kann ich dieses Problem beheben

+0

Verwandte: http://stackoverflow.com/questions/7954199/probleme-mit-internationalisierung-auf-cakephp-2-0? rq = 1 http://stackoverflow.com/questions/15722716/cakephp-automatisierung-i18n-extract-shell-process-from-batch- Datei – trante

Antwort

7

Cake-Nachrichten in eine andere Domäne extrahiert werden, in diesem Fall die cake Domäne. Dies bedeutet, dass Cake-Nachrichten nicht in Ihre Datei default.pot extrahiert werden, sondern in cake.pot Datei gehen.

Kurioserweise scheint cake.pot nicht im Download enthalten zu sein, und die i18n-Shell erlaubt es auch nicht, einen Parameter zu übergeben, der den Kuchenkern während der Extraktion enthält. Es ist jedoch nach wie vor leicht gemacht (meine Kommentare beginnen mit einem #):

$:/var/www/path/app$ cake i18n extract 

# if will ask you here if you want to extract from your app folder 
# simply press enter to confirm 
What is the path you would like to extract? 
[Q]uit [D]one 
[/var/www/path/app/] 

# now it will ask you again, in this case enter the cake path 
What is the path you would like to extract? 
[Q]uit [D]one 
[D] > /var/www/path/lib/Cake 

# third time, just press enter 
What is the path you would like to extract? 
[Q]uit [D]one 
[D] > 

# press enter to accept the app/Locale 
What is the path you would like to output? 
[Q]uit 
[/var/www/path/app//Locale] > 

# press enter to keep translation domains deparate 
Would you like to merge all domains strings into the default.pot file? (y/n) 
[n] > 

Jetzt für die Extraktion warten, um den Schmerz der Übersetzung zu beenden und genießen;)