a

Câu hỏi Làm thế nào để thay đổi ngôn ngữ từ URL Django?


Tôi muốn thay đổi ngôn ngữ khi người dùng giới thiệu trong url ngôn ngữ, một cái gì đó như thế này http://example.com/es/, http://example.com/es/article-name, http://example.com/en/.

Làm thế nào tôi có thể làm điều đó?


13
2018-06-10 00:45


gốc


1 cho việc sử dụng có liên quan của ¿:) - Mike Atlas
stackoverflow.com/questions/13636604/… - Deja Vu


Các câu trả lời:


Kiểm tra django-locale-url.

Nó cung cấp một phần mềm trung gian thực hiện chính xác những gì bạn đang yêu cầu, vì vậy bạn không cần phải kiểm tra ngôn ngữ trong urls.py


8
2017-07-28 19:25



Liên kết đang cho 403. - phunehehe
Nhưng tôi nghe nói rằng chức năng django lõi khỉ localeurl bản vá lỗi. Đó là một mối quan tâm lớn đối với tôi. - Georgie Porgie
Phần mềm trung gian đó hiện không được duy trì, có tùy chọn được tích hợp sẵn trong django với tiền tố ngôn ngữ trong mẫu url - chaim


Một số cách để làm điều này mà đến tâm trí. Có thể cho rằng cách "tuân thủ tiêu chuẩn" nhất sẽ là sử dụng HTTP Accept-Language tiêu đề có sẵn cho lượt xem request.META['HTTP_ACCEPT_LANGUAGE'] để xác định ngôn ngữ mà người dùng muốn nhận tài nguyên và chỉ cần dịch lại HttpResponse bằng ngôn ngữ thích hợp.

Một cách phổ biến khác, nhiều hơn dọc theo dòng của những gì bạn mô tả, là yêu cầu người dùng chọn ngôn ngữ khi họ đến lần đầu tiên và lưu trữ lựa chọn trong phiên. Khi người dùng đưa ra lựa chọn, hãy chuyển hướng trình duyệt đến thư mục con ngôn ngữ thích hợp và sử dụng các liên kết tương đối trong chế độ xem của bạn để không phải lo lắng về việc chuyển ngôn ngữ. Bạn có thể điều chỉnh URLconf của mình để chuyển từ khóa ngôn ngữ sang chế độ xem như sau:

urlpatterns = patterns('',
    (r'^(?P<lang>[a-zA-Z]{2})/ ...

Đây là một Quốc tế hóa / Bản địa hóa trang trên trang web tài liệu Django về i18n có thể giúp bạn bắt đầu.


3
2018-06-10 02:28



thực sự đã giúp. tôi cũng lấy phương pháp từ westiseast.co.uk/blog/django-translation-tools và tôi có thể làm {%url changeling 'en'%} trong các mẫu - Aitvaras


Ngày nay, cách tốt nhất là sử dụng tiền tố ngôn ngữ dựng sẵn trong các mẫu url: https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#language-prefix-in-url-patterns


3
2017-07-28 07:43