Dịch nội dung¶
Bắt đầu dịch¶
Nếu bạn muốn đóng góp cho công tác dịch thuật của BeeWare, bạn cần có một tài khoản trên Weblate. Tạo tài khoản mới nếu bạn chưa có; sau đó hãy cho chúng tôi biết rằng bạn muốn tham gia hỗ trợ công tác dịch thuật.
Có hai cách để bạn cho chúng tôi biết rằng bạn muốn tham gia hỗ trợ công việc dịch thuật:
- Nếu bạn đang dùng Discord, hãy tham gia máy chủ
BeeWare, và vào kênh
#translations. - Nếu bạn chưa tham gia Discord, bạn có thể tạo một vấn đề mới trên kho lưu trữ BeeWare Docs Tools.
Trong cả hai trường hợp, vui lòng để lại tin nhắn kèm theo các thông tin sau:
- Tên người dùng Weblate của bạn
- Ngôn ngữ mà bạn dự định dịch nội dung sang
Khi chúng tôi có thông tin này, chúng tôi sẽ thêm bạn vào đội.
Thêm bản dịch mới¶
Nếu ngôn ngữ mà bạn dự định hỗ trợ chưa có sẵn, bạn cần thực hiện thêm một số bước trước khi có thể bắt đầu:
- Tạo tệp
/docs/mkdocs.language-code.yml, với nội dung dành riêng cho ngôn ngữ đó. - Cập nhật
tox.iniđể bổ sung các lệnh xây dựng ngôn ngữ mới. - Cập nhật
/docs/config.ymlđể bao gồm ngôn ngữ trongextra: alternate:.
Phần sau đây trình bày các thay đổi cần thiết bằng cách lấy tiếng Đức làm ví dụ;
bản dịch tiếng Đức đã có sẵn; hãy thay thế các tham chiếu đến tiếng Đức, de,
hoặc nội dung khác bằng ngôn ngữ mà bạn đang nhắm đến.
Một tệp cấu hình MkDocs mới¶
Đầu tiên, hãy tạo một tệp mới có tên mkdocs.de.yml trong thư mục docs, với
nội dung như sau:
INHERIT: config.yml
site_name: BeeWare Docs Tools Dokumentation
site_url: https://beeware-docs-tools.beeware.org/de
docs_dir: de
theme:
language: de
extra:
language_url: de/
translation_type: machine
header:
About: Über
Documentation: Dokumentation
Community: Gemeinschaft
Contributing: Mitwirken
News: Neuigkeiten
Sponsor: Förderer
Đây là những gì đang diễn ra trong tệp này:
- Tệp này kế thừa nội dung cấu hình từ
config.yml. - Giá trị
site_nameđã được dịch. - Giá trị
site_urllà URL của trang web dự án, kèm theo mã ngôn ngữ. - Dấu
docs_dirphải là mã ngôn ngữ. - Giá trị
theme: language:phải là mã ngôn ngữ, như được quy định trong chủ đề MkDocs Material. Đối với hầu hết các ngôn ngữ, giá trị này sẽ giống với mã ngôn ngữdocs_dir; nhưng đối với một số ngôn ngữ (đặc biệt là những ngôn ngữ có các biến thể vùng nhưzh_CN), sẽ có sự khác biệt. - Dấu
extra: language_url:phải là mã ngôn ngữ, tiếp theo là một dấu gạch chéo, ví dụ:de/cho tiếng Đức. extra: translation_type:sẽ giữ nguyên làmachinecho đến khi bản dịch đạt 100% lần đầu tiên; khi đó, nó sẽ chuyển thànhhuman. Nó sẽ quay trở lạimachinetừhumannếu tỷ lệ dịch giảm xuống dưới 90%.- Nội dung trong
extra: headerlà bản dịch của các tiêu đề xuất hiện trên thanh tiêu đề. Định nghĩa này không bắt buộc trên trang web chính của BeeWare; nó chỉ bắt buộc trên các trang web khác (chẳng hạn như trang hướng dẫn hoặc tài liệu dự án).
Cập nhật tox.ini¶
Bạn sẽ cần thực hiện một số thay đổi đối với tệp tox.ini.
Bạn sẽ thêm nội dung sau:
- Thêm cờ mã ngôn ngữ mới vào dòng tiêu đề bắt đầu bằng
[testenv:docs, trong đó mã ngôn ngữ được đặt trước dấu-, không có khoảng trắng, ví dụ:-de. - Quy tắc loại trừ mã ngôn ngữ mới đối với lệnh đầu tiên, bắt đầu bằng
!lint, được đặt trước bởi-!, không có khoảng trắng, ví dụ:-!de. - Thêm mã ngôn ngữ mới vào dòng bắt đầu bằng
translate : build_po_translations. - Thêm mã ngôn ngữ mới vào dòng bắt đầu bằng
translate : update_machine_translations - Một lệnh mới, bắt đầu bằng, ví dụ như
de : build_md_translationscho tiếng Đức, được sắp xếp theo thứ tự bảng chữ cái trong danh sách các lệnh dành riêng cho ngôn ngữ hiện có và có nội dung tương ứng với các lệnh đó, kèm theo mã ngôn ngữ mới. - Thêm mã ngôn ngữ mới vào dòng bắt đầu bằng
all:.
Cập nhật config.yml¶
Thêm ngôn ngữ vào config.yml để nó xuất hiện trong trình chọn ngôn ngữ ở đầu
trang. Tìm phần bắt đầu bằng extra:, sau đó tìm phần con bắt đầu bằng
alternate:. Đối với tiếng Đức, bạn cần thêm đoạn sau:
- name: Deutsch
link: /de/
lang: de
Tên ngôn ngữ cần được dịch sang ngôn ngữ đó. Liên kết phải bao gồm các dấu /.
Chạy tox translate¶
Bây giờ bạn có thể chạy tox -e docs-translate. Thao tác này sẽ tạo ra một tệp
dịch trống; nếu bạn có tài khoản DeepL, bạn có thể sử dụng tài khoản đó để điền
các bản dịch máy ban đầu. Nếu bạn không có tài khoản DeepL, cũng không sao —
chúng tôi sẽ tự thực hiện các bản dịch ban đầu trước khi chấp nhận yêu cầu pull.
Hướng dẫn dịch thuật¶
Sau khi bạn đã được thêm vào nhóm, đã đến lúc đăng nhập vào Weblate và bắt đầu dịch các chuỗi văn bản.
Dịch theo ngữ cảnh so với dịch từng từ¶
Việc giữ nguyên giọng điệu của bản gốc tiếng Anh quan trọng hơn là cố gắng dịch từng từ một. Chúng tôi cố gắng viết nội dung một cách thân thiện và hơi mang tính khẩu ngữ; mong bạn cũng cố gắng giữ nguyên tinh thần đó trong bản dịch của mình.
Nếu văn bản tiếng Anh chứa một thành ngữ tiếng Anh mang tính đặc trưng mạnh mẽ, đừng cảm thấy bắt buộc phải giữ nguyên thành ngữ đó nếu trong ngôn ngữ của bạn có một cách diễn đạt tương đương mà vẫn truyền tải ý nghĩa tốt không kém. Nếu thuật ngữ hoặc cụm từ trong văn bản tiếng Anh là một thành ngữ hoặc từ lóng đặc biệt, đừng ngần ngại đề xuất với chúng tôi rằng nên xem xét điều chỉnh. Ngay cả với người nói tiếng Anh, thành ngữ và từ lóng cũng có thể gây khó khăn. Đôi khi chúng tôi cần điều chỉnh văn bản tiếng Anh để làm cho nó dễ hiểu hơn cho cả người dịch lẫn người đọc.
Tôi có nên dịch nó không?¶
Các mục sau đây không nên được dịch hoặc cập nhật:
- Lệnh. Ví dụ, trong câu "Bạn nên chạy `briefcase create`.", chỉ phần "Bạn nên chạy" mới cần được dịch.
- Không gian tên, chẳng hạn như tên lớp, phương thức hoặc thuộc tính.
- URL liên kết. Các liên kết Markdown tiêu chuẩn nên được hiển thị trong
Weblate dưới dạng
[Link text]{1}, trong đó1là vị trí của liên kết trong chuỗi so với các liên kết khác có thể có. Nếu URL đầy đủ được bao gồm trong chuỗi, như[Link text](https://example.com/), thì URL đó nên được bỏ qua khi dịch. -
Các liên kết tham chiếu chứa tên lớp, phương thức hoặc thuộc tính. Những liên kết này nên được giữ nguyên, bao gồm cả dấu gạch chéo ngược. Mọi phần của liên kết ví dụ được hiển thị ở đây sẽ không được dịch.
[`Class.attribute`][Class.attribute] -
Nội dung của một liên kết tham chiếu. Ví dụ,
link-contentsẽ bị bỏ qua trong đoạn sau:[Nội dung liên kết][link-content] -
Hướng dẫn Jinja. Đây là bất kỳ nội dung nào được bao bọc bởi hai cặp dấu ngoặc nhọn đối xứng, hoặc một cặp dấu ngoặc nhọn đơn đối xứng có chứa ký hiệu phần trăm ở mỗi đầu. Lưu ý: Việc đưa ví dụ về cú pháp vào đây sẽ khiến plugin Macros cố gắng hiển thị nó; hãy xem tài liệu về Macros để tham khảo các ví dụ.
- Điểm neo tùy chỉnh. Chúng thường xuất hiện sau các tiêu đề hoặc phía trên
một số nội dung, và được định dạng dưới dạng
{ #anchor }. -
Cấu trúc câu cảnh báo. Trong ví dụ sau, từ "cảnh báo" không nên được dịch. Quy tắc này áp dụng cho tất cả các dạng cảnh báo, bao gồm chú thích, cảnh báo, v.v. Vui lòng tham khảo phần tiếp theo để biết thông tin về cách dịch phần nội dung còn lại.
/// admonition | Tiêu đề trang Nội dung. /// -
Dấu nháy đơn. Chúng được thiết kế để hiển thị dưới dạng dấu nháy đơn; chúng được sử dụng để định dạng cả mã trong dòng và khối mã.
- Cú pháp để nhúng nội dung bên ngoài. Đây là bất kỳ nội dung nào nằm trên
cùng một dòng với
-8<-, hoặc nằm trên các dòng nằm giữa hai cặp-8<-trên các dòng riêng biệt.
Các mục sau đây nên được dịch:
- Văn bản liên kết. Trong cú pháp liên kết, văn bản được đặt trước URL và
được bao quanh bởi dấu ngoặc nhọn, như
[Link text](URL). Các liên kết Markdown tiêu chuẩn nên xuất hiện trong Weblate dưới dạng[Link text]{1}, trong đó1là vị trí của liên kết trong chuỗi văn bản so với các liên kết khác có thể có. -
Văn bản liên kết tham chiếu. Ví dụ:
Link textsẽ được dịch như sau:[Nội dung liên kết][link-content] -
Tiêu đề và nội dung của lời khuyên. Trong ví dụ về lời khuyên trước đó, "Tiêu đề trang" và "Nội dung" cần được dịch.
Weblate¶
Chúng tôi sử dụng Weblate để dịch nội dung. Khi thêm bản dịch mới, chúng tôi sử dụng DeepL để dịch máy nhằm tạo ra bản dịch sơ bộ. Điều đó có nghĩa là, thông thường, nội dung mà bạn sẽ dịch đã được dịch máy sẵn. Chúng tôi mong rằng bạn, với tư cách là người dịch, sẽ rà soát, chỉnh sửa và hoàn thiện bản dịch máy hiện có.
Weblate xử lý mọi thứ theo từng chuỗi. Hệ thống sẽ gom các thay đổi lại và cứ sau vài giờ, nó sẽ gửi một bản cập nhật hàng loạt bao gồm tất cả các chuỗi đã thay đổi trong khoảng thời gian đó. Do đó, có thể mất vài giờ để các thay đổi của bạn hiển thị trên trang web, nhưng bạn có thể mong đợi bản cập nhật sẽ xuất hiện trong vòng bốn giờ.
Nếu sau khoảng thời gian đó, các thay đổi của bạn vẫn chưa hiển thị, nguyên nhân có thể là do lỗi định dạng, dẫn đến việc quá trình biên dịch tài liệu cho ngôn ngữ đó bị lỗi. Bất kỳ lỗi định dạng nào trong bất kỳ chuỗi văn bản nào cũng sẽ ngăn toàn bộ bản dịch được công khai. Bạn có thể theo dõi trang biên dịch của ngôn ngữ mình để xem liệu quá trình biên dịch đã thành công hay chưa. Liên kết được định dạng tương tự như liên kết này đến trang xây dựng tiếng Pháp https://app.readthedocs.org/projects/beeware-docs-tools/; hãy thay đổi mã ngôn ngữ thành ngôn ngữ của bạn để xem trang xây dựng tương ứng. Điều này sẽ hiển thị trạng thái của bản xây dựng mới nhất của trang web. Nếu quá trình xây dựng thất bại, hãy xem nhật ký xây dựng và xem liệu bạn có thể xác định được nguyên nhân của vấn đề hay không.