Bản dịch¶
Với Odoo, bạn có thể dịch website của mình sang các ngôn ngữ khác nhau.
Trong chương này, bạn sẽ học cách:
Dịch nội dung của một module.
Nhập và xuất bản dịch.
Tích hợp bản dịch vào một module.
Frontend¶
Để dịch các trang của bạn bằng Website Builder, hãy vào website của bạn và nhấp vào bộ chọn ngôn ngữ để chuyển sang ngôn ngữ đó. Nếu website của bạn chưa từng được dịch sang ngôn ngữ đích, hãy nhấp vào Add a language..., chọn ngôn ngữ đó trong cửa sổ popup, và nhấp vào Add.
Nhấp vào Translate để bắt đầu dịch. Tùy thuộc vào ngôn ngữ, một số văn bản sẽ được tự động dịch và tô sáng màu xanh lá, trong khi tất cả những gì cần được dịch thủ công sẽ được tô sáng màu vàng.
Tuy nhiên, bạn cần hiểu điều gì đang xảy ra bên trong khi bạn dịch một thứ gì đó thông qua Website Builder.
Trang mặc định¶
Odoo tạo ra một view gốc ngay khi Website được cài đặt. Nếu bạn chỉnh sửa trang bằng Builder, một view nhân bản sẽ được tạo ra và tất cả các sửa đổi của bạn sẽ được lưu vào view này (và cả các bản dịch của bạn cũng vậy). Ngoại lệ duy nhất liên quan đến trang chủ (theo mặc định, Odoo tạo ra một view gốc và một view nhân bản ngay cả trước khi bạn chỉnh sửa bất cứ điều gì).
Chúng tôi khuyến nghị bạn nên hết sức cẩn thận về thứ tự thực hiện các bản dịch hoặc sửa đổi trong ngôn ngữ nguồn, cho dù bạn đã tạo trang thông qua Website Builder hay thông qua mã nguồn bằng một bản ghi. Lưu ý rằng mỗi sửa đổi trong ngôn ngữ nguồn (Edit master) sẽ phá vỡ liên kết giữa ngôn ngữ nguồn và các bản dịch hiện có. Nói cách khác, bạn sẽ phải tạo lại bản dịch nếu bạn chỉnh sửa ngôn ngữ nguồn.
Chuỗi có thể dịch¶
t-att- / t-attf-¶
Nếu bạn muốn thiết lập một chuỗi có thể dịch, nên ưu tiên sử dụng t-attf- thay vì t-att- bất cứ khi nào có thể.
Ví dụ
Để viết “Xin chào username”, bạn có thể làm theo cách sau:
<div t-attf-title="Hello #{user.name}" />
Cảnh báo
Bạn cũng có thể đạt được kết quả tương tự với t-att-title như ví dụ dưới đây. Tuy nhiên, kết quả này sẽ không được coi là một chuỗi có thể dịch một cách tự nhiên:
<div t-att-title="'Hello' + user.name" />
Ngoại lệ: t-value / t-valuef¶
t-value và t-valuef có phần khác biệt. Không cái nào trong hai cái này có thể dịch một cách rõ ràng, vì vậy bạn có thể viết một cái gì đó như sau:
<t t-set=”additional_title”>My Page Title Shown in the Browser Tab</t>
Vì chúng ta đang viết trong ngữ cảnh XML, văn bản nằm giữa hai tag XML có thể được dịch.
Kết hợp nội dung có thể dịch và không thể dịch¶
Trong tình huống chúng ta cần thiết lập một đoạn văn bản có thể dịch ở duy nhất một nơi:
<t t-set=”title”>Foo</t>
Và sau đó chúng ta cần gọi nó ở nhiều vị trí khác nhau:
<div t-att-title=”label” />
...
<nav t-att-title=”label” />
Ở đây, chúng ta chỉ gọi nội dung có thể dịch vào một thuộc tính không thể dịch (t-att-title). Vì vậy, t-att-title không thể dịch được, nhưng biến được truyền vào thì có thể.
Backend¶
Việc dịch các trang trực tiếp từ backend cho phép bạn dịch nhiều ngôn ngữ cùng một lúc. Để làm điều này, hãy vào , tìm kiếm tên của trang bạn muốn dịch, và nhấp vào nút Edit Translations.
Xuất¶
Sau khi hoàn tất việc dịch, bạn cần xuất các bản dịch để tích hợp chúng vào module của mình. Để xuất tất cả cùng một lúc, hãy mở database của bạn, kích hoạt chế độ nhà phát triển, và vào . Chọn Language mà bạn đã dịch, PO File dưới File Format, và website_airproof làm Apps To Export.
Tải file xuống và di chuyển nó vào thư mục i18n. Nếu cần, bạn có thể chỉnh sửa file .po theo cách thủ công sau đó.
File PO¶
Bạn có thể dịch trực tiếp bằng cách chỉnh sửa file .po hoặc tự tạo file đó. Hãy xem tài liệu dịch module để viết các bản dịch của bạn.
/website_coconuts/i18n/fr_BE.po¶#. module: website_airproof
#: model_terms:ir.ui.view,arch_db:website_airproof.s_custom_snippet
msgid "..."
msgstr "..."
Nhập¶
Để nhập các file bản dịch của bạn vào Odoo, hãy vào và tải chúng lên.