2010-12-29 27 views
6

Tôi đang tìm cách dịch dự án Django của mình. Xây dựng trong cơ chế cung cấp với Django là rất tốt, nhưng có một số điểm yếu mà làm cho tôi đi tìm kiếm một thay thế.Django i18n: có thay thế gettext nào không?

Chủ sở hữu dự án phải có khả năng chỉnh sửa mọi bản dịch bao gồm tiếng Anh (bản dịch gốc). Với gettext, bạn có thể chỉnh sửa bản dịch bằng các công cụ như Pootle, nhưng các chuỗi gốc vẫn được mã hóa cứng bên trong các nguồn hoặc mẫu tệp. Không có cách nào mà chủ sở hữu sản phẩm có thể thay đổi chúng.

giải pháp có thể là làm cho gettext dịch một số định danh duy nhất, và chỉ cần dịch chúng cho tất cả các ngôn ngữ bao gồm tiếng Anh, như thế này:

_('form_sumbit_button') 

Nhưng điều này làm cho các công cụ như Pootle hầu như không thể sử dụng cho người dịch.

Câu hỏi: có công cụ nào để dịch dự án Django có thể phù hợp với nhu cầu của tôi không?

Trả lời

1

Bạn có thể sử dụng Pootle với phương pháp _ ("message_id"), tùy thuộc vào mức độ dễ dàng của Pootle (Tôi không biết nội bộ nên không thể nói, nhưng IIUC nó sử dụng Django ở đâu thay đổi mẫu thường đơn giản).

Ví dụ: màn hình dịch của Pootle có phần "Bản gốc" và "Bản dịch"; bạn có thể thích ứng với các mẫu để hiển thị, trong phần "Gốc", phần "Tham chiếu" hiển thị một số bản dịch kinh điển sử dụng ngôn ngữ tham chiếu cụ thể (ví dụ: tiếng Anh).

Hoặc bạn có thể sử dụng chức năng alternative source language của Pootle, mà không cần phải tùy chỉnh Pootle. Bạn có thể lưu trữ các phiên bản kinh điển của các bản dịch bằng cách sử dụng mã ngôn ngữ không sử dụng (hoặc một mã được tạo sẵn).

2

Nếu bạn sử dụng một số ID tin nhắn, chúng sẽ không thể hiểu được ("message_2215") hoặc bạn buộc phải đồng bộ hóa ID tin nhắn với các tin nhắn thực tế ("Vui lòng nhấn phím bất kỳ" = "please_press_any_key" => " Bất kỳ phím nào để tiếp tục "=" any_key_to_continue "). Dù bằng cách nào, chuỗi thực sự tốt hơn cho các lập trình viên và cho các công cụ.

Tuy nhiên, nếu bạn sử dụng một bằng chứng-reader riêng cho các chuỗi, bạn có thể làm như sau:

  1. Tạo một tiếng Anh "dịch" tập tin (có, các công trình này)
  2. Hãy bằng chứng cơ sở của bạn người đọc "dịch" từ tiếng Anh sang tiếng Anh bằng cách sử dụng Pootle hoặc bất kỳ công cụ nào khác
  3. Đảm bảo rằng các lập trình viên của bạn giữ cho tệp dịch không được dịch bằng cách cập nhật các chuỗi mã.
  4. (tùy chọn) Tạo cách triển khai bản dịch độc lập với mã chính của bạn để bạn có thể sửa lỗi đánh máy nhanh chóng.
0

tôi đã cùng một vấn đề của bạn và tôi đã không thành lập bất kỳ bên thứ ba giải pháp vì vậy tôi đã viết thư viện này: https://github.com/fabiocaccamo/django-kway

Hope rằng ai đó wil thấy nó hữu ích.

0

Sử dụng số nhận dạng chắc chắn là có thể với Gettext và có các công cụ hỗ trợ điều này. Tuy nhiên nó có thể là bất thường đối với một số dịch giả khi chúng được sử dụng để tải xuống chỉ .po tệp để dịch ngoại tuyến, những gì không hoạt động với các bản dịch đơn ngữ.

Ví dụ: Weblate hỗ trợ các tệp Gettext đơn thuần tốt (Tôi là tác giả của công cụ này): https://docs.weblate.org/en/latest/formats.html#monolingual-gettext

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