5

Trong ứng dụng CakePHP của tôi, Bằng cách sử dụng cake.bat tôi đã tạo tệp POT và bằng cách sử dụng PoEdit tôi đã tạo tệp PO. Vì vậy, bằng cách viết __ ('myword') tôi có thể thấy từ được bản địa hóa trong ứng dụng của tôi thành công.Thời gian bản địa hóaAgoInWords trong CakePHP

Nhưng giờ tôi cần phải bản địa hóa "timeAgoInWords". Khi tôi chạy bánh i18n chiết xuất, kịch bản đã không nhận được _dn() từ CakeTime http://api20.cakephp.org/view_source/cake-time#line-522

Vì vậy, tôi đã tạo ra một dummy.ctp tập tin và nội dung sao chép-dán từ cake- tệp thời gian vào tệp giả. Tôi chạy tập lệnh bánh và POEdit một lần nữa. Và nó tạo ra các trường hợp như dưới đây, vào file 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" 

Trong core.php tôi đã thiết lập ngôn ngữ mặc định để Thổ Nhĩ Kỳ:

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

Nhưng khi tôi kiểm tra đơn đăng ký của mình, kết quả của timeAgoInWords đến bằng tiếng Anh.

Làm thế nào tôi có thể sửa chữa các thông điệp

+0

liên quan: http://stackoverflow.com/question/7954199/trouble-with-internationalization-on-cakephp-2-0? rq = 1 http://stackoverflow.com/questions/15722716/cakephp-automating-i18n-extract-shell-process-from-batch- tập tin – trante

Trả lời

7

Bánh của này được tách ra thành một tên miền khác, trong trường hợp này, tên miền cake. Điều này có nghĩa là thông điệp bánh sẽ không được trích xuất vào tệp default.pot của bạn, nhưng sẽ đi vào tệp cake.pot.

Thật kỳ lạ, cake.pot dường như không được bao gồm trong quá trình tải xuống, cũng như vỏ i18n cho phép bạn chuyển thông số để bao gồm lõi bánh trong quá trình trích xuất. Tuy nhiên, nó vẫn dễ dàng thực hiện (ý kiến ​​của tôi bắt đầu với một #):

$:/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] > 

Đợi cho đến khi khai thác để hoàn thành và tận hưởng nỗi đau của dịch;)

Các vấn đề liên quan