Dịch Django trong trang quản trị Admin với Rosetta

Rosetta là thư viện của bên thứ ba cho django để chỉnh sửa các bản dịch bằng giao diện tương tự như trang quản trị Django. Nó giúp bạn dễ dàng chỉnh sửa các tệp .po và cập nhật các tệp dịch đã biên dịch tự động cho bạn.

Cài đặt Rosetta

  1. Cài đặt phụ thuộc
pip install django-rosetta
  1. Thêm 'rosetta' vào INSTALLED_APPS của tệp settings.py trong dự án của bạn
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'shop',
    'rosetta',  # NEW
]
  1. Thêm URL của Rosetta vào cấu hình URL chính của dự án urls.py :
urlpatterns += i18n_patterns(
    path('admin/', admin.site.urls),
    path('', include('shop.urls')), 
)
# new
if 'rosetta' in settings.INSTALLED_APPS:
    urlpatterns += i18n_patterns(
        path('rosetta/', include('rosetta.urls'))
)

Lưu ý: bạn có thể sử dụng bất kỳ thứ gì bạn muốn làm tiền tố URL.
Để gỡ cài đặt Rosetta, chỉ cần nhận xét hoặc xóa dòng 'rosetta' trong INSTALLED_APPS

  1. Đăng nhập với tư cách quản trị viên, sau đó điều hướng đến http://127.0.0.1:8000/rosetta/ trong trình duyệt của bạn.

Vì Rosetta yêu cầu quyền ghi vào một số tệp trong dự án Django của bạn, quyền truy cập vào ứng dụng bị hạn chế chỉ dành cho người dùng quản trị viên (như được định nghĩa trong giao diện Quản trị viên của dự án của bạn)

Nếu bạn muốn cấp quyền truy cập chỉnh sửa cho những người dùng khác:

  • Tạo nhóm translators trong giao diện quản trị của bạn
  • Thêm người dùng bạn muốn cấp quyền dịch cho nhóm này

Bản dịch Rosetta

Theo mặc định, Rosetta ẩn các tệp danh mục của riêng mình trong giao diện chọn tệp (được hiển thị ở trên.), hoặc có thể Rosetta chưa có sẵn cho ngôn ngữ của bạn. Nếu bạn muốn dịch Rosetta sang ngôn ngữ của mình:

  1. Tạo một thư mục con cho ngôn ngữ của bạn bên trong thư mục locale của Rosetta locale , ví dụ: rosetta/locale/XX/LC_MESSAGES.
    Trong đó, XX là ngôn ngữ của bạn.
    Ví dụ, tôi sẽ tạo thư mục vi/LC_MESSAGES cho ngôn ngữ tiếng việt:
    • Xác định vị trí của thư mục rosetta/locale. Của tôi nó nằm ở: C:\Users\vanda\AppData\Local\Programs\Python\Python39\Lib\site-packages\rosetta\locale
    • Tạo thư mục vi/LC_MESSAGES
  2. Mở thư mục rosetta trong Terminal và chạy lệnh: django-admin makemessages -l vi
  3. Dịch như bình thường
    image

Xem thay đổi bản dịch bằng cách thay đổi mã ngôn ngữ trong url trình duyệt. ví dụ:

  • Tiếng Anh: http://127.0.0.1:8000/en/rosetta
  • Tiếng Việt: http://127.0.0.1:8000/vi/rosetta