Quốc tế hóa

Một phần của tài liệu Tìm hiểu ODOO FRAMEWORK và xây dựng ứng dụng thương mại điện tử WEBSITE EPIC furniture (báo cáo cuối kì đồ án 1) (Trang 178 - 180)

III. Xây dựng mô-đun – Building modules

12. Quốc tế hóa

Mỗi mô-đun có thể cung cấp các bản dịch riêng trong thư mục i18n, bằng cách đặt tên là LANG.po trong đó LANG là mã ngôn ngữ cho ngôn ngữ hoặc kết hợp ngôn ngữ và quốc gia khi chúng khác nhau (ví dụ: pt.po hoặc pt_BR.po). Bản dịch sẽ được Odoo tải tự động cho tất cả các ngôn ngữ đã bật. Các nhà phát triển luôn sử dụng tiếng Anh khi tạo mô-đun, sau đó xuất các thuật ngữ mô-đun bằng tính năng xuất POT gettext của Odoo (Settings ‣ Translations ‣ Import/Export ‣ Export Translation mà không cần chỉ định ngôn ngữ), để tạo tệp POT mẫu mô-đun, sau đó lấy các tệp PO đã dịch. Nhiều IDE có các plugin hoặc chế độ để chỉnh sửa và hợp nhất các tệp PO / POT.

Mẹo

Các tệp Đối tượng di động do Odoo tạo ra được xuất bản trên Transifex, giúp dễ dàng dịch phần mềm.

|- idea/ # The module directory |- i18n/ # Translation files

| - idea.pot # Translation Template (exported from Odoo) | - fr.po # French translation

| - pt_BR.po # Brazilian Portuguese translation | (...)

Mẹo

Theo mặc định, xuất POT của Odoo chỉ trích xuất nhãn bên trong tệp XML hoặc định nghĩa trường bên trong trong mã Python, nhưng bất kỳ chuỗi Python nào cũng có thể được dịch theo cách này bằng cách bao quanh nó với hàm odoo._() (ví dụ: . _("Label"))

Bài tập

Dịch mô-đun

Chọn ngôn ngữ thứ hai để cài đặt Odoo của bạn. Dịch mô-đun của bạn bằng cách sử dụng các cơ sở do Odoo cung cấp.

13. Báo cáo

Báo cáo in

Odoo sử dụng một công cụ báo cáo dựa trên QWeb, Twitter Bootstrap

Wkhtmltopdf.

Báo cáo là sự kết hợp của hai yếu tố:

● ir.actions.report cấu hình các tham số cơ bản khác nhau cho báo cáo (loại mặc định, cho dù báo cáo nên được lưu vào cơ sở dữ liệu sau khi tạo,...)

<fieldname="model">account.invoice</field>

<fieldname="report_type">qweb-pdf</field>

<fieldname="report_name">account.report_invoice</field>

<fieldname="report_file">account.report_invoice</field>

<fieldname="attachment_use"eval="True"/>

<fieldname="attachment">(object.state in ('open','paid')) and ● ('INV'+(object.number or '').replace('/','')+'.pdf')</field>

<fieldname="binding_model_id"ref="model_account_invoice"/>

<fieldname="binding_type">report</field>

</record>

Mẹo

Bởi vì nó lớn hơn một hành động tiêu chuẩn, như với Wizards, thường hữu ích khi thêm báo cáo dưới dạng mục theo ngữ cảnh trên cây và / hoặc chế độ xem biểu mẫu của mô hình được báo cáo thông qua trường binding_model_id .

Ở đây chúng tôi cũng đang sử dụng binding_type để báo cáo nằm trong menu ngữ cảnh báo cáo thay vì báo cáo hành động. Không có sự khác biệt kỹ thuật nhưng đặt các yếu tố vào đúng nơi giúp người dùng.

● Chế độ xem QWeb tiêu chuẩn cho báo cáo thực tế: ● <tt-call="web.html_container">

<tt-foreach="docs"t-as="o">

<tt-call="web.external_layout">

<divclass="page">

<h2>Report title</h2>

</div>

</t>

</t>

</t>

bối cảnh kết xuất tiêu chuẩn cung cấp một số yếu tố, quan trọng nhất là:

docs

hồ sơ mà báo cáo được in

user

người dùng in báo cáo

Vì báo cáo là các trang web tiêu chuẩn, chúng có sẵn thông qua URL và các tham số đầu ra có thể được thao tác thông qua URL này, ví dụ: phiên bản HTML của báo cáo Hóa đơn có sẵn

thông qua http://localhost:8069/report/html/account.report_invoice/1 (nếu tài khoản được

cài đặt) và phiên bản PDF thông qua

http://localhost:8069/report/pdf/account.report_invoice/1.

Nguy hiểm

Nếu có vẻ như báo cáo PDF của bạn bị thiếu các kiểu (tức là văn bản xuất hiện nhưng kiểu / bố cục khác với phiên bản html), có lẽ quy trình wkhtmltopdf của bạn không thể truy cập máy chủ web của bạn để tải xuống.

Nếu bạn kiểm tra nhật ký máy chủ của mình và thấy rằng các kiểu CSS không được tải xuống khi tạo báo cáo PDF, chắc chắn đây là vấn đề.

Quá trình wkhtmltopdf sẽ sử dụng tham số hệ thống web.base.url làm đường dẫn gốc cho

tấtcả các tệp được liên kết, nhưng tham số này được tự động cập nhật mỗi khi Quản trị viên đăng

nhập. Nếu máy chủ của bạn nằm phía sau một số loại proxy, điều đó không thể đạt được. Bạn có thể khắc phục điều này bằng cách thêm một trong các tham số hệ thống:

● report.url, trỏ đến URL có thể tiếp cận từ máy chủ của bạn (có thể là http://localhost:8069

hoặcmột cái gì đó tương tự). Nó sẽ chỉ được sử dụng cho mục đích cụ thể này.

● web.base.url.freeze, khi được đặt thành True,sẽ dừng cập nhật tự động choweb.base.url.

Bài tập

Tạo báo cáo cho mô hình Phiên

Đối với mỗi phiên, nó sẽ hiển thị tên của phiên, bắt đầu và kết thúc và liệt kê những người tham dự phiên.

Dashboards

Bài tập

Xác định Bảng điều khiển

Xác định bảng thông tin chứa dạng xem biểu đồ bạn đã tạo, dạng xem lịch phiên và dạng xem danh sách của các khóa học (có thể chuyển sang dạng xem biểu mẫu). Bảng điều khiển này sẽ có sẵn thông qua menuitem trong menu và tự động hiển thị trong máy khách web khi menu chính OpenAcademy được chọn.

Một phần của tài liệu Tìm hiểu ODOO FRAMEWORK và xây dựng ứng dụng thương mại điện tử WEBSITE EPIC furniture (báo cáo cuối kì đồ án 1) (Trang 178 - 180)

Tải bản đầy đủ (PDF)

(183 trang)