5

Version info:Tại sao Django không tạo các tệp miền địa phương từ các tệp mẫu trong một thư mục khác?

phiên bản Django 1.3 pre-alpha SVN-13.858

Ubuntu GNU/Linux 10.10

Tôi hoàn toàn mới để i18n và l10n trong Django và hiện nay tôi đang cố gắng để làm cho dự án Django của tôi có sẵn bằng tiếng Hà Lan (ngoài ngôn ngữ mặc định của nó: tiếng Anh). Tôi đã cố gắng áp dụng các hướng dẫn được đưa ra tại http://docs.djangoproject.com/en/dev/topics/i18n/translation/http://www.djangobook.com/en/2.0/chapter19/ nhưng tôi đã không thành công. Tôi không biết nếu điều này là liên quan đến cấu trúc thư mục của tôi và các tập tin mẫu đang ở trong một thư mục hoàn toàn khác nhau (tôi có nghĩa là không phải là một thư mục con trong thư mục dự án Django của tôi). thư mục dự án của tôi trông giống như sau:

/home/emre/mydjango/myproject 
/home/emre/mydjango/myproject/myapp1 
/home/emre/mydjangotemplates 
/home/emre/mydjangotemplates/myapp1 

Trong myproject và thư mục myapp1 Tôi cố gắng để thực hiện lệnh sau:

django-admin.py makemessages -l nl 

Nhưng nhận được lỗi sau:

Error: This script should be run from the Django SVN tree or your project or 
app tree. If you did indeed run it from the SVN checkout or your project or 
application, maybe you are just missing the conf/locale (in the django tree) 
or locale (for project and application) directory? It is not created automatically, 
you have to create it by hand if you want to enable i18n for your project or 
application. 

Vì vậy, Tôi đã cố gắng tạo các thư mục locale trong các thư mục myproject và myapp1. Sau đó tôi đã ban hành lệnh trên một lần nữa (một lần trong dự án và một lần trong thư mục ứng dụng) và thời gian này mà không có bất kỳ lỗi hoặc cảnh báo nó nói:

processing language nl 

Tôi đã kiểm tra các thư mục locale và thấy rằng họ đang cư với thư mục con nhưng đã có không bất kỳ tập tin .po tại tất cả:

$ tree 
. 
`-- nl 
    `-- LC_MESSAGES 

2 directories, 0 files 

tôi đôi kiểm tra mà tôi có file .html của tôi (template file) trong home/Emre/mydjangotemplates và họ bao gồm {% i18n tải %} và một số dòng như {% trans "Một đoạn văn bản tiếng Anh"%}.

Tôi đang thiếu gì? Tôi có nên gọi lệnh makemessages django-admin.py với các tham số khác nhau không? Tại sao Django không tạo các tệp .po mặc dù tôi có một số văn bản được dịch trong các tệp mẫu .html của tôi?

Trả lời

9

makemessages chỉ tìm trong thư mục trong thư mục hiện tại. Bạn có thể thử tạo một liên kết tượng trưng từ một nơi nào đó trong dự án của bạn tới thư mục mẫu của bạn và thêm -s to make it follow symlinks.

+0

Tôi đã tạo liên kết tượng trưng cho thư mục mẫu từ thư mục dự án và ứng dụng, sau đó thử cùng một lệnh, cùng một kết quả. Sau đó, xóa các thư mục con miền địa phương, tái tạo chúng, thử nó, cùng một kết quả, sau đó cũng đã cố gắng như django-admin.py makemessages -a, nhưng tiếc là tất cả tôi nhận được là một miền địa phương rỗng/nl/LC_MESSAGES/thư mục trong dự án của tôi và thư mục ứng dụng. –

+1

thử thêm --verbosity 2 vào cuối lệnh. nó nên in những gì nó đang làm, có lẽ nó sẽ cho một số đầu mối. –

+0

Tôi đã làm và có vẻ như nó không đi qua các thư mục con thường có thể truy cập được bằng cách đi theo liên kết tượng trưng: kiểm tra các tệp có phần mở rộng: .html ngôn ngữ xử lý nl bỏ qua các mô hình tệp.py ~ in. bỏ qua tệp urls.py ~ in. bỏ qua tệp views.py ~ in. tệp xử lý __init__.py trong. xử lý tệp models.py. xử lý tệp tests.py trong. xử lý tệp urls.py trong. xử lý chế độ xem tệp.py in –

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