2012-03-08 31 views

Trả lời

17

Nó tải các thẻ dịch như {% trans "Text" %} có thể được sử dụng trong mẫu. Nếu bạn không sử dụng nó, bạn có thể loại bỏ {% load i18n %}

Khi bạn sử dụng trans thẻ cho tất cả các văn bản đó không phải là năng động trong các mẫu sau đó bạn có thể thu thập tất cả các chuỗi như vậy bằng cách chạy ./manage.py makemessages mà tạo ra .po tập tin đó sẽ được sử dụng cho bản dịch.

+2

Cảm ơn bạn! Bạn đã cho tôi đủ các từ khóa để thực hiện một số thử nghiệm và tìm kiếm trên web để tìm hiểu thêm. – hobbes3

5

{% load i18n %} là cần thiết để quốc tế hóa. Mục đích của quốc tế hóa là cho phép một ứng dụng đọc nhiều ngôn ngữ. Để làm điều này: bạn cần một vài móc gọi là chuỗi dịch. Để cung cấp cho mẫu truy cập của bạn để các thẻ, đặt {% load i18n %} phía trên cùng của mẫu của bạn ..

Tham khảo này cho biết thêm: https://docs.djangoproject.com/en/1.10/topics/i18n/

2

Để thực hiện một dự án thể dịch Django, bạn phải thêm một tối thiểu số lượng móc vào mã Python và các mẫu của bạn. Những móc này được gọi là translation strings. Họ nói với Django: “Văn bản này nên được dịch sang ngôn ngữ của người dùng cuối, nếu bản dịch cho văn bản này có sẵn bằng ngôn ngữ đó.” Bạn có trách nhiệm đánh dấu các chuỗi có thể dịch được; hệ thống chỉ có thể dịch các chuỗi mà nó biết.

Móc quốc tế hóa của Django được bật theo mặc định và điều đó có nghĩa là có một chút chi phí liên quan đến i18n ở một số nơi nhất định trong khuôn khổ. Nếu bạn không sử dụng quốc tế hóa, bạn nên dành hai giây để đặt USE_I18N = False trong tệp cài đặt của mình. Sau đó, Django sẽ thực hiện một số tối ưu hóa để không tải máy móc quốc tế. Có thể bạn cũng sẽ muốn xóa ['django.core.context_processors.i18n'] khỏi cài đặt TEMPLATE_CONTEXT_PROCESSORS của mình.

Để biết thêm thông tin: https://docs.djangoproject.com/en/dev/topics/i18n/translation/

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