ترجمهها¶
با Odoo میتوانید وبسایت خود را به زبانهای مختلف ترجمه کنید.
در این فصل خواهید آموخت چگونه:
محتوای یک ماژول را ترجمه کنید.
وارد و خارج کردن (import/export) ترجمهها.
ادغام ترجمهها در یک ماژول.
Frontend¶
برای ترجمهٔ صفحات خود با ابزار ساخت وبسایت، به وبسایتتان بروید و روی انتخابگر زبان کلیک کنید تا به آن سوییچ کنید. اگر وبسایت شما هرگز به زبان هدف ترجمه نشده است، روی Add a language... کلیک کنید، در پنجرهٔ بازشده آن را انتخاب کرده و روی Add کلیک کنید.
برای شروع ترجمه، روی Translate کلیک کنید. بسته به زبان، برخی از متون بهطور خودکار ترجمه و با رنگ سبز برجسته میشوند، در حالی که هر چیزی که باید بهصورت دستی ترجمه شود با رنگ زرد برجسته میشود.
با این حال، باید بدانید که هنگام ترجمهٔ چیزی از طریق ابزار ساخت وبسایت، پشت پرده چه اتفاقی میافتد.
صفحات پیشفرض¶
Odoo پس از نصب اپلیکیشن وبسایت، یک نمای پایه (base view) ایجاد میکند. اگر صفحه را با ابزار ساخت ویرایش کنید، یک نمای تکثیرشده (duplicated view) ایجاد خواهد شد و همهٔ تغییرات شما (و ترجمههایتان نیز) در آن ذخیره میشود. تنها استثنا، صفحهٔ اصلی (homepage) است (بهطور پیشفرض، Odoo حتی پیش از آنکه چیزی را ویرایش کنید، یک نمای پایه و یک نمای تکثیرشده ایجاد میکند).
توصیه میکنیم در ترتیب انجام ترجمهها یا تغییرات در زبان مبدأ بسیار دقت کنید، چه صفحه را از طریق ابزار ساخت وبسایت ساخته باشید و چه از طریق کد منبع با یک رکورد. توجه داشته باشید که هر تغییر در زبان مبدأ (Edit master) لینک میان زبان مبدأ و ترجمههای موجود را خراب خواهد کرد. به عبارت دیگر، اگر زبان مبدأ را ویرایش کنید، باید ترجمهها را دوباره ایجاد کنید.
رشتههای قابلترجمه¶
t-att- / t-attf-¶
اگر میخواهید یک رشتهٔ قابلترجمه تنظیم کنید، تا حد ممکن از t-attf- بهجای t-att- استفاده کنید.
مثال
برای نوشتن "Hello username"، میتوانید این کار را به روش زیر انجام دهید:
<div t-attf-title="Hello #{user.name}" />
هشدار
همچنین میتوانید همان نتیجه را با t-att-title بهصورت مثال زیر به دست آورید. با این حال، نتیجه بهطور بومی (natively) بهعنوان یک رشتهٔ قابلترجمه در نظر گرفته نمیشود:
<div t-att-title="'Hello' + user.name" />
استثنا: t-value / t-valuef¶
t-value و t-valuef کمی متفاوتاند. هیچکدام بهطور صریح قابلترجمه نیستند، پس میتوانید چیزی شبیه این بنویسید:
<t t-set="additional_title">My Page Title Shown in the Browser Tab</t>
از آنجا که در زمینهٔ XML مینویسیم، متنی که میان دو تگ XML قرار دارد قابلترجمه است.
ترکیب موارد قابلترجمه و غیرقابلترجمه¶
در شرایطی که نیاز داریم متن قابلترجمه را تنها در یک مکان واحد تنظیم کنیم:
<t t-set="label">Foo</t>
و سپس نیاز داریم آن را در مکانهای مختلف فراخوانی کنیم:
<div t-att-title="label" />
...
<nav t-att-title="label" />
در اینجا تنها محتوای قابلترجمه را در یک ویژگی (attribute) غیرقابلترجمه (t-att-title) فراخوانی کردیم. بنابراین t-att-title قابلترجمه نیست، اما متغیر castشده قابلترجمه است.
t-call¶
چون میتوان پارامترها را به یک t-call پاس داد، میتوان تابع *.translate را فراخوانی کرد تا مقدار آن قابلترجمه شود.
<t t-call="website.layout" additional_title.translate="My Page" />
همچنین ببینید
Backend¶
ترجمهٔ صفحات بهطور مستقیم از backend به شما این امکان را میدهد که چند زبان را بهصورت همزمان ترجمه کنید. برای این کار، به بروید، نام صفحهای را که میخواهید ترجمه کنید جستجو کنید و روی دکمهٔ Edit Translations کلیک کنید.
صدور¶
پس از پایان ترجمه، باید ترجمهها را برای ادغام در ماژول خود export کنید. برای export یکجای همه چیز، پایگاهدادهٔ خود را باز کنید، developer mode را فعال کنید و به بروید. Language که ترجمه کردهاید را انتخاب کنید، در File Format گزینهٔ PO File و در Apps To Export گزینهٔ website_airproof را انتخاب کنید.
فایل را دانلود کنید و آن را به پوشهٔ i18n منتقل کنید. در صورت نیاز، میتوانید فایل .po را بعداً بهصورت دستی ویرایش کنید.
فایل PO¶
میتوانید مستقیماً با ویرایش یک فایل .po یا با ایجاد خود فایل، ترجمه را انجام دهید. برای نوشتن ترجمههای خود، مستندات ترجمهٔ ماژولها را ببینید.
/website_airproof/i18n/fr_BE.po¶#. module: website_airproof
#: model_terms:ir.ui.view,arch_db:website_airproof.s_custom_snippet
msgid "..."
msgstr "..."
وارد کردن¶
برای import فایلهای ترجمهٔ خود به Odoo، به بروید و آنها را بارگذاری کنید.