Tôi có thể tìm danh sách ngôn ngữ và ngôn ngữ ở đây như thế nào.Mã ngôn ngữ quốc tế Django
(Swedish,sv)
(English,en)
Tôi có thể tìm danh sách ngôn ngữ và ngôn ngữ ở đây như thế nào.Mã ngôn ngữ quốc tế Django
(Swedish,sv)
(English,en)
Nếu bạn muốn một cái gì đó bạn có thể sử dụng từ bên trong django, hãy thử:
from django.conf import settings
này sẽ được định dạng ở trên, làm cho nó hoàn hảo cho chuyển nhượng trong một trong các trường lựa chọn mô hình = của bạn. (Ví dụ user_language = models.CharField(max_length=7, choices=settings.LANGUAGES)
)
LANGUAGES = (
('ar', gettext_noop('Arabic')),
('bg', gettext_noop('Bulgarian')),
('bn', gettext_noop('Bengali')),
etc....
)
Đã thêm tiền thưởng vào phương thức này: vì gettext_noop() là một tra cứu lười biếng, tên ngôn ngữ sẽ được dịch dựa trên ngôn ngữ của người dùng của bạn tại thời điểm hiển thị mẫu. Có nghĩa là người dùng tiếng Anh sẽ thấy "tiếng Pháp" nhưng người dùng Pháp sẽ thấy "Francais" – Thomas
là có bất kỳ Trang tham chiếu nào cho các ngôn ngữ trên .. – Hulk
http://code.djangoproject.com/browser/django/trunk/django/conf /global_settings.py sẽ cung cấp cho bạn danh sách đầy đủ các ngôn ngữ hỗ trợ django ra khỏi hộp và http://docs.djangoproject.com/en/dev/ref/settings/#languages cung cấp cho bạn tổng quan về cách sử dụng. Hi vọng điêu nay co ich. – Thomas
tôi hiểu từ Django Project rằng bạn chỉ có thể sử dụng một hàm gettext giả:
Nếu bạn định nghĩa một tùy chỉnh Cài đặt LANGUAGES, như được giải thích trong dấu đầu trước, bạn có thể đánh dấu các ngôn ngữ là chuỗi dịch - nhưng sử dụng "dummy"Chức năng, không phải là một trong
django.utils.translation
. Bạn không bao giờ nên nhậpdjango.utils.translation
từ bên trong tập tin cài đặt của bạn, bởi vì đó mô-đun tự nó phụ thuộc vào các thiết lập, và có thể gây ra một khẩu tròn. ".
Tôi đã mất một thời gian để tìm ra giải pháp, nhưng tôi cuối cùng đã nhận nó; sự lựa chọn của các lĩnh vực người mẫu cần phải có một tuple với các chức năng gettext thật, với một hàm lambda của hình nộm có thể được bọc trong các chức năng gettext thực như sau:
from django.utils.translation import ugettext_lazy as _
language = models.CharField(max_length=5, choices=map(lambda (k,v): (k, _(v)), settings.LANGUAGES), verbose_name=_('language'))
from django.conf import settings
#note settings is an object , hence you cannot import its contents
settings.configure()
#note LANGUAGES is a tuple of tuples
lang_dict = dict(settings.LANGUAGES)
#use lang_dict for your query.
print lang_dict['en']
Trân
012.Sachin
câu trả lời trước đề cập đến chỉ nhận LANGUAGE
từ settings.py, hovewer có một cơ hội lớn mà biến này sẽ được ghi đè. Vì vậy, bạn có thể lấy danh sách đầy đủ từ django.conf.global_settings.LANGUAGES
from django.db import models
from django.conf.global_settings import LANGUAGES
class ModelWithLanguage(models.Model):
languages = models.CharField(max_length=7, choices=LANGUAGES)
Không phải tất cả các mã ngôn ngữ này đều được hỗ trợ. Xem tập tin django.conf.locale.LANG_INFO cho danh sách tổng thể. – spiderlama