2010-07-27 39 views
9

Tôi đang cố gắng thiết lập Internationalization of JavaScript code in my Django application.Danh mục trống khi quốc tế hóa mã JavaScript

Ứng dụng Django của tôi có một thư mục con locale với tệp được tạo đúng cách djangojs.po. Định nghĩa gói như sau:

# urls.py 
js_info_dict = { 
    'packages': ('my_project',), 
} 

./manage.py makemessages làm việc cũng như các tập tin .po chứa tất cả các chuỗi to-be-dịch nhưng không có chuỗi JavaScript bao giờ bị dịch trên trang web và các cửa hàng luôn luôn là sản phẩm nào.

Trả lời

3

tôi đã thêm my_project vào CÀI ĐẶT LẮP ĐẶT trong settings.py và điều đó dường như thực hiện thủ thuật

+0

Tôi đã có "my_project" trong các ỨNG DỤNG CÀI ĐẶT của my_project trong settings.py và danh mục còn trống. Bạn có thể có ý tưởng về những việc cần làm khác không? – urig

+0

Tôi đã tìm ra những gì đã xảy ra với tôi. Tôi đã đặt các tập tin po của tôi dưới /conf/locale khi nó phải là /locale. – urig

5

Tôi cũng gặp một số vấn đề. Đây là cách nó làm việc cho tôi:

Thêm phần này vào urls.py gốc yr:

js_info_dict = { 'domain': 'djangojs', 
       'packages': ('YOUR_PROJECT_NAME',), } 


urlpatterns = patterns('',     

    #enable using translation strings in javascript 
    #source: https://docs.djangoproject.com/en/dev/topics/i18n/translation/#module-django.views.i18n 
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), 

) 

Trong file JS sử dụng:

var somevar = gettext('Text to translate'); 

Lập hồ sơ django dịch: Trong một vỏ/thiết bị đầu cuối chạy từ gốc của dự án (nơi 'ứng dụng', 'cài đặt', v.v.):

#for "normal django files" (.py, .html): 
django-admin.py makemessages --locale=de 
#for javascript files. source: http://stackoverflow.com/a/3571954/268125 
django-admin.py makemessages -a -d djangojs --locale=de 
#to compile the translation files to machine code 
django-admin.py compilemessages --locale=de 
+0

Vẫn phải thêm dự án của tôi vào INSTALLED_APPS. (mà tôi không thích) – bjunix

+0

Nó vẫn không hoạt động đối với tôi. Và có vẻ như 'djangojs' là tên miền mặc định. Không cần phải viết nó một cách rõ ràng. – azmeuk

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