diff --git a/addons/account/i18n/account.pot b/addons/account/i18n/account.pot index 555709f28f9c0..ed48c8c088f0d 100644 --- a/addons/account/i18n/account.pot +++ b/addons/account/i18n/account.pot @@ -199,6 +199,8 @@ msgstr "" #: code:addons/account/models/account_account.py:0 #: code:addons/account/models/account_journal.py:0 #: code:addons/account/models/account_reconcile_model.py:0 +#: code:addons/account/models/account_payment_term.py:0 +#, python-format msgid "%s (copy)" msgstr "" diff --git a/addons/account/i18n/ar.po b/addons/account/i18n/ar.po index 90f6b39955e52..85ce0fd7d0c08 100644 --- a/addons/account/i18n/ar.po +++ b/addons/account/i18n/ar.po @@ -6,8 +6,8 @@ # Mustafa Rawi , 2024 # Martin Trigaux, 2024 # Ibrahim Elnahas, 2024 -# Malaz Abuidris , 2025 # Wil Odoo, 2025 +# Malaz Abuidris , 2025 # msgid "" msgstr "" @@ -15,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:22+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2025\n" +"Last-Translator: Malaz Abuidris , 2025\n" "Language-Team: Arabic (https://app.transifex.com/odoo/teams/41243/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -145,6 +145,7 @@ msgid "" "%(attachment_name)s (detached by %(user)s on " "%(date)s)%(attachment_extension)s" msgstr "" +"%(attachment_name)s (مفصول بـ %(user)s في %(date)s)%(attachment_extension)s " #. module: account #. odoo-python @@ -617,6 +618,37 @@ msgid "" "\n" " " msgstr "" +"
\n" +"

\n" +" عزيزنا\n" +" \n" +" براندن فريمان (Azure Interior)،\n" +" \n" +" \n" +" براندن فريمان،\n" +" \n" +"

\n" +" إليك\n" +" \n" +" إشعار الدائن الخاص بك RINV/2021/05/0001\n" +" \n" +" \n" +" الإشعار الدائن\n" +" \n" +" \n" +" (مع المرجع: SUB003)\n" +" \n" +" والذي تبلغ قيمته $ 143,750.00\n" +" من شركتك.\n" +"

\n" +" لا تتردد في التواصل معنا إدا كانت لديك أي أسئلة أو استفسارات.\n" +" \n" +"

\n" +" --
ميتشل آدمن
\n" +"
\n" +"

\n" +"
\n" +" " #. module: account #: model:mail.template,body_html:account.email_template_edi_invoice @@ -741,6 +773,22 @@ msgid "" "

\n" "\n" msgstr "" +"
\n" +"

\n" +" عزيزي Azure Interior

\n" +" شركراً لإتمامك لعملية الدفع.\n" +" إليك إيصال الدفع BNK1-2021-05-0002 الذي تبلغ قيمته\n" +" $ 10.00 من شركتك.\n" +"

\n" +" لا تتردد في التواصل معنا إذا كانت لديك أي أسئلة أو استفسارات.\n" +"

\n" +" مع تحيات،\n" +" \n" +"

\n" +" --
ميتشل آدمن
\n" +"
\n" +"

\n" +"
\n" #. module: account #: model_terms:ir.ui.view,arch_db:account.portal_my_home_menu_invoice @@ -1850,7 +1898,7 @@ msgstr "حساب الدائن " #. module: account #: model:ir.model.fields,field_description:account.field_account_analytic_applicability__account_prefix_placeholder msgid "Account Prefix Placeholder" -msgstr "" +msgstr "العنصر النائب لبادئة الحساب " #. module: account #: model_terms:ir.ui.view,arch_db:account.view_category_property_form @@ -2955,6 +3003,8 @@ msgid "" "in accordance with its journal sequence. This lock date is irreversible and " "does not allow any exception." msgstr "" +"سيتم تأجيل أي قيد حتى ذلك التاريخ إلى وقت لاحق، وفقًا لتسلسل دفتر اليومية " +"الخاص به. لا يمكن التراجع عن تاريخ القفل هذا ولا يسمح بأي استثناء. " #. module: account #: model:ir.model.fields,help:account.field_res_company__fiscalyear_lock_date @@ -2962,6 +3012,8 @@ msgid "" "Any entry up to and including that date will be postponed to a later time, " "in accordance with its journal's sequence." msgstr "" +"أي قيد إلى ذلك التاريخ سيتم تأجيله إلى وقت لاحق، وفقًا لتسلسله في دفتر " +"اليومية. " #. module: account #: model:ir.model.fields,help:account.field_res_company__tax_lock_date @@ -2997,6 +3049,8 @@ msgid "" "Any purchase entry prior to and including this date will be postponed to a " "later date, in accordance with its journal's sequence." msgstr "" +"أي قيد شراء قبل ذلك التاريخ سيتم تأجيله إلى تاريخ لاحق، وفقاً لتسلسله في " +"دفتر اليومية. " #. module: account #: model:ir.model.fields,help:account.field_res_company__sale_lock_date @@ -3004,6 +3058,8 @@ msgid "" "Any sales entry prior to and including this date will be postponed to a " "later date, in accordance with its journal's sequence." msgstr "" +"أي قيد بيع قبل ذلك التاريخ سيتم تأجيله إلى تاريخ لاحق، وفقاً لتسلسله في دفتر" +" اليومية. " #. module: account #: model:ir.model.fields,field_description:account.field_account_account_tag__applicability @@ -3963,7 +4019,7 @@ msgstr "لا يمكن إنشاء مستند مبيعات في دفتر يومي #. odoo-python #: code:addons/account/wizard/accrued_orders.py:0 msgid "Cannot create an accrual entry with orders in different currencies." -msgstr "" +msgstr "لا يمكن إنشاء قيد استحقاق بأوامر ذات عملات مختلفة. " #. module: account #. odoo-python @@ -7183,7 +7239,7 @@ msgstr "النوع" #. odoo-javascript #: code:addons/account/static/src/js/tours/account.js:0 msgid "Fill in the details of the product or see the suggestion." -msgstr "" +msgstr "املأ تفاصيل المنتج أو اطلع على الاقتراح. " #. module: account #: model:ir.model.fields,field_description:account.field_account_report__filter_fiscal_position @@ -7194,7 +7250,7 @@ msgstr "تصفية الضرائب المتعددة " #. odoo-python #: code:addons/account/models/account_root.py:0 msgid "Filter on the Account or its Display Name instead" -msgstr "" +msgstr "قم بالتصفية على الحساب أو اسم العرض الخاص به عوضاً عن ذلك " #. module: account #: model:ir.model.fields,field_description:account.field_account_analytic_line__general_account_id @@ -7205,7 +7261,7 @@ msgstr "الحساب المالي" #. module: account #: model:ir.model.fields,field_description:account.field_account_analytic_applicability__account_prefix msgid "Financial Accounts Prefixes" -msgstr "" +msgstr "بادئات الحسابات المالية " #. module: account #: model:ir.model.fields,field_description:account.field_account_analytic_line__journal_id @@ -10510,7 +10566,7 @@ msgstr "تنقل بسهولة عبر التقارير واقرأ ما بين ا #: model:ir.model.fields.selection,name:account.selection__account_cash_rounding__rounding_method__half-up #: model:ir.model.fields.selection,name:account.selection__account_report__integer_rounding__half-up msgid "Nearest" -msgstr "" +msgstr "الأقرب " #. module: account #: model:ir.model.fields,field_description:account.field_account_bank_statement_line__need_cancel_request @@ -13810,7 +13866,7 @@ msgstr "حدد سعراً. " #: model:ir.model.fields,help:account.field_res_partner__use_partner_credit_limit #: model:ir.model.fields,help:account.field_res_users__use_partner_credit_limit msgid "Set a value greater than 0.0 to activate a credit limit check" -msgstr "" +msgstr "قم بتعيين قيمة أكبر من 0.0 لتفعيل التحقق من حد الائتمان " #. module: account #: model:ir.model.fields,help:account.field_account_account_tag__active @@ -14853,6 +14909,8 @@ msgid "" "The %s chart template shouldn't be selected directly. Instead, you should " "directly select the chart template related to your country." msgstr "" +"يجب ألا يتم تحديد قالب المخطط %sمباشرة. عوضاً عن ذلك، عليك تحديد قالب المخطط" +" المتعلق بدولتك مباشرةً. " #. module: account #. odoo-python diff --git a/addons/account/i18n/az.po b/addons/account/i18n/az.po index afce445819d25..29741051850a8 100644 --- a/addons/account/i18n/az.po +++ b/addons/account/i18n/az.po @@ -471,7 +471,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:account.document_tax_totals_template #: model_terms:ir.ui.view,arch_db:account.report_invoice_document msgid "27.00" -msgstr "" +msgstr "27.00" #. module: account #: model_terms:ir.ui.view,arch_db:account.report_invoice_document @@ -503,7 +503,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:account.document_tax_totals_template #: model_terms:ir.ui.view,arch_db:account.report_invoice_document msgid "31.05" -msgstr "" +msgstr "31.05" #. module: account #: model_terms:ir.ui.view,arch_db:account.document_tax_totals_company_currency_template @@ -3264,7 +3264,7 @@ msgstr "" #. module: account #: model_terms:ir.ui.view,arch_db:account.report_invoice_document msgid "Bacon Burger" -msgstr "" +msgstr "Bekon Burger" #. module: account #: model:ir.model.fields.selection,name:account.selection__res_partner__trust__bad @@ -4085,7 +4085,7 @@ msgstr "Nağd pul : Balans" #. module: account #: model_terms:ir.ui.view,arch_db:account.view_move_form msgid "Catalog" -msgstr "" +msgstr "Kataloq" #. module: account #: model:ir.model.fields,field_description:account.field_account_analytic_line__category @@ -4408,7 +4408,7 @@ msgstr "Kommunikasiyanın Tipi" #. module: account #: model_terms:ir.ui.view,arch_db:account.portal_invoice_page msgid "Communication history" -msgstr "" +msgstr "Kommunikasiya tarixçəsi" #. module: account #: model:ir.model,name:account.model_res_company @@ -5758,7 +5758,7 @@ msgstr "Defolt Satış Vergisi" #: model:ir.model.fields,field_description:account.field_res_company__account_price_include #: model:ir.model.fields,field_description:account.field_res_config_settings__account_price_include msgid "Default Sales Price Include" -msgstr "" +msgstr "Defolt Satış Qiymətinə Daxildir" #. module: account #: model:ir.model.fields,field_description:account.field_account_account__tax_ids @@ -5802,6 +5802,8 @@ msgid "" "Default on whether the sales price used on the product and invoices with " "this Company includes its taxes." msgstr "" +"Bu Şirkətlə məhsul və fakturalarda istifadə edilən satış qiymətinə onun " +"vergilərinin daxil olub-olmaması ilə bağlı defolt." #. module: account #: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form @@ -5900,7 +5902,7 @@ msgstr "Çatdırılma Ünvanı" #: model:ir.model.fields,field_description:account.field_account_bank_statement_line__delivery_date #: model:ir.model.fields,field_description:account.field_account_move__delivery_date msgid "Delivery Date" -msgstr "" +msgstr "Çatdırılma tarixi" #. module: account #: model:account.account.tag,name:account.demo_ceo_wages_account @@ -6055,7 +6057,7 @@ msgstr "Endirim" #. module: account #: model:ir.model.fields,field_description:account.field_account_payment_term__discount_percentage msgid "Discount %" -msgstr "" +msgstr "Endirim %" #. module: account #: model:ir.model.fields,field_description:account.field_account_move_line__discount @@ -6279,7 +6281,7 @@ msgstr "" #: model:ir.model.fields,field_description:account.field_account_move_line__distribution_analytic_account_ids #: model:ir.model.fields,field_description:account.field_account_reconcile_model_line__distribution_analytic_account_ids msgid "Distribution Analytic Account" -msgstr "" +msgstr "Dağıtım Analitik Hesabı" #. module: account #: model:ir.model.fields,field_description:account.field_account_tax__invoice_repartition_line_ids @@ -6525,7 +6527,7 @@ msgstr "" #. module: account #: model_terms:ir.ui.view,arch_db:account.view_move_form msgid "Duplicated Documents" -msgstr "" +msgstr "Dublikat sənədlər" #. module: account #: model_terms:ir.ui.view,arch_db:account.view_account_payment_form @@ -7704,7 +7706,7 @@ msgstr "" #: model:ir.model.fields,field_description:account.field_account_bank_statement_line__show_update_fpos #: model:ir.model.fields,field_description:account.field_account_move__show_update_fpos msgid "Has Fiscal Position Changed" -msgstr "" +msgstr "Fiskal Mövqeyi Dəyişdi" #. module: account #: model:ir.model.fields,field_description:account.field_account_setup_bank_manual_config__has_iban_warning @@ -9855,7 +9857,7 @@ msgstr "İdarəetmə" #: model:account.payment.method,name:account.account_payment_method_manual_in #: model:account.payment.method,name:account.account_payment_method_manual_out msgid "Manual Payment" -msgstr "" +msgstr "Manual Ödəniş" #. module: account #. odoo-python @@ -10522,7 +10524,7 @@ msgstr "" #. odoo-python #: code:addons/account/models/account_journal.py:0 msgid "No attachment was provided" -msgstr "" +msgstr "Heç bir əlavə təmin edilmədi" #. module: account #. odoo-python @@ -10933,7 +10935,7 @@ msgstr "" #. module: account #: model:ir.ui.menu,name:account.root_payment_menu msgid "Online Payments" -msgstr "" +msgstr "Onlayn ödənişlər" #. module: account #: model:ir.model.fields,field_description:account.field_account_report__only_tax_exigible @@ -11432,7 +11434,7 @@ msgstr "" #: model:ir.model.fields,field_description:account.field_account_bank_statement_line__partner_credit_warning #: model:ir.model.fields,field_description:account.field_account_move__partner_credit_warning msgid "Partner Credit Warning" -msgstr "" +msgstr "Partnyor Kredit Xəbərdarlığı" #. module: account #: model:ir.actions.act_window,name:account.action_account_moves_ledger_partner @@ -13396,7 +13398,7 @@ msgstr "" #. module: account #: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form msgid "Sell and purchase products in different units of measure" -msgstr "" +msgstr "Məhsulları müxtəlif ölçü vahidlərində satmaq və almaq" #. module: account #: model:ir.model.fields.selection,name:account.selection__account_payment__payment_type__outbound @@ -14201,7 +14203,7 @@ msgstr "Vergi" #: model_terms:ir.ui.view,arch_db:account.document_tax_totals_template #: model_terms:ir.ui.view,arch_db:account.report_invoice_document msgid "Tax 15%" -msgstr "" +msgstr "Vergi 15%" #. module: account #: model:ir.model.fields,field_description:account.field_account_tax_group__advance_tax_payment_account_id diff --git a/addons/account/i18n/el.po b/addons/account/i18n/el.po index 5f7e49ac30642..67c28265749a8 100644 --- a/addons/account/i18n/el.po +++ b/addons/account/i18n/el.po @@ -20,14 +20,14 @@ # Martin Trigaux, 2024 # George Tarasidis , 2024 # Leonidas Chiotis, 2025 -# Maria Chalepiadou, 2025 # Charalampos Loukas, 2025 # Iasonas Polydoros , 2025 # Kostas Goutoudis , 2025 # Agapi Psyllou, 2025 # Gerasimos Kanelatos, 2025 -# Anastasia Mimou, 2025 # Larissa Manderfeld, 2025 +# Anastasia Mimou, 2025 +# Maria Chalepiadou, 2025 # msgid "" msgstr "" @@ -35,7 +35,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:22+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Larissa Manderfeld, 2025\n" +"Last-Translator: Maria Chalepiadou, 2025\n" "Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -7528,7 +7528,7 @@ msgstr "" #. odoo-python #: code:addons/account/models/account_journal.py:0 msgid "Generated Documents" -msgstr "" +msgstr "Δημιουργήθηκαν Έγγραφα" #. module: account #. odoo-python @@ -7584,7 +7584,7 @@ msgstr "Καλός Οφειλέτης" #: model:ir.model.fields.selection,name:account.selection__account_tax__tax_scope__consu #: model_terms:ir.ui.view,arch_db:account.view_account_tax_search msgid "Goods" -msgstr "" +msgstr "Εμπορεύματα" #. module: account #: model:ir.model.fields,field_description:account.field_account_account__group_id @@ -7776,7 +7776,7 @@ msgstr "" #. module: account #: model:ir.model.fields,field_description:account.field_account_report__filter_hide_0_lines msgid "Hide lines at 0" -msgstr "" +msgstr "Απόκρυψη γραμμών στο 0" #. module: account #: model:ir.model.fields,help:account.field_account_secure_entries_wizard__max_hash_date @@ -8632,7 +8632,7 @@ msgstr "" #. module: account #: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_payment msgid "Invoice Online Payment" -msgstr "" +msgstr "Online Πληρωμή Τιμολογίου" #. module: account #: model:ir.model.fields,field_description:account.field_account_bank_statement_line__invoice_outstanding_credits_debits_widget @@ -10854,7 +10854,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_onboarding_onboarding_step msgid "Onboarding Step" -msgstr "" +msgstr "Βήμα Εγγραφής" #. module: account #. odoo-javascript @@ -10891,7 +10891,7 @@ msgstr "" #. module: account #: model:ir.ui.menu,name:account.root_payment_menu msgid "Online Payments" -msgstr "" +msgstr "Online Πληρωμές" #. module: account #: model:ir.model.fields,field_description:account.field_account_report__only_tax_exigible @@ -13980,7 +13980,7 @@ msgstr "" #. module: account #: model:onboarding.onboarding.step,done_text:account.onboarding_onboarding_step_sales_tax msgid "Step Completed!" -msgstr "" +msgstr "Βήμα Ολοκληρωμένο!" #. module: account #: model:onboarding.onboarding.step,done_text:account.onboarding_onboarding_step_fiscal_year diff --git a/addons/account/i18n/fa.po b/addons/account/i18n/fa.po index e2eaa80443e61..81cb6df210791 100644 --- a/addons/account/i18n/fa.po +++ b/addons/account/i18n/fa.po @@ -119,7 +119,7 @@ msgstr "%(action)s برای روزنامه %(journal)s" #. odoo-python #: code:addons/account/models/product.py:0 msgid "%(amount)s Excl. Taxes" -msgstr "1%(amount)s به استثنای مالیات" +msgstr "1%(amount)s بدون مالیات" #. module: account #. odoo-python diff --git a/addons/account/i18n/ja.po b/addons/account/i18n/ja.po index e580d1468fb1d..af70b527469c5 100644 --- a/addons/account/i18n/ja.po +++ b/addons/account/i18n/ja.po @@ -714,7 +714,7 @@ msgstr "" "

\n" " 以下に請求書をお送りします。\n" " \n" -" 請求書 INV/2021/05/0005\n" +" 請求書番号 INV/2021/05/0005\n" " \n" " \n" " 請求書\n" @@ -722,16 +722,16 @@ msgstr "" " \n" " (参照番号: SUB003)\n" " \n" -" 金額 $ 143,750.00\n" -" YourCompany.\n" +" 請求金額: $ 143,750.00\n" +" 発行元: YourCompany.\n" " \n" -" この請求書はすでに支払済です。\n" +" この請求書はすでにお支払済です。\n" " \n" " \n" -" 早急にお支払いをお願い致します。\n" +" お手数をおかけいたしますが、お支払いのお手続きをお願いいたします。\n" " \n" "

\n" -" お支払いの際には以下の番号をご利用下さい: INV/2021/05/0005\n" +" お支払い・お問合せの際には以下の番号をご使用下さい: INV/2021/05/0005\n" " \n" " アカウント \n" " \n" @@ -740,7 +740,7 @@ msgstr "" "
\n" " \n" "

\n" -" PS: タイムシートを ポータルよりご覧になれます。\n" +" 追伸: タイムシートを ポータルよりご確認頂けます。\n" "
\n" "

\n" " ご質問がございましたら、お気軽にお問合せ下さい。\n" @@ -1518,7 +1518,7 @@ msgstr "外国VATが含まれる会計ポジションは、すでにこの地区 msgid "" "A journal entry consists of several journal items, each of\n" " which is either a debit or a credit transaction." -msgstr "1つの仕訳には複数の仕訳項目が含まれ、それらは借方又は貸方のいずれかです。" +msgstr "1つの仕訳には複数の仕訳明細が含まれ、それらは借方又は貸方のいずれかです。" #. module: account #: model_terms:ir.actions.act_window,help:account.action_account_journal_form @@ -5236,7 +5236,7 @@ msgstr "クレジットカード" #. module: account #: model:ir.model.fields,help:account.field_account_move_line__matched_credit_ids msgid "Credit journal items that are matched with this journal item." -msgstr "この仕訳項目とマッチしている貸方仕訳項目。" +msgstr "この仕訳明細とマッチしている貸方仕訳明細。" #. module: account #: model:ir.model.fields,help:account.field_res_partner__credit_limit @@ -5323,12 +5323,12 @@ msgstr "QRコードの生成には通貨の指定が必要となります" #. module: account #: model:ir.model.fields,field_description:account.field_account_partial_reconcile__credit_currency_id msgid "Currency of the credit journal item." -msgstr "貸方仕訳項目の通貨。" +msgstr "貸方仕訳明細の通貨。" #. module: account #: model:ir.model.fields,field_description:account.field_account_partial_reconcile__debit_currency_id msgid "Currency of the debit journal item." -msgstr "借方仕訳項目の通貨。" +msgstr "借方仕訳明細の通貨。" #. module: account #: model:ir.model.fields,help:account.field_account_bank_statement_line__invoice_currency_rate @@ -5696,7 +5696,7 @@ msgstr "借方移動" #. module: account #: model:ir.model.fields,help:account.field_account_move_line__matched_debit_ids msgid "Debit journal items that are matched with this journal item." -msgstr "この仕訳項目とマッチしている借方仕訳項目。" +msgstr "この仕訳明細に対応する借方仕訳明細。" #. module: account #: model:ir.model.fields.selection,name:account.selection__res_company__fiscalyear_last_month__12 @@ -7396,7 +7396,7 @@ msgstr "税金を価格込みの税金として管理するように強制しま msgid "" "Forces all journal items in this account to have a specific currency (i.e. " "bank journals). If no currency is set, entries can use any currency." -msgstr "この勘定科目での全ての仕訳項目 (例: 銀行仕訳)を特定通貨を使用させます。通貨が設定されていない場合は、任意の通貨が使用できます。" +msgstr "この勘定科目での全ての仕訳明細 (例: 銀行仕訳)を特定通貨を使用させます。通貨が設定されていない場合は、任意の通貨が使用できます。" #. module: account #: model:ir.model.fields,field_description:account.field_account_bank_statement_line__foreign_currency_id @@ -8183,7 +8183,7 @@ msgstr "勘定科目表にテンプレートをインポート" #. odoo-python #: code:addons/account/models/account_move_line.py:0 msgid "Import Template for Journal Items" -msgstr "仕訳項目にテンプレートをインポート" +msgstr "仕訳明細にテンプレートをインポート" #. module: account #: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_bank_statement_import_csv @@ -8889,7 +8889,7 @@ msgstr "確認待ち請求書" #: model:ir.model.fields,help:account.field_account_payment__reconciled_bill_ids #: model:ir.model.fields,help:account.field_account_payment__reconciled_invoice_ids msgid "Invoices whose journal items have been reconciled with these payments." -msgstr "仕訳項目がこれらの支払と消込された請求書。" +msgstr "仕訳明細がこれらの支払と消込された請求書。" #. module: account #. odoo-python @@ -9213,7 +9213,7 @@ msgstr "仕訳入力情報" #: model_terms:ir.ui.view,arch_db:account.view_account_move_line_payment_filter #: model_terms:ir.ui.view,arch_db:account.view_move_line_form msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: account #. odoo-python @@ -9231,7 +9231,7 @@ msgstr "仕訳帳項目 %s が削除されました" #. odoo-python #: code:addons/account/models/account_move_line.py:0 msgid "Journal Item %s updated" -msgstr "仕訳項目 %s 更新済" +msgstr "仕訳明細 %s 更新済" #. module: account #: model:ir.model.fields,field_description:account.field_account_payment_register__writeoff_label @@ -9257,7 +9257,7 @@ msgstr "仕訳明細ラベル" #: model_terms:ir.ui.view,arch_db:account.view_move_line_pivot #: model_terms:ir.ui.view,arch_db:account.view_move_line_tree msgid "Journal Items" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: account #: model:ir.model.fields,field_description:account.field_account_journal__name @@ -9278,12 +9278,12 @@ msgstr "会社毎に、仕訳コードは一意であることが必要です。 #. module: account #: model:ir.model.fields,field_description:account.field_account_payment_register__line_ids msgid "Journal items" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: account #: model_terms:ir.ui.view,arch_db:account.view_account_move_line_filter msgid "Journal items where matching number isn't set" -msgstr "突合番号が設定されていない仕訳項目" +msgstr "突合番号が設定されていない仕訳明細" #. module: account #: model_terms:ir.ui.view,arch_db:account.view_account_move_line_filter @@ -9991,7 +9991,7 @@ msgstr "一致する借方" #: model:ir.model.fields,field_description:account.field_account_full_reconcile__reconciled_line_ids #: model_terms:ir.ui.view,arch_db:account.view_full_reconcile_form msgid "Matched Journal Items" -msgstr "一致する仕訳項目" +msgstr "一致する仕訳明細" #. module: account #: model:ir.model.fields,field_description:account.field_account_bank_statement_line__matched_payment_ids @@ -12010,7 +12010,7 @@ msgstr "記帳済仕訳" #: model_terms:ir.ui.view,arch_db:account.view_account_move_line_filter #: model_terms:ir.ui.view,arch_db:account.view_account_move_line_payment_filter msgid "Posted Journal Items" -msgstr "記帳済仕訳項目" +msgstr "記帳済仕訳明細" #. module: account #: model:ir.model.fields,field_description:account.field_account_tax_group__preceding_subtotal @@ -13200,7 +13200,7 @@ msgstr "請求書検索" #: model_terms:ir.ui.view,arch_db:account.view_account_move_line_filter #: model_terms:ir.ui.view,arch_db:account.view_account_move_line_payment_filter msgid "Search Journal Items" -msgstr "仕訳項目を検索" +msgstr "仕訳明細を検索" #. module: account #: model:ir.model.fields,field_description:account.field_account_reconcile_model__past_months_limit @@ -13826,7 +13826,7 @@ msgstr "一部のドキュメントはすでに別の処理で送信されてい msgid "" "Some journal items already exist in this journal but with other accounts " "than the allowed ones." -msgstr "一部の仕訳項目は既にこの仕訳に存在しているが、許可勘定科目ではなく他の勘定科目にリンクています。" +msgstr "一部の仕訳明細は既にこの仕訳に存在しているが、許可勘定科目ではなく他の勘定科目にリンクています。" #. module: account #. odoo-python @@ -13834,7 +13834,7 @@ msgstr "一部の仕訳項目は既にこの仕訳に存在しているが、許 msgid "" "Some journal items already exist with this account but in other journals " "than the allowed ones." -msgstr "一部の仕訳項目は既にこの勘定科目に存在しているが、許可済仕訳ではなく他の仕訳にリンクています。" +msgstr "一部の仕訳明細は既にこの勘定科目に存在しているが、許可済仕訳ではなく他の仕訳にリンクています。" #. module: account #. odoo-python @@ -14480,7 +14480,7 @@ msgstr "顧客請求書にも現地通貨で税金が表示されます。" msgid "" "Taxes exigible on payment and on invoice cannot be mixed on the same journal" " item if they share some tag." -msgstr "支払時に適用される税金と請求時に適用される税金は、タグを共有している場合、同じ仕訳項目で混在することはできません。" +msgstr "支払時に適用される税金と請求時に適用される税金は、タグを共有している場合、同じ仕訳明細で混在することはできません。" #. module: account #: model:ir.model.fields,field_description:account.field_res_company__display_invoice_tax_company_currency @@ -15166,7 +15166,7 @@ msgstr "請求書をアップロードする仕訳は特定されてません。 #. odoo-python #: code:addons/account/models/account_analytic_line.py:0 msgid "The journal item is not linked to the correct financial account" -msgstr "仕訳項目が正しい会計勘定科目にリンクされていません" +msgstr "仕訳明細が正しい会計勘定科目にリンクされていません" #. module: account #: model:ir.model.fields,help:account.field_account_financial_year_op__fiscalyear_last_day @@ -15403,13 +15403,13 @@ msgstr "要求されたページは無効であるか、もう存在しません msgid "" "The residual amount on a journal item expressed in its currency (possibly " "not the company currency)." -msgstr "選択された通貨で表示される仕訳項目の残額 (会社の通貨ではない可能性があります)。" +msgstr "選択された通貨で表示される仕訳明細の残額 (会社の通貨ではない可能性があります)。" #. module: account #: model:ir.model.fields,help:account.field_account_move_line__amount_residual msgid "" "The residual amount on a journal item expressed in the company currency." -msgstr "会社通貨で表示される仕訳項目の残額。" +msgstr "会社通貨で表示される仕訳明細の残額。" #. module: account #. odoo-python @@ -15632,7 +15632,7 @@ msgstr "ハッシュ化できない仕訳があります。 それらはハー #. odoo-python #: code:addons/account/wizard/account_validate_account_move.py:0 msgid "There are no journal items in the draft state to post." -msgstr "記入できるドラフト状態の仕訳項目はありません。" +msgstr "記入できるドラフト状態の仕訳明細はありません。" #. module: account #. odoo-python @@ -15821,7 +15821,7 @@ msgstr "これは勘定科目のみで使用できます。" #. odoo-python #: code:addons/account/wizard/account_automatic_entry_wizard.py:0 msgid "This can only be used on journal items" -msgstr "これは仕訳項目のみに使用できます" +msgstr "これは仕訳明細のみに使用できます" #. module: account #. odoo-python @@ -16056,7 +16056,7 @@ msgstr "このウィザードは、選択されたすべてのジャーナルエ msgid "" "Those can be used to quickly create a journal items when reconciling\n" " a bank statement or an account." -msgstr "銀行取引明細書又は勘定科目を消込時に、それらを使って素早く仕訳項目を作成できます。" +msgstr "銀行取引明細書又は勘定科目を消込時に、それらを使って素早く仕訳明細を作成できます。" #. module: account #: model:ir.model.fields,help:account.field_account_merge_wizard__is_group_by_name @@ -16353,12 +16353,12 @@ msgstr "取引フィード" #: model:ir.model.fields,field_description:account.field_account_bank_statement_line__transaction_type #: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_transaction_type msgid "Transaction Type" -msgstr "トランザクションタイプ" +msgstr "取引タイプ" #. module: account #: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_transaction_type_param msgid "Transaction Type Parameter" -msgstr "トランザクションタイプパラメータ" +msgstr "取引タイプパラメータ" #. module: account #: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view @@ -16379,7 +16379,7 @@ msgstr "振替日" #. module: account #: model:ir.actions.act_window,name:account.account_automatic_entry_wizard_action msgid "Transfer Journal Items" -msgstr "仕訳項目を振替" +msgstr "仕訳明細を振替" #. module: account #. odoo-python @@ -16891,7 +16891,7 @@ msgstr "金額を表すユーティリティ項目" msgid "" "Utility field to express whether the journal item is subject to storno " "accounting" -msgstr "仕訳項目はStorno会計の対象かどうかを設定するユーティリティフィールド" +msgstr "仕訳明細はStorno会計の対象かどうかを設定するユーティリティフィールド" #. module: account #: model:ir.model.fields,field_description:account.field_account_fiscal_position__vat_required @@ -17356,7 +17356,7 @@ msgstr "まだ消込していない項目のみ期間/アカウントを変更 #. odoo-python #: code:addons/account/wizard/account_automatic_entry_wizard.py:0 msgid "You can only change the period/account for posted journal items." -msgstr "記帳済仕訳項目のみに期間・勘定科目を変更することができます。" +msgstr "記帳済仕訳明細のみに期間・勘定科目を変更することができます。" #. module: account #. odoo-python @@ -17415,7 +17415,7 @@ msgstr "支払済顧客請求書をブロックすることはできません。 msgid "" "You can't change the company of your journal since there are some journal " "entries linked to it." -msgstr "いくつかの仕訳項目と紐付けられているため、仕訳の会社を変更することはできません。" +msgstr "いくつかの仕訳明細と紐付けられているため、仕訳の会社を変更することはできません。" #. module: account #. odoo-python @@ -17423,7 +17423,7 @@ msgstr "いくつかの仕訳項目と紐付けられているため、仕訳の msgid "" "You can't change the company of your tax since there are some journal items " "linked to it." -msgstr "いくつかの仕訳項目と紐付けられているため、税の会社を変更することはできません。" +msgstr "いくつかの仕訳明細と紐付けられているため、税の会社を変更することはできません。" #. module: account #. odoo-python @@ -17463,7 +17463,7 @@ msgstr "別の会社に属するエントリの支払いを作成することは msgid "" "You can't delete a posted journal item. Don’t play games with your " "accounting records; reset the journal entry to draft before deleting it." -msgstr "計上した仕訳項目を削除することはできません。仕訳をドラフトに戻してから削除して下さい。" +msgstr "計上した仕訳明細を削除することはできません。仕訳をドラフトに戻してから削除して下さい。" #. module: account #. odoo-python @@ -17516,7 +17516,7 @@ msgstr "外貨を指定せずに、外国通貨での金額を指定すること msgid "" "You can't register a payment because there is nothing left to pay on the " "selected journal items." -msgstr "選択した仕訳項目に支払う金額が残っていないため、支払登録できません。" +msgstr "選択した仕訳明細に支払う金額が残っていないため、支払登録できません。" #. module: account #. odoo-python @@ -17555,7 +17555,7 @@ msgstr "これ以前の仕訳の追加・変更はできません: %(lock_date_i msgid "" "You cannot change the currency of the company since some journal items " "already exist" -msgstr "いくつかの仕訳項目が既に存在しているため、会社の通貨を変更することはできません" +msgstr "いくつかの仕訳明細が既に存在しているため、会社の通貨を変更することはできません" #. module: account #. odoo-python @@ -17770,7 +17770,7 @@ msgstr "転記された仕訳に関連する税金を変更することはでき #: code:addons/account/models/account_account.py:0 msgid "" "You cannot perform this action on an account that contains journal items." -msgstr "仕訳項目が含まれている勘定科目に対して、このアクションを実行することはできません。" +msgstr "仕訳明細が含まれている勘定科目に対して、このアクションを実行することはできません。" #. module: account #. odoo-python diff --git a/addons/account/i18n/nl.po b/addons/account/i18n/nl.po index 56eacef5b61fe..b6711db42a508 100644 --- a/addons/account/i18n/nl.po +++ b/addons/account/i18n/nl.po @@ -92,7 +92,7 @@ msgstr " voor '%s'" #. odoo-python #: code:addons/account/models/account_lock_exception.py:0 msgid " valid until %s" -msgstr " geldig tot %s" +msgstr " geldig t/m %s" #. module: account #: model:ir.model.fields,field_description:account.field_account_payment__reconciled_bills_count @@ -3322,7 +3322,7 @@ msgstr "Facturen automatisch boeken" #: model:ir.model.fields,field_description:account.field_account_bank_statement_line__auto_post_until #: model:ir.model.fields,field_description:account.field_account_move__auto_post_until msgid "Auto-post until" -msgstr "Automatisch boeken tot" +msgstr "Automatisch boeken t/m" #. module: account #: model:ir.model.fields,field_description:account.field_account_reconcile_model__auto_reconcile @@ -11813,7 +11813,7 @@ msgstr "Kredietwaarschuwing partner" #. module: account #: model:ir.actions.act_window,name:account.action_account_moves_ledger_partner msgid "Partner Ledger" -msgstr "Grootboek Partner" +msgstr "Grootboek partner" #. module: account #: model:ir.model.fields,field_description:account.field_res_partner__use_partner_credit_limit diff --git a/addons/account/models/account_payment_term.py b/addons/account/models/account_payment_term.py index 28f23c3d2056f..795aee57947b9 100644 --- a/addons/account/models/account_payment_term.py +++ b/addons/account/models/account_payment_term.py @@ -265,6 +265,12 @@ def _get_last_discount_date_formatted(self, date_ref): return None return format_date(self.env, self._get_last_discount_date(date_ref)) + def copy(self, default=None): + default = dict(default or {}) + default['name'] = _('%s (copy)', self.name) + return super().copy(default) + + class AccountPaymentTermLine(models.Model): _name = "account.payment.term.line" _description = "Payment Terms Line" diff --git a/addons/account/models/account_tax.py b/addons/account/models/account_tax.py index d2e2581feb0bb..7beab0b69f077 100644 --- a/addons/account/models/account_tax.py +++ b/addons/account/models/account_tax.py @@ -2201,31 +2201,22 @@ def tax_group_grouping_function(base_line, tax_data): }) # Subtotals. - def subtotal_grouping_function(base_line, tax_data): - return tax_data['tax'].tax_group_id.preceding_subtotal or untaxed_amount_subtotal_label + if not subtotals: + subtotals[untaxed_amount_subtotal_label] - base_lines_aggregated_values = self._aggregate_base_lines_tax_details(base_lines, subtotal_grouping_function) - values_per_grouping_key = self._aggregate_base_lines_aggregated_values(base_lines_aggregated_values) - for preceding_subtotal, values in values_per_grouping_key.items(): - preceding_subtotal = preceding_subtotal or untaxed_amount_subtotal_label - subtotal = subtotals[preceding_subtotal] - is_first_preceding_subtotal = ( - preceding_subtotal == untaxed_amount_subtotal_label - or ( - untaxed_amount_subtotal_label not in subtotals_order - and subtotals_order[preceding_subtotal] == 0 - ) - ) - if is_first_preceding_subtotal: - # The first subtotal is always the base of the whole document. - subtotal['base_amount_currency'] += values['total_excluded_currency'] - subtotal['base_amount'] += values['total_excluded'] - else: - # Otherwise, it's the base of the first tax in the group. - subtotal['base_amount_currency'] += values['base_amount_currency'] - subtotal['base_amount'] += values['base_amount'] - subtotal['tax_amount_currency'] += values['tax_amount_currency'] - subtotal['tax_amount'] += values['tax_amount'] + ordered_subtotals = sorted(subtotals.items(), key=lambda item: subtotals_order.get(item[0], 0)) + accumulated_tax_amount_currency = 0.0 + accumulated_tax_amount = 0.0 + for subtotal_label, subtotal in ordered_subtotals: + subtotal['name'] = subtotal_label + subtotal['base_amount_currency'] = tax_totals_summary['base_amount_currency'] + accumulated_tax_amount_currency + subtotal['base_amount'] = tax_totals_summary['base_amount'] + accumulated_tax_amount + for tax_group in subtotal['tax_groups']: + subtotal['tax_amount_currency'] += tax_group['tax_amount_currency'] + subtotal['tax_amount'] += tax_group['tax_amount'] + accumulated_tax_amount_currency += tax_group['tax_amount_currency'] + accumulated_tax_amount += tax_group['tax_amount'] + tax_totals_summary['subtotals'].append(subtotal) # Cash rounding cash_rounding_lines = [base_line for base_line in base_lines if base_line['special_type'] == 'cash_rounding'] @@ -2262,7 +2253,7 @@ def subtotal_grouping_function(base_line, tax_data): max_subtotal, max_tax_group = max( [ (subtotal, tax_group) - for subtotal in subtotals.values() + for subtotal in tax_totals_summary['subtotals'] for tax_group in subtotal['tax_groups'] ], key=lambda item: item[1]['tax_amount_currency'], @@ -2274,12 +2265,6 @@ def subtotal_grouping_function(base_line, tax_data): tax_totals_summary['tax_amount_currency'] += cash_rounding_base_amount_currency tax_totals_summary['tax_amount'] += cash_rounding_base_amount - # Flat the subtotals. - ordered_subtotals = sorted(subtotals.items(), key=lambda item: subtotals_order.get(item[0], 0)) - for subtotal_label, subtotal in ordered_subtotals: - subtotal['name'] = subtotal_label - tax_totals_summary['subtotals'].append(subtotal) - # Subtract the cash rounding from the untaxed amounts. cash_rounding_base_amount_currency = tax_totals_summary.get('cash_rounding_base_amount_currency', 0.0) cash_rounding_base_amount = tax_totals_summary.get('cash_rounding_base_amount', 0.0) diff --git a/addons/account/static/src/helpers/account_tax.js b/addons/account/static/src/helpers/account_tax.js index 072604038f8c6..80a23692ba6af 100644 --- a/addons/account/static/src/helpers/account_tax.js +++ b/addons/account/static/src/helpers/account_tax.js @@ -970,39 +970,31 @@ export const accountTaxHelpers = { } // Subtotals. - const subtotal_grouping_function = (base_line, tax_data) => - tax_data.tax.tax_group_id.preceding_subtotal || untaxed_amount_subtotal_label; - - base_lines_aggregated_values = this.aggregate_base_lines_tax_details(base_lines, subtotal_grouping_function); - values_per_grouping_key = this.aggregate_base_lines_aggregated_values(base_lines_aggregated_values); + if (!Object.keys(subtotals).length) { + subtotals[untaxed_amount_subtotal_label] = { + tax_groups: [], + tax_amount_currency: 0.0, + tax_amount: 0.0, + base_amount_currency: 0.0, + base_amount: 0.0, + }; + } - for (const values of Object.values(values_per_grouping_key)) { - const preceding_subtotal = values.grouping_key || untaxed_amount_subtotal_label; - if (!(preceding_subtotal in subtotals)) { - subtotals[preceding_subtotal] = { - tax_groups: [], - tax_amount_currency: 0.0, - tax_amount: 0.0, - base_amount_currency: 0.0, - base_amount: 0.0, - }; - } - const is_first_preceding_subtotal = - preceding_subtotal === untaxed_amount_subtotal_label || - (!(untaxed_amount_subtotal_label in subtotals_order) && - subtotals_order[preceding_subtotal] === 0); - const subtotal = subtotals[preceding_subtotal]; - if (is_first_preceding_subtotal) { - // The first subtotal is always the base of the whole document. - subtotal.base_amount_currency += values.total_excluded_currency; - subtotal.base_amount += values.total_excluded; - } else { - // Otherwise, it's the base of the first tax in the group. - subtotal.base_amount_currency += values.base_amount_currency; - subtotal.base_amount += values.base_amount; + const ordered_subtotals = Array.from(Object.entries(subtotals)) + .sort((a, b) => (subtotals_order[a[0]] || 0) - (subtotals_order[b[0]] || 0)); + let accumulated_tax_amount_currency = 0.0; + let accumulated_tax_amount = 0.0; + for (const [subtotal_label, subtotal] of ordered_subtotals) { + subtotal.name = subtotal_label; + subtotal.base_amount_currency = tax_totals_summary.base_amount_currency + accumulated_tax_amount_currency; + subtotal.base_amount = tax_totals_summary.base_amount + accumulated_tax_amount; + for (const tax_group of subtotal.tax_groups) { + subtotal.tax_amount_currency += tax_group.tax_amount_currency; + subtotal.tax_amount += tax_group.tax_amount; + accumulated_tax_amount_currency += tax_group.tax_amount_currency; + accumulated_tax_amount += tax_group.tax_amount; } - subtotal.tax_amount_currency += values.tax_amount_currency; - subtotal.tax_amount += values.tax_amount; + tax_totals_summary.subtotals.push(subtotal); } // Cash rounding @@ -1034,7 +1026,7 @@ export const accountTaxHelpers = { subtotals[untaxed_amount_subtotal_label].base_amount_currency += cash_rounding_base_amount_currency; subtotals[untaxed_amount_subtotal_label].base_amount += cash_rounding_base_amount; } else if (strategy === 'biggest_tax') { - const [max_subtotal, max_tax_group] = Array.from(Object.values(subtotals)) + const [max_subtotal, max_tax_group] = tax_totals_summary.subtotals .flatMap(subtotal => subtotal.tax_groups.map(tax_group => [subtotal, tax_group])) .reduce((a, b) => (b[1].tax_amount_currency > a[1].tax_amount_currency ? b : a)); @@ -1048,14 +1040,6 @@ export const accountTaxHelpers = { } } - // Flat the subtotals. - const ordered_subtotals = Array.from(Object.entries(subtotals)) - .sort((a, b) => (subtotals_order[a[0]] || 0) - (subtotals_order[b[0]] || 0)); - ordered_subtotals.forEach(([subtotal_label, subtotal]) => { - subtotal.name = subtotal_label; - tax_totals_summary.subtotals.push(subtotal); - }); - // Subtract the cash rounding from the untaxed amounts. const cash_rounding_base_amount_currency = tax_totals_summary.cash_rounding_base_amount_currency || 0.0; const cash_rounding_base_amount = tax_totals_summary.cash_rounding_base_amount || 0.0; diff --git a/addons/account/tests/test_taxes_tax_totals_summary.py b/addons/account/tests/test_taxes_tax_totals_summary.py index 22e2d8f628ef1..2d545ee9c1aa0 100644 --- a/addons/account/tests/test_taxes_tax_totals_summary.py +++ b/addons/account/tests/test_taxes_tax_totals_summary.py @@ -1969,7 +1969,7 @@ def _test_preceding_subtotal(self): 'subtotals': [ { 'name': "Untaxed Amount", - 'base_amount_currency': 1300.0, + 'base_amount_currency': 3300.0, 'tax_amount_currency': 126.0, 'tax_groups': [ { @@ -1982,7 +1982,7 @@ def _test_preceding_subtotal(self): }, { 'name': "PRE GROUP 1", - 'base_amount_currency': 1200.0, + 'base_amount_currency': 3426.0, 'tax_amount_currency': 120.0, 'tax_groups': [ { @@ -1995,7 +1995,7 @@ def _test_preceding_subtotal(self): }, { 'name': "PRE GROUP 2", - 'base_amount_currency': 1200.0, + 'base_amount_currency': 3546.0, 'tax_amount_currency': 300.0, 'tax_groups': [ { @@ -2033,7 +2033,7 @@ def _test_preceding_subtotal(self): 'subtotals': [ { 'name': "Untaxed Amount", - 'base_amount_currency': 1200.0, + 'base_amount_currency': 1500.0, 'tax_amount_currency': 360.0, 'tax_groups': [ { @@ -2046,7 +2046,7 @@ def _test_preceding_subtotal(self): }, { 'name': "PRE GROUP 1", - 'base_amount_currency': 500.0, + 'base_amount_currency': 1860.0, 'tax_amount_currency': 82.0, 'tax_groups': [ { @@ -2065,7 +2065,7 @@ def _test_preceding_subtotal(self): }, { 'name': "PRE GROUP 2", - 'base_amount_currency': 300.0, + 'base_amount_currency': 1942.0, 'tax_amount_currency': -75.0, 'tax_groups': [ { @@ -2124,7 +2124,7 @@ def _test_preceding_subtotal_with_tax_group(self): }, { 'name': "Tax withholding", - 'base_amount_currency': 100.0, + 'base_amount_currency': 110.0, 'tax_amount_currency': -47.0, 'tax_groups': [ { diff --git a/addons/account_edi_ubl_cii/i18n/ar.po b/addons/account_edi_ubl_cii/i18n/ar.po index 1cb0297c91a5d..077ab9e491838 100644 --- a/addons/account_edi_ubl_cii/i18n/ar.po +++ b/addons/account_edi_ubl_cii/i18n/ar.po @@ -130,7 +130,7 @@ msgstr "Belgian Company Registry" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9925 msgid "Belgian VAT number" -msgstr "" +msgstr "Belgian VAT number" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9924 @@ -266,7 +266,7 @@ msgstr "Denmark CVR" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__0096 msgid "Denmark P" -msgstr "" +msgstr "Denmark P" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__0198 @@ -517,7 +517,7 @@ msgstr "Lithuania VAT" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9938 msgid "Luxembourg VAT" -msgstr "" +msgstr "Luxembourg VAT" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9942 @@ -604,7 +604,7 @@ msgstr "Peppol e-address (EAS)" #. odoo-python #: code:addons/account_edi_ubl_cii/models/account_move_send.py:0 msgid "Please fill in partner's VAT or Peppol Address." -msgstr "" +msgstr "Please fill in partner's VAT or Peppol Address." #. module: account_edi_ubl_cii #. odoo-python @@ -613,6 +613,8 @@ msgid "" "Please fill in your company's VAT or Peppol Address to generate a complete " "XML file." msgstr "" +"Please fill in your company's VAT or Peppol Address to generate a complete " +"XML file." #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9945 diff --git a/addons/account_edi_ubl_cii/i18n/es.po b/addons/account_edi_ubl_cii/i18n/es.po index 41d980bff4823..abff95e23c627 100644 --- a/addons/account_edi_ubl_cii/i18n/es.po +++ b/addons/account_edi_ubl_cii/i18n/es.po @@ -611,6 +611,8 @@ msgstr "Dirección electrónica de Peppol (EAS)" #: code:addons/account_edi_ubl_cii/models/account_move_send.py:0 msgid "Please fill in partner's VAT or Peppol Address." msgstr "" +"Introduzca el número de identificación fiscal o la dirección Peppol del " +"contacto" #. module: account_edi_ubl_cii #. odoo-python @@ -619,6 +621,8 @@ msgid "" "Please fill in your company's VAT or Peppol Address to generate a complete " "XML file." msgstr "" +"Introduzca el número de identificación fiscal o la dirección Peppol del " +"contacto para generar un archivo XML completo." #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9945 diff --git a/addons/account_edi_ubl_cii/i18n/es_419.po b/addons/account_edi_ubl_cii/i18n/es_419.po index 313a1e4fc2d28..5eb7f55716472 100644 --- a/addons/account_edi_ubl_cii/i18n/es_419.po +++ b/addons/account_edi_ubl_cii/i18n/es_419.po @@ -3,9 +3,9 @@ # * account_edi_ubl_cii # # Translators: -# Patricia Gutiérrez Capetillo , 2024 # Wil Odoo, 2025 # Fernanda Alvarez, 2025 +# Patricia Gutiérrez Capetillo , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:23+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Fernanda Alvarez, 2025\n" +"Last-Translator: Patricia Gutiérrez Capetillo , 2025\n" "Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -610,6 +610,8 @@ msgstr "Dirección electrónica de Peppol (EAS)" #: code:addons/account_edi_ubl_cii/models/account_move_send.py:0 msgid "Please fill in partner's VAT or Peppol Address." msgstr "" +"Introduzca el número de identificación fiscal o dirección Peppol del " +"contacto." #. module: account_edi_ubl_cii #. odoo-python @@ -618,6 +620,8 @@ msgid "" "Please fill in your company's VAT or Peppol Address to generate a complete " "XML file." msgstr "" +"Introduzca el número de identificación fiscal o dirección Peppol de la " +"empresa para generar un archivo XML completo." #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9945 diff --git a/addons/account_edi_ubl_cii/i18n/nl.po b/addons/account_edi_ubl_cii/i18n/nl.po index 4e0f663a77203..1803182332237 100644 --- a/addons/account_edi_ubl_cii/i18n/nl.po +++ b/addons/account_edi_ubl_cii/i18n/nl.po @@ -607,7 +607,7 @@ msgstr "Peppol e-address (EAS)" #. odoo-python #: code:addons/account_edi_ubl_cii/models/account_move_send.py:0 msgid "Please fill in partner's VAT or Peppol Address." -msgstr "" +msgstr "Vul het BTW- of Peppol-adres van je partner in." #. module: account_edi_ubl_cii #. odoo-python @@ -616,6 +616,8 @@ msgid "" "Please fill in your company's VAT or Peppol Address to generate a complete " "XML file." msgstr "" +"Vul het BTW- of Peppol-adres van je bedrijf in om een ​​compleet XML-bestand" +" te genereren." #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9945 diff --git a/addons/account_edi_ubl_cii/i18n/zh_CN.po b/addons/account_edi_ubl_cii/i18n/zh_CN.po index d40a2b968b630..7337fb18331d9 100644 --- a/addons/account_edi_ubl_cii/i18n/zh_CN.po +++ b/addons/account_edi_ubl_cii/i18n/zh_CN.po @@ -3,7 +3,7 @@ # * account_edi_ubl_cii # # Translators: -# Odoo哥 , 2024 +# 何彬 , 2024 # Wil Odoo, 2025 # Chloe Wang, 2025 # @@ -530,7 +530,7 @@ msgstr "摩纳哥增值税" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9941 msgid "Montenegro VAT" -msgstr "" +msgstr "黑山增值税" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__invoice_edi_format__nlcius @@ -540,17 +540,17 @@ msgstr "NLCIUS" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__0106 msgid "Netherlands KvK" -msgstr "" +msgstr "荷兰 KvK" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__0190 msgid "Netherlands OIN" -msgstr "" +msgstr "荷兰 OIN" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9944 msgid "Netherlands VAT" -msgstr "" +msgstr "荷兰 VAT" #. module: account_edi_ubl_cii #. odoo-python @@ -562,7 +562,7 @@ msgstr "在 xml 内未找到该资料行的总价、净价或资料行小计金 #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__0192 msgid "Norway Org.nr." -msgstr "" +msgstr "挪威组织编号 Org.nr." #. module: account_edi_ubl_cii #: model_terms:ir.ui.view,arch_db:account_edi_ubl_cii.account_invoice_pdfa_3_facturx_metadata @@ -590,7 +590,7 @@ msgstr "Peppol电子地址(EAS)" #. odoo-python #: code:addons/account_edi_ubl_cii/models/account_move_send.py:0 msgid "Please fill in partner's VAT or Peppol Address." -msgstr "" +msgstr "请填写合作伙伴的增值税或 Peppol 地址。" #. module: account_edi_ubl_cii #. odoo-python @@ -598,32 +598,32 @@ msgstr "" msgid "" "Please fill in your company's VAT or Peppol Address to generate a complete " "XML file." -msgstr "" +msgstr "请填写您公司的增值税或 Peppol 地址,以生成完整的 XML 文件。" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9945 msgid "Poland VAT" -msgstr "" +msgstr "波兰增值税" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9946 msgid "Portugal VAT" -msgstr "" +msgstr "葡萄牙增值税" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9947 msgid "Romania VAT" -msgstr "" +msgstr "罗马尼亚增值税" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9918 msgid "S.W.I.F.T" -msgstr "" +msgstr "S.W.I.F.T" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__0142 msgid "SECETI Object Identifiers" -msgstr "" +msgstr "SECETI 对象标识符" #. module: account_edi_ubl_cii #: model:ir.model,name:account_edi_ubl_cii.model_account_edi_xml_ubl_sg @@ -638,22 +638,22 @@ msgstr "SI-UBL 2.0(NLCIUS)" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__0135 msgid "SIA Object Identifiers" -msgstr "" +msgstr "SIA 对象标识符" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9951 msgid "San Marino VAT" -msgstr "" +msgstr "圣马力诺增值税" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9948 msgid "Serbia VAT" -msgstr "" +msgstr "塞尔维亚增值税" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__0195 msgid "Singapore UEN" -msgstr "" +msgstr "新加坡 UEN" #. module: account_edi_ubl_cii #: model:ir.model.fields.selection,name:account_edi_ubl_cii.selection__res_partner__peppol_eas__9950 diff --git a/addons/account_fleet/i18n/ja.po b/addons/account_fleet/i18n/ja.po index aa681ff834585..36ab718249274 100644 --- a/addons/account_fleet/i18n/ja.po +++ b/addons/account_fleet/i18n/ja.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -77,7 +78,7 @@ msgstr "仕訳" #. module: account_fleet #: model:ir.model,name:account_fleet.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: account_fleet #: model:ir.model.fields,field_description:account_fleet.field_account_move_line__need_vehicle diff --git a/addons/account_payment/i18n/az.po b/addons/account_payment/i18n/az.po index 5a61704acfdc5..82500b7b79d98 100644 --- a/addons/account_payment/i18n/az.po +++ b/addons/account_payment/i18n/az.po @@ -5,7 +5,7 @@ # Translators: # erpgo translator , 2024 # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-25 07:48+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -164,17 +164,19 @@ msgid "" "Are you sure you want to void the authorized transaction? This action can't " "be undone." msgstr "" +"Səlahiyyətli tranzaksiyanı ləğv etmək istədiyinizə əminsiniz? Bu əməliyyat " +"geri qaytarıla bilməz." #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_account_bank_statement_line__authorized_transaction_ids #: model:ir.model.fields,field_description:account_payment.field_account_move__authorized_transaction_ids msgid "Authorized Transactions" -msgstr "" +msgstr "Səlahiyyətli Əməliyyatlar" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.account_invoice_view_form_inherit_payment msgid "Capture Transaction" -msgstr "" +msgstr "Tranzaksiyanı ələ keçirin" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.payment_refund_wizard_view_form @@ -253,12 +255,12 @@ msgstr "" #. module: account_payment #: model:ir.model,name:account_payment.model_payment_link_wizard msgid "Generate Sales Payment Link" -msgstr "" +msgstr "Satış Ödəniş Linki yaradın" #. module: account_payment #: model:ir.actions.act_window,name:account_payment.action_invoice_order_generate_link msgid "Generate a Payment Link" -msgstr "" +msgstr "Ödəniş Linki yaradın" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_link_wizard__has_eligible_epd @@ -379,7 +381,7 @@ msgstr "Qeydiyyat Mərhələsi" #. module: account_payment #: model:onboarding.onboarding.step,title:account_payment.onboarding_onboarding_step_payment_provider msgid "Online Payments" -msgstr "" +msgstr "Onlayn ödənişlər" #. module: account_payment #. odoo-python @@ -424,7 +426,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:account_payment.portal_docs_entry #: model_terms:ir.ui.view,arch_db:account_payment.portal_my_invoices_payment msgid "Pay Now" -msgstr "" +msgstr "İndi ödəyin" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.portal_my_invoices_payment @@ -463,7 +465,7 @@ msgstr "Ödəniş Üsulları" #: model:ir.model,name:account_payment.model_payment_provider #: model:ir.model.fields,field_description:account_payment.field_account_payment_method_line__payment_provider_id msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: account_payment #: model:ir.ui.menu,name:account_payment.payment_provider_menu @@ -486,7 +488,7 @@ msgstr "Ödəniş Tokenləri" #: model:ir.model.fields,field_description:account_payment.field_payment_refund_wizard__transaction_id #: model_terms:ir.ui.view,arch_db:account_payment.account_invoice_view_form_inherit_payment msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: account_payment #: model:ir.ui.menu,name:account_payment.payment_transaction_menu @@ -611,7 +613,7 @@ msgstr "" #. odoo-python #: code:addons/account_payment/controllers/payment.py:0 msgid "The provided parameters are invalid." -msgstr "" +msgstr "Təqdim olunan parametrlər etibarsızdır." #. module: account_payment #: model:ir.model.fields,help:account_payment.field_account_payment__source_payment_id @@ -671,7 +673,7 @@ msgstr "" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.account_invoice_view_form_inherit_payment msgid "Void Transaction" -msgstr "" +msgstr "Etibarsız Əməliyyat" #. module: account_payment #. odoo-python diff --git a/addons/account_payment/i18n/el.po b/addons/account_payment/i18n/el.po index cba392049a430..78e3c4ab24054 100644 --- a/addons/account_payment/i18n/el.po +++ b/addons/account_payment/i18n/el.po @@ -115,6 +115,9 @@ msgid "" " Wait a moment for it to be processed. If the refund is still pending in a\n" " few minutes, please check your payment provider configuration." msgstr "" +"Προσοχή! Υπάρχει εκκρεμής επιστροφή χρημάτων για αυτή την πληρωμή.\n" +" Περιμένετε λίγο μέχρι να επεξεργαστεί. Αν η επιστροφή χρημάτων είναι ακόμα εκκρεμής σε\n" +" λίγα λεπτά, παρακαλώ ελέγξτε τη ρύθμιση του παρόχου πληρωμών σας." #. module: account_payment #. odoo-python @@ -133,18 +136,20 @@ msgstr "" #. odoo-python #: code:addons/account_payment/models/account_payment.py:0 msgid "A payment transaction with reference %s already exists." -msgstr "" +msgstr "Η συναλλαγή πληρωμής με αναφορά %sυπάρχει ήδη. " #. module: account_payment #. odoo-python #: code:addons/account_payment/models/account_payment.py:0 msgid "A token is required to create a new payment transaction." msgstr "" +"Απαιτείται ένας κωδικός ασφαλείας για να δημιουργηθεί μια νέα συναλλαγή " +"πληρωμής." #. module: account_payment #: model:onboarding.onboarding.step,button_text:account_payment.onboarding_onboarding_step_payment_provider msgid "Activate Stripe" -msgstr "" +msgstr "Ενεργοποιήστε το Stripe" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_payment @@ -155,7 +160,7 @@ msgstr "Ποσό" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_account_payment__amount_available_for_refund msgid "Amount Available For Refund" -msgstr "" +msgstr "Ποσό Διαθέσιμο για Επιστροφή Χρημάτων" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_link_wizard__invoice_amount_due @@ -166,7 +171,7 @@ msgstr "Οφειλόμενο Ποσό" #: model:ir.model.fields,field_description:account_payment.field_account_bank_statement_line__amount_paid #: model:ir.model.fields,field_description:account_payment.field_account_move__amount_paid msgid "Amount paid" -msgstr "" +msgstr "Ποσό που πληρώθηκε" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.account_invoice_view_form_inherit_payment @@ -174,12 +179,14 @@ msgid "" "Are you sure you want to void the authorized transaction? This action can't " "be undone." msgstr "" +"Είστε σίγουροι ότι θέλετε να ακυρώσετε την εξουσιοδοτημένη συναλλαγή; Αυτή η" +" ενέργεια δεν μπορεί να αναιρεθεί." #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_account_bank_statement_line__authorized_transaction_ids #: model:ir.model.fields,field_description:account_payment.field_account_move__authorized_transaction_ids msgid "Authorized Transactions" -msgstr "" +msgstr "Εξουσιοδοτημένες Συναλλαγές" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.account_invoice_view_form_inherit_payment @@ -239,6 +246,8 @@ msgid "" "Done, your online payment has been successfully processed. Thank you for " "your order." msgstr "" +"Ολοκληρώθηκε, η διαδικτυακή σας πληρωμή έχει επεξεργαστεί επιτυχώς. " +"Ευχαριστούμε για την παραγγελία σας" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_link_wizard__epd_info @@ -254,21 +263,23 @@ msgstr "" #: model:onboarding.onboarding.step,description:account_payment.onboarding_onboarding_step_payment_provider msgid "Enable credit & debit card payments supported by Stripe." msgstr "" +"Ενεργοποιήστε τις πληρωμές με πιστωτικές και χρεωστικές κάρτες που " +"υποστηρίζονται από το Stripe." #. module: account_payment #: model:ir.model.fields.selection,name:account_payment.selection__payment_refund_wizard__support_refund__full_only msgid "Full Only" -msgstr "" +msgstr "Μόνο Πλήρες" #. module: account_payment #: model:ir.model,name:account_payment.model_payment_link_wizard msgid "Generate Sales Payment Link" -msgstr "" +msgstr "Δημιουργία Συνδέσμου Πληρωμής Πώλησης" #. module: account_payment #: model:ir.actions.act_window,name:account_payment.action_invoice_order_generate_link msgid "Generate a Payment Link" -msgstr "" +msgstr "Δημιουργία Συνδέσμου Πληρωμής" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_link_wizard__has_eligible_epd @@ -278,7 +289,7 @@ msgstr "" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_refund_wizard__has_pending_refund msgid "Has a pending refund" -msgstr "" +msgstr "Έχει εκκρεμή επιστροφή χρημάτων" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_refund_wizard__id @@ -299,16 +310,18 @@ msgid "" "In test mode, a fake payment is processed through a test payment interface.\n" "This mode is advised when setting up the provider." msgstr "" +"Στη λειτουργία δοκιμής, επεξεργάζεται μια ψεύτικη πληρωμή μέσω διεπαφής δοκιμής πληρωμής.\n" +"Αυτή η λειτουργία συνιστάται κατά την ρύθμιση του παρόχου." #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.res_config_settings_view_form msgid "Invoice Online Payment" -msgstr "" +msgstr "Online Πληρωμή Τιμολογίου" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.payment_transaction_form msgid "Invoice(s)" -msgstr "" +msgstr "Τιμολόγιο(α)" #. module: account_payment #. odoo-python @@ -325,7 +338,7 @@ msgstr "" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_transaction__invoices_count msgid "Invoices Count" -msgstr "" +msgstr "Αριθμός Τιμολογίων" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.portal_my_home_account_payment @@ -355,7 +368,7 @@ msgstr "Τελευταία Ενημέρωση στις" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_refund_wizard__amount_available_for_refund msgid "Maximum Refund Allowed" -msgstr "" +msgstr "Μέγιστη Επιτρεπόμενη Επιστροφή Χρημάτων" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.payment_link_wizard__form_inherit_account_payment @@ -368,6 +381,8 @@ msgid "" "Note that only tokens from providers allowing to capture the amount are " "available." msgstr "" +"Σημειώστε ότι είναι διαθέσιμοι μόνο οι κωδικοί ασφαλείας από παρόχους που " +"επιτρέπουν την καταγραφή του ποσού." #. module: account_payment #: model:ir.model.fields,help:account_payment.field_account_payment_register__payment_token_id @@ -375,21 +390,24 @@ msgid "" "Note that tokens from providers set to only authorize transactions (instead " "of capturing the amount) are not available." msgstr "" +"Σημειώστε ότι οι κωδικοί ασφαλείας από παρόχους που είναι ρυθμισμένοι να " +"εξουσιοδοτούν μόνο συναλλαγές (αντί να καταγράφουν το ποσό) δεν είναι " +"διαθέσιμοι." #. module: account_payment #: model:onboarding.onboarding.step,step_image_alt:account_payment.onboarding_onboarding_step_payment_provider msgid "Onboarding Online Payments" -msgstr "" +msgstr "Εγγραφή για Διαδικτυακές Πληρωμές" #. module: account_payment #: model:ir.model,name:account_payment.model_onboarding_onboarding_step msgid "Onboarding Step" -msgstr "" +msgstr "Βήμα Εγγραφής" #. module: account_payment #: model:onboarding.onboarding.step,title:account_payment.onboarding_onboarding_step_payment_provider msgid "Online Payments" -msgstr "" +msgstr "Online Πληρωμές" #. module: account_payment #. odoo-python @@ -428,7 +446,7 @@ msgstr "" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_res_config_settings__pay_invoices_online msgid "Pay Invoices Online" -msgstr "" +msgstr "Πληρώστε Τα Τιμολόγια Online" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.portal_docs_entry @@ -439,7 +457,7 @@ msgstr "Εξόφληση Τώρα" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.portal_my_invoices_payment msgid "Pay now" -msgstr "" +msgstr "Πλήρωσε τώρα" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.portal_my_home_overdue_invoice @@ -478,12 +496,12 @@ msgstr "Πάροχος Πληρωμών" #. module: account_payment #: model:ir.ui.menu,name:account_payment.payment_provider_menu msgid "Payment Providers" -msgstr "" +msgstr "Πάροχοι Πληρωμών" #. module: account_payment #: model:ir.model,name:account_payment.model_payment_refund_wizard msgid "Payment Refund Wizard" -msgstr "" +msgstr "Οδηγός Επιστροφής Πληρωμής" #. module: account_payment #: model:ir.ui.menu,name:account_payment.payment_token_menu @@ -538,12 +556,12 @@ msgstr "Επιστροφή" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_refund_wizard__amount_to_refund msgid "Refund Amount" -msgstr "" +msgstr "Ποσό Επιστροφής" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_payment_refund_wizard__refunded_amount msgid "Refunded Amount" -msgstr "" +msgstr "Επιστρεφόμενο Ποσό" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.view_account_payment_form_inherit_payment @@ -553,17 +571,17 @@ msgstr "Επιστροφές" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_account_payment__refunds_count msgid "Refunds Count" -msgstr "" +msgstr "Αριθμός Επιστροφών" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.view_account_journal_form msgid "SETUP" -msgstr "" +msgstr "Διαμόρφωση" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_account_payment__payment_token_id msgid "Saved Payment Token" -msgstr "" +msgstr "Αποθηκευμένος Κωδικός Ασφαλείας Πληρωμής" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_account_payment_register__payment_token_id @@ -573,7 +591,7 @@ msgstr "Αποθηκευμένο διακριτικό πληρωμής" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_account_payment__source_payment_id msgid "Source Payment" -msgstr "" +msgstr "Πηγή Πληρωμής" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_account_payment_method_line__payment_provider_state @@ -583,19 +601,19 @@ msgstr "Νομός/Πολιτεία" #. module: account_payment #: model:onboarding.onboarding.step,done_text:account_payment.onboarding_onboarding_step_payment_provider msgid "Step Completed!" -msgstr "" +msgstr "Βήμα Ολοκληρωμένο!" #. module: account_payment #: model:ir.model.fields,field_description:account_payment.field_account_payment__suitable_payment_token_ids #: model:ir.model.fields,field_description:account_payment.field_account_payment_register__suitable_payment_token_ids msgid "Suitable Payment Token" -msgstr "" +msgstr "Κατάλληλος Κωδικός Ασφαλείας Πληρωμής" #. module: account_payment #. odoo-python #: code:addons/account_payment/controllers/payment.py:0 msgid "The access token is invalid." -msgstr "" +msgstr "Ο κωδικός ασφαλείας πρόσβασης είναι άκυρος." #. module: account_payment #. odoo-python @@ -603,11 +621,13 @@ msgstr "" msgid "" "The amount to be refunded must be positive and cannot be superior to %s." msgstr "" +"Το ποσό που πρέπει να επιστραφεί πρέπει να είναι θετικό και δεν μπορεί να " +"υπερβαίνει το %s." #. module: account_payment #: model:ir.model.fields,help:account_payment.field_payment_provider__journal_id msgid "The journal in which the successful transactions are posted." -msgstr "" +msgstr "Το ημερολόγιο στο οποίο καταχωρούνται οι επιτυχείς συναλλαγές." #. module: account_payment #. odoo-python @@ -616,17 +636,19 @@ msgid "" "The payment related to the transaction with reference %(ref)s has been " "posted: %(link)s" msgstr "" +"Η πληρωμή που σχετίζεται με τη συναλλαγή με αναφορά %(ref)s έχει " +"καταχωρηθεί: %(link)s" #. module: account_payment #. odoo-python #: code:addons/account_payment/controllers/payment.py:0 msgid "The provided parameters are invalid." -msgstr "" +msgstr "Οι παρεχόμενες παράμετροι είναι άκυρες." #. module: account_payment #: model:ir.model.fields,help:account_payment.field_account_payment__source_payment_id msgid "The source payment of related refund payments" -msgstr "" +msgstr "Η πηγή πληρωμής των σχετικών πληρωμών επιστροφής χρημάτων" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_error @@ -684,7 +706,7 @@ msgstr "" #: model:ir.model.fields,field_description:account_payment.field_account_payment__use_electronic_payment_method #: model:ir.model.fields,field_description:account_payment.field_account_payment_register__use_electronic_payment_method msgid "Use Electronic Payment Method" -msgstr "" +msgstr "Χρησιμοποιήστε Ηλεκτρονική Μέθοδο Πληρωμής" #. module: account_payment #: model_terms:ir.ui.view,arch_db:account_payment.account_invoice_view_form_inherit_payment @@ -698,6 +720,9 @@ msgid "" "You can't delete a payment method that is linked to a provider in the enabled or test state.\n" "Linked providers(s): %s" msgstr "" +"Δεν μπορείτε να διαγράψετε μια μέθοδο πληρωμής που είναι συνδεδεμένη με έναν" +" πάροχο στην ενεργοποιημένη ή δοκιμαστική κατάσταση. Συνδεδεμένος " +"πάροχος(οι): %s" #. module: account_payment #. odoo-python @@ -706,6 +731,8 @@ msgid "" "You cannot uninstall this module as payments using this payment method " "already exist." msgstr "" +"Δεν μπορείτε να απεγκαταστήσετε αυτό το module καθώς υπάρχουν ήδη πληρωμές " +"που χρησιμοποιούν αυτήν τη μέθοδο πληρωμής." #. module: account_payment #. odoo-python @@ -714,6 +741,8 @@ msgid "" "You must first deactivate a payment provider before deleting its journal.\n" "Linked providers: %s" msgstr "" +"Πρέπει πρώτα να απενεργοποιήσετε έναν πάροχο πληρωμών πριν διαγράψετε το ημερολόγιο του.\n" +"Συνδεδεμένοι πάροχοι: %s" #. module: account_payment #. odoo-javascript diff --git a/addons/account_peppol/i18n/ar.po b/addons/account_peppol/i18n/ar.po index d9d2aa782bca0..53841db91f0b3 100644 --- a/addons/account_peppol/i18n/ar.po +++ b/addons/account_peppol/i18n/ar.po @@ -24,19 +24,19 @@ msgstr "" #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid " (Demo/Test mode)" -msgstr "" +msgstr " (Demo/Test mode)" #. module: account_peppol #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid " (customer not on Peppol)" -msgstr "" +msgstr " (customer not on Peppol)" #. module: account_peppol #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid "%(peppol_label)s%(not_valid)s%(peppol_proxy_mode)s" -msgstr "" +msgstr "%(peppol_label)s%(not_valid)s%(peppol_proxy_mode)s" #. module: account_peppol #. odoo-python diff --git a/addons/account_peppol/i18n/es.po b/addons/account_peppol/i18n/es.po index 31c35013db9c3..13c21a14337fb 100644 --- a/addons/account_peppol/i18n/es.po +++ b/addons/account_peppol/i18n/es.po @@ -24,19 +24,19 @@ msgstr "" #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid " (Demo/Test mode)" -msgstr "" +msgstr " (Modo de demostración o de prueba)" #. module: account_peppol #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid " (customer not on Peppol)" -msgstr "" +msgstr " (el cliente no está en Peppol)" #. module: account_peppol #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid "%(peppol_label)s%(not_valid)s%(peppol_proxy_mode)s" -msgstr "" +msgstr "%(peppol_label)s%(not_valid)s%(peppol_proxy_mode)s" #. module: account_peppol #. odoo-python diff --git a/addons/account_peppol/i18n/es_419.po b/addons/account_peppol/i18n/es_419.po index 2a5f754fe90f1..5de4fe1b13ad0 100644 --- a/addons/account_peppol/i18n/es_419.po +++ b/addons/account_peppol/i18n/es_419.po @@ -3,9 +3,9 @@ # * account_peppol # # Translators: -# Patricia Gutiérrez Capetillo , 2025 # Wil Odoo, 2025 # Fernanda Alvarez, 2025 +# Patricia Gutiérrez Capetillo , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:23+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Fernanda Alvarez, 2025\n" +"Last-Translator: Patricia Gutiérrez Capetillo , 2025\n" "Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,19 +25,19 @@ msgstr "" #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid " (Demo/Test mode)" -msgstr "" +msgstr "(Modo de demostración o prueba)" #. module: account_peppol #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid " (customer not on Peppol)" -msgstr "" +msgstr "(cliente que no está en Peppol)" #. module: account_peppol #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid "%(peppol_label)s%(not_valid)s%(peppol_proxy_mode)s" -msgstr "" +msgstr "%(peppol_label)s%(not_valid)s%(peppol_proxy_mode)s" #. module: account_peppol #. odoo-python diff --git a/addons/account_peppol/i18n/nl.po b/addons/account_peppol/i18n/nl.po index 3af9300a81789..7971394cb0ffc 100644 --- a/addons/account_peppol/i18n/nl.po +++ b/addons/account_peppol/i18n/nl.po @@ -25,19 +25,19 @@ msgstr "" #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid " (Demo/Test mode)" -msgstr "" +msgstr " (Demo/Test mode)" #. module: account_peppol #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid " (customer not on Peppol)" -msgstr "" +msgstr " (klant niet aangesloten op Peppol)" #. module: account_peppol #. odoo-python #: code:addons/account_peppol/wizard/account_move_send_wizard.py:0 msgid "%(peppol_label)s%(not_valid)s%(peppol_proxy_mode)s" -msgstr "" +msgstr "%(peppol_label)s%(not_valid)s%(peppol_proxy_mode)s" #. module: account_peppol #. odoo-python diff --git a/addons/analytic/i18n/az.po b/addons/analytic/i18n/az.po index 17cdaf3c37f81..63839e93c44bb 100644 --- a/addons/analytic/i18n/az.po +++ b/addons/analytic/i18n/az.po @@ -4,9 +4,9 @@ # # Translators: # Nurlan Farajov, 2024 -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:03+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -479,7 +479,7 @@ msgstr "Göstəriləcək Ad" #: model:ir.model.fields,field_description:analytic.field_account_analytic_distribution_model__distribution_analytic_account_ids #: model:ir.model.fields,field_description:analytic.field_analytic_mixin__distribution_analytic_account_ids msgid "Distribution Analytic Account" -msgstr "" +msgstr "Dağıtım Analitik Hesabı" #. module: analytic #: model_terms:ir.ui.view,arch_db:analytic.account_analytic_distribution_model_form_view diff --git a/addons/analytic/i18n/zh_CN.po b/addons/analytic/i18n/zh_CN.po index a2c51c2f4f243..b3a22e7ad2379 100644 --- a/addons/analytic/i18n/zh_CN.po +++ b/addons/analytic/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Chloe Wang, 2025 # msgid "" diff --git a/addons/auth_signup/i18n/zh_CN.po b/addons/auth_signup/i18n/zh_CN.po index a56e25805e849..18c752868f328 100644 --- a/addons/auth_signup/i18n/zh_CN.po +++ b/addons/auth_signup/i18n/zh_CN.po @@ -3,10 +3,10 @@ # * auth_signup # # Translators: -# Odoo哥 , 2024 +# 何彬 , 2024 # 稀饭~~ , 2024 -# Chloe Wang, 2025 # Wil Odoo, 2025 +# Chloe Wang, 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2025\n" +"Last-Translator: Chloe Wang, 2025\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -46,8 +46,8 @@ msgid "" " Here are some details about the connection:
" msgstr "" ",

\n" -" 使用了新设备登录您的账户。

\n" -" 以下是有关连接的一些详细信息:
" +" 检测到有新设备登录您的账户。

\n" +" 登录详细信息如下:
" #. module: auth_signup #: model_terms:ir.ui.view,arch_db:auth_signup.reset_password_email diff --git a/addons/auth_totp/i18n/sk.po b/addons/auth_totp/i18n/sk.po index 3625a140de41f..b0793aea24fd9 100644 --- a/addons/auth_totp/i18n/sk.po +++ b/addons/auth_totp/i18n/sk.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Tomáš Píšek, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:40+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Tomáš Píšek, 2025\n" "Language-Team: Slovak (https://app.transifex.com/odoo/teams/41243/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -151,7 +152,7 @@ msgstr "Popis" #: model_terms:ir.ui.view,arch_db:auth_totp.view_totp_field #: model_terms:ir.ui.view,arch_db:auth_totp.view_totp_form msgid "Device" -msgstr "" +msgstr "Zariadenie" #. module: auth_totp #: model_terms:ir.ui.view,arch_db:auth_totp.view_totp_field diff --git a/addons/auth_totp/static/tests/totp_flow.js b/addons/auth_totp/static/tests/totp_flow.js index 55a6ab91568a4..0fdc350268831 100644 --- a/addons/auth_totp/static/tests/totp_flow.js +++ b/addons/auth_totp/static/tests/totp_flow.js @@ -52,8 +52,10 @@ function closeProfileDialog({content, totp_state}) { return [{ content, - trigger, - run(helpers) { + //TODO: remove when PIPU macro PR is merged: https://github.com/odoo/odoo/pull/194508 + trigger: 'a[role=tab]:contains("Account Security").active', + async run(helpers) { + await waitFor(trigger, { timeout: 5000 }); const modal = document.querySelector(".o_dialog"); if (modal) { modal.querySelector("button[name=preference_cancel]").click(); @@ -76,8 +78,12 @@ registry.category("web_tour.tours").add('totp_tour_setup', { url: '/odoo', steps: () => [...openUserProfileAtSecurityTab(), { content: "Open totp wizard", - trigger: 'button[name=action_totp_enable_wizard]', - run: "click", + //TODO: remove when PIPU macro PR is merged: https://github.com/odoo/odoo/pull/194508 + trigger: 'a[role=tab]:contains("Account Security").active', + async run(actions) { + const el = await waitFor('button[name=action_totp_enable_wizard]', { timeout: 5000 }); + await actions.click(el); + } }, { trigger: ".modal div:contains(entering your password)", diff --git a/addons/auth_totp_mail_enforce/i18n/zh_CN.po b/addons/auth_totp_mail_enforce/i18n/zh_CN.po index 6808de27fbf2e..fc3db117e2cb3 100644 --- a/addons/auth_totp_mail_enforce/i18n/zh_CN.po +++ b/addons/auth_totp_mail_enforce/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Jeffery CHEN , 2024 # msgid "" diff --git a/addons/base_address_extended/i18n/zh_TW.po b/addons/base_address_extended/i18n/zh_TW.po index ff68c82a29843..7f6695c277262 100644 --- a/addons/base_address_extended/i18n/zh_TW.po +++ b/addons/base_address_extended/i18n/zh_TW.po @@ -3,7 +3,8 @@ # * base_address_extended # # Translators: -# Wil Odoo, 2024 +# Wil Odoo, 2025 +# Tony Ng, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Tony Ng, 2025\n" "Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -36,13 +37,13 @@ msgstr " - " msgid "" "Check this box to ensure every address created in that country has a 'City' " "chosen in the list of the country's cities." -msgstr "勾選來確保在該國/地區建立的每個位址都有\"縣市\"資訊,並於縣市清單中進行選擇。" +msgstr "勾選此方格後,可確保所有建立在該國家/地區的地址,都必須從當地城市的清單中,選取一個「城市」。" #. module: base_address_extended #: model:ir.actions.act_window,name:base_address_extended.action_res_city_tree #: model:ir.ui.menu,name:base_address_extended.menu_res_city msgid "Cities" -msgstr "縣市" +msgstr "城市" #. module: base_address_extended #: model:ir.model,name:base_address_extended.model_res_city @@ -51,7 +52,7 @@ msgstr "縣市" #: model_terms:ir.ui.view,arch_db:base_address_extended.view_city_filter #: model_terms:ir.ui.view,arch_db:base_address_extended.view_city_tree msgid "City" -msgstr "縣市" +msgstr "城市" #. module: base_address_extended #: model:ir.model.fields,field_description:base_address_extended.field_res_partner__city_id @@ -93,9 +94,9 @@ msgid "" " your partner records. Note that an option can be set on each country separately\n" " to enforce any address of it to have a city in this list." msgstr "" -"顯示和管理所有可以分配到您業務夥伴的縣市列表。\n" -"                 請注意,每一個國家皆有一個欄位需要設定\n" -"                 以強制地址中是否強制要輸入縣市資訊." +"顯示及管理可指派給合作夥伴記錄的全部城市清單。請留意,\n" +" 你可以為每個國家/地區單獨設定一個選項,以設定是否強制\n" +" 該國/該地區的任何地址,都必須在此清單中選取一個城市。" #. module: base_address_extended #: model:ir.model.fields,field_description:base_address_extended.field_res_partner__street_number2 @@ -113,7 +114,7 @@ msgstr "門牌號碼" #: model:ir.model.fields,field_description:base_address_extended.field_res_partner__country_enforce_cities #: model:ir.model.fields,field_description:base_address_extended.field_res_users__country_enforce_cities msgid "Enforce Cities" -msgstr "必須要填入縣市" +msgstr "強制輸入城市" #. module: base_address_extended #: model:ir.model.fields,field_description:base_address_extended.field_res_partner__street_number @@ -149,7 +150,7 @@ msgstr "名稱" #. module: base_address_extended #: model_terms:ir.ui.view,arch_db:base_address_extended.view_city_filter msgid "Search City" -msgstr "搜尋縣市" +msgstr "搜尋城市" #. module: base_address_extended #: model:ir.model.fields,field_description:base_address_extended.field_res_city__state_id diff --git a/addons/base_import_module/i18n/zh_CN.po b/addons/base_import_module/i18n/zh_CN.po index 7906d8acd9a67..6ae07d6e87461 100644 --- a/addons/base_import_module/i18n/zh_CN.po +++ b/addons/base_import_module/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Chloe Wang, 2024 # msgid "" diff --git a/addons/base_setup/i18n/cs.po b/addons/base_setup/i18n/cs.po index 1833614b5ce4c..e5561891d325e 100644 --- a/addons/base_setup/i18n/cs.po +++ b/addons/base_setup/i18n/cs.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Jakub Smolka, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Jakub Smolka, 2025\n" "Language-Team: Czech (https://app.transifex.com/odoo/teams/41243/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -336,7 +337,7 @@ msgstr "HTTP Routing" #. module: base_setup #: model_terms:ir.ui.view,arch_db:base_setup.res_config_settings_view_form msgid "Import & Export" -msgstr "Dovoz a vývoz" +msgstr "Import a Export" #. module: base_setup #: model_terms:ir.ui.view,arch_db:base_setup.res_config_settings_view_form diff --git a/addons/base_setup/i18n/nl.po b/addons/base_setup/i18n/nl.po index 72cbd4b98b988..bca719a6dafa1 100644 --- a/addons/base_setup/i18n/nl.po +++ b/addons/base_setup/i18n/nl.po @@ -5,6 +5,7 @@ # Translators: # Wil Odoo, 2024 # Manon Rondou, 2025 +# Erwin van der Ploeg , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Manon Rondou, 2025\n" +"Last-Translator: Erwin van der Ploeg , 2025\n" "Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -459,7 +460,7 @@ msgstr "Voorbeeld document" #. module: base_setup #: model:ir.model.fields,field_description:base_setup.field_res_config_settings__profiling_enabled_until msgid "Profiling enabled until" -msgstr "Profilering ingeschakeld tot" +msgstr "Profilering ingeschakeld t/m" #. module: base_setup #: model_terms:ir.ui.view,arch_db:base_setup.res_config_settings_view_form diff --git a/addons/base_vat/i18n/zh_CN.po b/addons/base_vat/i18n/zh_CN.po index d2bbcc8138880..6b78436f89f95 100644 --- a/addons/base_vat/i18n/zh_CN.po +++ b/addons/base_vat/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Raymond Yu , 2024 # Chloe Wang, 2025 # diff --git a/addons/bus/static/tests/bus_monitoring_service.test.js b/addons/bus/static/tests/bus_monitoring_service.test.js index 59c485569cd54..cd89791501ac9 100644 --- a/addons/bus/static/tests/bus_monitoring_service.test.js +++ b/addons/bus/static/tests/bus_monitoring_service.test.js @@ -1,96 +1,82 @@ import { + addBusServiceListeners, defineBusModels, - lockBusServiceStart, lockWebsocketConnect, } from "@bus/../tests/bus_test_helpers"; -import { busMonitoringservice } from "@bus/services/bus_monitoring_service"; import { WEBSOCKET_CLOSE_CODES } from "@bus/workers/websocket_worker"; import { describe, expect, test } from "@odoo/hoot"; -import { runAllTimers } from "@odoo/hoot-dom"; +import { manuallyDispatchProgrammaticEvent, runAllTimers } from "@odoo/hoot-dom"; import { asyncStep, + getService, makeMockEnv, MockServer, + mockService, patchWithCleanup, waitForSteps, } from "@web/../tests/web_test_helpers"; -import { browser } from "@web/core/browser/browser"; defineBusModels(); describe.current.tags("desktop"); function stepConnectionStateChanges() { - patchWithCleanup(busMonitoringservice, { - start() { - const api = super.start(...arguments); - Object.defineProperty(api, "isConnectionLost", { - get() { - return this._isConnectionLost; - }, - set(value) { - if (value === this._isConnectionLost) { - return; - } - this._isConnectionLost = value; - asyncStep(`isConnectionLost - ${value}`); - }, - configurable: true, - enumerable: true, - }); - return api; + mockService("bus.monitoring_service", { + get isConnectionLost() { + return this._isConnectionLost; + }, + set isConnectionLost(value) { + if (value !== this._isConnectionLost) { + asyncStep(`isConnectionLost - ${value}`); + } + this._isConnectionLost = value; }, }); } test("connection considered as lost after failed reconnect attempt", async () => { stepConnectionStateChanges(); - const unlockBus = lockBusServiceStart(); - const env = await makeMockEnv(); - env.services.bus_service.addEventListener("connect", () => asyncStep("connect")); - env.services.bus_service.addEventListener("reconnect", () => asyncStep("reconnect")); - unlockBus(); - await env.services.bus_service.start(); + addBusServiceListeners(["connect", () => asyncStep("connect")]); + await makeMockEnv(); await waitForSteps(["isConnectionLost - false", "connect"]); const unlockWebsocket = lockWebsocketConnect(); - MockServer.current.env["bus.bus"]._simulateDisconnection( - WEBSOCKET_CLOSE_CODES.ABNORMAL_CLOSURE - ); - await waitForSteps([`isConnectionLost - true`]); + MockServer.env["bus.bus"]._simulateDisconnection(WEBSOCKET_CLOSE_CODES.ABNORMAL_CLOSURE); + await runAllTimers(); + await waitForSteps(["isConnectionLost - true"]); unlockWebsocket(); - await waitForSteps([`isConnectionLost - false`]); + await runAllTimers(); + await waitForSteps(["isConnectionLost - false"]); }); test("brief disconect not considered lost", async () => { stepConnectionStateChanges(); - const unlockBus = lockBusServiceStart(); - const env = await makeMockEnv(); - env.services.bus_service.addEventListener("connect", () => asyncStep("connect")); - env.services.bus_service.addEventListener("reconnect", () => asyncStep("reconnect")); - unlockBus(); - await env.services.bus_service.start(); + addBusServiceListeners( + ["connect", () => asyncStep("connect")], + ["reconnect", () => asyncStep("reconnect")] + ); + await makeMockEnv(); await waitForSteps(["isConnectionLost - false", "connect"]); - MockServer.current.env["bus.bus"]._simulateDisconnection(WEBSOCKET_CLOSE_CODES.SESSION_EXPIRED); + MockServer.env["bus.bus"]._simulateDisconnection(WEBSOCKET_CLOSE_CODES.SESSION_EXPIRED); + await runAllTimers(); await waitForSteps(["reconnect"]); // Only reconnect step, which means the monitoring state didn't change. }); test("computer sleep doesn't mark connection as lost", async () => { stepConnectionStateChanges(); - const unlockBus = lockBusServiceStart(); - const env = await makeMockEnv(); - env.services.bus_service.addEventListener("connect", () => asyncStep("connect")); - env.services.bus_service.addEventListener("disconnect", () => asyncStep("disconnect")); - env.services.bus_service.addEventListener("reconnect", () => asyncStep("reconnect")); - unlockBus(); - await env.services.bus_service.start(); + addBusServiceListeners( + ["connect", () => asyncStep("connect")], + ["disconnect", () => asyncStep("disconnect")], + ["reconnect", () => asyncStep("reconnect")] + ); + await makeMockEnv(); await waitForSteps(["isConnectionLost - false", "connect"]); - patchWithCleanup(navigator, { onLine: false }); - browser.dispatchEvent(new Event("offline")); // Offline event is triggered when the computer goes to sleep. const unlockWebsocket = lockWebsocketConnect(); + patchWithCleanup(navigator, { onLine: false }); + await manuallyDispatchProgrammaticEvent(window, "offline"); // Offline event is triggered when the computer goes to sleep. await waitForSteps(["disconnect"]); patchWithCleanup(navigator, { onLine: true }); - browser.dispatchEvent(new Event("online")); // Online event is triggered when the computer wakes up. + await manuallyDispatchProgrammaticEvent(window, "online"); // Online event is triggered when the computer wakes up. unlockWebsocket(); await runAllTimers(); await waitForSteps(["connect"]); - expect(env.services["bus.monitoring_service"].isConnectionLost).toBe(false); + expect(getService("bus.monitoring_service").isConnectionLost).toBe(false); }); diff --git a/addons/bus/static/tests/bus_test_helpers.js b/addons/bus/static/tests/bus_test_helpers.js index 40e75342b4f64..c6f49d392d584 100644 --- a/addons/bus/static/tests/bus_test_helpers.js +++ b/addons/bus/static/tests/bus_test_helpers.js @@ -1,19 +1,38 @@ -import { busService } from "@bus/services/bus_service"; - import { after, expect, registerDebugInfo } from "@odoo/hoot"; import { Deferred } from "@odoo/hoot-mock"; import { MockServer, defineModels, + mockService, patchWithCleanup, webModels, } from "@web/../tests/web_test_helpers"; import { BusBus } from "./mock_server/mock_models/bus_bus"; import { IrWebSocket } from "./mock_server/mock_models/ir_websocket"; +import { onWebsocketEvent } from "./mock_websocket"; +import { busService } from "@bus/services/bus_service"; +import { WEBSOCKET_CLOSE_CODES } from "@bus/workers/websocket_worker"; +import { on } from "@odoo/hoot-dom"; import { registry } from "@web/core/registry"; import { patch } from "@web/core/utils/patch"; -import { WEBSOCKET_CLOSE_CODES } from "@bus/workers/websocket_worker"; + +/** + * @typedef {[ + * env: import("@web/env").OdooEnv, + * notificationType: string, + * notificationPayload: any, + * options: ExpectedNotificationOptions, + * ]} ExpectedNotification + * + * @typedef {{ + * received?: boolean; + * }} ExpectedNotificationOptions + */ + +//----------------------------------------------------------------------------- +// Setup +//----------------------------------------------------------------------------- patch(busService, { _onMessage(id, type, payload) { @@ -21,19 +40,18 @@ patch(busService, { }, }); -//----------------------------------------------------------------------------- -// Exports -//----------------------------------------------------------------------------- - -export function defineBusModels() { - return defineModels({ ...webModels, ...busModels }); -} +class LockedWebSocket extends WebSocket { + constructor() { + super(...arguments); -export const busModels = { BusBus, IrWebSocket }; + this.addEventListener("open", (ev) => { + ev.stopImmediatePropagation(); -//----------------------------------------------------------------------------- -// Setup -//----------------------------------------------------------------------------- + this.dispatchEvent(new Event("error")); + this.close(WEBSOCKET_CLOSE_CODES.ABNORMAL_CLOSURE); + }); + } +} const viewsRegistry = registry.category("bus.view.archs"); viewsRegistry.category("activity").add( @@ -62,31 +80,34 @@ viewsRegistry.category("form").add( // subscriptions... are received. const TIMEOUT = 500; +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + /** - * @param {string} eventName - * @param {Function} cb + * Patches the bus service to add given event listeners immediatly when it starts. + * + * @param {...[string, (event: CustomEvent) => any]} listeners */ -export function onWebsocketEvent(eventName, cb) { - const callbacks = registry - .category("mock_server_websocket_callbacks") - .get(eventName, new Set()); - callbacks.add(cb); - registry.category("mock_server_websocket_callbacks").add(eventName, callbacks, { force: true }); +export function addBusServiceListeners(...listeners) { + mockService("bus_service", (env, dependencies) => { + const busServiceInstance = busService.start(env, dependencies); + for (const [type, handler] of listeners) { + after(on(busServiceInstance, type, handler)); + } + return busServiceInstance; + }); } -/** - * @param {string} eventName - * @param {Function} cb - */ -export function offWebsocketEvent(eventName, cb) { - registry.category("mock_server_websocket_callbacks").get(eventName, new Set()).delete(cb); +export function defineBusModels() { + return defineModels({ ...webModels, ...busModels }); } /** * Returns a deferred that resolves when a websocket subscription is * done. * - * @returns {import("@web/core/utils/concurrency").Deferred} + * @returns {Deferred} */ export function waitUntilSubscribe() { const def = new Deferred(); @@ -94,7 +115,7 @@ export function waitUntilSubscribe() { function handleResult(success) { clearTimeout(timeout); - offWebsocketEvent("subscribe", onSubscribe); + offWebsocketEvent(); const message = success ? "Websocket subscription received." : "Websocket subscription not received."; @@ -105,8 +126,7 @@ export function waitUntilSubscribe() { def.reject(new Error(message)); } } - const onSubscribe = () => handleResult(true); - onWebsocketEvent("subscribe", onSubscribe); + const offWebsocketEvent = onWebsocketEvent("subscribe", () => handleResult(true)); return def; } @@ -116,15 +136,21 @@ export function waitUntilSubscribe() { * * @param {string[]} channels * @param {object} [options={}] - * @param {"add"|"delete"} [options.operation="add"] - * - * @returns {import("@web/core/utils/concurrency").Deferred} */ + * @param {"add" | "delete"} [options.operation="add"] + * @returns {Deferred} + */ export function waitForChannels(channels, { operation = "add" } = {}) { const { env } = MockServer; const def = new Deferred(); let done = false; - function check({ crashOnFail = false } = {}) { + /** + * @param {boolean} crashOnFail + */ + function check(crashOnFail) { + if (done) { + return; + } const userChannels = new Set(env["bus.bus"].channelsByUser[env.uid]); const success = channels.every((c) => operation === "add" ? userChannels.has(c) : !userChannels.has(c) @@ -133,44 +159,40 @@ export function waitForChannels(channels, { operation = "add" } = {}) { return; } clearTimeout(failTimeout); - offWebsocketEvent("subscribe", check); - const message = success - ? `Channel(s) [${channels.join(", ")}] ${operation === "add" ? "added" : "deleted"}.` - : `Waited ${TIMEOUT}ms for [${channels.join(", ")}] to be ${ - operation === "add" ? "added" : "deleted" - }`; + offWebsocketEvent(); + const message = (pass, r) => + pass + ? [r`Channel(s)`, channels, operation === "add" ? r`added` : r`deleted`] + : [ + r`Waited`, + TIMEOUT, + r`ms for`, + channels, + r`to be`, + operation === "add" ? r`added` : r`deleted`, + ]; expect(success).toBe(true, { message }); if (success) { def.resolve(); } else { - def.reject(new Error(message)); + def.reject(new Error(message(false))); } done = true; } - const failTimeout = setTimeout(() => check({ crashOnFail: true }), TIMEOUT); - after(() => { - if (!done) { - check({ crashOnFail: true }); - } - }); - onWebsocketEvent("subscribe", check); - check(); + const failTimeout = setTimeout(() => check(true), TIMEOUT); + after(() => check(true)); + const offWebsocketEvent = onWebsocketEvent("subscribe", () => check(false)); + check(false); return def; } -/** - * @typedef {Object} ExpectedNotificationOptions - * @property {boolean} [received=true] - * @typedef {[env: import("@web/env").OdooEnv, notificationType: string, notificationPayload: any, options: ExpectedNotificationOptions]} ExpectedNotification - */ - /** * Wait for a notification to be received/not received. Returns * a deferred that resolves when the assertion is done. * * @param {ExpectedNotification} notification - * @returns {import("@web/core/utils/concurrency").Deferred} + * @returns {Deferred} */ function _waitNotification(notification) { const [env, type, payload, { received = true } = {}] = notification; @@ -184,7 +206,7 @@ function _waitNotification(notification) { }, TIMEOUT); const callback = (notifPayload) => { if (payload === undefined || JSON.stringify(notifPayload) === JSON.stringify(payload)) { - expect(received).toBe(true, { + expect(notifPayload).toEqual(payload, { message: `Notification of type "${type}" with payload ${JSON.stringify( notifPayload )} receveived.`, @@ -204,63 +226,18 @@ function _waitNotification(notification) { * a deferred that resolves when the assertion is done. * * @param {ExpectedNotification[]} expectedNotifications - * @returns {import("@web/core/utils/concurrency").Deferred} + * @returns {Promise} */ export function waitNotifications(...expectedNotifications) { - return Promise.all( - expectedNotifications.map((expectedNotification) => _waitNotification(expectedNotification)) - ); + return Promise.all(expectedNotifications.map(_waitNotification)); } /** - * Lock the bus service start process until the returned function is called. - * This is useful in tests where an environment is mounted and the bus service - * is started immediately. However, some tests need to wait in order to setup - * their listeners. - * - * @returns {Function} A function that can be used to unlock the bus service - * start process. - */ -export function lockBusServiceStart() { - const unlockDeferred = new Deferred(); - patchWithCleanup(busService, { - start() { - const API = super.start(...arguments); - patch(API, { - async start() { - await unlockDeferred; - return super.start(...arguments); - }, - }); - return API; - }, - }); - return () => unlockDeferred.resolve(); -} - -/** - * Lock the websocket connection until the returned function is called. Usefull - * to simulate server being unavailable. - * - * @returns {Function} A function that can be used to unlock the websocket - * connection. + * Lock the websocket connection until the returned function is called. Usefull + * to simulate server being unavailable. */ export function lockWebsocketConnect() { - let locked = true; - const ogSocket = window.WebSocket; - patchWithCleanup(window, { - WebSocket: function () { - const ws = locked ? new EventTarget() : new ogSocket(...arguments); - if (locked) { - queueMicrotask(() => { - ws.dispatchEvent(new Event("error")); - ws.dispatchEvent( - new CloseEvent("close", { code: WEBSOCKET_CLOSE_CODES.ABNORMAL_CLOSURE }) - ); - }); - } - return ws; - }, - }); - return () => (locked = false); + return patchWithCleanup(window, { WebSocket: LockedWebSocket }); } + +export const busModels = { BusBus, IrWebSocket }; diff --git a/addons/bus/static/tests/mock_server/mock_models/bus_bus.js b/addons/bus/static/tests/mock_server/mock_models/bus_bus.js index 94e93b4abb4a7..bbbf57108187c 100644 --- a/addons/bus/static/tests/mock_server/mock_models/bus_bus.js +++ b/addons/bus/static/tests/mock_server/mock_models/bus_bus.js @@ -1,58 +1,15 @@ /** @odoo-module */ -import { before } from "@odoo/hoot"; -import { MockServer, models } from "@web/../tests/web_test_helpers"; -import { registry } from "@web/core/registry"; -import { patchWebsocketWorkerWithCleanup } from "../../mock_websocket"; +import { getWebSocketWorker } from "@bus/../tests/mock_websocket"; +import { models } from "@web/../tests/web_test_helpers"; export class BusBus extends models.Model { _name = "bus.bus"; - wsWorker = null; + /** @type {Record} */ channelsByUser = {}; lastBusNotificationId = 0; - constructor() { - super(...arguments); - - const createWebSocket = () => { - const performWebsocketRequest = this._performWebsocketRequest.bind(this); - this.wsWorker = patchWebsocketWorkerWithCleanup({ - _sendToServer(message) { - performWebsocketRequest(message); - return super._sendToServer(message); - }, - }); - }; - - if (MockServer.current) { - createWebSocket(); - } else { - before(createWebSocket); - } - } - - /** - * @param {Object} message Message sent through the websocket to the - * server. - * @param {string} [message.event_name] - * @param {any} [message.data] - */ - _performWebsocketRequest({ event_name, data }) { - const IrWebSocket = this.env["ir.websocket"]; - - if (event_name === "update_presence") { - const { inactivity_period, im_status_ids_by_model } = data; - IrWebSocket._update_presence(inactivity_period, im_status_ids_by_model); - } else if (event_name === "subscribe") { - const { channels } = data; - this.channelsByUser[this.env?.uid] = channels; - } - for (const fn of registry.category("mock_server_websocket_callbacks").get(event_name, [])) { - fn(data); - } - } - /** * @param {models.Model | string} channel * @param {string} notificationType @@ -94,7 +51,7 @@ export class BusBus extends models.Model { message: { payload: JSON.parse(JSON.stringify(payload)), type }, }); } - this.wsWorker.broadcast("notification", values); + getWebSocketWorker().broadcast("notification", values); } /** @@ -104,6 +61,6 @@ export class BusBus extends models.Model { * @param {string} [reason] the reason to close the connection with. */ _simulateDisconnection(closeCode, reason) { - this.wsWorker.websocket.close(closeCode, reason); + getWebSocketWorker().websocket.close(closeCode, reason); } } diff --git a/addons/bus/static/tests/mock_websocket.js b/addons/bus/static/tests/mock_websocket.js index 4b0e5ef502b79..7e431ac9c1675 100644 --- a/addons/bus/static/tests/mock_websocket.js +++ b/addons/bus/static/tests/mock_websocket.js @@ -1,104 +1,96 @@ +import { after, beforeEach } from "@odoo/hoot"; +import { mockWorker } from "@odoo/hoot-mock"; +import { MockServer } from "@web/../tests/web_test_helpers"; + import { WebsocketWorker } from "@bus/workers/websocket_worker"; -import { after } from "@odoo/hoot"; -import { browser } from "@web/core/browser/browser"; -import { patchWithCleanup } from "@web/../tests/web_test_helpers"; +import { patch } from "@web/core/utils/patch"; -class WebSocketMock extends EventTarget { - constructor() { - super(); - this.readyState = 0; +//----------------------------------------------------------------------------- +// Internal +//----------------------------------------------------------------------------- - queueMicrotask(() => { - this.readyState = 1; - const openEv = new Event("open"); - this.onopen(openEv); - this.dispatchEvent(openEv); +const getWebSocketCallbacks = () => { + if (!wsCallbacks) { + wsCallbacks = new Map(); + after(() => { + wsCallbacks?.clear(); + wsCallbacks = null; }); } + return wsCallbacks; +}; - close(code = 1000, reason) { - this.readyState = 3; - const closeEv = new CloseEvent("close", { - code, - reason, - wasClean: code === 1000, - }); - this.onclose(closeEv); - this.dispatchEvent(closeEv); - } +/** @type {WebsocketWorker | null} */ +let currentWebSocketWorker = null; +/** @type {Map any> | null} */ +let wsCallbacks = null; - onclose(closeEv) {} - onerror(errorEv) {} - onopen(openEv) {} +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- - send(data) { - if (this.readyState !== 1) { - const errorEv = new Event("error"); - this.onerror(errorEv); - this.dispatchEvent(errorEv); - throw new DOMException("Failed to execute 'send' on 'WebSocket': State is not OPEN"); - } - } +export function getWebSocketWorker() { + return currentWebSocketWorker; } -class SharedWorkerMock extends EventTarget { - constructor(websocketWorker) { - super(); - this._websocketWorker = websocketWorker; - this._messageChannel = new MessageChannel(); - this.port = this._messageChannel.port1; - // port 1 should be started by the service itself. - this._messageChannel.port2.start(); - this._websocketWorker.registerClient(this._messageChannel.port2); +/** + * @param {string} eventName + * @param {(data: any) => any} callback + */ +export function onWebsocketEvent(eventName, callback) { + const callbacks = getWebSocketCallbacks(); + if (!callbacks.has(eventName)) { + callbacks.set(eventName, new Set()); } -} + callbacks.get(eventName).add(callback); -class WorkerMock extends SharedWorkerMock { - constructor(websocketWorker) { - super(websocketWorker); - this.port.start(); - this.postMessage = this.port.postMessage.bind(this.port); - } + return function offWebsocketEvent() { + callbacks.get(eventName).delete(callback); + }; } -let websocketWorker; -/** - * @param {*} params Parameters used to patch the websocket worker. - * @returns {WebsocketWorker} Instance of the worker which will run during the - * test. Usefull to interact with the worker in order to test the - * websocket behavior. - */ -export function patchWebsocketWorkerWithCleanup(params = {}) { - patchWithCleanup(window, { - WebSocket: WebSocketMock, - }); - patchWithCleanup(websocketWorker || WebsocketWorker.prototype, params); - websocketWorker = websocketWorker || new WebsocketWorker(); - websocketWorker.INITIAL_RECONNECT_DELAY = 0; - websocketWorker.RECONNECT_JITTER = 5; - patchWithCleanup(browser, { - SharedWorker: function () { - const sharedWorker = new SharedWorkerMock(websocketWorker); - after(() => { - sharedWorker._messageChannel.port1.close(); - sharedWorker._messageChannel.port2.close(); - }); - return sharedWorker; - }, - Worker: function () { - const worker = new WorkerMock(websocketWorker); - after(() => { - worker._messageChannel.port1.close(); - worker._messageChannel.port2.close(); - }); - return worker; - }, - }); - after(() => { - if (websocketWorker) { - clearTimeout(websocketWorker.connectTimeout); - websocketWorker = null; +//----------------------------------------------------------------------------- +// Setup +//----------------------------------------------------------------------------- + +beforeEach( + () => { + currentWebSocketWorker = new WebsocketWorker(); + mockWorker((worker) => currentWebSocketWorker.registerClient(worker._messageChannel.port2)); + return () => { + if (currentWebSocketWorker.connectTimeout) { + clearTimeout(currentWebSocketWorker.connectTimeout); + } + currentWebSocketWorker.websocket = null; + currentWebSocketWorker = null; + }; + }, + { global: true } +); +patch(WebsocketWorker.prototype, { + INITIAL_RECONNECT_DELAY: 0, + RECONNECT_JITTER: 5, + _sendToServer(message) { + const { env } = MockServer; + if (!env) { + return; } - }); - return websocketWorker; -} + + if ("bus.bus" in env && "ir.websocket" in env) { + if (message.event_name === "update_presence") { + const { inactivity_period, im_status_ids_by_model } = message.data; + env["ir.websocket"]._update_presence(inactivity_period, im_status_ids_by_model); + } else if (message.event_name === "subscribe") { + const { channels } = message.data; + env["bus.bus"].channelsByUser[env.uid] = channels; + } + } + + // Custom callbacks + for (const callback of wsCallbacks?.get(message.event_name) || []) { + callback(message.data); + } + + return super._sendToServer(message); + }, +}); diff --git a/addons/calendar/i18n/nl.po b/addons/calendar/i18n/nl.po index f258d5359a7eb..38babdbb35512 100644 --- a/addons/calendar/i18n/nl.po +++ b/addons/calendar/i18n/nl.po @@ -4,8 +4,8 @@ # # Translators: # Wil Odoo, 2024 -# Erwin van der Ploeg , 2025 # Manon Rondou, 2025 +# Erwin van der Ploeg , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Manon Rondou, 2025\n" +"Last-Translator: Erwin van der Ploeg , 2025\n" "Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1605,7 +1605,7 @@ msgstr "Om de %(interval)s dagen voor %(count)s keer" #. odoo-python #: code:addons/calendar/models/calendar_recurrence.py:0 msgid "Every %(interval)s Days until %(until)s" -msgstr "Om de %(interval)s dagen tot %(until)s" +msgstr "Om de %(interval)s dagen t/m%(until)s" #. module: calendar #. odoo-python @@ -1623,7 +1623,7 @@ msgstr "Om de %(interval)s maanden, dag %(day)s voor %(count)s keer" #. odoo-python #: code:addons/calendar/models/calendar_recurrence.py:0 msgid "Every %(interval)s Months day %(day)s until %(until)s" -msgstr "Om de %(interval)s maanden, dag %(day)s tot %(until)s" +msgstr "Om de %(interval)s maanden, dag %(day)s t/m %(until)s" #. module: calendar #. odoo-python @@ -1646,7 +1646,7 @@ msgstr "" #: code:addons/calendar/models/calendar_recurrence.py:0 msgid "" "Every %(interval)s Months on the %(position)s %(weekday)s until %(until)s" -msgstr "Om de %(interval)s maanden op %(position)s %(weekday)s tot %(until)s" +msgstr "Om de %(interval)s maanden op %(position)s %(weekday)s t/m %(until)s" #. module: calendar #. odoo-python @@ -1664,7 +1664,7 @@ msgstr "Om de %(interval)s weken op %(days)s voor %(count)s keer" #. odoo-python #: code:addons/calendar/models/calendar_recurrence.py:0 msgid "Every %(interval)s Weeks on %(days)s until %(until)s" -msgstr "Om de %(interval)s weken op %(days)s tot %(until)s" +msgstr "Om de %(interval)s weken op %(days)s t/m %(until)s" #. module: calendar #. odoo-python @@ -1682,7 +1682,7 @@ msgstr "Om de %(interval)s jaren voor %(count)s keer" #. odoo-python #: code:addons/calendar/models/calendar_recurrence.py:0 msgid "Every %(interval)s Years until %(until)s" -msgstr "Om de %(interval)s jaren tot %(until)s" +msgstr "Om de %(interval)s jaren t/m %(until)s" #. module: calendar #. odoo-python @@ -2365,7 +2365,7 @@ msgstr "Herhaal op" #. module: calendar #: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__until msgid "Repeat Until" -msgstr "Herhaal tot" +msgstr "Herhaal t/m" #. module: calendar #: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_form diff --git a/addons/calendar/i18n/zh_CN.po b/addons/calendar/i18n/zh_CN.po index 71c7dce793761..2e701070bc1b6 100644 --- a/addons/calendar/i18n/zh_CN.po +++ b/addons/calendar/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Raymond Yu , 2024 # Chloe Wang, 2025 # diff --git a/addons/calendar/models/calendar_alarm_manager.py b/addons/calendar/models/calendar_alarm_manager.py index 510ab935cb004..6cb845dcd4929 100644 --- a/addons/calendar/models/calendar_alarm_manager.py +++ b/addons/calendar/models/calendar_alarm_manager.py @@ -244,7 +244,10 @@ def do_notif_reminder(self, alert): def _notify_next_alarm(self, partner_ids): """ Sends through the bus the next alarm of given partners """ - users = self.env['res.users'].search([('partner_id', 'in', tuple(partner_ids))]) + users = self.env['res.users'].search([ + ('partner_id', 'in', tuple(partner_ids)), + ('groups_id', 'in', self.env.ref('base.group_user').ids), + ]) for user in users: notif = self.with_user(user).with_context(allowed_company_ids=user.company_ids.ids).get_next_notif() user._bus_send("calendar.alarm", notif) diff --git a/addons/certificate/i18n/zh_CN.po b/addons/certificate/i18n/zh_CN.po index 3506317648790..b1d4a084dcdb4 100644 --- a/addons/certificate/i18n/zh_CN.po +++ b/addons/certificate/i18n/zh_CN.po @@ -6,7 +6,7 @@ # Wil Odoo, 2024 # Chloe Wang, 2024 # Raymond Yu , 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-29 00:00+0000\n" -"Last-Translator: Odoo哥 , 2024\n" +"Last-Translator: 何彬 , 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/addons/contacts/i18n/zh_TW.po b/addons/contacts/i18n/zh_TW.po index 735309f686e92..d3e4bc977c2ed 100644 --- a/addons/contacts/i18n/zh_TW.po +++ b/addons/contacts/i18n/zh_TW.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Tony Ng, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Tony Ng, 2025\n" "Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -75,7 +76,7 @@ msgstr "在通訊錄中建立聯繫人" #. module: contacts #: model:ir.ui.menu,name:contacts.menu_country_state_partner msgid "Fed. States" -msgstr "縣市" +msgstr "聯邦州份" #. module: contacts #: model:ir.ui.menu,name:contacts.res_partner_industry_menu diff --git a/addons/crm/i18n/az.po b/addons/crm/i18n/az.po index b738900f32acd..4c9d79ddb36f3 100644 --- a/addons/crm/i18n/az.po +++ b/addons/crm/i18n/az.po @@ -3,9 +3,9 @@ # * crm # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2025 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:22+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2025\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -426,7 +426,7 @@ msgstr "Faəliyyət istisnaetmə İşarəsi" #. module: crm #: model:ir.ui.menu,name:crm.mail_activity_plan_menu_config_lead msgid "Activity Plans" -msgstr "" +msgstr "Fəaliyyət Planları" #. module: crm #: model:ir.model.fields,field_description:crm.field_crm_lead__activity_state diff --git a/addons/crm/i18n/nb.po b/addons/crm/i18n/nb.po index 6c7f39038099b..a06e1a6edf3f0 100644 --- a/addons/crm/i18n/nb.po +++ b/addons/crm/i18n/nb.po @@ -12,6 +12,7 @@ # Jorunn D. Newth, 2024 # Martin Trigaux, 2024 # Rune Restad, 2025 +# Wil Odoo, 2025 # msgid "" msgstr "" @@ -19,7 +20,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:22+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Rune Restad, 2025\n" +"Last-Translator: Wil Odoo, 2025\n" "Language-Team: Norwegian Bokmål (https://app.transifex.com/odoo/teams/41243/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1899,7 +1900,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:crm.crm_activity_report_view_search #: model_terms:ir.ui.view,arch_db:crm.crm_activity_report_view_tree msgid "Lead Tags" -msgstr "" +msgstr "Lead-tagger" #. module: crm #: model:ir.model.fields,help:crm.field_crm_team_member__lead_day_count diff --git a/addons/crm/i18n/vi.po b/addons/crm/i18n/vi.po index e74ee8f0a2107..9558421dd403e 100644 --- a/addons/crm/i18n/vi.po +++ b/addons/crm/i18n/vi.po @@ -194,7 +194,7 @@ msgstr "Lead" #. module: crm #: model_terms:ir.ui.view,arch_db:crm.crm_lead_view_form msgid " at " -msgstr "" +msgstr " vào " #. module: crm #: model_terms:ir.ui.view,arch_db:crm.crm_lead_view_form diff --git a/addons/crm/i18n/zh_TW.po b/addons/crm/i18n/zh_TW.po index f16234a664b2b..57f93880c53e0 100644 --- a/addons/crm/i18n/zh_TW.po +++ b/addons/crm/i18n/zh_TW.po @@ -4,8 +4,8 @@ # # Translators: # Martin Trigaux, 2024 -# Wil Odoo, 2025 # Tony Ng, 2025 +# Wil Odoo, 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:22+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Tony Ng, 2025\n" +"Last-Translator: Wil Odoo, 2025\n" "Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -869,7 +869,7 @@ msgstr "選中此框可管理帶有商機的預售流程." #: model_terms:ir.ui.view,arch_db:crm.view_crm_case_leads_filter #: model_terms:ir.ui.view,arch_db:crm.view_crm_case_opportunities_filter msgid "City" -msgstr "縣市" +msgstr "城市" #. module: crm #: model:ir.model.fields,help:crm.field_crm_activity_report__tag_ids diff --git a/addons/crm_iap_mine/i18n/zh_CN.po b/addons/crm_iap_mine/i18n/zh_CN.po index ca107bfbf816d..81d5d7c153997 100644 --- a/addons/crm_iap_mine/i18n/zh_CN.po +++ b/addons/crm_iap_mine/i18n/zh_CN.po @@ -5,7 +5,7 @@ # Translators: # Wil Odoo, 2024 # Chloe Wang, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Jeffery CHEN , 2024 # msgid "" diff --git a/addons/delivery/i18n/zh_CN.po b/addons/delivery/i18n/zh_CN.po index 72d798f14f989..03f05745492cf 100644 --- a/addons/delivery/i18n/zh_CN.po +++ b/addons/delivery/i18n/zh_CN.po @@ -5,7 +5,7 @@ # Translators: # Wil Odoo, 2024 # Chloe Wang, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:03+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Odoo哥 , 2024\n" +"Last-Translator: 何彬 , 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/addons/digest/i18n/ja.po b/addons/digest/i18n/ja.po index c8b171fdd861e..c76c11d6780e8 100644 --- a/addons/digest/i18n/ja.po +++ b/addons/digest/i18n/ja.po @@ -70,7 +70,7 @@ msgstr "ドキュメンテーションをご覧下さい。" #. odoo-python #: code:addons/digest/models/digest.py:0 msgid "Choose the metrics you care about" -msgstr "気になる指標を選択する" +msgstr "重要な指標を選んで下さい" #. module: digest #: model_terms:digest.tip,tip_description:digest.digest_tip_digest_6 @@ -485,13 +485,13 @@ msgstr "すでにこのヒントを受け取ったユーザ" #. module: digest #: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form msgid "Want to add your own KPIs?
" -msgstr "自分のKPIを追加しますか?
" +msgstr "自分のKPIを追加する
" #. module: digest #. odoo-python #: code:addons/digest/models/digest.py:0 msgid "Want to customize this email?" -msgstr "このEメールの内容をカスタマイズすることができます。" +msgstr "このメールの内容をカスタマイズすることができます。" #. module: digest #. odoo-python diff --git a/addons/event_booth_sale/i18n/az.po b/addons/event_booth_sale/i18n/az.po index 23c96a2a5735c..8de4d36321d06 100644 --- a/addons/event_booth_sale/i18n/az.po +++ b/addons/event_booth_sale/i18n/az.po @@ -3,9 +3,9 @@ # * event_booth_sale # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -108,7 +108,7 @@ msgstr "" #: model:ir.model.fields,field_description:event_booth_sale.field_product_product__service_tracking #: model:ir.model.fields,field_description:event_booth_sale.field_product_template__service_tracking msgid "Create on Order" -msgstr "" +msgstr "Sifariş yaradın" #. module: event_booth_sale #: model:ir.model.fields,field_description:event_booth_sale.field_event_booth_configurator__create_uid diff --git a/addons/event_product/i18n/az.po b/addons/event_product/i18n/az.po index 3cee0b2587994..d1e3c5bbc91be 100644 --- a/addons/event_product/i18n/az.po +++ b/addons/event_product/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-29 00:00+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,7 +32,7 @@ msgstr "" #: model:ir.model.fields,field_description:event_product.field_product_product__service_tracking #: model:ir.model.fields,field_description:event_product.field_product_template__service_tracking msgid "Create on Order" -msgstr "" +msgstr "Sifariş yaradın" #. module: event_product #: model:ir.model.fields,field_description:event_product.field_event_event__currency_id diff --git a/addons/event_sale/i18n/az.po b/addons/event_sale/i18n/az.po index d86aa9ee6ac41..161d78de403bc 100644 --- a/addons/event_sale/i18n/az.po +++ b/addons/event_sale/i18n/az.po @@ -3,9 +3,9 @@ # * event_sale # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-25 07:49+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -425,7 +425,7 @@ msgstr "Qiymət Təklifi" #. module: event_sale #: model:ir.model.fields.selection,name:event_sale.selection__event_sale_report__sale_order_state__sent msgid "Quotation Sent" -msgstr "" +msgstr "Sitat Göndərilib" #. module: event_sale #: model_terms:ir.ui.view,arch_db:event_sale.event_sale_report_view_form @@ -534,7 +534,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:event_sale.event_registration_ticket_view_form #: model_terms:ir.ui.view,arch_db:event_sale.event_sale_report_view_search msgid "Sold" -msgstr "" +msgstr "Satıldı" #. module: event_sale #: model:ir.model.fields,field_description:event_sale.field_event_registration__utm_source_id diff --git a/addons/event_sale/i18n/he.po b/addons/event_sale/i18n/he.po index 58cafd20d76ee..65044b79ab015 100644 --- a/addons/event_sale/i18n/he.po +++ b/addons/event_sale/i18n/he.po @@ -101,7 +101,7 @@ msgstr "" #. module: event_sale #: model_terms:ir.ui.view,arch_db:event_sale.event_sale_report_view_search msgid "Booked by" -msgstr "הוזמן ע\"י" +msgstr "הוזמן עבור" #. module: event_sale #: model:ir.model.fields,field_description:event_sale.field_event_registration__utm_campaign_id diff --git a/addons/fleet/i18n/az.po b/addons/fleet/i18n/az.po index 8310d1092f3c3..a34537bde4c6d 100644 --- a/addons/fleet/i18n/az.po +++ b/addons/fleet/i18n/az.po @@ -3,9 +3,9 @@ # * fleet # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -306,7 +306,7 @@ msgstr "" #. module: fleet #: model:ir.model.fields,field_description:fleet.field_fleet_vehicle_send_mail__body_has_template_value msgid "Body content is the same as the template" -msgstr "" +msgstr "Əsas məzmun şablonla eynidir" #. module: fleet #: model:fleet.service.type,name:fleet.type_service_11 @@ -369,7 +369,7 @@ msgstr "" #. module: fleet #: model:ir.model.fields,field_description:fleet.field_fleet_vehicle_send_mail__can_edit_body msgid "Can Edit Body" -msgstr "" +msgstr "Məzmunu Redaktə edə bilər" #. module: fleet #: model_terms:ir.ui.view,arch_db:fleet.fleet_vehicle_send_mail_view_form @@ -1303,7 +1303,7 @@ msgstr "" #. module: fleet #: model:ir.model.fields,field_description:fleet.field_fleet_vehicle_send_mail__is_mail_template_editor msgid "Is Editor" -msgstr "" +msgstr "Redaktordur" #. module: fleet #: model:ir.model.fields,field_description:fleet.field_fleet_vehicle__message_is_follower @@ -1787,6 +1787,10 @@ msgid "" "a placeholder expression that provides the appropriate language, e.g. {{ " "object.partner_id.lang }}." msgstr "" +"E-poçt göndərərkən seçmək üçün əlavə tərcümə dili (ISO kodu). " +"Quraşdırılmayıbsa, ingilis versiyası istifadə olunacaq. Bu, adətən müvafiq " +"dili təmin edən yer tutucu ifadə olmalıdır, məs. {{ obyekt.partner_id.lang " +"}}." #. module: fleet #: model:fleet.service.type,name:fleet.type_service_service_15 @@ -1941,7 +1945,7 @@ msgstr "Qeydiyyat Tarixi" #. module: fleet #: model:ir.model.fields,field_description:fleet.field_fleet_vehicle_send_mail__render_model msgid "Rendering Model" -msgstr "" +msgstr "Render modeli" #. module: fleet #: model:fleet.service.type,name:fleet.type_service_service_11 diff --git a/addons/gamification/i18n/zh_CN.po b/addons/gamification/i18n/zh_CN.po index b11dc93cb05d0..853517d3400cc 100644 --- a/addons/gamification/i18n/zh_CN.po +++ b/addons/gamification/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Martin Trigaux, 2024 # Chloe Wang, 2025 # diff --git a/addons/google_calendar/tests/test_sync_google2odoo.py b/addons/google_calendar/tests/test_sync_google2odoo.py index 2e71db0c77522..435fd283ec75d 100644 --- a/addons/google_calendar/tests/test_sync_google2odoo.py +++ b/addons/google_calendar/tests/test_sync_google2odoo.py @@ -265,6 +265,41 @@ def test_attendee_cancelled(self): self.assertEqual(user_attendee.state, 'declined') self.assertGoogleAPINotCalled() + @patch_api + def test_cancelled_with_portal_attendee(self): + """Cancel an event with a portal attendee. + + This test exercises a bug that only happened under these circumstances: + - One portal user was invited to more than one event. + - At least one of them was going to be notified in the future. + - Google cancelled the first of those. + """ + portal_user = new_test_user(self.env, login='portal-user', groups='base.group_portal') + notif30min = self.ref("calendar.alarm_notif_2") + # Cannot use freezegun because there are direct calls to now() from SQL + now = datetime.now() + one = self.env['calendar.event'].create({ + 'name': 'test', + 'start': now + timedelta(hours=1), + 'stop': now + timedelta(hours=2), + 'google_id': 'one', + 'user_id': self.env.user.id, + 'need_sync': False, + 'alarm_ids': [(6, 0, [notif30min])], + 'partner_ids': [(6, 0, (self.env.user | portal_user).partner_id.ids)] + }) + two = one.copy({ + 'google_id': 'two', + 'start': now + timedelta(hours=2), + 'stop': now + timedelta(hours=3), + }) + gevent = GoogleEvent([ + {'id': 'one', 'status': 'cancelled'}, + ]) + self.sync(gevent) + self.assertFalse(one.exists()) + self.assertTrue(two.exists()) + @patch_api def test_private_extended_properties(self): google_id = 'oj44nep1ldf8a3ll02uip0c9aa' diff --git a/addons/google_calendar/tests/test_sync_odoo2google.py b/addons/google_calendar/tests/test_sync_odoo2google.py index 44c3e34ce5e05..14b96e7178207 100644 --- a/addons/google_calendar/tests/test_sync_odoo2google.py +++ b/addons/google_calendar/tests/test_sync_odoo2google.py @@ -95,7 +95,7 @@ def test_event_creation_perf(self): events._sync_odoo2google(self.google_service) - with self.assertQueryCount(__system__=28): + with self.assertQueryCount(__system__=29): events.unlink() diff --git a/addons/hr/i18n/zh_TW.po b/addons/hr/i18n/zh_TW.po index 69572a80c5e3e..03bf816da401b 100644 --- a/addons/hr/i18n/zh_TW.po +++ b/addons/hr/i18n/zh_TW.po @@ -729,7 +729,7 @@ msgstr "個人資料" #: model_terms:ir.ui.view,arch_db:hr.res_users_view_form_profile #: model_terms:ir.ui.view,arch_db:hr.view_employee_form msgid "City" -msgstr "縣市" +msgstr "城市" #. module: hr #: model:ir.model.fields,field_description:hr.field_hr_employee__coach_id @@ -2615,7 +2615,7 @@ msgstr "私人車輛車牌" #: model:ir.model.fields,field_description:hr.field_hr_employee__private_city #: model:ir.model.fields,field_description:hr.field_res_users__private_city msgid "Private City" -msgstr "私人城市" +msgstr "私人地址城市" #. module: hr #: model_terms:ir.ui.view,arch_db:hr.view_employee_form @@ -2626,13 +2626,13 @@ msgstr "私人聯絡方式" #: model:ir.model.fields,field_description:hr.field_hr_employee__private_country_id #: model:ir.model.fields,field_description:hr.field_res_users__private_country_id msgid "Private Country" -msgstr "私人國家" +msgstr "私人地址國家/地區" #. module: hr #: model:ir.model.fields,field_description:hr.field_hr_employee__private_email #: model:ir.model.fields,field_description:hr.field_res_users__private_email msgid "Private Email" -msgstr "私人電子郵件" +msgstr "私人電郵地址" #. module: hr #: model_terms:ir.ui.view,arch_db:hr.res_users_view_form_profile @@ -2644,31 +2644,31 @@ msgstr "私密資訊" #: model:ir.model.fields,field_description:hr.field_hr_employee__private_phone #: model:ir.model.fields,field_description:hr.field_res_users__private_phone msgid "Private Phone" -msgstr "私人電話" +msgstr "私人電話號碼" #. module: hr #: model:ir.model.fields,field_description:hr.field_hr_employee__private_state_id #: model:ir.model.fields,field_description:hr.field_res_users__private_state_id msgid "Private State" -msgstr "私人縣市" +msgstr "私人地址州/省" #. module: hr #: model:ir.model.fields,field_description:hr.field_hr_employee__private_street #: model:ir.model.fields,field_description:hr.field_res_users__private_street msgid "Private Street" -msgstr "私人街" +msgstr "私人地址街道" #. module: hr #: model:ir.model.fields,field_description:hr.field_hr_employee__private_street2 #: model:ir.model.fields,field_description:hr.field_res_users__private_street2 msgid "Private Street2" -msgstr "私人街2" +msgstr "私人地址街道第二行" #. module: hr #: model:ir.model.fields,field_description:hr.field_hr_employee__private_zip #: model:ir.model.fields,field_description:hr.field_res_users__private_zip msgid "Private Zip" -msgstr "私人郵編" +msgstr "私人地址郵遞區號" #. module: hr #: model:hr.department,name:hr.dep_ps diff --git a/addons/hr_contract/i18n/el.po b/addons/hr_contract/i18n/el.po index 1e818de774eee..13398ef963ad2 100644 --- a/addons/hr_contract/i18n/el.po +++ b/addons/hr_contract/i18n/el.po @@ -120,7 +120,7 @@ msgstr "Σε Ισχύ" #: model:ir.model.fields,field_description:hr_contract.field_hr_contract__active_employee #: model:ir.model.fields,field_description:hr_contract.field_hr_contract_history__active_employee msgid "Active Employee" -msgstr "" +msgstr "Ενεργός Υπάλληλος" #. module: hr_contract #: model_terms:ir.ui.view,arch_db:hr_contract.hr_contract_history_view_search diff --git a/addons/hr_expense/i18n/az.po b/addons/hr_expense/i18n/az.po index 352b94e070058..7fdf3bbc6fb0b 100644 --- a/addons/hr_expense/i18n/az.po +++ b/addons/hr_expense/i18n/az.po @@ -4,8 +4,8 @@ # # Translators: # erpgo translator , 2024 -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:02+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -51,7 +51,7 @@ msgstr "" #. odoo-python #: code:addons/hr_expense/models/hr_expense.py:0 msgid "%(employee_name)s: %(expense_name)s" -msgstr "" +msgstr "%(employee_name)s: %(expense_name)s" #. module: hr_expense #. odoo-python @@ -633,7 +633,7 @@ msgstr "Göstəriləcək Ad" #: model:ir.model.fields,field_description:hr_expense.field_hr_expense__distribution_analytic_account_ids #: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__distribution_analytic_account_ids msgid "Distribution Analytic Account" -msgstr "" +msgstr "Dağıtım Analitik Hesabı" #. module: hr_expense #: model_terms:digest.tip,tip_description:hr_expense.digest_tip_hr_expense_0 @@ -1306,7 +1306,7 @@ msgstr "" #. module: hr_expense #: model_terms:ir.ui.view,arch_db:hr_expense.report_expense_sheet msgid "Mitchell Admin" -msgstr "" +msgstr "Mitchell Admin" #. module: hr_expense #: model:ir.model.fields,field_description:hr_expense.field_hr_expense__my_activity_date_deadline @@ -1387,7 +1387,7 @@ msgstr "Yeni Fəaliyyət Növü" #. odoo-python #: code:addons/hr_expense/models/hr_expense.py:0 msgid "No attachment was provided" -msgstr "" +msgstr "Heç bir əlavə təmin edilmədi" #. module: hr_expense #: model_terms:ir.actions.act_window,help:hr_expense.action_hr_expense_sheet_department_filtered @@ -1964,7 +1964,7 @@ msgstr "Vergi" #. module: hr_expense #: model_terms:ir.ui.view,arch_db:hr_expense.report_expense_sheet msgid "Tax 15%" -msgstr "" +msgstr "Vergi 15%" #. module: hr_expense #: model:ir.model.fields,field_description:hr_expense.field_hr_expense__tax_amount diff --git a/addons/hr_expense/i18n/ja.po b/addons/hr_expense/i18n/ja.po index b4a31424d9468..2d132cbb8b1ce 100644 --- a/addons/hr_expense/i18n/ja.po +++ b/addons/hr_expense/i18n/ja.po @@ -1179,7 +1179,7 @@ msgstr "仕訳がドラフトにリセットされました" #. module: hr_expense #: model:ir.model,name:hr_expense.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: hr_expense #. odoo-python diff --git a/addons/hr_holidays/i18n/az.po b/addons/hr_holidays/i18n/az.po index 5942135f11e7a..f7db170f169ab 100644 --- a/addons/hr_holidays/i18n/az.po +++ b/addons/hr_holidays/i18n/az.po @@ -4,9 +4,9 @@ # # Translators: # Nurlan Farajov, 2024 -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -130,7 +130,7 @@ msgstr "" #. odoo-python #: code:addons/hr_holidays/models/hr_leave.py:0 msgid "%(name)s: %(duration)s" -msgstr "" +msgstr "%(name)s: %(duration)s" #. module: hr_holidays #. odoo-python diff --git a/addons/hr_holidays/i18n/el.po b/addons/hr_holidays/i18n/el.po index 63e2ac6f935b7..57703f812214d 100644 --- a/addons/hr_holidays/i18n/el.po +++ b/addons/hr_holidays/i18n/el.po @@ -88,7 +88,7 @@ msgstr "" #. odoo-python #: code:addons/hr_holidays/models/hr_leave.py:0 msgid "%(holiday_name)s has been refused." -msgstr "" +msgstr "%(holiday_name)s έχει απορριφθεί." #. module: hr_holidays #. odoo-python @@ -227,6 +227,9 @@ msgid "" "title=\"Arrow\" invisible=\"allocation_type == 'accrual' or state != " "'confirm'\"/>" msgstr "" +"" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_allocation_generate_multi_wizard_view_form @@ -235,22 +238,24 @@ msgid "" "" msgstr "" +"" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_view_activity msgid "" -msgstr "" +msgstr "" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_view_kanban msgid " Approve" -msgstr "" +msgstr " Έγκριση" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_allocation_view_kanban #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_view_kanban msgid " Refuse" -msgstr "" +msgstr " Απόρριψη" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_allocation_generate_multi_wizard_view_form @@ -258,6 +263,8 @@ msgid "" "Days\n" " Hours" msgstr "" +"Ημέρες\n" +" Ώρες" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_allocation_view_form @@ -265,6 +272,8 @@ msgid "" "Days\n" " Hours" msgstr "" +"Ημέρες\n" +" Ώρες" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_employee_public_form_view_inherit @@ -312,12 +321,12 @@ msgstr "" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_view_kanban msgid " to " -msgstr "" +msgstr " έως " #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_view_kanban msgid "from " -msgstr "" +msgstr "από " #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_view_form @@ -378,12 +387,12 @@ msgstr "" #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_type__time_type__leave #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_department_view_kanban msgid "Absence" -msgstr "" +msgstr "Απουσία" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_department__absence_of_today msgid "Absence by Today" -msgstr "" +msgstr "Απουσία από Σήμερα" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_department_view_kanban @@ -395,7 +404,7 @@ msgstr "" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.hr_employee_action_from_department msgid "Absent Employees" -msgstr "" +msgstr "Απόντες Εργαζόμενοι" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_employee__is_absent @@ -507,7 +516,7 @@ msgstr "" #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_allocation__active_employee #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_employee_type_report__active_employee msgid "Active Employee" -msgstr "" +msgstr "Ενεργός Υπάλληλος" #. module: hr_holidays #. odoo-javascript @@ -554,7 +563,7 @@ msgstr "Προσθέστε μια περιγραφή..." #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_allocation_generate_multi_wizard_view_form #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_allocation_view_form msgid "Add a reason..." -msgstr "" +msgstr "Προσθέστε μια αιτία..." #. module: hr_holidays #. odoo-javascript @@ -743,7 +752,7 @@ msgstr "" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.edit_holiday_status_form msgid "Allow To Attach Supporting Document" -msgstr "" +msgstr "Επιτρέψτε την επισύναψη δικαιολογητικών" #. module: hr_holidays #: model:ir.model.fields,help:hr_holidays.field_hr_leave_allocation_generate_multi_wizard__allocation_mode @@ -780,13 +789,13 @@ msgstr "" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.view_evaluation_report_graph msgid "Appraisal Analysis" -msgstr "" +msgstr "Ανάλυση Αξιολόγησης" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_type__allocation_validation_type #: model_terms:ir.ui.view,arch_db:hr_holidays.edit_holiday_status_form msgid "Approval" -msgstr "" +msgstr "Έγκριση" #. module: hr_holidays #. odoo-javascript @@ -831,13 +840,13 @@ msgstr "Εγκρίθηκε" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.view_hr_holidays_filter_report msgid "Approved Requests" -msgstr "" +msgstr "Εγκεκριμένα Αιτήματα" #. module: hr_holidays #. odoo-javascript #: code:addons/hr_holidays/static/src/dashboard/time_off_card.xml:0 msgid "Approved:" -msgstr "" +msgstr "Εγκεκριμένο:" #. module: hr_holidays #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_accrual_level__first_month__apr @@ -858,7 +867,7 @@ msgstr "Αρχειοθετημένα" #. odoo-javascript #: code:addons/hr_holidays/static/src/views/calendar/calendar_controller.js:0 msgid "Are you sure you want to delete this record?" -msgstr "" +msgstr "Είστε σίγουρος/η ότι θέλετε να διαγράψετε αυτή την εγγραφή;" #. module: hr_holidays #. odoo-javascript @@ -890,17 +899,17 @@ msgstr "" #. module: hr_holidays #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_accrual_plan__carryover_date__year_start msgid "At the start of the year" -msgstr "" +msgstr "Στην αρχή του έτους" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_employee_view_search msgid "At work" -msgstr "" +msgstr "Στη δουλειά" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave__supported_attachment_ids msgid "Attach File" -msgstr "" +msgstr "Επισυνάψτε Αρχείο" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave__message_attachment_count @@ -945,7 +954,7 @@ msgstr "" #. odoo-javascript #: code:addons/hr_holidays/static/src/dashboard/time_off_card.xml:0 msgid "Available:" -msgstr "" +msgstr "Διαθέσιμο:" #. module: hr_holidays #. odoo-javascript @@ -980,7 +989,7 @@ msgstr "" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_accrual_plan__is_based_on_worked_time msgid "Based on worked time" -msgstr "" +msgstr "Βάσει του δεδουλευμένου χρόνου" #. module: hr_holidays #: model:ir.model,name:hr_holidays.model_hr_employee_base @@ -996,19 +1005,19 @@ msgstr "" #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_allocation_generate_multi_wizard__allocation_mode__company #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_generate_multi_wizard__allocation_mode__company msgid "By Company" -msgstr "" +msgstr "Ανά Εταιρεία" #. module: hr_holidays #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_allocation_generate_multi_wizard__allocation_mode__department #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_generate_multi_wizard__allocation_mode__department msgid "By Department" -msgstr "" +msgstr "Ανά Τμήμα" #. module: hr_holidays #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_allocation_generate_multi_wizard__allocation_mode__employee #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_generate_multi_wizard__allocation_mode__employee msgid "By Employee" -msgstr "" +msgstr "Ανά Υπάλληλο" #. module: hr_holidays #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_allocation_generate_multi_wizard__allocation_mode__category @@ -1557,23 +1566,23 @@ msgstr "Διάρκεια" #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave__number_of_days #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_report_graph msgid "Duration (Days)" -msgstr "" +msgstr "Διάρκεια (Ημέρες)" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave__number_of_hours #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_leave_report_graph msgid "Duration (Hours)" -msgstr "" +msgstr "Διάρκεια (Ώρες)" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_allocation__number_of_days_display msgid "Duration (days)" -msgstr "" +msgstr "Διάρκεια (ημέρες)" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_allocation__number_of_hours_display msgid "Duration (hours)" -msgstr "" +msgstr "Διάρκεια (ώρες)" #. module: hr_holidays #: model:ir.model.fields,help:hr_holidays.field_hr_leave_allocation__number_of_days @@ -1612,12 +1621,12 @@ msgstr "" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave__employee_company_id msgid "Employee Company" -msgstr "" +msgstr "Εταιρεία Εργαζόμενου" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_type__employee_requests msgid "Employee Requests" -msgstr "" +msgstr "Αιτήματα Εργαζόμενου" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_allocation_generate_multi_wizard__category_id @@ -2162,7 +2171,7 @@ msgstr "" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_accrual_plan__level_count msgid "Levels" -msgstr "" +msgstr "Επίπεδα" #. module: hr_holidays #: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_accrual_level__maximum_leave @@ -2329,7 +2338,7 @@ msgstr "Μήνες" #. module: hr_holidays #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave__request_date_from_period__am msgid "Morning" -msgstr "" +msgstr "Πρωί" #. module: hr_holidays #. odoo-javascript @@ -2789,7 +2798,7 @@ msgstr "" #: model:ir.actions.act_window,name:hr_holidays.open_view_public_holiday #: model:ir.ui.menu,name:hr_holidays.hr_holidays_public_time_off_menu_configuration msgid "Public Holidays" -msgstr "" +msgstr "Επίσημες Αργίες" #. module: hr_holidays #: model:ir.model.fields,help:hr_holidays.field_hr_leave_type__include_public_holidays_in_duration @@ -3864,12 +3873,12 @@ msgstr "Τρίτη" #. module: hr_holidays #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_accrual_level__frequency__bimonthly msgid "Twice a month" -msgstr "" +msgstr "Δύο φορές τον μήνα" #. module: hr_holidays #: model:ir.model.fields.selection,name:hr_holidays.selection__hr_leave_accrual_level__frequency__biyearly msgid "Twice a year" -msgstr "" +msgstr "Δύο φορές τον χρόνο" #. module: hr_holidays #. odoo-python @@ -3908,7 +3917,7 @@ msgstr "" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_accrual_plan_view_form msgid "Unlimited" -msgstr "" +msgstr "Απεριόριστα" #. module: hr_holidays #: model:hr.leave.type,name:hr_holidays.holiday_status_unpaid @@ -3929,7 +3938,7 @@ msgstr "Μη αναγνωσμένα μηνύματα" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_accrual_level_view_form msgid "Up to" -msgstr "" +msgstr "Έως" #. module: hr_holidays #: model:ir.model,name:hr_holidays.model_res_users @@ -4355,12 +4364,12 @@ msgstr "" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_hr_available_holidays_report_tree msgid "by Employee" -msgstr "" +msgstr "ανά Εργαζόμενο" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_hr_holidays_summary_all msgid "by Type" -msgstr "" +msgstr "ανά Τύπο" #. module: hr_holidays #. odoo-javascript @@ -4377,7 +4386,7 @@ msgstr "" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_accrual_plan_view_form msgid "day of the month" -msgstr "" +msgstr "ημέρα του μήνα" #. module: hr_holidays #. odoo-javascript @@ -4461,7 +4470,7 @@ msgstr "" #. odoo-javascript #: code:addons/hr_holidays/static/src/dashboard/time_off_card.xml:0 msgid "new request" -msgstr "" +msgstr "νέο αίτημα" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_accrual_plan_view_form @@ -4482,7 +4491,7 @@ msgstr "" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_accrual_level_view_form msgid "of the month" -msgstr "" +msgstr "του μήνα" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_accrual_level_view_form @@ -4532,7 +4541,7 @@ msgstr "" #. module: hr_holidays #: model_terms:ir.ui.view,arch_db:hr_holidays.hr_accrual_plan_view_form msgid "up to" -msgstr "" +msgstr "έως" #. module: hr_holidays #. odoo-javascript diff --git a/addons/hr_presence/i18n/zh_CN.po b/addons/hr_presence/i18n/zh_CN.po index 448a7cfdebf9e..4fb557a1ff383 100644 --- a/addons/hr_presence/i18n/zh_CN.po +++ b/addons/hr_presence/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Chloe Wang, 2025 # msgid "" diff --git a/addons/hr_recruitment/i18n/az.po b/addons/hr_recruitment/i18n/az.po index 2f94359e0a491..4824d203ff398 100644 --- a/addons/hr_recruitment/i18n/az.po +++ b/addons/hr_recruitment/i18n/az.po @@ -3,9 +3,9 @@ # * hr_recruitment # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -438,7 +438,7 @@ msgstr "" #. module: hr_recruitment #: model:ir.ui.menu,name:hr_recruitment.hr_recruitment_menu_config_activity_plan msgid "Activity Plans" -msgstr "" +msgstr "Fəaliyyət Planları" #. module: hr_recruitment #: model:ir.model.fields,field_description:hr_recruitment.field_hr_applicant__activity_state @@ -785,7 +785,7 @@ msgstr "Bloklanıb" #: model:ir.model.fields,field_description:hr_recruitment.field_applicant_send_mail__body_has_template_value #: model:ir.model.fields,field_description:hr_recruitment.field_candidate_send_mail__body_has_template_value msgid "Body content is the same as the template" -msgstr "" +msgstr "Əsas məzmun şablonla eynidir" #. module: hr_recruitment #: model:ir.model.fields,field_description:hr_recruitment.field_hr_candidate__message_bounce @@ -821,7 +821,7 @@ msgstr "Kampaniya" #: model:ir.model.fields,field_description:hr_recruitment.field_applicant_send_mail__can_edit_body #: model:ir.model.fields,field_description:hr_recruitment.field_candidate_send_mail__can_edit_body msgid "Can Edit Body" -msgstr "" +msgstr "Məzmunu Redaktə edə bilər" #. module: hr_recruitment #: model_terms:ir.ui.view,arch_db:hr_recruitment.applicant_get_refuse_reason_view_form @@ -1752,7 +1752,7 @@ msgstr "" #: model:ir.model.fields,field_description:hr_recruitment.field_applicant_send_mail__is_mail_template_editor #: model:ir.model.fields,field_description:hr_recruitment.field_candidate_send_mail__is_mail_template_editor msgid "Is Editor" -msgstr "" +msgstr "Redaktordur" #. module: hr_recruitment #: model:ir.model.fields,field_description:hr_recruitment.field_hr_job__is_favorite @@ -2368,6 +2368,10 @@ msgid "" "a placeholder expression that provides the appropriate language, e.g. {{ " "object.partner_id.lang }}." msgstr "" +"E-poçt göndərərkən seçmək üçün əlavə tərcümə dili (ISO kodu). " +"Quraşdırılmayıbsa, ingilis versiyası istifadə olunacaq. Bu, adətən müvafiq " +"dili təmin edən yer tutucu ifadə olmalıdır, məs. {{ obyekt.partner_id.lang " +"}}." #. module: hr_recruitment #. odoo-javascript @@ -2684,7 +2688,7 @@ msgstr "" #: model:ir.model.fields,field_description:hr_recruitment.field_applicant_send_mail__render_model #: model:ir.model.fields,field_description:hr_recruitment.field_candidate_send_mail__render_model msgid "Rendering Model" -msgstr "" +msgstr "Render modeli" #. module: hr_recruitment #: model:ir.ui.menu,name:hr_recruitment.report_hr_recruitment diff --git a/addons/hr_recruitment/i18n/el.po b/addons/hr_recruitment/i18n/el.po index f98959ee78102..373d5998ecd6d 100644 --- a/addons/hr_recruitment/i18n/el.po +++ b/addons/hr_recruitment/i18n/el.po @@ -2514,7 +2514,7 @@ msgstr "Ταυτότητα εγγραφής νήματος" #: model:ir.model.fields,field_description:hr_recruitment.field_hr_applicant__user_id #: model:ir.model.fields,field_description:hr_recruitment.field_hr_job__user_id msgid "Recruiter" -msgstr "" +msgstr "Υπεύθυνος Πρόσληψης Προσωπικού" #. module: hr_recruitment #: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_root @@ -2538,7 +2538,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:hr_recruitment.hr_applicant_view_pivot #: model_terms:ir.ui.view,arch_db:hr_recruitment.hr_applicant_view_search msgid "Recruitment Analysis" -msgstr "" +msgstr "Ανάλυση Στελέχωσης" #. module: hr_recruitment #: model:ir.actions.act_window,name:hr_recruitment.mail_activity_plan_action_config_hr_applicant @@ -2604,7 +2604,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:hr_recruitment.hr_applicant_refuse_reason_view_tree #: model_terms:ir.ui.view,arch_db:hr_recruitment.hr_applicant_view_search_bis msgid "Refuse Reason" -msgstr "" +msgstr "Αιτία Άρνησης" #. module: hr_recruitment #: model:ir.model,name:hr_recruitment.model_hr_applicant_refuse_reason diff --git a/addons/hr_recruitment/i18n/zh_CN.po b/addons/hr_recruitment/i18n/zh_CN.po index b312bba7b4267..f284dfe1532f8 100644 --- a/addons/hr_recruitment/i18n/zh_CN.po +++ b/addons/hr_recruitment/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Raymond Yu , 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Chloe Wang, 2024 # digitalliuzg8888, 2024 # Jeffery CHEN , 2024 diff --git a/addons/hr_recruitment/models/hr_applicant.py b/addons/hr_recruitment/models/hr_applicant.py index 80ecd1abccd6d..6110a0ad7c470 100644 --- a/addons/hr_recruitment/models/hr_applicant.py +++ b/addons/hr_recruitment/models/hr_applicant.py @@ -381,20 +381,21 @@ def write(self, vals): new_interviewers = self.interviewer_ids - old_interviewers - self.env.user if new_interviewers: - notification_subject = _("You have been assigned as an interviewer for %s", self.display_name) - notification_body = _("You have been assigned as an interviewer for the Applicant %s", self.partner_name) - self.message_notify( - res_id=self.id, - model=self._name, - partner_ids=new_interviewers.partner_id.ids, - author_id=self.env.user.partner_id.id, - email_from=self.env.user.email_formatted, - subject=notification_subject, - body=notification_body, - email_layout_xmlid="mail.mail_notification_layout", - record_name=self.display_name, - model_description="Applicant", - ) + for applicant in self: + notification_subject = _("You have been assigned as an interviewer for %s", applicant.display_name) + notification_body = _("You have been assigned as an interviewer for the Applicant %s", applicant.partner_name) + applicant.message_notify( + res_id=applicant.id, + model=applicant._name, + partner_ids=new_interviewers.partner_id.ids, + author_id=self.env.user.partner_id.id, + email_from=self.env.user.email_formatted, + subject=notification_subject, + body=notification_body, + email_layout_xmlid="mail.mail_notification_layout", + record_name=applicant.display_name, + model_description="Applicant", + ) if vals.get('date_closed'): for applicant in self: if applicant.job_id.date_to: diff --git a/addons/hr_recruitment/tests/test_applicant.py b/addons/hr_recruitment/tests/test_applicant.py index 666d488519696..564bebee70da7 100644 --- a/addons/hr_recruitment/tests/test_applicant.py +++ b/addons/hr_recruitment/tests/test_applicant.py @@ -1,4 +1,4 @@ -from odoo.tests.common import TransactionCase +from odoo.tests.common import TransactionCase, new_test_user from odoo.tests import tagged @@ -56,3 +56,34 @@ def test_compute_categ_ids(self): self.applicant.candidate_id = self.candidate_0.id # Applicant tags: 1, 2, 3 self.assertCountEqual(self.applicant.categ_ids.ids, [self.category_1.id, self.category_2.id, self.category_3.id]) + + def test_update_interviewer_for_multiple_applicants(self): + """ + Test that assigning interviewer to multiple applicants. + """ + interviewer_user_1 = new_test_user(self.env, 'sma', + groups='base.group_user,hr_recruitment.group_hr_recruitment_interviewer', + name='Recruitment Interviewer', email='sma@example.com') + + interviewer_user_2 = new_test_user(self.env, 'jab', + groups='base.group_user,hr_recruitment.group_hr_recruitment_interviewer', + name='Recruitment Interviewer', email='jab@example.com') + + interviewer_user_3 = new_test_user(self.env, 'aad', + groups='base.group_user,hr_recruitment.group_hr_recruitment_interviewer', + name='Recruitment Interviewer', email='aad@example.com') + + applicant = self.applicant + applicant.write({'interviewer_ids': [(6, 0, [interviewer_user_1.id])]}) + applicants = applicant + applicant.copy({'interviewer_ids': [(6, 0, [interviewer_user_2.id])]}) + # update interviewer to multiple applicants. + applicants.write({'interviewer_ids': [(4, interviewer_user_3.id)]}) + + # Ensure all interviewers are assigned + self.assertCountEqual( + applicants.interviewer_ids.ids, [interviewer_user_1.id, interviewer_user_2.id, interviewer_user_3.id] + ) + + # Checked that notification message is created + message = self.env['mail.message'].search([('res_id', '=', applicant.id)], limit=1) + self.assertEqual(message.subject, f"You have been assigned as an interviewer for {applicant.display_name}") diff --git a/addons/hr_recruitment_survey/i18n/zh_CN.po b/addons/hr_recruitment_survey/i18n/zh_CN.po index 2979d2433c096..191398c4b4bce 100644 --- a/addons/hr_recruitment_survey/i18n/zh_CN.po +++ b/addons/hr_recruitment_survey/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Chloe Wang, 2025 # msgid "" diff --git a/addons/hr_skills/i18n/bg.po b/addons/hr_skills/i18n/bg.po index 0e0c59cf2f483..540fa4b70cd4a 100644 --- a/addons/hr_skills/i18n/bg.po +++ b/addons/hr_skills/i18n/bg.po @@ -51,12 +51,12 @@ msgstr "" #. module: hr_skills #: model_terms:ir.ui.view,arch_db:hr_skills.report_employee_cv_main_panel msgid "2022" -msgstr "" +msgstr "2022" #. module: hr_skills #: model_terms:ir.ui.view,arch_db:hr_skills.report_employee_cv_main_panel msgid "2023" -msgstr "" +msgstr "2023" #. module: hr_skills #: model_terms:hr.resume.line,description:hr_skills.employee_resume_line_admin_7 diff --git a/addons/hr_skills/i18n/el.po b/addons/hr_skills/i18n/el.po index 2abe64c7a7580..ddfb07050e131 100644 --- a/addons/hr_skills/i18n/el.po +++ b/addons/hr_skills/i18n/el.po @@ -1034,7 +1034,7 @@ msgstr "" #: model:ir.model.fields,field_description:hr_skills.field_hr_skill_type__skill_level_ids #: model_terms:ir.ui.view,arch_db:hr_skills.hr_employee_skill_type_view_form msgid "Levels" -msgstr "" +msgstr "Επίπεδα" #. module: hr_skills #: model:hr.resume.line,name:hr_skills.employee_resume_fme_lewis_group diff --git a/addons/hr_skills_survey/i18n/bg.po b/addons/hr_skills_survey/i18n/bg.po index b6d1c3e069bf9..7d8e88a33a83b 100644 --- a/addons/hr_skills_survey/i18n/bg.po +++ b/addons/hr_skills_survey/i18n/bg.po @@ -11,6 +11,7 @@ # Maria Boyadjieva , 2024 # Ивайло Малинов , 2024 # Veselina Slavkova, 2025 +# Martin Dinovski, 2025 # msgid "" msgstr "" @@ -18,7 +19,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Veselina Slavkova, 2025\n" +"Last-Translator: Martin Dinovski, 2025\n" "Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -88,7 +89,7 @@ msgstr "" #. module: hr_skills_survey #: model_terms:ir.ui.view,arch_db:hr_skills_survey.hr_resume_line_view_search msgid "Expiring Soon" -msgstr "" +msgstr "Изтича Скоро" #. module: hr_skills_survey #: model:hr.resume.line.type,name:hr_skills_survey.resume_type_certification diff --git a/addons/hr_timesheet/i18n/az.po b/addons/hr_timesheet/i18n/az.po index 478f334c3e3e2..fe7db945a285b 100644 --- a/addons/hr_timesheet/i18n/az.po +++ b/addons/hr_timesheet/i18n/az.po @@ -3,9 +3,9 @@ # * hr_timesheet # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1332,7 +1332,7 @@ msgstr "" #. module: hr_timesheet #: model_terms:ir.ui.view,arch_db:hr_timesheet.portal_my_task msgid "View Details" -msgstr "" +msgstr "Daha ətraflı" #. module: hr_timesheet #: model_terms:ir.actions.act_window,help:hr_timesheet.timesheet_action_from_employee diff --git a/addons/hr_timesheet/i18n/el.po b/addons/hr_timesheet/i18n/el.po index 5dcc1ee087dbd..5eb7464717cbe 100644 --- a/addons/hr_timesheet/i18n/el.po +++ b/addons/hr_timesheet/i18n/el.po @@ -8,8 +8,8 @@ # Kostas Goutoudis , 2024 # Martin Trigaux, 2024 # Charalampos Loukas, 2025 -# Agapi Psyllou, 2025 # Gerasimos Kanelatos, 2025 +# Agapi Psyllou, 2025 # msgid "" msgstr "" @@ -17,7 +17,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Gerasimos Kanelatos, 2025\n" +"Last-Translator: Agapi Psyllou, 2025\n" "Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -298,7 +298,7 @@ msgstr "" #. module: hr_timesheet #: model:ir.ui.menu,name:hr_timesheet.menu_hr_activity_analysis msgid "By Employee" -msgstr "" +msgstr "Ανά Υπάλληλο" #. module: hr_timesheet #: model:ir.ui.menu,name:hr_timesheet.timesheet_menu_report_timesheet_by_project diff --git a/addons/hr_timesheet/i18n/sk.po b/addons/hr_timesheet/i18n/sk.po index 7bcb89b19df0c..9aff6894d889e 100644 --- a/addons/hr_timesheet/i18n/sk.po +++ b/addons/hr_timesheet/i18n/sk.po @@ -394,6 +394,8 @@ msgstr "" msgid "" "Define an 'hourly cost' on the employee to track the cost of their time." msgstr "" +"Definujte „hodinovú sadzbu“ zamestnanca, aby ste mohli sledovať náklady na " +"jeho čas." #. module: hr_timesheet #: model:ir.actions.server,name:hr_timesheet.unlink_employee_action diff --git a/addons/hr_timesheet/tests/test_project_task_quick_create.py b/addons/hr_timesheet/tests/test_project_task_quick_create.py index 18cd32ab39eab..a980870610045 100644 --- a/addons/hr_timesheet/tests/test_project_task_quick_create.py +++ b/addons/hr_timesheet/tests/test_project_task_quick_create.py @@ -2,9 +2,9 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo.addons.hr_timesheet.tests.test_timesheet import TestCommonTimesheet -from odoo.tests import Form - +from odoo.tests import Form, tagged +@tagged('-at_install', 'post_install') class TestProjectTaskQuickCreate(TestCommonTimesheet): @classmethod def setUpClass(cls): diff --git a/addons/hr_work_entry/i18n/bg.po b/addons/hr_work_entry/i18n/bg.po index e754ab791e9bb..672d727adda67 100644 --- a/addons/hr_work_entry/i18n/bg.po +++ b/addons/hr_work_entry/i18n/bg.po @@ -11,6 +11,7 @@ # Maria Boyadjieva , 2024 # aleksandar ivanov, 2024 # Rosen Vladimirov , 2024 +# Martin Dinovski, 2025 # msgid "" msgstr "" @@ -18,7 +19,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-25 07:48+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Rosen Vladimirov , 2024\n" +"Last-Translator: Martin Dinovski, 2025\n" "Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -96,7 +97,7 @@ msgstr "Фирма" #. module: hr_work_entry #: model:ir.model.fields.selection,name:hr_work_entry.selection__hr_work_entry__state__conflict msgid "Conflict" -msgstr "" +msgstr "Конфликт" #. module: hr_work_entry #: model_terms:ir.ui.view,arch_db:hr_work_entry.hr_work_entry_view_search @@ -106,7 +107,7 @@ msgstr "" #. module: hr_work_entry #: model:ir.model.fields,field_description:hr_work_entry.field_hr_work_entry__conflict msgid "Conflicts" -msgstr "" +msgstr "Kонфликти" #. module: hr_work_entry #: model:ir.model.fields,field_description:hr_work_entry.field_hr_work_entry__country_id diff --git a/addons/html_editor/i18n/az.po b/addons/html_editor/i18n/az.po index 8437af76bd11f..c746806a02ba7 100644 --- a/addons/html_editor/i18n/az.po +++ b/addons/html_editor/i18n/az.po @@ -3,9 +3,9 @@ # * html_editor # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2025 # Jumshud Sultanov , 2025 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:23+0000\n" "PO-Revision-Date: 2024-09-29 00:00+0000\n" -"Last-Translator: Jumshud Sultanov , 2025\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1601,7 +1601,7 @@ msgstr "" #. odoo-javascript #: code:addons/html_editor/static/src/main/signature_plugin.js:0 msgid "Signature" -msgstr "" +msgstr "İmza" #. module: html_editor #. odoo-javascript @@ -2009,7 +2009,7 @@ msgstr "" #. odoo-javascript #: code:addons/html_editor/static/src/others/embedded_components/core/video/video.xml:0 msgid "Your browser does not support iframe." -msgstr "" +msgstr "Brauzeriniz iframe-i dəstəkləmir." #. module: html_editor #. odoo-javascript diff --git a/addons/html_editor/models/ir_attachment.py b/addons/html_editor/models/ir_attachment.py index b65ee028f9eac..6ba44b36ad9a3 100644 --- a/addons/html_editor/models/ir_attachment.py +++ b/addons/html_editor/models/ir_attachment.py @@ -38,7 +38,7 @@ def _compute_local_url(self): def _compute_image_src(self): for attachment in self: # Only add a src for supported images - if attachment.mimetype not in SUPPORTED_IMAGE_MIMETYPES: + if not attachment.mimetype or attachment.mimetype.split(';')[0] not in SUPPORTED_IMAGE_MIMETYPES: attachment.image_src = False continue diff --git a/addons/html_editor/static/src/core/selection_plugin.js b/addons/html_editor/static/src/core/selection_plugin.js index 1c07e123be272..c2b670740e09f 100644 --- a/addons/html_editor/static/src/core/selection_plugin.js +++ b/addons/html_editor/static/src/core/selection_plugin.js @@ -16,7 +16,7 @@ import { } from "@html_editor/utils/dom_traversal"; import { getActiveHotkey } from "@web/core/hotkeys/hotkey_service"; import { Plugin } from "../plugin"; -import { DIRECTIONS, boundariesIn, endPos, leftPos, nodeSize, rightPos } from "../utils/position"; +import { DIRECTIONS, endPos, leftPos, nodeSize, rightPos } from "../utils/position"; import { getAdjacentCharacter, normalizeCursorPosition, @@ -190,7 +190,8 @@ export class SelectionPlugin extends Plugin { const selection = this.getEditableSelection(); const containerSelector = "#wrap > *, .oe_structure > *, [contenteditable]"; const container = selection && closestElement(selection.anchorNode, containerSelector); - const [anchorNode, anchorOffset, focusNode, focusOffset] = boundariesIn(container); + const [anchorNode, anchorOffset] = getDeepestPosition(container, 0); + const [focusNode, focusOffset] = getDeepestPosition(container, nodeSize(container)); this.setSelection({ anchorNode, anchorOffset, focusNode, focusOffset }); } diff --git a/addons/html_editor/static/src/others/embedded_component_utils.js b/addons/html_editor/static/src/others/embedded_component_utils.js index d0a03d3f6db41..db27f275dfd1b 100644 --- a/addons/html_editor/static/src/others/embedded_component_utils.js +++ b/addons/html_editor/static/src/others/embedded_component_utils.js @@ -419,6 +419,11 @@ export class StateChangeManager { * recompute `data-embedded-props` for the next mounting operation. */ changeState() { + if (!this.previousEmbeddedState) { + // If there is no previousEmbeddedState, it means that no + // effective change was performed, so there is nothing to commit. + return; + } const previousEmbeddedState = this.previousEmbeddedState; this.previousEmbeddedState = null; const previous = JSON.stringify(sortedCopy(this.state)); diff --git a/addons/html_editor/static/tests/_helpers/user_actions.js b/addons/html_editor/static/tests/_helpers/user_actions.js index 54891ca12cc23..a95e206386f96 100644 --- a/addons/html_editor/static/tests/_helpers/user_actions.js +++ b/addons/html_editor/static/tests/_helpers/user_actions.js @@ -40,34 +40,36 @@ export async function insertText(editor, text) { }; for (const char of text) { // KeyDownEvent is required to trigger deleteRange. - const keydownEvent = await manuallyDispatchProgrammaticEvent(editor.editable, "keydown", { - key: char, - }); + const keydownEvent = await manuallyDispatchProgrammaticEvent.silent( + editor.editable, + "keydown", + { key: char } + ); if (keydownEvent.defaultPrevented) { continue; } // InputEvent is required to simulate the insert text. - const beforeinputEvent = await manuallyDispatchProgrammaticEvent( + const beforeinputEvent = await manuallyDispatchProgrammaticEvent.silent( editor.editable, "beforeinput", - { - inputType: "insertText", - data: char, - } + { inputType: "insertText", data: char } ); if (beforeinputEvent.defaultPrevented) { continue; } insertChar(char); - const inputEvent = await manuallyDispatchProgrammaticEvent(editor.editable, "input", { - inputType: "insertText", - data: char, - }); + const inputEvent = await manuallyDispatchProgrammaticEvent.silent( + editor.editable, + "input", + { inputType: "insertText", data: char } + ); if (inputEvent.defaultPrevented) { continue; } // KeyUpEvent is not required but is triggered like the browser would. - await manuallyDispatchProgrammaticEvent(editor.editable, "keyup", { key: char }); + await manuallyDispatchProgrammaticEvent.as("insertChar")(editor.editable, "keyup", { + key: char, + }); } } @@ -193,11 +195,13 @@ export async function unlinkFromPopover() { /** @param {Editor} editor */ export async function keydownTab(editor) { - await manuallyDispatchProgrammaticEvent(editor.editable, "keydown", { key: "Tab" }); + await manuallyDispatchProgrammaticEvent.as("keydownTab")(editor.editable, "keydown", { + key: "Tab", + }); } /** @param {Editor} editor */ export async function keydownShiftTab(editor) { - await manuallyDispatchProgrammaticEvent(editor.editable, "keydown", { + await manuallyDispatchProgrammaticEvent.as("keydownShiftTab")(editor.editable, "keydown", { key: "Tab", shiftKey: true, }); @@ -275,7 +279,7 @@ export function pasteOdooEditorHtml(editor, html) { export async function tripleClick(node) { const anchorNode = node; node = node.nodeType === Node.ELEMENT_NODE ? node : node.parentNode; - await manuallyDispatchProgrammaticEvent(node, "mousedown", { detail: 3 }); + await manuallyDispatchProgrammaticEvent.silent(node, "mousedown", { detail: 3 }); let focusNode = closestBlock(anchorNode).nextSibling; let focusOffset = 0; if (!focusNode) { @@ -287,8 +291,8 @@ export async function tripleClick(node) { focusNode, focusOffset, }); - await manuallyDispatchProgrammaticEvent(node, "mouseup", { detail: 3 }); - await manuallyDispatchProgrammaticEvent(node, "click", { detail: 3 }); + await manuallyDispatchProgrammaticEvent.silent(node, "mouseup", { detail: 3 }); + await manuallyDispatchProgrammaticEvent.as("tripleClick")(node, "click", { detail: 3 }); await tick(); } diff --git a/addons/html_editor/static/tests/banner.test.js b/addons/html_editor/static/tests/banner.test.js index 0d35eb3277f67..b3e840a5d0390 100644 --- a/addons/html_editor/static/tests/banner.test.js +++ b/addons/html_editor/static/tests/banner.test.js @@ -74,9 +74,9 @@ test("press 'ctrl+a' inside a banner should select all the banner content", asyn unformat( `

Test

💡 -
[ -

Test1

Test2

- ]
+
+

[Test1

Test2]

+


` ) ); @@ -96,9 +96,9 @@ test("remove all content should preserves the first paragraph tag inside the ban unformat( `

Test

💡 -
[ -

Test1

Test2

- ]
+
+

[Test1

Test2]

+


` ) ); @@ -149,7 +149,7 @@ test("Everything gets selected with ctrl+a, including a contenteditable=false as


-


]` +

]

` ); }); @@ -166,12 +166,12 @@ test("Everything gets selected with ctrl+a, including a banner", async () => { await insertText(editor, "Test2"); await press(["ctrl", "a"]); expect(getContent(el)).toBe( - `[


+ `

[

💡


-

Test1

Test2

]`, +

Test1

Test2]

`, { message: "should select everything" } ); @@ -187,7 +187,7 @@ test("Everything gets selected with ctrl+a, including a contenteditable=false as ); await press(["ctrl", "a"]); expect(getContent(el)).toBe( - '[
a
b

cd

]' + '[
a
b

cd]

' ); await press("Backspace"); diff --git a/addons/html_editor/static/tests/chatgpt.test.js b/addons/html_editor/static/tests/chatgpt.test.js index ef567ec6c8f13..4c98f1bdd3898 100644 --- a/addons/html_editor/static/tests/chatgpt.test.js +++ b/addons/html_editor/static/tests/chatgpt.test.js @@ -1,12 +1,12 @@ import { expect, test } from "@odoo/hoot"; -import { setupEditor } from "./_helpers/editor"; -import { getActiveElement, press, queryAll, queryOne, waitFor } from "@odoo/hoot-dom"; +import { press, queryAll, waitFor } from "@odoo/hoot-dom"; import { animationFrame } from "@odoo/hoot-mock"; import { contains, onRpc } from "@web/../tests/web_test_helpers"; -import { insertText } from "./_helpers/user_actions"; -import { getContent } from "./_helpers/selection"; -import { ChatGPTPlugin } from "../src/main/chatgpt/chatgpt_plugin"; import { loadLanguages } from "@web/core/l10n/translation"; +import { ChatGPTPlugin } from "../src/main/chatgpt/chatgpt_plugin"; +import { setupEditor } from "./_helpers/editor"; +import { getContent } from "./_helpers/selection"; +import { insertText } from "./_helpers/user_actions"; import { MAIN_PLUGINS } from "@html_editor/plugin_sets"; import { DEFAULT_ALTERNATIVES_MODES } from "../src/main/chatgpt/chatgpt_alternatives_dialog"; @@ -298,7 +298,7 @@ test("press escape to close ChatGPT dialog", async () => { // Expect the ChatGPT Prompt Dialog to be open. const promptDialogHeaderSelector = `.o_dialog .modal-header:contains("${PROMPT_DIALOG_TITLE}")`; await waitFor(promptDialogHeaderSelector); - expect(getActiveElement()).toBe(queryOne('.modal [name="promptInput"]')); + expect('.modal [name="promptInput"]').toBeFocused(); await press("escape"); await animationFrame(); diff --git a/addons/html_editor/static/tests/embedded_components.test.js b/addons/html_editor/static/tests/embedded_components.test.js index 0dd34a9c96255..f32d30737fab8 100644 --- a/addons/html_editor/static/tests/embedded_components.test.js +++ b/addons/html_editor/static/tests/embedded_components.test.js @@ -1351,6 +1351,31 @@ describe("Embedded state", () => { ); }); + test("Removing a non-existing property in the embedded state should do nothing", async () => { + let counter; + patchWithCleanup(SavedCounter.prototype, { + setup() { + super.setup(); + counter = this; + }, + }); + const { el } = await setupEditor( + `

`, + { config: getConfig([savedCounter]) } + ); + expect(getContent(el)).toBe( + `

Counter:1

` + ); + delete counter.embeddedState.notValue; + await animationFrame(); + expect(getContent(el)).toBe( + `

Counter:1

` + ); + expect(counter.embeddedState).toEqual({ + value: 1, + }); + }); + test("Write on `data-embedded-state` should write on the state, re-render the component and write on `data-embedded-props` and the embedded state", async () => { let counter; patchWithCleanup(OffsetCounter.prototype, { diff --git a/addons/html_editor/static/tests/format/font_size.test.js b/addons/html_editor/static/tests/format/font_size.test.js index ad8442ae9bbac..55a3c16f867fc 100644 --- a/addons/html_editor/static/tests/format/font_size.test.js +++ b/addons/html_editor/static/tests/format/font_size.test.js @@ -202,9 +202,7 @@ test("should add style to br except line-break br", async () => { const { editor, el } = await setupEditor("

[]abc

"); await press(["ctrl", "a"]); execCommand(editor, "formatFontSize", { size: "36px" }); - expect(getContent(el)).toBe( - `

[abc
]

` - ); + expect(getContent(el)).toBe(`

[abc]

`); }); test("should add style to br except line-break br (2)", async () => { @@ -212,6 +210,6 @@ test("should add style to br except line-break br (2)", async () => { await press(["ctrl", "a"]); execCommand(editor, "formatFontSize", { size: "36px" }); expect(getContent(el)).toBe( - `

[abc

]

` + `

[abc

]

` ); }); diff --git a/addons/html_editor/static/tests/html_field.test.js b/addons/html_editor/static/tests/html_field.test.js index b334fc5fcc6f3..822142fea1395 100644 --- a/addons/html_editor/static/tests/html_field.test.js +++ b/addons/html_editor/static/tests/html_field.test.js @@ -16,7 +16,7 @@ import { queryAllTexts, queryOne, waitFor, - waitUntil, + waitForNone, } from "@odoo/hoot-dom"; import { Deferred, animationFrame, mockSendBeacon, tick } from "@odoo/hoot-mock"; import { onWillDestroy, xml } from "@odoo/owl"; @@ -907,7 +907,7 @@ test("link preview in Link Popover", async () => { }); // Move selection outside to discard setSelectionInHtmlField(".test_target"); - await waitUntil(() => !document.querySelector(".o-we-linkpopover"), { timeout: 500 }); + await waitForNone(".o-we-linkpopover", { root: document, timeout: 500 }); expect(".o-we-linkpopover").toHaveCount(0); expect(".test_target a").toHaveText("This website"); diff --git a/addons/html_editor/static/tests/image.test.js b/addons/html_editor/static/tests/image.test.js index 3d70bd84a46c2..05ed43aebec83 100644 --- a/addons/html_editor/static/tests/image.test.js +++ b/addons/html_editor/static/tests/image.test.js @@ -1,8 +1,8 @@ import { expect, test } from "@odoo/hoot"; -import { click, press, queryOne, waitFor, waitUntil, dblclick } from "@odoo/hoot-dom"; +import { click, dblclick, press, queryOne, waitFor, waitForNone } from "@odoo/hoot-dom"; import { animationFrame } from "@odoo/hoot-mock"; -import { setupEditor } from "./_helpers/editor"; import { contains } from "@web/../tests/web_test_helpers"; +import { setupEditor } from "./_helpers/editor"; import { getContent, setContent } from "./_helpers/selection"; import { undo } from "./_helpers/user_actions"; @@ -299,7 +299,7 @@ test("Image transformation dissapear when selection change", async () => { `

[Hello] world

` ); - await waitUntil(() => !document.querySelector(".transfo-container")); + await waitForNone(".transfo-container"); transfoContainers = document.querySelectorAll(".transfo-container"); expect(transfoContainers).toHaveCount(0); // Remove the transfoContainer element if not destroyed by the selection change diff --git a/addons/html_editor/static/tests/insert/html.test.js b/addons/html_editor/static/tests/insert/html.test.js index a018d7632e25e..40de2e407a58a 100644 --- a/addons/html_editor/static/tests/insert/html.test.js +++ b/addons/html_editor/static/tests/insert/html.test.js @@ -513,7 +513,10 @@ describe("not collapsed selection", () => { ghij ` ), - stepFunction: (editor) => { + stepFunction: async (editor) => { + // Table selection happens on selectionchange event which is + // fired in the next tick. + await tick(); editor.shared.dom.insert(span("TEST")); editor.shared.history.addStep(); }, diff --git a/addons/html_editor/static/tests/link/popover.test.js b/addons/html_editor/static/tests/link/popover.test.js index c33a2fa244726..0fff74a92f055 100644 --- a/addons/html_editor/static/tests/link/popover.test.js +++ b/addons/html_editor/static/tests/link/popover.test.js @@ -2,7 +2,6 @@ import { describe, expect, test } from "@odoo/hoot"; import { click, fill, - getActiveElement, press, queryAllTexts, queryFirst, @@ -10,7 +9,7 @@ import { queryText, select, waitFor, - waitUntil, + waitForNone, } from "@odoo/hoot-dom"; import { animationFrame, tick } from "@odoo/hoot-mock"; import { markup } from "@odoo/owl"; @@ -34,7 +33,7 @@ describe("should open a popover", () => { expect(".o-we-linkpopover").toHaveCount(1); // selection outside a link setContent(el, "

this []is a link

"); - await waitUntil(() => !queryFirst(".o-we-linkpopover"), { timeout: 1500 }); + await waitForNone(".o-we-linkpopover", { timeout: 1500 }); expect(".o-we-linkpopover").toHaveCount(0); }); test("link popover should have input field for href when the link doesn't have href", async () => { @@ -124,7 +123,7 @@ describe("popover should edit,copy,remove the link", () => { const { el } = await setupEditor('

this is a li[]nk

'); await waitFor(".o-we-linkpopover"); await click(".o_we_remove_link"); - await waitUntil(() => !queryFirst(".o-we-linkpopover"), { timeout: 1500 }); + await waitForNone(".o-we-linkpopover", { timeout: 1500 }); expect(getContent(el)).toBe("

this is a li[]nk

"); }); test("after edit the label, the text of the link should be updated", async () => { @@ -229,7 +228,7 @@ describe("Link creation", () => { expect(cleanLinkArtifacts(getContent(el))).toBe("

ab[]

"); await waitFor(".o-we-linkpopover"); expect(".o-we-linkpopover").toHaveCount(1); - expect(getActiveElement()).toBe(queryOne(".o-we-linkpopover input.o_we_label_link"), { + expect(".o-we-linkpopover input.o_we_label_link").toBeFocused({ message: "should focus label input by default, when we don't have a label", }); }); @@ -384,9 +383,7 @@ describe("Link creation", () => { await waitFor(".o-we-toolbar"); await click(".o-we-toolbar .fa-link"); await waitFor(".o-we-linkpopover", { timeout: 1500 }); - expect(getActiveElement()).toBe( - queryOne(".o-we-linkpopover input.o_we_href_input_link") - ); + expect(".o-we-linkpopover input.o_we_href_input_link").toBeFocused(); await fill("test.com"); await click(".o_we_apply_link"); @@ -733,7 +730,7 @@ describe("link preview", () => { focusNode: pNode, focusOffset: 1, }); - await waitUntil(() => !queryFirst(".o-we-linkpopover"), { timeout: 1500 }); + await waitForNone(".o-we-linkpopover", { timeout: 1500 }); const linkNode = queryOne("a"); setSelection({ @@ -774,7 +771,7 @@ describe("link preview", () => { focusNode: pNode, focusOffset: 1, }); - await waitUntil(() => !queryFirst(".o-we-linkpopover"), { timeout: 1500 }); + await waitForNone(".o-we-linkpopover", { timeout: 1500 }); const linkNode = queryOne("a"); setSelection({ @@ -801,7 +798,7 @@ describe("link in templates", () => { focusNode: pNode, focusOffset: 0, }); - await waitUntil(() => !queryFirst(".o-we-linkpopover"), { timeout: 1500 }); + await waitForNone(".o-we-linkpopover", { timeout: 1500 }); expect(cleanLinkArtifacts(getContent(el))).toBe( '

[]testlink

' ); @@ -818,7 +815,7 @@ describe("link in templates", () => { focusNode: pNode, focusOffset: 0, }); - await waitUntil(() => !queryFirst(".o-we-linkpopover"), { timeout: 1500 }); + await waitForNone(".o-we-linkpopover", { timeout: 1500 }); expect(cleanLinkArtifacts(getContent(el))).toBe( '

[]testlink

' ); diff --git a/addons/html_editor/static/tests/list/delete_backward.test.js b/addons/html_editor/static/tests/list/delete_backward.test.js index 6f5a003979762..1ac1528bbf35a 100644 --- a/addons/html_editor/static/tests/list/delete_backward.test.js +++ b/addons/html_editor/static/tests/list/delete_backward.test.js @@ -2128,71 +2128,87 @@ describe("Selection not collapsed", () => { }); }); - test("should delete across two list items", async () => { + describe("should delete across two list items", () => { // Forward selection - await testEditor({ - contentBefore: - '
  • ab[cd
  • ef]gh
', - stepFunction: deleteBackward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (1)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
  • ef]gh
', + stepFunction: deleteBackward, + contentAfter: '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab[cd
  • ef]gh
', - stepFunction: deleteBackward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (2)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
  • ef]gh
', + stepFunction: deleteBackward, + contentAfter: '
  • ab[]gh
', + }); }); // Backward selection - await testEditor({ - contentBefore: - '
  • ab]cd
  • ef[gh
', - stepFunction: deleteBackward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (3)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
  • ef[gh
', + stepFunction: deleteBackward, + contentAfter: '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab]cd
  • ef[gh
', - stepFunction: deleteBackward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (4)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
  • ef[gh
', + stepFunction: deleteBackward, + contentAfter: '
  • ab[]gh
', + }); }); }); - test("should delete across an unindented list item and an indented list item", async () => { + describe("should delete across an unindented list item and an indented list item", () => { // Forward selection - await testEditor({ - contentBefore: - '
  • ab[cd
    • ef]gh
', - stepFunction: deleteBackward, - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (1)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
    • ef]gh
', + stepFunction: deleteBackward, + contentAfter: '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab[cd
    • ef]gh
', - stepFunction: deleteBackward, - // The indented list cannot be unchecked while its - // parent is checked: it gets checked automatically - // as a result. So "efgh" gets rendered as checked. - // Given that the parent list item was explicitely - // set as "checked", that status is preserved. - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (2)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
    • ef]gh
', + stepFunction: deleteBackward, + // The indented list cannot be unchecked while its + // parent is checked: it gets checked automatically + // as a result. So "efgh" gets rendered as checked. + // Given that the parent list item was explicitely + // set as "checked", that status is preserved. + contentAfter: '
  • ab[]gh
', + }); }); // Backward selection - await testEditor({ - contentBefore: - '
  • ab]cd
    • ef[gh
', - stepFunction: deleteBackward, - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (3)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
    • ef[gh
', + stepFunction: deleteBackward, + contentAfter: '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab]cd
    • ef[gh
', - stepFunction: deleteBackward, - // The indented list cannot be unchecked while its - // parent is checked: it gets checked automatically - // as a result. So "efgh" gets rendered as checked. - // Given that the parent list item was explicitely - // set as "checked", that status is preserved. - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (4)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
    • ef[gh
', + stepFunction: deleteBackward, + // The indented list cannot be unchecked while its + // parent is checked: it gets checked automatically + // as a result. So "efgh" gets rendered as checked. + // Given that the parent list item was explicitely + // set as "checked", that status is preserved. + contentAfter: '
  • ab[]gh
', + }); }); }); diff --git a/addons/html_editor/static/tests/list/delete_forward.test.js b/addons/html_editor/static/tests/list/delete_forward.test.js index 3b48388a9a17e..746ab2062208b 100644 --- a/addons/html_editor/static/tests/list/delete_forward.test.js +++ b/addons/html_editor/static/tests/list/delete_forward.test.js @@ -933,107 +933,151 @@ describe("Selection not collapsed", () => { }); }); - test("should delete across two list items", async () => { - // Forward selection - await testEditor({ - contentBefore: - '
  • ab[cd
  • ef]gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + describe("should delete across two list items", () => {}); + // Forward selection + test("should delete across two list items (1)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
  • ef]gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab[cd
  • ef]gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (2)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
  • ef]gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab[cd
  • ef]gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (3)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
  • ef]gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: '
  • ab[cd
  • ef]gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (4)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
  • ef]gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); // Backward selection - await testEditor({ - contentBefore: - '
  • ab]cd
  • ef[gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (5)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
  • ef[gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab]cd
  • ef[gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (6)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
  • ef[gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab]cd
  • ef[gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (7)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
  • ef[gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: '
  • ab]cd
  • ef[gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across two list items (8)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
  • ef[gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); }); - test("should delete across an unindented list item and an indented list item", async () => { + describe("should delete across an unindented list item and an indented list item", () => { // Forward selection - await testEditor({ - contentBefore: - '
  • ab[cd
    • ef]gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (1)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
    • ef]gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab[cd
    • ef]gh
', - stepFunction: deleteForward, - // The indented list's parent gets rendered as - // checked because its only child is checked. - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (2)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
    • ef]gh
', + stepFunction: deleteForward, + // The indented list's parent gets rendered as + // checked because its only child is checked. + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab[cd
    • ef]gh
', - stepFunction: deleteForward, - // The indented list's parent gets rendered as - // checked because its only child is checked. When - // we remove that child, the checklist gets - // unchecked because it becomes independant again. - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (3)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
    • ef]gh
', + stepFunction: deleteForward, + // The indented list's parent gets rendered as + // checked because its only child is checked. When + // we remove that child, the checklist gets + // unchecked because it becomes independant again. + contentAfter: + '
  • ab[]gh
', + }); }); // Backward selection - await testEditor({ - contentBefore: - '
  • ab]cd
    • ef[gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (4)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
    • ef[gh
', + stepFunction: deleteForward, + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab]cd
    • ef[gh
', - stepFunction: deleteForward, - // The indented list's parent gets rendered as - // checked because its only child is checked. - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (5)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
    • ef[gh
', + stepFunction: deleteForward, + // The indented list's parent gets rendered as + // checked because its only child is checked. + contentAfter: + '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab]cd
    • ef[gh
', - stepFunction: deleteForward, - // The indented list's parent gets rendered as - // checked because its only child is checked. When - // we remove that child, the checklist gets - // unchecked because it becomes independant again. - contentAfter: '
  • ab[]gh
', + test("should delete across an unindented list item and an indented list item (6)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
    • ef[gh
', + stepFunction: deleteForward, + // The indented list's parent gets rendered as + // checked because its only child is checked. When + // we remove that child, the checklist gets + // unchecked because it becomes independant again. + contentAfter: + '
  • ab[]gh
', + }); }); }); @@ -1052,67 +1096,82 @@ describe("Selection not collapsed", () => { }); }); - test("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is", async () => { + describe("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is", () => { // Forward selection - await testEditor({ - contentBefore: - '

a[b

de

  • fg
  • h]i
  • jk
', - stepFunction: deleteForward, - contentAfter: - '

a[]i

  • jk
', + test("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is (1)", async () => { + await testEditor({ + contentBefore: + '

a[b

de

  • fg
  • h]i
  • jk
', + stepFunction: deleteForward, + contentAfter: + '

a[]i

  • jk
', + }); }); - await testEditor({ - contentBefore: - '

a[b

de

  • fg
  • h]i
  • jk
', - stepFunction: deleteForward, - contentAfter: - '

a[]i

  • jk
', + test("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is (2)", async () => { + await testEditor({ + contentBefore: + '

a[b

de

  • fg
  • h]i
  • jk
', + stepFunction: deleteForward, + contentAfter: + '

a[]i

  • jk
', + }); }); - await testEditor({ - contentBefore: - '

a[b

de

  • fg
  • h]i
  • jk
', - stepFunction: deleteForward, - contentAfter: - '

a[]i

  • jk
', + test("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is (3)", async () => { + await testEditor({ + contentBefore: + '

a[b

de

  • fg
  • h]i
  • jk
', + stepFunction: deleteForward, + contentAfter: + '

a[]i

  • jk
', + }); }); - await testEditor({ - contentBefore: - '

a[b

de

  • fg
  • h]i
  • jk
', - stepFunction: deleteForward, - contentAfter: - '

a[]i

  • jk
', + test("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is (4)", async () => { + await testEditor({ + contentBefore: + '

a[b

de

  • fg
  • h]i
  • jk
', + stepFunction: deleteForward, + contentAfter: + '

a[]i

  • jk
', + }); }); // Backward selection - await testEditor({ - contentBefore: - '

a]b

de

  • fg
  • h[i
  • jk
', - stepFunction: deleteForward, - contentAfter: - '

a[]i

  • jk
', + test("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is (5)", async () => { + await testEditor({ + contentBefore: + '

a]b

de

  • fg
  • h[i
  • jk
', + stepFunction: deleteForward, + contentAfter: + '

a[]i

  • jk
', + }); }); - await testEditor({ - contentBefore: - '

a]b

de

  • fg
  • h[i
  • jk
', - stepFunction: deleteForward, - contentAfter: - '

a[]i

  • jk
', + test("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is (6)", async () => { + await testEditor({ + contentBefore: + '

a]b

de

  • fg
  • h[i
  • jk
', + stepFunction: deleteForward, + contentAfter: + '

a[]i

  • jk
', + }); }); - await testEditor({ - contentBefore: - '

a]b

de

  • fg
  • h[i
  • jk
', - stepFunction: deleteForward, - contentAfter: - '

a[]i

  • jk
', + test("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is (7)", async () => { + await testEditor({ + contentBefore: + '

a]b

de

  • fg
  • h[i
  • jk
', + stepFunction: deleteForward, + contentAfter: + '

a[]i

  • jk
', + }); }); - await testEditor({ - contentBefore: - '

a]b

de

  • fg
  • h[i
  • jk
', - stepFunction: deleteForward, - contentAfter: - '

a[]i

  • jk
', + test("should merge the contents of a checklist item within a block into a heading, and leave the rest of its list as it is (8)", async () => { + await testEditor({ + contentBefore: + '

a]b

de

  • fg
  • h[i
  • jk
', + stepFunction: deleteForward, + contentAfter: + '

a[]i

  • jk
', + }); }); }); - }); describe("Mixed", () => { describe("Ordered to unordered", () => { test("should delete across an ordered list and an unordered list", async () => { @@ -1280,32 +1339,40 @@ describe("Selection not collapsed", () => { }); }); - test("should delete across an checklist list item and an unordered list item within an checklist list", async () => { + describe("should delete across an checklist list item and an unordered list item within an checklist list", () => { // Forward selection - await testEditor({ - contentBefore: - '
  • ab[cd
    • ef]gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across an checklist list item and an unordered list item within an checklist list (1)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
    • ef]gh
', + stepFunction: deleteForward, + contentAfter: '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab[cd
    • ef]gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across an checklist list item and an unordered list item within an checklist list (2)", async () => { + await testEditor({ + contentBefore: + '
  • ab[cd
    • ef]gh
', + stepFunction: deleteForward, + contentAfter: '
  • ab[]gh
', + }); }); // Backward selection - await testEditor({ - contentBefore: - '
  • ab]cd
    • ef[gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across an checklist list item and an unordered list item within an checklist list (3)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
    • ef[gh
', + stepFunction: deleteForward, + contentAfter: '
  • ab[]gh
', + }); }); - await testEditor({ - contentBefore: - '
  • ab]cd
    • ef[gh
', - stepFunction: deleteForward, - contentAfter: '
  • ab[]gh
', + test("should delete across an checklist list item and an unordered list item within an checklist list (4)", async () => { + await testEditor({ + contentBefore: + '
  • ab]cd
    • ef[gh
', + stepFunction: deleteForward, + contentAfter: '
  • ab[]gh
', + }); }); }); diff --git a/addons/html_editor/static/tests/media.test.js b/addons/html_editor/static/tests/media.test.js index f7c53f6e5645a..b107e83a5747a 100644 --- a/addons/html_editor/static/tests/media.test.js +++ b/addons/html_editor/static/tests/media.test.js @@ -1,8 +1,8 @@ -import { expect, test, describe } from "@odoo/hoot"; -import { click, getActiveElement, press, queryOne, waitFor } from "@odoo/hoot-dom"; +import { describe, expect, test } from "@odoo/hoot"; +import { click, press, waitFor } from "@odoo/hoot-dom"; import { animationFrame, tick } from "@odoo/hoot-mock"; -import { setupEditor } from "./_helpers/editor"; import { makeMockEnv, onRpc } from "@web/../tests/web_test_helpers"; +import { setupEditor } from "./_helpers/editor"; import { getContent } from "./_helpers/selection"; import { insertText } from "./_helpers/user_actions"; @@ -100,7 +100,7 @@ test("press escape to close media dialog", async () => { await waitFor(".o-we-powerbox"); await press("Enter"); await animationFrame(); - expect(getActiveElement()).toBe(queryOne(".modal .o_select_media_dialog .o_we_search")); + expect(".modal .o_select_media_dialog .o_we_search").toBeFocused(); await press("escape"); await animationFrame(); diff --git a/addons/html_editor/static/tests/mouse/click.test.js b/addons/html_editor/static/tests/mouse/click.test.js index aa9fb141e9733..1cdf8ad9dc197 100644 --- a/addons/html_editor/static/tests/mouse/click.test.js +++ b/addons/html_editor/static/tests/mouse/click.test.js @@ -1,8 +1,8 @@ +import { leftPos, rightPos } from "@html_editor/utils/position"; import { expect, test } from "@odoo/hoot"; -import { setupEditor, testEditor } from "../_helpers/editor"; -import { pointerDown, pointerUp, waitUntil } from "@odoo/hoot-dom"; +import { pointerDown, pointerUp, waitForNone } from "@odoo/hoot-dom"; import { tick } from "@odoo/hoot-mock"; -import { leftPos, rightPos } from "@html_editor/utils/position"; +import { setupEditor, testEditor } from "../_helpers/editor"; import { getContent, setSelection } from "../_helpers/selection"; /** @@ -117,7 +117,7 @@ test("should have collapsed selection when mouse down on a table cell", async () ); const lastCell = el.querySelector("td:last-child"); pointerDown(lastCell); - await waitUntil(() => !document.querySelector(".o-we-toolbar")); + await waitForNone(".o-we-toolbar"); const selection = document.getSelection(); expect(selection.isCollapsed).toBe(true); }); diff --git a/addons/html_editor/static/tests/powerbox.test.js b/addons/html_editor/static/tests/powerbox.test.js index e13740f49cc81..05375879a1bbc 100644 --- a/addons/html_editor/static/tests/powerbox.test.js +++ b/addons/html_editor/static/tests/powerbox.test.js @@ -779,10 +779,10 @@ test.todo("add plugins with the same powerboxCategory should crash", async () => config: { Plugins: [...MAIN_PLUGINS, Plugin1, Plugin2] }, }) ).rejects.toThrow(); - expect(["Duplicate category id: test"]).toVerifyErrors(); - expect([ + expect.verifyErrors(["Duplicate category id: test"]); + expect.verifySteps([ "[Owl] Unhandled error. Destroying the root component", "[Owl] Unhandled error. Destroying the root component", "[Owl] Unhandled error. Destroying the root component", - ]).toVerifySteps(); + ]); }); diff --git a/addons/html_editor/static/tests/selection.test.js b/addons/html_editor/static/tests/selection.test.js index ded48c6bd7f69..502e3cbd18024 100644 --- a/addons/html_editor/static/tests/selection.test.js +++ b/addons/html_editor/static/tests/selection.test.js @@ -1,5 +1,5 @@ import { describe, expect, test } from "@odoo/hoot"; -import { getActiveElement, press, queryFirst, queryOne } from "@odoo/hoot-dom"; +import { press, queryFirst, queryOne } from "@odoo/hoot-dom"; import { animationFrame, tick } from "@odoo/hoot-mock"; import { Component, xml } from "@odoo/owl"; import { patchWithCleanup } from "@web/../tests/web_test_helpers"; @@ -210,12 +210,12 @@ test("restore a selection when you are not in the editable shouldn't move the fo await insertText(editor, "/test"); await press("enter"); await animationFrame(); - expect(getActiveElement()).toBe(queryOne("input.test")); + expect("input.test").toBeFocused(); // Something trigger restore const cursors = editor.shared.selection.preserveSelection(); cursors.restore(); - expect(getActiveElement()).toBe(queryOne("input.test")); + expect("input.test").toBeFocused(); }); test("set a collapse selection in a contenteditable false should move it after this node", async () => { diff --git a/addons/html_editor/static/tests/table/selection.test.js b/addons/html_editor/static/tests/table/selection.test.js index a91b15014db27..66597e9cd506c 100644 --- a/addons/html_editor/static/tests/table/selection.test.js +++ b/addons/html_editor/static/tests/table/selection.test.js @@ -1,4 +1,5 @@ import { describe, expect, test } from "@odoo/hoot"; +import { tick } from "@odoo/hoot-mock"; import { setupEditor, testEditor } from "../_helpers/editor"; import { unformat } from "../_helpers/format"; import { bold, resetSize, setColor } from "../_helpers/user_actions"; @@ -358,7 +359,12 @@ describe("select a full table on cross over", () => { "cd" + "ef" + "", - stepFunction: setColor("aquamarine", "color"), + stepFunction: async (editor) => { + // Table selection happens on selectionchange + // event which is fired in the next tick. + await tick(); + setColor("aquamarine", "color")(editor); + }, contentAfterEdit: unformat(`

a[bc diff --git a/addons/html_editor/static/tests/tags.test.js b/addons/html_editor/static/tests/tags.test.js index 602579596b74c..51add01d4480a 100644 --- a/addons/html_editor/static/tests/tags.test.js +++ b/addons/html_editor/static/tests/tags.test.js @@ -507,9 +507,9 @@ describe("to blockquote", () => { test("setTag should work after control+a", async () => { const { el, editor } = await setupEditor("

[]abcd

"); await press(["ctrl", "a"]); - expect(getContent(el)).toBe("[

abcd

]"); + expect(getContent(el)).toBe("

[abcd]

"); setTag("h1")(editor); - expect(getContent(el)).toBe("[

abcd

]"); + expect(getContent(el)).toBe("

[abcd]

"); }); }); diff --git a/addons/html_editor/static/tests/toolbar.test.js b/addons/html_editor/static/tests/toolbar.test.js index a9a02b99a0b57..db8a2ada29767 100644 --- a/addons/html_editor/static/tests/toolbar.test.js +++ b/addons/html_editor/static/tests/toolbar.test.js @@ -1,3 +1,4 @@ +import { withSequence } from "@html_editor/utils/resource"; import { describe, expect, test } from "@odoo/hoot"; import { click, @@ -11,11 +12,10 @@ import { queryAllTexts, waitFor, waitForNone, - waitUntil, } from "@odoo/hoot-dom"; import { advanceTime, animationFrame, tick } from "@odoo/hoot-mock"; import { contains, patchTranslations, patchWithCleanup } from "@web/../tests/web_test_helpers"; -import { fontSizeItems, fontItems } from "../src/main/font/font_plugin"; +import { fontItems, fontSizeItems } from "../src/main/font/font_plugin"; import { Plugin } from "../src/plugin"; import { MAIN_PLUGINS } from "../src/plugin_sets"; import { convertNumericToUnit, getCSSVariableValue, getHtmlStyle } from "../src/utils/formatting"; @@ -27,7 +27,6 @@ import { setContent, setSelection, } from "./_helpers/selection"; -import { withSequence } from "@html_editor/utils/resource"; import { strong } from "./_helpers/tags"; test.tags("desktop"); @@ -42,7 +41,7 @@ test("toolbar is only visible when selection is not collapsed in desktop", async // set a collapsed selection to close toolbar setContent(el, "

test[]

"); - await waitUntil(() => !document.querySelector(".o-we-toolbar")); + await waitForNone(".o-we-toolbar"); expect(".o-we-toolbar").toHaveCount(0); }); @@ -455,7 +454,7 @@ test("toolbar behave properly if selection has no range", async () => { selection.removeAllRanges(); setContent(el, "

abc

"); - await waitUntil(() => !document.querySelector(".o-we-toolbar")); + await waitForNone(".o-we-toolbar"); expect(".o-we-toolbar").toHaveCount(0); }); diff --git a/addons/http_routing/i18n/bg.po b/addons/http_routing/i18n/bg.po index 4c15698e45da1..42d884fe6268f 100644 --- a/addons/http_routing/i18n/bg.po +++ b/addons/http_routing/i18n/bg.po @@ -9,6 +9,7 @@ # Maria Boyadjieva , 2024 # Albena Mincheva , 2024 # Petko Karamotchev, 2024 +# Martin Dinovski, 2025 # msgid "" msgstr "" @@ -16,7 +17,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:57+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Petko Karamotchev, 2024\n" +"Last-Translator: Martin Dinovski, 2025\n" "Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,7 +56,7 @@ msgstr "Грешка" #. module: http_routing #: model_terms:ir.ui.view,arch_db:http_routing.404 msgid "Error 404" -msgstr "" +msgstr "Грешка 404" #. module: http_routing #: model:ir.model,name:http_routing.model_ir_http diff --git a/addons/im_livechat/i18n/zh_CN.po b/addons/im_livechat/i18n/zh_CN.po index 252faa94580ca..4b3af41e29e1c 100644 --- a/addons/im_livechat/i18n/zh_CN.po +++ b/addons/im_livechat/i18n/zh_CN.po @@ -5,7 +5,7 @@ # Translators: # Wil Odoo, 2024 # Chloe Wang, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:02+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Odoo哥 , 2024\n" +"Last-Translator: 何彬 , 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/addons/im_livechat/static/tests/embed/chat_window.test.js b/addons/im_livechat/static/tests/embed/chat_window.test.js index f40851e2afb84..ccf99cb6fa887 100644 --- a/addons/im_livechat/static/tests/embed/chat_window.test.js +++ b/addons/im_livechat/static/tests/embed/chat_window.test.js @@ -1,4 +1,3 @@ -import { waitNotifications } from "@bus/../tests/bus_test_helpers"; import { LivechatButton } from "@im_livechat/embed/common/livechat_button"; import { defineLivechatModels, @@ -39,7 +38,7 @@ test("do not save fold state of temporary live chats", async () => { onRpcBefore("/discuss/channel/fold", (args) => { step(`fold - ${args.state}`); }); - const env = await start({ authenticateAs: false }); + await start({ authenticateAs: false }); await mountWithCleanup(LivechatButton); await click(".o-livechat-LivechatButton"); await contains(".o-mail-Message", { text: "Hello, how may I help you?" }); @@ -48,7 +47,6 @@ test("do not save fold state of temporary live chats", async () => { await triggerHotkey("Enter"); await contains(".o-mail-Message", { text: "Hello" }); await click(".o-mail-ChatWindow-header"); - await waitNotifications([env, "discuss.Thread/fold_state"]); await contains(".o-mail-Message", { text: "Hello", count: 0 }); await assertSteps(["fold - folded"]); await click(".o-mail-ChatBubble"); diff --git a/addons/im_livechat/static/tests/embed/feedback_panel.test.js b/addons/im_livechat/static/tests/embed/feedback_panel.test.js index aecda2498f484..f4953276643f6 100644 --- a/addons/im_livechat/static/tests/embed/feedback_panel.test.js +++ b/addons/im_livechat/static/tests/embed/feedback_panel.test.js @@ -1,11 +1,9 @@ -import { waitNotifications } from "@bus/../tests/bus_test_helpers"; -import { LivechatButton } from "@im_livechat/embed/common/livechat_button"; -import { RATING } from "@im_livechat/embed/common/livechat_service"; import { defineLivechatModels, loadDefaultEmbedConfig, } from "@im_livechat/../tests/livechat_test_helpers"; -import { describe, expect, test } from "@odoo/hoot"; +import { LivechatButton } from "@im_livechat/embed/common/livechat_button"; +import { RATING } from "@im_livechat/embed/common/livechat_service"; import { assertSteps, click, @@ -17,6 +15,7 @@ import { step, triggerHotkey, } from "@mail/../tests/mail_test_helpers"; +import { describe, expect, test } from "@odoo/hoot"; import { mountWithCleanup } from "@web/../tests/web_test_helpers"; describe.current.tags("desktop"); @@ -90,14 +89,13 @@ test("Feedback with rating and comment", async () => { test("Closing folded chat window should open it with feedback", async () => { await startServer(); await loadDefaultEmbedConfig(); - const env = await start({ authenticateAs: false }); + await start({ authenticateAs: false }); await mountWithCleanup(LivechatButton); await click(".o-livechat-LivechatButton"); await insertText(".o-mail-Composer-input", "Hello World!"); triggerHotkey("Enter"); await contains(".o-mail-Message-content", { text: "Hello World!" }); await click("[title='Fold']"); - await waitNotifications([env, "discuss.Thread/fold_state"]); await click(".o-mail-ChatBubble"); await click("[title*='Close Chat Window']"); await click(".o-livechat-CloseConfirmation-leave"); diff --git a/addons/l10n_ar/models/account_move.py b/addons/l10n_ar/models/account_move.py index e0e3973119230..c1d815c6112d8 100644 --- a/addons/l10n_ar/models/account_move.py +++ b/addons/l10n_ar/models/account_move.py @@ -218,7 +218,7 @@ def _reverse_moves(self, default_values_list=None, cancel=False): }) return super()._reverse_moves(default_values_list=default_values_list, cancel=cancel) - @api.onchange('l10n_latam_document_type_id', 'l10n_latam_document_number') + @api.onchange('l10n_latam_document_type_id', 'l10n_latam_document_number', 'partner_id') def _inverse_l10n_latam_document_number(self): super()._inverse_l10n_latam_document_number() diff --git a/addons/l10n_cl/views/account_move_view.xml b/addons/l10n_cl/views/account_move_view.xml index 69761cb67bf2b..01439fbc0753b 100644 --- a/addons/l10n_cl/views/account_move_view.xml +++ b/addons/l10n_cl/views/account_move_view.xml @@ -17,7 +17,7 @@ - not l10n_latam_use_documents or (not l10n_latam_manual_document_number and state != "draft" and (not posted_before or country_code != "CL")) + posted_before and state != 'draft' l10n_latam_manual_document_number diff --git a/addons/l10n_ec/models/account_move.py b/addons/l10n_ec/models/account_move.py index e995cc789268f..106075f2ddda9 100644 --- a/addons/l10n_ec/models/account_move.py +++ b/addons/l10n_ec/models/account_move.py @@ -190,3 +190,18 @@ def _get_last_sequence_domain(self, relaxed=False): """ param["l10n_latam_document_type_id"] = tuple(document_types.ids) return where_string, param + + def _skip_format_document_number(self): + """ + If a Credit Note is created from a Vendor Bill and the partner_id != "EC", + we want to allow the user to allocate any number without following the EC format. + """ + self.ensure_one() + if self.country_code == 'EC': + return ( + self.l10n_latam_document_type_id.internal_type in ('credit_note', 'debit_note') + and self.partner_id.country_code != "EC" + and self.move_type == 'in_refund' + and self.journal_id.type == 'purchase' + ) + super()._skip_format_document_number() diff --git a/addons/l10n_ec/tests/__init__.py b/addons/l10n_ec/tests/__init__.py new file mode 100644 index 0000000000000..ff0318a721a88 --- /dev/null +++ b/addons/l10n_ec/tests/__init__.py @@ -0,0 +1,2 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import test_account_move diff --git a/addons/l10n_ec/tests/test_account_move.py b/addons/l10n_ec/tests/test_account_move.py new file mode 100644 index 0000000000000..662fb1a2dc0ad --- /dev/null +++ b/addons/l10n_ec/tests/test_account_move.py @@ -0,0 +1,41 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields +from odoo.addons.account_edi.tests.common import AccountEdiTestCommon +from odoo.exceptions import UserError +from odoo.tests import tagged, Form + +from odoo.addons.account.tests.common import AccountTestInvoicingCommon + + +@tagged('post_install_l10n', 'post_install', '-at_install') +class TestEcAccountMove(AccountTestInvoicingCommon): + + @classmethod + @AccountEdiTestCommon.setup_country('ec') + def setUpClass(cls): + super().setUpClass() + + def test_document_number_credit_note(self): + """ + Test that when creating a Credit Note in the Purchase journal with a partner not from Ecuador a document number can be anything + If the partner is from Ecuador, an error should be raised + """ + self.partner_a.country_id = self.env.ref('base.us') + self.partner_b.country_id = self.env.ref('base.ec') + + document_credit_note = self.env['l10n_latam.document.type'].search([ + ('internal_type', '=', 'credit_note'), + ('country_id', '=', self.env.ref('base.ec').id), + ('l10n_ec_check_format', '=', True), + ], limit=1) + move_form = Form(self.env['account.move'].with_context(default_move_type='in_refund')) + move_form.partner_id = self.partner_a + move_form.l10n_latam_document_type_id = document_credit_note + move_form.invoice_date = fields.Date.from_string('2024-08-08') + move_form.l10n_latam_document_number = '123456' + + move_form.save() + + with self.assertRaises(UserError, msg="Ecuadorian Document (04) Nota de Crédito must be like 001-001-123456789"): + move_form.partner_id = self.partner_b diff --git a/addons/l10n_latam_base/i18n/es_419.po b/addons/l10n_latam_base/i18n/es_419.po index 4e6d3b24eb7dc..d967852408997 100644 --- a/addons/l10n_latam_base/i18n/es_419.po +++ b/addons/l10n_latam_base/i18n/es_419.po @@ -4,18 +4,22 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0alpha1+e\n" +"Project-Id-Version: Odoo Server 18.0+e\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-08-22 13:00+0000\n" -"PO-Revision-Date: 2019-08-22 13:00+0000\n" +"POT-Creation-Date: 2025-02-11 15:19+0000\n" +"PO-Revision-Date: 2025-02-11 15:19+0000\n" "Last-Translator: \n" "Language-Team: \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: l10n_latam_base +#: model_terms:ir.ui.view,arch_db:l10n_latam_base.view_partner_latam_form +msgid " - " +msgstr "" + #. module: l10n_latam_base #: model:ir.model.fields,field_description:l10n_latam_base.field_l10n_latam_identification_type__active #: model_terms:ir.ui.view,arch_db:l10n_latam_base.view_l10n_latam_identification_type_search @@ -30,7 +34,7 @@ msgstr "Archivado" #. module: l10n_latam_base #: model:ir.model,name:l10n_latam_base.model_res_company msgid "Companies" -msgstr "Compañías" +msgstr "Empresas" #. module: l10n_latam_base #: model:ir.model,name:l10n_latam_base.model_res_partner @@ -65,7 +69,7 @@ msgstr "Nombre a mostrar" #. module: l10n_latam_base #: model:l10n_latam.identification.type,name:l10n_latam_base.it_fid msgid "Foreign ID" -msgstr "Cédula Extranjera" +msgstr "ID Extranjera" #. module: l10n_latam_base #: model:ir.model.fields,field_description:l10n_latam_base.field_l10n_latam_identification_type__id @@ -96,18 +100,13 @@ msgstr "Tipo de Identificación" #. module: l10n_latam_base #: model:ir.model,name:l10n_latam_base.model_l10n_latam_identification_type msgid "Identification Types" -msgstr "Tipos de Identificación" +msgstr "Tipos de identificación" #. module: l10n_latam_base #: model:ir.model.fields,field_description:l10n_latam_base.field_l10n_latam_identification_type__is_vat msgid "Is Vat" msgstr "Es Identificación Fiscal?" -#. module: l10n_latam_base -#: model:ir.model.fields,field_description:l10n_latam_base.field_l10n_latam_identification_type____last_update -msgid "Last Modified on" -msgstr "Última modificación en" - #. module: l10n_latam_base #: model:ir.model.fields,field_description:l10n_latam_base.field_l10n_latam_identification_type__write_uid msgid "Last Updated by" @@ -162,4 +161,4 @@ msgstr "Tipo" #. module: l10n_latam_base #: model:l10n_latam.identification.type,name:l10n_latam_base.it_vat msgid "VAT" -msgstr "" +msgstr "IVA" diff --git a/addons/l10n_latam_base/i18n/l10n_latam_base.pot b/addons/l10n_latam_base/i18n/l10n_latam_base.pot index 513b3fb89e7f1..963409e5fcdd1 100644 --- a/addons/l10n_latam_base/i18n/l10n_latam_base.pot +++ b/addons/l10n_latam_base/i18n/l10n_latam_base.pot @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0alpha1+e\n" +"Project-Id-Version: Odoo Server 18.0+e\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-08-22 13:00+0000\n" -"PO-Revision-Date: 2019-08-22 13:00+0000\n" +"POT-Creation-Date: 2025-02-11 15:19+0000\n" +"PO-Revision-Date: 2025-02-11 15:19+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -15,6 +15,11 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: l10n_latam_base +#: model_terms:ir.ui.view,arch_db:l10n_latam_base.view_partner_latam_form +msgid " - " +msgstr "" + #. module: l10n_latam_base #: model:ir.model.fields,field_description:l10n_latam_base.field_l10n_latam_identification_type__active #: model_terms:ir.ui.view,arch_db:l10n_latam_base.view_l10n_latam_identification_type_search @@ -102,11 +107,6 @@ msgstr "" msgid "Is Vat" msgstr "" -#. module: l10n_latam_base -#: model:ir.model.fields,field_description:l10n_latam_base.field_l10n_latam_identification_type____last_update -msgid "Last Modified on" -msgstr "" - #. module: l10n_latam_base #: model:ir.model.fields,field_description:l10n_latam_base.field_l10n_latam_identification_type__write_uid msgid "Last Updated by" diff --git a/addons/l10n_latam_check/i18n/es_419.po b/addons/l10n_latam_check/i18n/es_419.po index 907342a9b61d3..40855f34c2de4 100644 --- a/addons/l10n_latam_check/i18n/es_419.po +++ b/addons/l10n_latam_check/i18n/es_419.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0+e\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-10 15:08+0000\n" -"PO-Revision-Date: 2025-02-10 15:08+0000\n" +"POT-Creation-Date: 2025-02-11 15:22+0000\n" +"PO-Revision-Date: 2025-02-11 15:22+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgid "" "outstanding account" msgstr "" "Un pago con cualquiera de los métodos de pago Cheque de terceros o Cheque " -"propio requiere una cuenta pendiente" +"propio requiere una cuenta de liquidez" #. module: l10n_latam_check #. odoo-python @@ -54,7 +54,7 @@ msgstr "Se ha creado un segundo pago: " #. module: l10n_latam_check #: model:ir.model,name:l10n_latam_check.model_account_chart_template msgid "Account Chart Template" -msgstr "Plantilla de plan de cuentas" +msgstr "Plantilla de plan contable" #. module: l10n_latam_check #: model:ir.model,name:l10n_latam_check.model_l10n_latam_check @@ -90,8 +90,7 @@ msgstr "Ícono de tipo de actvidad" #. odoo-python #: code:addons/l10n_latam_check/wizards/l10n_latam_payment_mass_transfer.py:0 msgid "All selected checks must be on the same journal and on hand" -msgstr "" -"Todos los cheques seleccionados deben estan en el mismo Diario y a mano" +msgstr "Todos los cheques seleccionados deben estan en el mismo Diario y a mano" #. module: l10n_latam_check #. odoo-python @@ -137,7 +136,7 @@ msgstr "Cheque" #. odoo-python #: code:addons/l10n_latam_check/models/account_payment.py:0 msgid "Check %(check_number)s - %(suffix)s" -msgstr "" +msgstr "Cheque %(check_number)s - %(suffix)s" #. module: l10n_latam_check #. odoo-python @@ -158,7 +157,7 @@ msgstr "Transferir Cheque" #: model_terms:ir.ui.view,arch_db:l10n_latam_check.view_account_payment_form_inherited #: model_terms:ir.ui.view,arch_db:l10n_latam_check.view_account_payment_register_form msgid "Checks" -msgstr "Cheques Nuevos" +msgstr "Cheques" #. module: l10n_latam_check #. odoo-python @@ -313,8 +312,7 @@ msgstr "Icono para indicar una actividad de excepción." #. module: l10n_latam_check #: model:ir.model.fields,help:l10n_latam_check.field_l10n_latam_check__message_needaction msgid "If checked, new messages require your attention." -msgstr "" -"Si se encuentra seleccionado, hay nuevos mensajes que requieren tu atención." +msgstr "Si se encuentra seleccionado, hay nuevos mensajes que requieren tu atención." #. module: l10n_latam_check #: model:ir.model.fields,help:l10n_latam_check.field_l10n_latam_check__message_has_error @@ -399,6 +397,12 @@ msgid "" "SEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary.\n" "SEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary.\n" msgstr "" +"Manual: Pague o cobre con cualquier método fuera de Odoo.\n" +"Payment Providers: Cada proveedor de pagos tiene su propio método de pago. Solicite una transacción desde/hacia una tarjeta gracias a un token de pago guardado por el socio al comprar o suscribirse en línea..\n" +"Check: Pague las cuentas con cheques e imprímalo desde Odoo.\n" +"Batch Deposit: Cobre varios cheques de clientes a la vez generando y enviando un ingreso por lotes a su banco. Módulo account_batch_payment es necesario.\n" +"SEPA Credit Transfer: Pague en la zona SEPA enviando un fichero de transferencia SEPA a su banco. Módulo account_sepa es necesario.\n" +"SEPA Direct Debit: Cobre en la zona SEPA gracias a un mandato que su socio le habrá otorgado. Módulo account_sepa es necesario.\n" #. module: l10n_latam_check #: model_terms:ir.ui.view,arch_db:l10n_latam_check.l10n_latam_check_view_form @@ -439,6 +443,11 @@ msgstr "Cheques Nuevos" msgid "New Third Party Checks" msgstr "Nuevo cheque de Terceros Existente" +#. module: l10n_latam_check +#: model:ir.model.fields,field_description:l10n_latam_check.field_l10n_latam_check__activity_calendar_event_id +msgid "Next Activity Calendar Event" +msgstr "Próximo evento del calendario de actividades" + #. module: l10n_latam_check #: model:ir.model.fields,field_description:l10n_latam_check.field_l10n_latam_check__activity_date_deadline msgid "Next Activity Deadline" @@ -473,7 +482,7 @@ msgstr "Numero de errores" #. module: l10n_latam_check #: model:ir.model.fields,help:l10n_latam_check.field_l10n_latam_check__message_needaction_counter msgid "Number of messages requiring action" -msgstr "" +msgstr "Número de mensajes que requieren acción" #. module: l10n_latam_check #: model:ir.model.fields,help:l10n_latam_check.field_l10n_latam_check__message_has_error_counter @@ -534,7 +543,12 @@ msgstr "Cheques Propios" #. module: l10n_latam_check #: model_terms:ir.ui.view,arch_db:l10n_latam_check.view_account_payment_search msgid "Partner" -msgstr "" +msgstr "Contacto" + +#. module: l10n_latam_check +#: model:ir.model,name:l10n_latam_check.model_account_payment_register +msgid "Pay" +msgstr "Registrar pago" #. module: l10n_latam_check #: model:ir.model,name:l10n_latam_check.model_account_payment_register @@ -572,12 +586,12 @@ msgstr "Métodos de pago" #. module: l10n_latam_check #: model:ir.model.fields,field_description:l10n_latam_check.field_l10n_latam_payment_register_check__payment_register_id msgid "Payment Register" -msgstr "" +msgstr "Registro de pago" #. module: l10n_latam_check #: model:ir.model,name:l10n_latam_check.model_l10n_latam_payment_register_check msgid "Payment register check" -msgstr "" +msgstr "Registro de pago de cheque" #. module: l10n_latam_check #. odoo-python @@ -586,6 +600,11 @@ msgstr "" msgid "Payments" msgstr "Pagos" +#. module: l10n_latam_check +#: model:ir.model.fields,field_description:l10n_latam_check.field_l10n_latam_check__rating_ids +msgid "Ratings" +msgstr "" + #. module: l10n_latam_check #. odoo-python #: code:addons/l10n_latam_check/models/account_chart_template.py:0 @@ -600,7 +619,7 @@ msgstr "Usuario responsable" #. module: l10n_latam_check #: model:account.payment.method,name:l10n_latam_check.account_payment_method_return_third_party_checks msgid "Return Third Party Checks" -msgstr "" +msgstr "Cheques de terceros devueltos" #. module: l10n_latam_check #: model:ir.model.fields,field_description:l10n_latam_check.field_l10n_latam_check__message_has_sms_error @@ -611,13 +630,12 @@ msgstr "Error de entrega del SMS" #. odoo-python #: code:addons/l10n_latam_check/models/account_payment.py:0 msgid "Selected checks \"%s\" are not posted" -msgstr "" +msgstr "Los cheques seleccionados \"%s\" no están publicados" #. module: l10n_latam_check #: model_terms:ir.ui.view,arch_db:l10n_latam_check.view_account_payment_search msgid "Show all records which has next action date is before today" -msgstr "" -"Mostrar todos los registros que tienen la próxima fecha de acción antes de " +msgstr "Mostrar todos los registros que tienen la próxima fecha de acción antes de " "hoy" #. module: l10n_latam_check @@ -693,6 +711,8 @@ msgid "" "The register payment wizard should only be called on account.payment " "records." msgstr "" +"El asistente de registro de pagos sólo debe llamarse en account.payment " +"registros." #. module: l10n_latam_check #. odoo-python @@ -706,7 +726,7 @@ msgstr "Cheques de Terceros" #. odoo-python #: code:addons/l10n_latam_check/wizards/l10n_latam_payment_mass_transfer.py:0 msgid "This payment has been created from: " -msgstr "" +msgstr "Este pago fue creado desde: " #. module: l10n_latam_check #: model_terms:ir.ui.view,arch_db:l10n_latam_check.view_account_payment_search diff --git a/addons/l10n_latam_check/i18n/l10n_latam_check.pot b/addons/l10n_latam_check/i18n/l10n_latam_check.pot index eb1bd367fa54a..e95bded20340a 100644 --- a/addons/l10n_latam_check/i18n/l10n_latam_check.pot +++ b/addons/l10n_latam_check/i18n/l10n_latam_check.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0+e\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-10 15:09+0000\n" -"PO-Revision-Date: 2025-02-10 15:09+0000\n" +"POT-Creation-Date: 2025-02-11 15:22+0000\n" +"PO-Revision-Date: 2025-02-11 15:22+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -433,6 +433,11 @@ msgstr "" msgid "New Third Party Checks" msgstr "" +#. module: l10n_latam_check +#: model:ir.model.fields,field_description:l10n_latam_check.field_l10n_latam_check__activity_calendar_event_id +msgid "Next Activity Calendar Event" +msgstr "" + #. module: l10n_latam_check #: model:ir.model.fields,field_description:l10n_latam_check.field_l10n_latam_check__activity_date_deadline msgid "Next Activity Deadline" @@ -577,6 +582,11 @@ msgstr "" msgid "Payments" msgstr "" +#. module: l10n_latam_check +#: model:ir.model.fields,field_description:l10n_latam_check.field_l10n_latam_check__rating_ids +msgid "Ratings" +msgstr "" + #. module: l10n_latam_check #. odoo-python #: code:addons/l10n_latam_check/models/account_chart_template.py:0 diff --git a/addons/l10n_latam_invoice_document/i18n/es_419.po b/addons/l10n_latam_invoice_document/i18n/es_419.po index 5d483100e1b13..bf576166f4617 100644 --- a/addons/l10n_latam_invoice_document/i18n/es_419.po +++ b/addons/l10n_latam_invoice_document/i18n/es_419.po @@ -4,13 +4,12 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 18.0+e\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-03-30 18:43+0000\n" -"PO-Revision-Date: 2020-03-30 18:44+0000\n" +"POT-Creation-Date: 2025-02-11 14:57+0000\n" +"PO-Revision-Date: 2025-02-11 14:57+0000\n" "Last-Translator: \n" "Language-Team: \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" @@ -19,12 +18,12 @@ msgstr "" #. module: l10n_latam_invoice_document #: model:ir.model,name:l10n_latam_invoice_document.model_account_chart_template msgid "Account Chart Template" -msgstr "Plantilla de Plan de Cuentas" +msgstr "Plantilla de plan contable" #. module: l10n_latam_invoice_document #: model:ir.model,name:l10n_latam_invoice_document.model_account_move_reversal msgid "Account Move Reversal" -msgstr "Revocación de movimiento en cuenta" +msgstr "Reversión de movimiento de cuenta" #. module: l10n_latam_invoice_document #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_l10n_latam_document_type__active @@ -32,10 +31,33 @@ msgstr "Revocación de movimiento en cuenta" msgid "Active" msgstr "Activo" +#. module: l10n_latam_invoice_document +#: model:ir.model,name:l10n_latam_invoice_document.model_account_debit_note +msgid "Add Debit Note wizard" +msgstr "Asistente para agregar nota de débito" + +#. module: l10n_latam_invoice_document +#: model:ir.model.fields.selection,name:l10n_latam_invoice_document.selection__l10n_latam_document_type__internal_type__all +msgid "All Documents" +msgstr "Todos los documentos" + #. module: l10n_latam_invoice_document #: model:ir.model.fields,help:l10n_latam_invoice_document.field_l10n_latam_document_type__internal_type -msgid "Analog to odoo account.move.move_type but with more options allowing to identify the kind of document we are working with. (not only related to account.move, could be for documents of other models like stock.picking)" -msgstr "Análogo a account.move.type de Odoo pero con más opciones, permitiendo identificar el tipo de documento sobre el que estamos trabajando. (no solamente relativo a account.move, podría ser relativo a otros modelos, como por ejemplo stock.picking)" +msgid "" +"Analog to odoo account.move.move_type but with more options allowing to " +"identify the kind of document we are working with. (not only related to " +"account.move, could be for documents of other models like stock.picking)" +msgstr "" +"Análogo a account.move.type de Odoo pero con más opciones, permitiendo " +"identificar el tipo de documento sobre el que estamos trabajando. (no " +"solamente relativo a account.move, podría ser relativo a otros modelos, como" +" por ejemplo stock.picking)" + +#. module: l10n_latam_invoice_document +#: model:ir.model.constraint,message:l10n_latam_invoice_document.constraint_account_move_unique_name +#: model:ir.model.constraint,message:l10n_latam_invoice_document.constraint_account_move_unique_name_latam +msgid "Another entry with the same name already exists." +msgstr "Ya existe otro registro con el mismo nombre." #. module: l10n_latam_invoice_document #: model_terms:ir.ui.view,arch_db:l10n_latam_invoice_document.view_document_type_filter @@ -48,6 +70,8 @@ msgid "Code" msgstr "Código" #. module: l10n_latam_invoice_document +#: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_document_type_id_code +#: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_move__l10n_latam_document_type_id_code #: model:ir.model.fields,help:l10n_latam_invoice_document.field_l10n_latam_document_type__code msgid "Code used by different localizations" msgstr "Código usando por diferentes localizaciones" @@ -55,23 +79,13 @@ msgstr "Código usando por diferentes localizaciones" #. module: l10n_latam_invoice_document #: model:ir.model,name:l10n_latam_invoice_document.model_res_company msgid "Companies" -msgstr "Compañías" +msgstr "Empresas" #. module: l10n_latam_invoice_document #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_l10n_latam_document_type__country_id msgid "Country" msgstr "País" -#. module: l10n_latam_invoice_document -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_journal__l10n_latam_country_code -msgid "Country Code" -msgstr "Código País" - -#. module: l10n_latam_invoice_document -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_country_code -msgid "Country Code (LATAM)" -msgstr "Código País (LATAM)" - #. module: l10n_latam_invoice_document #: model:ir.model.fields,help:l10n_latam_invoice_document.field_l10n_latam_document_type__country_id msgid "Country in which this type of document is valid" @@ -102,18 +116,26 @@ msgstr "Notas de Débito" msgid "Display Name" msgstr "Nombre a mostrar" +#. module: l10n_latam_invoice_document +#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_document_type_id_code +#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_document_type_id_code +msgid "Doc Type" +msgstr "Tipo de Doc" + #. module: l10n_latam_invoice_document #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_l10n_latam_document_type__doc_code_prefix msgid "Document Code Prefix" msgstr "Prefijo del código de documento" #. module: l10n_latam_invoice_document +#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_document_number #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_document_number #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_reversal__l10n_latam_document_number msgid "Document Number" msgstr "Número de Documento" #. module: l10n_latam_invoice_document +#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_document_type_id #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_invoice_report__l10n_latam_document_type_id #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_document_type_id #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_line__l10n_latam_document_type_id @@ -145,10 +167,19 @@ msgid "ID" msgstr "ID (identificación)" #. module: l10n_latam_invoice_document +#: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_use_documents #: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_journal__l10n_latam_use_documents #: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_move__l10n_latam_use_documents -msgid "If active: will be using for legal invoicing (invoices, debit/credit notes). If not set means that will be used to register accounting entries not related to invoicing legal documents. For Example: Receipts, Tax Payments, Register journal entries" -msgstr "Si esta activo: será utilizado para facturación (facturas, notas de débito y crédito). SI esta desactivado significa que que será usado para registrar movimientos contables que no están relacionas con facturación como tal. Por ejemplo: Recibos, Pagos de Impuestos, Registrar asientos contables" +msgid "" +"If active: will be using for legal invoicing (invoices, debit/credit notes)." +" If not set means that will be used to register accounting entries not " +"related to invoicing legal documents. For Example: Receipts, Tax Payments, " +"Register journal entries" +msgstr "" +"Si esta activo: será utilizado para facturación (facturas, notas de débito y" +" crédito). Si esta desactivado significa que que será usado para registrar " +"movimientos contables que no están relacionas con facturación como tal. Por " +"ejemplo: Recibos, Pagos de Impuestos, Registrar asientos contables" #. module: l10n_latam_invoice_document #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_l10n_latam_document_type__internal_type @@ -173,8 +204,8 @@ msgstr "Diario" #. module: l10n_latam_invoice_document #: model:ir.model,name:l10n_latam_invoice_document.model_account_move -msgid "Journal Entries" -msgstr "Asientos contables" +msgid "Journal Entry" +msgstr "Asiento contable" #. module: l10n_latam_invoice_document #: model:ir.model,name:l10n_latam_invoice_document.model_account_move_line @@ -182,11 +213,7 @@ msgid "Journal Item" msgstr "Apunte contable" #. module: l10n_latam_invoice_document -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_amount_untaxed -msgid "L10N Latam Amount Untaxed" -msgstr "" - -#. module: l10n_latam_invoice_document +#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_available_document_type_ids #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_available_document_type_ids #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_reversal__l10n_latam_available_document_type_ids msgid "L10N Latam Available Document Type" @@ -197,37 +224,11 @@ msgstr "" msgid "L10N Latam Company Use Documents" msgstr "" -#. module: l10n_latam_invoice_document -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_line__l10n_latam_price_net -msgid "L10N Latam Price Net" -msgstr "" - -#. module: l10n_latam_invoice_document -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_line__l10n_latam_price_subtotal -msgid "L10N Latam Price Subtotal" -msgstr "" - -#. module: l10n_latam_invoice_document -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_line__l10n_latam_price_unit -msgid "L10N Latam Price Unit" -msgstr "" - -#. module: l10n_latam_invoice_document -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_tax_ids -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_line__l10n_latam_tax_ids -msgid "L10N Latam Tax" -msgstr "" - #. module: l10n_latam_invoice_document #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_reversal__l10n_latam_use_documents msgid "L10N Latam Use Documents" msgstr "" -#. module: l10n_latam_invoice_document -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_l10n_latam_document_type____last_update -msgid "Last Modified on" -msgstr "Última modificación en" - #. module: l10n_latam_invoice_document #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_l10n_latam_document_type__write_uid msgid "Last Updated by" @@ -249,6 +250,7 @@ msgid "Localization" msgstr "Localización" #. module: l10n_latam_invoice_document +#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_manual_document_number #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_manual_document_number #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_reversal__l10n_latam_manual_document_number msgid "Manual Number" @@ -270,14 +272,19 @@ msgid "Name that will be printed in reports, for example \"CREDIT NOTE\"" msgstr "Nombre que será impreso en los reportes, por ejemplo \"NOTA DE CREDITO\"" #. module: l10n_latam_invoice_document +#. odoo-python #: code:addons/l10n_latam_invoice_document/models/account_move.py:0 msgid "Please set the document number on the following invoices %s." msgstr "Por favor asigne el número de documento en las siguientes facturas %s." #. module: l10n_latam_invoice_document #: model:ir.model.fields,help:l10n_latam_invoice_document.field_l10n_latam_document_type__doc_code_prefix -msgid "Prefix for Documents Codes on Invoices and Account Moves. For eg. 'FA ' will build 'FA 0001-0000001' Document Number" -msgstr "Prefijo para Códigos de Documentos en Facturas y Asientos. Por eje: 'FA ' será construirá 'FA 0001-0000001' como el numero de documento" +msgid "" +"Prefix for Documents Codes on Invoices and Account Moves. For eg. 'FA ' will" +" build 'FA 0001-0000001' Document Number" +msgstr "" +"Prefijo para Códigos de Documentos en Facturas y Asientos. Por eje: 'FA ' " +"será construirá 'FA 0001-0000001' como el numero de documento" #. module: l10n_latam_invoice_document #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_l10n_latam_document_type__sequence @@ -294,59 +301,68 @@ msgstr "Mostrar tipos de documento activos" msgid "Show archived document types" msgstr "Mostrar tipos de documento archivados" -#. module: l10n_latam_invoice_document -#: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_journal__l10n_latam_country_code -#: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_move__l10n_latam_country_code -msgid "Technical field used to hide/show fields regarding the localization" -msgstr "Campo técnico usado para esconder/mostrar dependiendo de la liocalización" - #. module: l10n_latam_invoice_document #: model:ir.model.fields,help:l10n_latam_invoice_document.field_l10n_latam_document_type__name msgid "The document name" msgstr "El nombre del documento" #. module: l10n_latam_invoice_document +#. odoo-python #: code:addons/l10n_latam_invoice_document/models/account_move.py:0 -msgid "The journal require a document type but not document type has been selected on invoices %s." -msgstr "El diario requiere un tipo de documento pero no hay tipo de documento seleccionado en las facturas %s." +msgid "" +"The journal require a document type but not document type has been selected " +"on invoices %s." +msgstr "" +"El diario requiere un tipo de documento pero no hay tipo de documento " +"seleccionado en las facturas %s." #. module: l10n_latam_invoice_document #: model:ir.model.fields,help:l10n_latam_invoice_document.field_l10n_latam_document_type__sequence -msgid "To set in which order show the documents type taking into account the most commonly used first" -msgstr "Para seleccionar en que orden deben mostrar los tipos de documento teniendo en cuenta los más usados comunmente" +msgid "" +"To set in which order show the documents type taking into account the most " +"commonly used first" +msgstr "" +"Para seleccionar en que orden deben mostrar los tipos de documento teniendo " +"en cuenta los más usados comunmente" #. module: l10n_latam_invoice_document +#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_use_documents #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_journal__l10n_latam_use_documents #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_use_documents msgid "Use Documents?" msgstr "Usa Documentos?" #. module: l10n_latam_invoice_document -#: code:addons/l10n_latam_invoice_document/models/account_move.py:0 -msgid "Vendor bill number must be unique per vendor and company." -msgstr "El número de la Factura de Proveedor debe ser único por proveedor y por compañía." - -#. module: l10n_latam_invoice_document +#. odoo-python #: code:addons/l10n_latam_invoice_document/models/account_move.py:0 msgid "We do not accept the usage of document types on receipts yet. " msgstr "Todavía no aceptamos el uso de tipos de documentos en los recibos." #. module: l10n_latam_invoice_document +#. odoo-python #: code:addons/l10n_latam_invoice_document/models/account_journal.py:0 -msgid "You can not modify the field \"Use Documents?\" if there are validated invoices in this journal!" -msgstr "No puedes modificar el campo \"Usa Documentos?\" si ya existen facturas validades en este diario!" +msgid "" +"You can not modify the field \"Use Documents?\" if there are validated " +"invoices in this journal!" +msgstr "" +"No puedes modificar el campo \"Usa Documentos?\" si ya existen facturas " +"validadas en este diario!" #. module: l10n_latam_invoice_document +#. odoo-python #: code:addons/l10n_latam_invoice_document/models/account_move.py:0 msgid "You can not use a %s document type with a invoice" msgstr "No puedes utilizar el tipo de documento %s en una factura" #. module: l10n_latam_invoice_document +#. odoo-python #: code:addons/l10n_latam_invoice_document/models/account_move.py:0 msgid "You can not use a %s document type with a refund invoice" -msgstr "No puedes utilizar el tipo de documento %s en una factura de reembolso" +msgstr "" +"No puedes utilizar el tipo de documento %s en una factura de reembolso" #. module: l10n_latam_invoice_document +#. odoo-python #: code:addons/l10n_latam_invoice_document/wizards/account_move_reversal.py:0 msgid "" "You can only reverse documents with legal invoicing documents from Latin America one at a time.\n" diff --git a/addons/l10n_latam_invoice_document/i18n/l10n_latam_invoice_document.pot b/addons/l10n_latam_invoice_document/i18n/l10n_latam_invoice_document.pot index 13e1ba2809f72..856cde90b3684 100644 --- a/addons/l10n_latam_invoice_document/i18n/l10n_latam_invoice_document.pot +++ b/addons/l10n_latam_invoice_document/i18n/l10n_latam_invoice_document.pot @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 17.2alpha1\n" +"Project-Id-Version: Odoo Server 18.0+e\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-26 09:14+0000\n" -"PO-Revision-Date: 2024-02-26 09:14+0000\n" +"POT-Creation-Date: 2025-02-11 14:57+0000\n" +"PO-Revision-Date: 2025-02-11 14:57+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -68,7 +68,6 @@ msgstr "" #. module: l10n_latam_invoice_document #: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_document_type_id_code #: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_move__l10n_latam_document_type_id_code -#: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_payment__l10n_latam_document_type_id_code #: model:ir.model.fields,help:l10n_latam_invoice_document.field_l10n_latam_document_type__code msgid "Code used by different localizations" msgstr "" @@ -116,7 +115,6 @@ msgstr "" #. module: l10n_latam_invoice_document #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_document_type_id_code #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_document_type_id_code -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_payment__l10n_latam_document_type_id_code msgid "Doc Type" msgstr "" @@ -129,7 +127,6 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_document_number #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_document_number #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_reversal__l10n_latam_document_number -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_payment__l10n_latam_document_number msgid "Document Number" msgstr "" @@ -139,7 +136,6 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_document_type_id #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_line__l10n_latam_document_type_id #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_reversal__l10n_latam_document_type_id -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_payment__l10n_latam_document_type_id #: model_terms:ir.ui.view,arch_db:l10n_latam_invoice_document.view_account_invoice_filter #: model_terms:ir.ui.view,arch_db:l10n_latam_invoice_document.view_account_invoice_report_search #: model_terms:ir.ui.view,arch_db:l10n_latam_invoice_document.view_account_move_filter @@ -170,7 +166,6 @@ msgstr "" #: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_use_documents #: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_journal__l10n_latam_use_documents #: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_move__l10n_latam_use_documents -#: model:ir.model.fields,help:l10n_latam_invoice_document.field_account_payment__l10n_latam_use_documents msgid "" "If active: will be using for legal invoicing (invoices, debit/credit notes)." " If not set means that will be used to register accounting entries not " @@ -213,7 +208,6 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_available_document_type_ids #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_available_document_type_ids #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_reversal__l10n_latam_available_document_type_ids -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_payment__l10n_latam_available_document_type_ids msgid "L10N Latam Available Document Type" msgstr "" @@ -251,7 +245,6 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_manual_document_number #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_manual_document_number #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move_reversal__l10n_latam_manual_document_number -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_payment__l10n_latam_manual_document_number msgid "Manual Number" msgstr "" @@ -322,7 +315,6 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_bank_statement_line__l10n_latam_use_documents #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_journal__l10n_latam_use_documents #: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_move__l10n_latam_use_documents -#: model:ir.model.fields,field_description:l10n_latam_invoice_document.field_account_payment__l10n_latam_use_documents msgid "Use Documents?" msgstr "" diff --git a/addons/l10n_latam_invoice_document/models/account_move.py b/addons/l10n_latam_invoice_document/models/account_move.py index 87397190f82d3..ba14ee698b267 100644 --- a/addons/l10n_latam_invoice_document/models/account_move.py +++ b/addons/l10n_latam_invoice_document/models/account_move.py @@ -120,13 +120,15 @@ def _compute_l10n_latam_document_number(self): remaining = self - recs_with_name remaining.l10n_latam_document_number = False - @api.onchange('l10n_latam_document_type_id', 'l10n_latam_document_number') + @api.onchange('l10n_latam_document_type_id', 'l10n_latam_document_number', 'partner_id') def _inverse_l10n_latam_document_number(self): for rec in self.filtered(lambda x: x.l10n_latam_document_type_id): if not rec.l10n_latam_document_number: rec.name = False else: - l10n_latam_document_number = rec.l10n_latam_document_type_id._format_document_number(rec.l10n_latam_document_number) + l10n_latam_document_number = rec.l10n_latam_document_number + if not rec._skip_format_document_number(): + l10n_latam_document_number = rec.l10n_latam_document_type_id._format_document_number(rec.l10n_latam_document_number) if rec.l10n_latam_document_number != l10n_latam_document_number: rec.l10n_latam_document_number = l10n_latam_document_number rec.name = "%s %s" % (rec.l10n_latam_document_type_id.doc_code_prefix, l10n_latam_document_number) @@ -151,6 +153,11 @@ def _deduce_sequence_number_reset(self, name): return 'never' return super(AccountMove, self)._deduce_sequence_number_reset(name) + def _skip_format_document_number(self): + """Hook to be overridden in localisation""" + self.ensure_one() + return False + def _get_starting_sequence(self): if self.journal_id.l10n_latam_use_documents: if self.l10n_latam_document_type_id: diff --git a/addons/l10n_pe/models/account_move.py b/addons/l10n_pe/models/account_move.py index 85b0c070d3ea6..8be1b1b89525a 100644 --- a/addons/l10n_pe/models/account_move.py +++ b/addons/l10n_pe/models/account_move.py @@ -19,7 +19,7 @@ def _get_l10n_latam_documents_domain(self): ).ids)) return result - @api.onchange('l10n_latam_document_type_id', 'l10n_latam_document_number') + @api.onchange('l10n_latam_document_type_id', 'l10n_latam_document_number', 'partner_id') def _inverse_l10n_latam_document_number(self): """Inherit to complete the l10n_latam_document_number with the expected 8 characters after that a '-' Example: Change FFF-32 by FFF-00000032, to avoid incorrect values on the reports""" diff --git a/addons/l10n_tr_nilvera_einvoice/views/account_journal_dashboard_views.xml b/addons/l10n_tr_nilvera_einvoice/views/account_journal_dashboard_views.xml index 669c50f5bd383..ae6ae4d43c6be 100644 --- a/addons/l10n_tr_nilvera_einvoice/views/account_journal_dashboard_views.xml +++ b/addons/l10n_tr_nilvera_einvoice/views/account_journal_dashboard_views.xml @@ -12,7 +12,7 @@ - +
Fetch Nilvera invoice status diff --git a/addons/l10n_uy/i18n/es_419.po b/addons/l10n_uy/i18n/es_419.po new file mode 100644 index 0000000000000..52a196c42fe81 --- /dev/null +++ b/addons/l10n_uy/i18n/es_419.po @@ -0,0 +1,568 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_uy +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-02-11 15:10+0000\n" +"PO-Revision-Date: 2025-02-11 15:10+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_uy +#. odoo-python +#: code:addons/l10n_uy/models/res_partner.py:0 +msgid "3:402.010-2 or 93:402.010-1 (CI or NIE)" +msgstr "3:402.010-2 o 93:402.010-1 (CI o NIE)" + +#. module: l10n_uy +#: model:ir.model,name:l10n_uy.model_account_chart_template +msgid "Account Chart Template" +msgstr "Plantilla de plan contable" + +#. module: l10n_uy +#: model:account.report.column,name:l10n_uy.tax_report_balance +msgid "Balance" +msgstr "" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_base_impb_cmprs_0 +msgid "Base Purchases 0%" +msgstr "Base 0% Compras" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_base_impb_cmprs_10 +msgid "Base Purchases 10%" +msgstr "Base 10% Compras" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_base_impb_cmprs_22 +msgid "Base Purchases 22%" +msgstr "Base 22% Compras" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_base_impb_vnts_0 +msgid "Base Sales 0%" +msgstr "Base 0% Ventas" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_base_impb_vnts_10 +msgid "Base Sales 10%" +msgstr "Base 10% Ventas" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_base_impb_vnts_22 +msgid "Base Sales 22%" +msgstr "Base 22% Ventas" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_boleta_venta_contado +msgid "Boleta" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,name:l10n_uy.it_ci +msgid "CI" +msgstr "" + +#. module: l10n_uy +#. odoo-python +#: code:addons/l10n_uy/models/res_partner.py:0 +msgid "CI/NIE" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_recibo_cobranza +msgid "Collection Receipt" +msgstr "Recibo Cobranza" + +#. module: l10n_uy +#: model:ir.model,name:l10n_uy.model_res_company +msgid "Companies" +msgstr "Empresas" + +#. module: l10n_uy +#: model:ir.model,name:l10n_uy.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_remito_de_exportación_contingencia +msgid "Contingency Export e-Delivery Guide" +msgstr "e-Remito de Exportación Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_factura_exportación_contingencia +msgid "Contingency Export e-Invoice" +msgstr "e-Factura Exportación Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_crédito_de_e_factura_exportación_contingencia +msgid "Contingency Export e-Invoice Credit Note" +msgstr "Nota de Crédito de e-Factura Exportación Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_débito_de_e_factura_exportación_contingencia +msgid "Contingency Export e-Invoice Debit Note" +msgstr "Nota de Débito de e-Factura Exportación Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_boleta_contingencia +msgid "Contingency e-Boleta" +msgstr "e-Boleta Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_credito_e_boleta_contingencia +msgid "Contingency e-Boleta Credit Note" +msgstr "Nota de Crédito e-Boleta Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_debito_e_boleta_contingencia +msgid "Contingency e-Boleta Debit Note" +msgstr "Nota de Débito e-Boleta Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_remito_contingencia +msgid "Contingency e-Delivery Guide" +msgstr "e-Remito Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_factura_contingencia +msgid "Contingency e-Invoice" +msgstr "e-Factura Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_crédito_de_e_factura_contingencia +msgid "Contingency e-Invoice Credit Note" +msgstr "Nota de Crédito de e-Factura Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_débito_de_e_factura_contingencia +msgid "Contingency e-Invoice Debit Note" +msgstr "Nota de Débito de e-Factura Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_factura_venta_por_cuenta_ajena_contingencia +msgid "Contingency e-Invoice Sale By Third Party" +msgstr "e-Factura Venta por Cuenta Ajena Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_crédito_de_e_factura_venta_por_cuenta_ajena_contingencia +msgid "Contingency e-Invoice Sale By Third Party Credit Note" +msgstr "Nota de Crédito de e-Factura Venta por Cuenta Ajena Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_débito_de_e_factura_venta_por_cuenta_ajena_contingencia +msgid "Contingency e-Invoice Sale By Third Party Debit Note" +msgstr "Nota de Débito de e-Factura Venta por Cuenta Ajena Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_resguardo_contingencia +msgid "Contingency e-Resguardo" +msgstr "e-Resguardo Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_ticket_cont +msgid "Contingency e-Ticket" +msgstr "e-Ticket Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_cn_e_ticket_cont +msgid "Contingency e-Ticket Credit Note" +msgstr "Nota de Credito de e-Ticket Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_dn_e_ticket_cont +msgid "Contingency e-Ticket Debit Note" +msgstr "Nota de Debito de e-Ticket Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_ticket_venta_por_cuenta_ajena_contingencia +msgid "Contingency e-Ticket Sale By Third Party" +msgstr "e-Ticket Venta por Cuenta Ajena Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_crédito_de_e_ticket_venta_por_cuenta_ajena_contingencia +msgid "Contingency e-Ticket Sale By Third Party Credit Note" +msgstr "Nota de Crédito de e-Ticket Venta por Cuenta Ajena Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_débito_de_e_ticket_venta_por_cuenta_ajena_contingencia +msgid "Contingency e-Ticket Sale By Third Party Debit Note" +msgstr "Nota de Débito de e-Ticket Venta por Cuenta Ajena Contingencia" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_cn_inv +msgid "Credit Note" +msgstr "Nota de Crédito" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_credito_e_boleta +msgid "Credit Note e-Boleta" +msgstr "Nota de Crédito e-Boleta" + +#. module: l10n_uy +#. odoo-python +#: code:addons/l10n_uy/models/template_uy.py:0 +msgid "Customer Invoices" +msgstr "Facturas de Clientes" + +#. module: l10n_uy +#: model:ir.model.fields,field_description:l10n_uy.field_l10n_latam_identification_type__l10n_uy_dgi_code +msgid "DGI Code" +msgstr "Código DGI" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,name:l10n_uy.it_dni +msgid "DNI" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_dn_inv +msgid "Debit Note" +msgstr "Nota de Débito" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_debito_e_boleta +msgid "Debit Note e-Boleta" +msgstr "Nota de Débito e-Boleta" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_remito +msgid "Delivery Guide" +msgstr "Remito" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nc_expo +msgid "Export Credit Note" +msgstr "Nota de Crédito Exportación" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nd_expo +msgid "Export Debit Note" +msgstr "Nota de Débito Exportación" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_inv_expo +msgid "Export Invoice" +msgstr "Factura Exportación" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_remito_expo +msgid "Export e-Delivery Guide" +msgstr "e-Remito Exportación" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_inv_exp +msgid "Export e-Invoice" +msgstr "e-Factura Exportación" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_cn_e_inv_exp +msgid "Export e-Invoice Credit Note" +msgstr "Nota de Crédito de e-Factura Exportación" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_dn_e_inv_exp +msgid "Export e-Invoice Debit Note" +msgstr "Nota de Débito de e-Factura Exportación" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,description:l10n_uy.it_nife +msgid "Foreign tax identification number" +msgstr "Número de identificación fiscal extranjero" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,description:l10n_uy.it_nie +msgid "Foreigner Identity Number" +msgstr "Número de Identidad de Extranjero" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,description:l10n_uy.it_ci +msgid "Identification Card" +msgstr "Cédula de Identidad" + +#. module: l10n_uy +#: model:ir.model,name:l10n_uy.model_l10n_latam_identification_type +msgid "Identification Types" +msgstr "Tipos de identificación" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_inv +msgid "Invoice" +msgstr "Factura" + +#. module: l10n_uy +#: model:ir.model,name:l10n_uy.model_account_move +msgid "Journal Entry" +msgstr "Asiento contable" + +#. module: l10n_uy +#: model:ir.model,name:l10n_uy.model_l10n_latam_document_type +msgid "Latam Document Type" +msgstr "Tipo de Documento Latam" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,name:l10n_uy.it_nie +msgid "NIE" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,name:l10n_uy.it_nife +msgid "NIFE" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,description:l10n_uy.it_dni +msgid "National identity document of Argentina, Brazil, Chile or Paraguay" +msgstr "Documento Nacional de identidad de Argentina, Brasil, Chile o Paraguay" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,name:l10n_uy.it_other +msgid "OTR" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,description:l10n_uy.it_other +msgid "Others" +msgstr "Otros" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,name:l10n_uy.it_pass +msgid "PAS" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,description:l10n_uy.it_pass +msgid "Passport (all countries)" +msgstr "Pasaporte (todos los paises)" + +#. module: l10n_uy +#. odoo-python +#: code:addons/l10n_uy/models/l10n_latam_document_type.py:0 +msgid "" +"Please introduce a valid Document number: 2 letters and 7 digits (XX0000001)" +msgstr "" +"Por favor ingrese un Número de documento válido: 2 letras y 7 dígitos " +"(XX0000001)" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_cmprs_exnto_iva +msgid "Purchases Exempt from VAT" +msgstr "Compras IVA Exentas" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,name:l10n_uy.it_rut +msgid "RUT / RUC" +msgstr "" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_iva_vnts_10 +msgid "Sales VAT 10%" +msgstr "IVA Ventas 10%" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_iva_vnts_22 +msgid "Sales VAT 22%" +msgstr "IVA Ventas 22%" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_vnts_iva +msgid "Sales VAT exempt" +msgstr "Ventas exentas de IVA" + +#. module: l10n_uy +#: model:ir.model,name:l10n_uy.model_account_tax +msgid "Tax" +msgstr "Impuestos" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_base_impb_cmprs +#: model:account.report.line,name:l10n_uy.account_tax_report_impb_cmprs +msgid "Tax Base Purchases" +msgstr "Compras de base imponible" + +#. module: l10n_uy +#: model:ir.model.fields,field_description:l10n_uy.field_account_tax__l10n_uy_tax_category +msgid "Tax Category" +msgstr "Categoría de Impuesto" + +#. module: l10n_uy +#: model:account.report,name:l10n_uy.tax_report +msgid "Tax Report" +msgstr "Reporte de Impuestos" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_base_impb_vnts +#: model:account.report.line,name:l10n_uy.account_tax_report_impb_vnts +msgid "Taxable Sales Base" +msgstr "Base imponible de ventas" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_base_impb +msgid "Taxable income" +msgstr "Ingreso Imponible" + +#. module: l10n_uy +#. odoo-python +#: code:addons/l10n_uy/models/res_partner.py:0 +msgid "" +"The %(vat_label)s number [%(wrong_vat)s] does not seem to be valid.\n" +"Note: the expected format is %(expected_format)s" +msgstr "" +"El %(vat_label)s número [%(wrong_vat)s] no parece válido.\n" +"Nota: el formato esperoado es %(expected_format)s" + +#. module: l10n_uy +#. odoo-python +#: code:addons/l10n_uy/models/res_partner.py:0 +msgid "" +"The %(vat_label)s number [%(wrong_vat)s] for %(partner_label)s does not seem to be valid.\n" +"Note: the expected format is %(expected_format)s" +msgstr "" +"El %(vat_label)s número [%(wrong_vat)s] para %(partner_label)s no parece válido.\n" +"Nota: el formato esperoado es %(expected_format)s" + +#. module: l10n_uy +#: model:ir.model.fields,help:l10n_uy.field_account_tax__l10n_uy_tax_category +msgid "" +"UY: Use to group the transactions in the Financial Reports required by DGI" +msgstr "" +"UY: Utilizado para agrupar transacciones en Reportes Financieros requeridos " +"por DGI" + +#. module: l10n_uy +#: model:l10n_latam.identification.type,description:l10n_uy.it_rut +msgid "Unique Tax Registry / Unique Taxpayer Registry" +msgstr "Registro Único Tributario / Registro Único de Contribuyente" + +#. module: l10n_uy +#. odoo-python +#: code:addons/l10n_uy/models/template_uy.py:0 +msgid "Uruguayan Generic Chart of Accounts" +msgstr "Plan Contable Genérico Uruguayo" + +#. module: l10n_uy +#: model:ir.model.fields.selection,name:l10n_uy.selection__account_tax__l10n_uy_tax_category__vat +msgid "VAT" +msgstr "IVA" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_cmprs_pagdo +#: model:account.report.line,name:l10n_uy.account_tax_report_iva_cmprs_pagdo +msgid "VAT Purchases - paid" +msgstr "IVA Compras - pagado" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_iva_cmprs_10 +msgid "VAT Purchases 10%" +msgstr "IVA Compras 10%" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_iva_cmprs_22 +msgid "VAT Purchases 22%" +msgstr "IVA Compras 22%" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_iva_vnts_prcbdo +#: model:account.report.line,name:l10n_uy.account_tax_report_vnts_prcbdo +msgid "VAT Sales - received" +msgstr "IVA Venas - recibido" + +#. module: l10n_uy +#: model:account.report.line,name:l10n_uy.account_tax_report_sldo_iva +msgid "VAT balance" +msgstr "Balance IVA" + +#. module: l10n_uy +#. odoo-python +#: code:addons/l10n_uy/models/template_uy.py:0 +msgid "Vendor Bills" +msgstr "Facturas de Proveedor" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_boleta +msgid "e-Boleta" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_remito +msgid "e-Delivery Guide" +msgstr "e-Remito" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_inv +msgid "e-Invoice" +msgstr "e-Factura" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_cn_e_inv +msgid "e-Invoice Credit Note" +msgstr "Nota de Crédito de e-Factura" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_dn_e_inv +msgid "e-Invoice Debit Note" +msgstr "Nota de Débito de e-Factura" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_factura_venta_por_cuenta_ajena +msgid "e-Invoice Sale By Third Party" +msgstr "e-Factura Venta por Cuenta Ajena" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_credito_e_factura_venta_por_cuenta_ajena +msgid "e-Invoice Sale By Third Party Credit Note" +msgstr "Nota de Crédito e-Factura Venta por Cuenta Ajena" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_debito_e_factura_venta_por_cuenta_ajena +msgid "e-Invoice Sale By Third Party Debit Note" +msgstr "Nota de Débito e-Factura Venta por Cuenta Ajena" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_resguardo +msgid "e-Resguardo" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_ticket +msgid "e-Ticket" +msgstr "" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_cn_e_ticket +msgid "e-Ticket Credit Note" +msgstr "Nota de Crédito de e-Ticket" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_dn_e_ticket +msgid "e-Ticket Debit Note" +msgstr "Nota de Débito de e-Ticket" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_e_ticket_venta_por_cuenta_ajena +msgid "e-Ticket Sale By Third Party" +msgstr "e-Ticket Venta por Cuenta Ajena" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_credito_e_ticket_venta_por_cuenta_ajena +msgid "e-Ticket Sale By Third Party Credit Note" +msgstr "Nota de Crédito e-Ticket Venta por Cuenta Ajena" + +#. module: l10n_uy +#: model:l10n_latam.document.type,name:l10n_uy.dc_nota_de_debito_e_ticket_venta_por_cuenta_ajena +msgid "e-Ticket Sale By Third Party Debit Note" +msgstr "Nota de Débito e-Ticket Venta por Cuenta Ajena" + +#. module: l10n_uy +#. odoo-python +#: code:addons/l10n_uy/models/res_partner.py:0 +msgid "partner [%s]" +msgstr "empresa [%s]" diff --git a/addons/l10n_uy/i18n/l10n_uy.pot b/addons/l10n_uy/i18n/l10n_uy.pot index 3a1e1ea01c3e7..97aa5edfd335c 100644 --- a/addons/l10n_uy/i18n/l10n_uy.pot +++ b/addons/l10n_uy/i18n/l10n_uy.pot @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server saas~17.1+e\n" +"Project-Id-Version: Odoo Server 18.0+e\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-21 13:32+0000\n" -"PO-Revision-Date: 2024-08-21 13:32+0000\n" +"POT-Creation-Date: 2025-02-11 15:09+0000\n" +"PO-Revision-Date: 2025-02-11 15:09+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" diff --git a/addons/loyalty/i18n/az.po b/addons/loyalty/i18n/az.po index 7583c02fdf528..3959b5f83ce0d 100644 --- a/addons/loyalty/i18n/az.po +++ b/addons/loyalty/i18n/az.po @@ -3,9 +3,9 @@ # * loyalty # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:03+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -132,7 +132,7 @@ msgstr "" #. module: loyalty #: model_terms:ir.ui.view,arch_db:loyalty.gift_card_report msgid "2023-12-31" -msgstr "" +msgstr "31-12-2023" #. module: loyalty #: model:mail.template,body_html:loyalty.mail_template_gift_card @@ -825,7 +825,7 @@ msgstr "" #. module: loyalty #: model:ir.model.fields,field_description:loyalty.field_loyalty_program__payment_program_discount_product_id msgid "Discount Product" -msgstr "" +msgstr "Endirimli məhsul" #. module: loyalty #: model:ir.model.fields,field_description:loyalty.field_loyalty_reward__discount_product_domain @@ -1780,7 +1780,7 @@ msgstr "Vergilər" #. module: loyalty #: model:ir.model.fields,help:loyalty.field_loyalty_reward__tax_ids msgid "Taxes to add on the discount line." -msgstr "" +msgstr "Endirim xəttinə əlavə ediləcək vergilər." #. module: loyalty #: model_terms:ir.ui.view,arch_db:loyalty.loyalty_report @@ -1886,7 +1886,7 @@ msgstr "Başlatmaq" #. module: loyalty #: model_terms:ir.ui.view,arch_db:loyalty.loyalty_reward_view_form msgid "Untaxed discount" -msgstr "" +msgstr "Vergisiz endirim" #. module: loyalty #. odoo-python diff --git a/addons/loyalty/i18n/nl.po b/addons/loyalty/i18n/nl.po index 5c26675e6531a..ba5dcbc702213 100644 --- a/addons/loyalty/i18n/nl.po +++ b/addons/loyalty/i18n/nl.po @@ -2079,7 +2079,7 @@ msgstr "Geldig t/m" #. odoo-javascript #: code:addons/loyalty/static/src/js/portal/loyalty_card_dialog/loyalty_card_dialog.xml:0 msgid "Valid until" -msgstr "Geldig tot" +msgstr "Geldig t/m" #. module: loyalty #: model:ir.model.fields,field_description:loyalty.field_loyalty_card__website_message_ids diff --git a/addons/loyalty/i18n/zh_CN.po b/addons/loyalty/i18n/zh_CN.po index f9921d10b1307..28adb5876b869 100644 --- a/addons/loyalty/i18n/zh_CN.po +++ b/addons/loyalty/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Emily Jia , 2024 # Chloe Wang, 2025 # diff --git a/addons/lunch/i18n/az.po b/addons/lunch/i18n/az.po index bfd313ac03581..a7e6b1e863bf2 100644 --- a/addons/lunch/i18n/az.po +++ b/addons/lunch/i18n/az.po @@ -3,9 +3,9 @@ # * lunch # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -326,7 +326,7 @@ msgstr "" #. odoo-javascript #: code:addons/lunch/static/src/components/lunch_dashboard.xml:0 msgid "Already Paid" -msgstr "" +msgstr "Artıq Ödənilib" #. module: lunch #: model:ir.model.fields,field_description:lunch.field_lunch_cashmove__amount diff --git a/addons/lunch/i18n/el.po b/addons/lunch/i18n/el.po index e423a4ca19b10..f7eff2fd8e267 100644 --- a/addons/lunch/i18n/el.po +++ b/addons/lunch/i18n/el.po @@ -10,8 +10,8 @@ # Kostas Goutoudis , 2024 # Maria Chalepiadou, 2025 # Gerasimos Kanelatos, 2025 -# Agapi Psyllou, 2025 # Anastasia Mimou, 2025 +# Agapi Psyllou, 2025 # msgid "" msgstr "" @@ -19,7 +19,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Anastasia Mimou, 2025\n" +"Last-Translator: Agapi Psyllou, 2025\n" "Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -436,7 +436,7 @@ msgstr "" #. module: lunch #: model_terms:ir.ui.view,arch_db:lunch.lunch_cashmove_report_view_search_2 msgid "By Employee" -msgstr "" +msgstr "Ανά Υπάλληλο" #. module: lunch #: model_terms:ir.ui.view,arch_db:lunch.lunch_cashmove_report_view_search diff --git a/addons/lunch/i18n/nl.po b/addons/lunch/i18n/nl.po index bd5b89364e4ea..72e98b1493f2e 100644 --- a/addons/lunch/i18n/nl.po +++ b/addons/lunch/i18n/nl.po @@ -4,8 +4,8 @@ # # Translators: # Wil Odoo, 2024 -# Erwin van der Ploeg , 2025 # Manon Rondou, 2025 +# Erwin van der Ploeg , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Manon Rondou, 2025\n" +"Last-Translator: Erwin van der Ploeg , 2025\n" "Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1467,7 +1467,7 @@ msgstr "Nieuw order" #. module: lunch #: model:ir.model.fields,field_description:lunch.field_lunch_product__new_until msgid "New Until" -msgstr "Nieuw tot" +msgstr "Nieuw t/m" #. module: lunch #: model:ir.model.fields,field_description:lunch.field_lunch_supplier__activity_calendar_event_id diff --git a/addons/lunch/i18n/zh_CN.po b/addons/lunch/i18n/zh_CN.po index fa5b47680d053..c6234fa1ec07c 100644 --- a/addons/lunch/i18n/zh_CN.po +++ b/addons/lunch/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Raymond Yu , 2024 # Chloe Wang, 2025 # diff --git a/addons/lunch/i18n/zh_TW.po b/addons/lunch/i18n/zh_TW.po index 5bbf4383d2a3d..1ab62c3bd4359 100644 --- a/addons/lunch/i18n/zh_TW.po +++ b/addons/lunch/i18n/zh_TW.po @@ -3,8 +3,8 @@ # * lunch # # Translators: -# Wil Odoo, 2025 # Tony Ng, 2025 +# Wil Odoo, 2025 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Tony Ng, 2025\n" +"Last-Translator: Wil Odoo, 2025\n" "Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -645,7 +645,7 @@ msgstr "Chirashi" #: model:ir.model.fields,field_description:lunch.field_lunch_supplier__city #: model_terms:ir.ui.view,arch_db:lunch.lunch_supplier_view_form msgid "City" -msgstr "縣市" +msgstr "城市" #. module: lunch #: model_terms:ir.actions.act_window,help:lunch.lunch_order_action_control_suppliers diff --git a/addons/mail/i18n/az.po b/addons/mail/i18n/az.po index b8c9110bd8496..d2525a5e7b373 100644 --- a/addons/mail/i18n/az.po +++ b/addons/mail/i18n/az.po @@ -6,7 +6,7 @@ # Nurlan Farajov, 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:23+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -759,7 +759,7 @@ msgstr "" #: model:ir.actions.act_window,name:mail.mail_activity_plan_action #: model:ir.ui.menu,name:mail.menu_mail_activity_plan msgid "Activity Plans" -msgstr "" +msgstr "Fəaliyyət Planları" #. module: mail #: model_terms:ir.ui.view,arch_db:mail.mail_activity_type_view_form @@ -1596,7 +1596,7 @@ msgstr "Korpus" #: model:ir.model.fields,field_description:mail.field_mail_compose_message__body_has_template_value #: model:ir.model.fields,field_description:mail.field_mail_composer_mixin__body_has_template_value msgid "Body content is the same as the template" -msgstr "" +msgstr "Əsas məzmun şablonla eynidir" #. module: mail #. odoo-javascript @@ -1724,7 +1724,7 @@ msgstr "" #: model:ir.model.fields,field_description:mail.field_mail_compose_message__can_edit_body #: model:ir.model.fields,field_description:mail.field_mail_composer_mixin__can_edit_body msgid "Can Edit Body" -msgstr "" +msgstr "Məzmunu Redaktə edə bilər" #. module: mail #: model:ir.model.fields,field_description:mail.field_mail_resend_message__can_resend @@ -4914,7 +4914,7 @@ msgstr "" #: model:ir.model.fields,field_description:mail.field_mail_compose_message__is_mail_template_editor #: model:ir.model.fields,field_description:mail.field_mail_composer_mixin__is_mail_template_editor msgid "Is Editor" -msgstr "" +msgstr "Redaktordur" #. module: mail #: model:ir.model.fields,field_description:mail.field_discuss_channel__message_is_follower @@ -6874,6 +6874,10 @@ msgid "" "a placeholder expression that provides the appropriate language, e.g. {{ " "object.partner_id.lang }}." msgstr "" +"E-poçt göndərərkən seçmək üçün əlavə tərcümə dili (ISO kodu). " +"Quraşdırılmayıbsa, ingilis versiyası istifadə olunacaq. Bu, adətən müvafiq " +"dili təmin edən yer tutucu ifadə olmalıdır, məs. {{ obyekt.partner_id.lang " +"}}." #. module: mail #. odoo-javascript @@ -7791,7 +7795,7 @@ msgstr "" #: model:ir.model.fields,field_description:mail.field_mail_render_mixin__render_model #: model:ir.model.fields,field_description:mail.field_mail_template__render_model msgid "Rendering Model" -msgstr "" +msgstr "Render modeli" #. module: mail #. odoo-python diff --git a/addons/mail/i18n/bg.po b/addons/mail/i18n/bg.po index d785a383ba5d6..64810fb31b5fd 100644 --- a/addons/mail/i18n/bg.po +++ b/addons/mail/i18n/bg.po @@ -1341,7 +1341,7 @@ msgstr "" #: code:addons/mail/static/src/chatter/web/chatter.xml:0 #: code:addons/mail/static/src/core/common/composer.xml:0 msgid "Attach files" -msgstr "" +msgstr "Прикачване на файлове" #. module: mail #: model:ir.model,name:mail.model_ir_attachment @@ -1366,7 +1366,7 @@ msgstr "Брой прикачени файлове" #. odoo-javascript #: code:addons/mail/static/src/chatter/web/chatter.xml:0 msgid "Attachment counter loading..." -msgstr "" +msgstr "Броячът на прикачени файлове се зарежда..." #. module: mail #. odoo-javascript @@ -1386,7 +1386,7 @@ msgstr "Прикачени файлове" #. odoo-javascript #: code:addons/mail/static/src/discuss/call/common/call_context_menu.xml:0 msgid "Audio player:" -msgstr "" +msgstr "Аудио плейър:" #. module: mail #: model:ir.model.fields.selection,name:mail.selection__mail_alias__alias_contact__partners @@ -1428,7 +1428,7 @@ msgstr "Упълномощена група" #. module: mail #: model:ir.model.fields,field_description:mail.field_mail_canned_response__group_ids msgid "Authorized Groups" -msgstr "" +msgstr "Оторизирани групи" #. module: mail #: model:ir.model.fields,field_description:mail.field_mail_mail__auto_delete @@ -1466,7 +1466,7 @@ msgstr "" #. odoo-javascript #: code:addons/mail/static/src/core/common/message.js:0 msgid "Automated message" -msgstr "" +msgstr "Автоматизирано съобщение" #. module: mail #: model:ir.model.fields,help:mail.field_mail_activity_type__triggered_next_type_id @@ -1542,12 +1542,12 @@ msgstr "Основа" #. module: mail #: model:ir.model.fields.selection,name:mail.selection__mail_template__template_category__base_template msgid "Base Template" -msgstr "" +msgstr "Основен Шаблон" #. module: mail #: model_terms:ir.ui.view,arch_db:mail.view_email_template_search msgid "Base Templates" -msgstr "" +msgstr "Основни Шаблони" #. module: mail #: model:ir.model.fields,help:mail.field_res_config_settings__sfu_server_key @@ -1635,7 +1635,7 @@ msgstr "Основното съдържание е същото като на ш #: code:addons/mail/static/src/core/common/thread_icon.xml:0 #: code:addons/mail/static/src/discuss/web/avatar_card/avatar_card_popover.xml:0 msgid "Bot" -msgstr "" +msgstr "Бот" #. module: mail #: model:ir.model.fields,field_description:mail.field_mail_thread_blacklist__message_bounce @@ -1744,7 +1744,7 @@ msgstr "" #. odoo-javascript #: code:addons/mail/static/src/discuss/core/public/welcome_page.xml:0 msgid "Camera is off" -msgstr "" +msgstr "Камерата е изключена" #. module: mail #: model:ir.model.fields,field_description:mail.field_mail_resend_message__can_cancel @@ -2091,13 +2091,13 @@ msgstr "" #. odoo-javascript #: code:addons/mail/static/src/core/common/thread.xml:0 msgid "Click here to retry" -msgstr "" +msgstr "Кликнете тук, за да опитате отново" #. module: mail #. odoo-javascript #: code:addons/mail/static/src/core/common/message_in_reply.xml:0 msgid "Click to see the attachments" -msgstr "" +msgstr "Кликнете, за да видите прикачените файлове" #. module: mail #. odoo-javascript @@ -2126,38 +2126,38 @@ msgstr "" #. odoo-javascript #: code:addons/mail/static/src/core/common/thread_actions.js:0 msgid "Close Search" -msgstr "" +msgstr "Затвори Търсенето" #. module: mail #. odoo-javascript #: code:addons/mail/static/src/core/common/chat_hub.xml:0 msgid "Close all conversations" -msgstr "" +msgstr "Затвори всички разговори" #. module: mail #. odoo-javascript #: code:addons/mail/static/src/discuss/call/common/ptt_ad_banner.xml:0 msgid "Close banner" -msgstr "" +msgstr "Затвори банера." #. module: mail #. odoo-javascript #: code:addons/mail/static/src/core/common/search_message_input.xml:0 msgid "Close button" -msgstr "" +msgstr "Бутон за затваряне" #. module: mail #. odoo-javascript #: code:addons/mail/static/src/discuss/core/common/action_panel.xml:0 msgid "Close panel" -msgstr "" +msgstr "Затвори панела" #. module: mail #. odoo-javascript #: code:addons/mail/static/src/core/common/search_message_input.xml:0 #: code:addons/mail/static/src/core/web/messaging_menu_quick_search.xml:0 msgid "Close search" -msgstr "" +msgstr "Затвори търсенето" #. module: mail #: model:ir.model.fields.selection,name:mail.selection__discuss_channel_member__fold_state__closed @@ -7960,7 +7960,7 @@ msgstr "" #. module: mail #: model_terms:ir.ui.view,arch_db:mail.mail_resend_partner_view_form msgid "Resend" -msgstr "" +msgstr "Изпрати отново" #. module: mail #: model:ir.actions.act_window,name:mail.mail_resend_partner_action diff --git a/addons/mail/i18n/el.po b/addons/mail/i18n/el.po index cff9653a545b4..435978e69dd0c 100644 --- a/addons/mail/i18n/el.po +++ b/addons/mail/i18n/el.po @@ -2623,7 +2623,7 @@ msgstr "Ημερομηνία Δημιουργίας" #. module: mail #: model_terms:ir.ui.view,arch_db:mail.mail_alias_view_search msgid "Creator" -msgstr "" +msgstr "Δημιουργός" #. module: mail #: model:ir.model.fields,field_description:mail.field_mail_ice_server__credential diff --git a/addons/mail/i18n/nl.po b/addons/mail/i18n/nl.po index 80fe1eb9136e6..4c62fe319788e 100644 --- a/addons/mail/i18n/nl.po +++ b/addons/mail/i18n/nl.po @@ -4687,7 +4687,7 @@ msgid "" "If set, the member will not receive notifications from the channel until " "this date." msgstr "" -"Indien ingesteld, ontvangt het lid tot deze datum geen meldingen van het " +"Indien ingesteld, ontvangt het lid t/m deze datum geen meldingen van het " "kanaal." #. module: mail @@ -4718,7 +4718,7 @@ msgid "" "this date." msgstr "" "De gebruiker ontvangt indien ingesteld geen enkele melding van de kanalen " -"tot deze datum." +"t/m deze datum." #. module: mail #: model:ir.model.fields,help:mail.field_mail_alias__alias_bounced_content @@ -6362,7 +6362,7 @@ msgstr "Duur dempen" #: model:ir.model.fields,field_description:mail.field_discuss_channel_member__mute_until_dt #: model:ir.model.fields,field_description:mail.field_res_users_settings__mute_until_dt msgid "Mute notifications until" -msgstr "Meldingen dempen tot" +msgstr "Meldingen dempen t/m" #. module: mail #. odoo-javascript diff --git a/addons/mail/i18n/sk.po b/addons/mail/i18n/sk.po index f481a57d5ddc0..f5a1ea00e9f29 100644 --- a/addons/mail/i18n/sk.po +++ b/addons/mail/i18n/sk.po @@ -10915,7 +10915,7 @@ msgstr "" #. odoo-javascript #: code:addons/mail/static/src/discuss/gif_picker/common/gif_picker.xml:0 msgid "back" -msgstr "" +msgstr "späť" #. module: mail #: model_terms:ir.ui.view,arch_db:mail.message_notification_limit_email diff --git a/addons/mail/i18n/zh_TW.po b/addons/mail/i18n/zh_TW.po index 63b72728a90fd..d62f1bd8e5585 100644 --- a/addons/mail/i18n/zh_TW.po +++ b/addons/mail/i18n/zh_TW.po @@ -3892,7 +3892,7 @@ msgstr "文件" #. odoo-javascript #: code:addons/mail/static/src/core/common/thread_actions.js:0 msgid "Fold" -msgstr "" +msgstr "收起" #. module: mail #: model:ir.model.fields.selection,name:mail.selection__discuss_channel_member__fold_state__folded diff --git a/addons/mail/static/src/core/common/message.xml b/addons/mail/static/src/core/common/message.xml index 01d09e402c452..d8c855abffbc3 100644 --- a/addons/mail/static/src/core/common/message.xml +++ b/addons/mail/static/src/core/common/message.xml @@ -197,8 +197,8 @@
- - + +
diff --git a/addons/mail/static/src/discuss/core/public/discuss_client_action_patch.js b/addons/mail/static/src/discuss/core/public/discuss_client_action_patch.js index c683fda663822..5738016ed2fb2 100644 --- a/addons/mail/static/src/discuss/core/public/discuss_client_action_patch.js +++ b/addons/mail/static/src/discuss/core/public/discuss_client_action_patch.js @@ -2,14 +2,12 @@ import { DiscussClientAction } from "@mail/core/public_web/discuss_client_action import { WelcomePage } from "@mail/discuss/core/public/welcome_page"; import { useState } from "@odoo/owl"; import { browser } from "@web/core/browser/browser"; -import { useService } from "@web/core/utils/hooks"; import { patch } from "@web/core/utils/patch"; DiscussClientAction.components = { ...DiscussClientAction.components, WelcomePage }; patch(DiscussClientAction.prototype, { setup() { super.setup(...arguments); - this.store = useService("mail.store"); this.publicState = useState({ welcome: this.store.shouldDisplayWelcomeViewInitially, }); diff --git a/addons/mail/static/tests/chat_bubble/chat_bubble.test.js b/addons/mail/static/tests/chat_bubble/chat_bubble.test.js index 47cb61743787a..c326dd68d307b 100644 --- a/addons/mail/static/tests/chat_bubble/chat_bubble.test.js +++ b/addons/mail/static/tests/chat_bubble/chat_bubble.test.js @@ -1,5 +1,5 @@ import { describe, expect, test } from "@odoo/hoot"; -import { leave } from "@odoo/hoot-dom"; +import { leave, runAllTimers } from "@odoo/hoot-dom"; import { withUser } from "@web/../tests/_framework/mock_server/mock_server"; import { Command, serverState } from "@web/../tests/web_test_helpers"; @@ -252,6 +252,7 @@ test("chat bubbles are synced between tabs", async () => { const tab2 = await start({ asTab: true }); await contains(".o-mail-ChatBubble", { target: tab1 }); await contains(".o-mail-ChatBubble", { target: tab2 }); + await runAllTimers(); // Wait for bus service to fully load await click(".o-mail-ChatBubble[name='Marc']", { target: tab1 }); await contains(".o-mail-ChatWindow", { target: tab2 }); // open sync await click(".o-mail-ChatWindow-command[title='Fold']", { target: tab2 }); diff --git a/addons/mail/static/tests/discuss/call/call.test.js b/addons/mail/static/tests/discuss/call/call.test.js index f030fd17265b0..6121ac53ae181 100644 --- a/addons/mail/static/tests/discuss/call/call.test.js +++ b/addons/mail/static/tests/discuss/call/call.test.js @@ -16,8 +16,8 @@ import { import { mailDataHelpers } from "@mail/../tests/mock_server/mail_mock_server"; import { describe, expect, test } from "@odoo/hoot"; -import { hover, queryFirst } from "@odoo/hoot-dom"; -import { mockUserAgent } from "@odoo/hoot-mock"; +import { hover, manuallyDispatchProgrammaticEvent, queryFirst } from "@odoo/hoot-dom"; +import { mockSendBeacon, mockUserAgent } from "@odoo/hoot-mock"; import { Command, mockService, @@ -25,7 +25,6 @@ import { serverState, } from "@web/../tests/web_test_helpers"; -import { browser } from "@web/core/browser/browser"; import { isMobileOS } from "@web/core/browser/feature_detection"; describe.current.tags("desktop"); @@ -121,23 +120,18 @@ test("should disconnect when closing page while in call", async () => { const channelId = pyEnv["discuss.channel"].create({ name: "General" }); await start(); await openDiscuss(channelId); - patchWithCleanup(browser, { - navigator: { - ...browser.navigator, - sendBeacon: async (route, data) => { - if (data instanceof Blob && route === "/mail/rtc/channel/leave_call") { - const blobText = await data.text(); - const blobData = JSON.parse(blobText); - step(`sendBeacon_leave_call:${blobData.params.channel_id}`); - } - }, - }, + mockSendBeacon(async (route, data) => { + if (data instanceof Blob && route === "/mail/rtc/channel/leave_call") { + const blobText = await data.text(); + const blobData = JSON.parse(blobText); + step(`sendBeacon_leave_call:${blobData.params.channel_id}`); + } }); await click("[title='Start a Call']"); await contains(".o-discuss-Call"); // simulate page close - window.dispatchEvent(new Event("pagehide"), { bubble: true }); + await manuallyDispatchProgrammaticEvent(window, "pagehide"); await assertSteps([`sendBeacon_leave_call:${channelId}`]); }); diff --git a/addons/mail/static/tests/discuss/core/discuss.test.js b/addons/mail/static/tests/discuss/core/discuss.test.js index 38ac491581eae..908acf9ded065 100644 --- a/addons/mail/static/tests/discuss/core/discuss.test.js +++ b/addons/mail/static/tests/discuss/core/discuss.test.js @@ -1,4 +1,4 @@ -import { patchWebsocketWorkerWithCleanup } from "@bus/../tests/mock_websocket"; +import { onWebsocketEvent } from "@bus/../tests/mock_websocket"; import { assertSteps, click, @@ -31,12 +31,8 @@ test("Member list and Pinned Messages Panel menu are exclusive", async () => { test("bus subscription is refreshed when channel is joined", async () => { const pyEnv = await startServer(); pyEnv["discuss.channel"].create([{ name: "General" }, { name: "Sales" }]); - patchWebsocketWorkerWithCleanup({ - _sendToServer({ event_name, data }) { - if (event_name === "subscribe") { - step(`subscribe - ${JSON.stringify(data.channels)}`); - } - }, + onWebsocketEvent("subscribe", (data) => { + step(`subscribe - ${JSON.stringify(data.channels)}`); }); const later = luxon.DateTime.now().plus({ seconds: 2 }); mockDate( @@ -65,12 +61,8 @@ test("bus subscription is refreshed when channel is joined", async () => { test("bus subscription is refreshed when channel is left", async () => { const pyEnv = await startServer(); pyEnv["discuss.channel"].create({ name: "General" }); - patchWebsocketWorkerWithCleanup({ - _sendToServer({ event_name, data }) { - if (event_name === "subscribe") { - step(`subscribe - ${JSON.stringify(data.channels)}`); - } - }, + onWebsocketEvent("subscribe", (data) => { + step(`subscribe - ${JSON.stringify(data.channels)}`); }); const later = luxon.DateTime.now().plus({ seconds: 2 }); mockDate( diff --git a/addons/mail/static/tests/discuss/core/web/messaging_menu.test.js b/addons/mail/static/tests/discuss/core/web/messaging_menu.test.js index a9a9e36a6847f..c2a0617ba9f70 100644 --- a/addons/mail/static/tests/discuss/core/web/messaging_menu.test.js +++ b/addons/mail/static/tests/discuss/core/web/messaging_menu.test.js @@ -12,13 +12,8 @@ import { triggerHotkey, } from "@mail/../tests/mail_test_helpers"; import { describe, expect, test } from "@odoo/hoot"; -import { - Command, - getService, - patchWithCleanup, - serverState, - withUser, -} from "@web/../tests/web_test_helpers"; +import { disableAnimations } from "@odoo/hoot-mock"; +import { Command, getService, serverState, withUser } from "@web/../tests/web_test_helpers"; import { rpc } from "@web/core/network/rpc"; @@ -124,12 +119,7 @@ test("channel preview ignores transient message", async () => { }); test("channel preview ignores messages from the past", async () => { - // make scroll behavior instantaneous. - patchWithCleanup(Element.prototype, { - scrollIntoView() { - return super.scrollIntoView(true); - }, - }); + disableAnimations(); const pyEnv = await startServer(); const channelId = pyEnv["discuss.channel"].create({ name: "General" }); const messageId = pyEnv["mail.message"].create({ diff --git a/addons/mail/static/tests/discuss/message_pin/pinned_messages.test.js b/addons/mail/static/tests/discuss/message_pin/pinned_messages.test.js index 629a25c295889..bb83eefa65860 100644 --- a/addons/mail/static/tests/discuss/message_pin/pinned_messages.test.js +++ b/addons/mail/static/tests/discuss/message_pin/pinned_messages.test.js @@ -8,7 +8,7 @@ import { startServer, } from "@mail/../tests/mail_test_helpers"; import { describe, test } from "@odoo/hoot"; -import { patchWithCleanup } from "@web/../tests/web_test_helpers"; +import { disableAnimations } from "@odoo/hoot-mock"; describe.current.tags("desktop"); defineMailModels(); @@ -91,12 +91,7 @@ test("Open pinned panel from notification", async () => { }); test("Jump to message", async () => { - // make scroll behavior instantaneous. - patchWithCleanup(Element.prototype, { - scrollIntoView() { - return super.scrollIntoView(true); - }, - }); + disableAnimations(); const pyEnv = await startServer(); const channelId = pyEnv["discuss.channel"].create({ name: "General" }); pyEnv["mail.message"].create({ diff --git a/addons/mail/static/tests/discuss_app/bus_connection_alert.test.js b/addons/mail/static/tests/discuss_app/bus_connection_alert.test.js index ccaacc7d9e194..bf72aecf5b529 100644 --- a/addons/mail/static/tests/discuss_app/bus_connection_alert.test.js +++ b/addons/mail/static/tests/discuss_app/bus_connection_alert.test.js @@ -1,32 +1,31 @@ -import { lockBusServiceStart, lockWebsocketConnect } from "@bus/../tests/bus_test_helpers"; +import { addBusServiceListeners, lockWebsocketConnect } from "@bus/../tests/bus_test_helpers"; import { WEBSOCKET_CLOSE_CODES } from "@bus/workers/websocket_worker"; +import { defineMailModels, openDiscuss, start } from "@mail/../tests/mail_test_helpers"; import { describe, expect, test } from "@odoo/hoot"; -import { queryFirst, runAllTimers, waitFor, waitUntil } from "@odoo/hoot-dom"; +import { animationFrame, runAllTimers, waitFor, waitForNone } from "@odoo/hoot-dom"; import { asyncStep, MockServer, waitForSteps } from "@web/../tests/web_test_helpers"; -import { defineMailModels, openDiscuss, start } from "@mail/../tests/mail_test_helpers"; defineMailModels(); describe.current.tags("desktop"); test("show warning when bus connection encounters issues", async () => { - const unlockBus = lockBusServiceStart(); - const env = await start(); - env.services.bus_service.addEventListener("connect", () => asyncStep("connect")); - env.services.bus_service.addEventListener("reconnecting", () => asyncStep("reconnecting")); - env.services.bus_service.addEventListener("reconnect", () => asyncStep("reconnect")); - unlockBus(); + addBusServiceListeners( + ["connect", () => asyncStep("connect")], + ["reconnect", () => asyncStep("reconnect")], + ["reconnecting", () => asyncStep("reconnecting")] + ); + await start(); await openDiscuss(); - await env.services.bus_service.start(); await waitForSteps(["connect"]); const unlockWebsocket = lockWebsocketConnect(); MockServer.env["bus.bus"]._simulateDisconnection(WEBSOCKET_CLOSE_CODES.ABNORMAL_CLOSURE); await waitForSteps(["reconnecting"]); - const alert = await waitFor(".o-bus-ConnectionAlert"); - expect(alert).toHaveText("Real-time connection lost..."); + expect(await waitFor(".o-bus-ConnectionAlert")).toHaveText("Real-time connection lost..."); await runAllTimers(); - expect(alert).toHaveText("Real-time connection lost..."); + await animationFrame(); + expect(".o-bus-ConnectionAlert").toHaveText("Real-time connection lost..."); unlockWebsocket(); - await waitForSteps(["reconnect"]); await runAllTimers(); - await waitUntil(() => !queryFirst(".o-bus-ConnectionAlert")); + await waitForSteps(["reconnect"]); + await waitForNone(".o-bus-ConnectionAlert"); }); diff --git a/addons/mail/static/tests/emoji/emoji.test.js b/addons/mail/static/tests/emoji/emoji.test.js index 77660ce4adf96..ed28c9e53e58f 100644 --- a/addons/mail/static/tests/emoji/emoji.test.js +++ b/addons/mail/static/tests/emoji/emoji.test.js @@ -39,6 +39,10 @@ test("search emoji from keywords", async () => { await click("button[aria-label='Emojis']"); await insertText("input[placeholder='Search emoji']", "mexican"); await contains(".o-Emoji", { text: "🌮" }); + await insertText("input[placeholder='Search emoji']", "9", { replace: true }); + await contains(".o-Emoji:eq(0)", { text: "🕘" }); + await contains(".o-Emoji:eq(1)", { text: "🕤" }); + await contains(".o-Emoji:eq(2)", { text: "9️⃣" }); }); test("search emoji from keywords should be case insensitive", async () => { diff --git a/addons/mail/static/tests/inline/convert_inline.test.js b/addons/mail/static/tests/inline/convert_inline.test.js index d513b0c08ed17..b40617ef99409 100644 --- a/addons/mail/static/tests/inline/convert_inline.test.js +++ b/addons/mail/static/tests/inline/convert_inline.test.js @@ -10,6 +10,7 @@ import { normalizeRem, } from "@mail/views/web/fields/html_mail_field/convert_inline"; import { afterEach, beforeEach, describe, expect, getFixture, test } from "@odoo/hoot"; +import { enableTransitions } from "@odoo/hoot-mock"; import { getGridHtml, getRegularGridHtml, @@ -859,6 +860,7 @@ describe("Convert classes to inline styles", () => { }); test("convert Bootstrap classes to inline styles", async () => { + enableTransitions(); editable.innerHTML = `
Hello
`; getFixture().append(editable); // editable needs to be in the DOM to compute its dynamic styles. diff --git a/addons/mail/static/tests/inline/html_mail_field.test.js b/addons/mail/static/tests/inline/html_mail_field.test.js index f933139aa0e8a..c8d8c320c6bf9 100644 --- a/addons/mail/static/tests/inline/html_mail_field.test.js +++ b/addons/mail/static/tests/inline/html_mail_field.test.js @@ -3,6 +3,7 @@ import { insertText } from "@html_editor/../tests/_helpers/user_actions"; import { HtmlMailField } from "@mail/views/web/fields/html_mail_field/html_mail_field"; import { after, before, beforeEach, expect, test } from "@odoo/hoot"; import { press, queryOne } from "@odoo/hoot-dom"; +import { animationFrame, enableTransitions } from "@odoo/hoot-mock"; import { contains, defineModels, @@ -13,7 +14,6 @@ import { patchWithCleanup, } from "@web/../tests/web_test_helpers"; import { mailModels } from "../mail_test_helpers"; -import { animationFrame } from "@odoo/hoot-mock"; function setSelectionInHtmlField(selector = "p", fieldName = "body") { const anchorNode = queryOne(`[name='${fieldName}'] .odoo-editor-editable ${selector}`); @@ -70,6 +70,7 @@ beforeEach(() => { }); test("HtmlMail save inline html", async function () { + enableTransitions(); useCustomStyleRules(`.test-h1-inline .note-editable h1 { color: #111827 !important; }`); onRpc("web_save", ({ args }) => { expect(args[1].body.replace(/font-size: ?(\d+(\.\d+)?)px/, "font-size: []px")).toBe( @@ -116,6 +117,7 @@ test("HtmlMail don't have access to column commands", async function () { }); test("HtmlMail add icon and save inline html", async function () { + enableTransitions(); useCustomStyleRules( `.test-icon-inline .note-editable .fa { color: rgb(55,65,81) !important; diff --git a/addons/mail/static/tests/mail_test_helpers.js b/addons/mail/static/tests/mail_test_helpers.js index c12aa934faf93..189f381e2ec3a 100644 --- a/addons/mail/static/tests/mail_test_helpers.js +++ b/addons/mail/static/tests/mail_test_helpers.js @@ -339,7 +339,7 @@ export async function start(options) { restoreRegistry(registry); const rootTarget = target; target = document.createElement("div"); - target.style.width = "100%"; + target.classList.add("o-mail-Discuss-asTabContainer"); rootTarget.appendChild(target); addSwitchTabDropdownItem(rootTarget, target); env = await makeMockEnv({}, { makeNew: true }); diff --git a/addons/mail/static/tests/mail_test_helpers.scss b/addons/mail/static/tests/mail_test_helpers.scss new file mode 100644 index 0000000000000..4f8105a1a6897 --- /dev/null +++ b/addons/mail/static/tests/mail_test_helpers.scss @@ -0,0 +1,14 @@ +.o-mail-Discuss-asTabContainer { + height: 100%; + width: 100%; + display: flex; + flex-direction: column; + position: absolute; + top: 0; + left: 0; + + & .o_action_manager { + height: 100%; + } + +} diff --git a/addons/mail/static/tests/message/message_reply.test.js b/addons/mail/static/tests/message/message_reply.test.js index f392eb17baa98..737122e9f49ea 100644 --- a/addons/mail/static/tests/message/message_reply.test.js +++ b/addons/mail/static/tests/message/message_reply.test.js @@ -7,7 +7,8 @@ import { startServer, } from "@mail/../tests/mail_test_helpers"; import { describe, test } from "@odoo/hoot"; -import { patchWithCleanup, serverState } from "@web/../tests/web_test_helpers"; +import { disableAnimations } from "@odoo/hoot-mock"; +import { serverState } from "@web/../tests/web_test_helpers"; import { deserializeDateTime } from "@web/core/l10n/dates"; import { getOrigin } from "@web/core/utils/urls"; @@ -40,12 +41,7 @@ test("click on message in reply to highlight the parent message", async () => { }); test("click on message in reply to scroll to the parent message", async () => { - // make scroll behavior instantaneous. - patchWithCleanup(Element.prototype, { - scrollIntoView() { - return super.scrollIntoView(true); - }, - }); + disableAnimations(); const pyEnv = await startServer(); const channelId = pyEnv["discuss.channel"].create({ name: "general" }); const [oldestMessageId] = pyEnv["mail.message"].create( diff --git a/addons/mail_bot/i18n/zh_CN.po b/addons/mail_bot/i18n/zh_CN.po index 1c7d58e0e44d9..1895ea8b7bf07 100644 --- a/addons/mail_bot/i18n/zh_CN.po +++ b/addons/mail_bot/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:40+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Odoo哥 , 2024\n" +"Last-Translator: 何彬 , 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/addons/mail_group/i18n/zh_CN.po b/addons/mail_group/i18n/zh_CN.po index a6cc51f7aa9a2..f7e05cfbc9727 100644 --- a/addons/mail_group/i18n/zh_CN.po +++ b/addons/mail_group/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Jeffery CHEN , 2024 # Chloe Wang, 2025 # diff --git a/addons/maintenance/i18n/ja.po b/addons/maintenance/i18n/ja.po index f2f0acc31d996..2886465fd0ee3 100644 --- a/addons/maintenance/i18n/ja.po +++ b/addons/maintenance/i18n/ja.po @@ -75,7 +75,7 @@ msgstr "要アクション" #: model:ir.model.fields,field_description:maintenance.field_maintenance_team__active #: model_terms:ir.ui.view,arch_db:maintenance.hr_equipment_request_view_search msgid "Active" -msgstr "有効化" +msgstr "進行中" #. module: maintenance #: model:ir.model.fields,field_description:maintenance.field_maintenance_equipment__activity_ids @@ -571,7 +571,7 @@ msgstr "予想平均故障間隔" #: model:ir.model.fields,field_description:maintenance.field_maintenance_equipment_category__fold #: model:ir.model.fields,field_description:maintenance.field_maintenance_stage__fold msgid "Folded in Maintenance Pipe" -msgstr "保守整備パイプラインで折り畳む" +msgstr "整備パイプラインで折り畳む" #. module: maintenance #: model_terms:ir.actions.act_window,help:maintenance.hr_equipment_request_action @@ -946,7 +946,7 @@ msgstr "平均故障間隔" #: model:ir.model.fields,help:maintenance.field_maintenance_mixin__mtbf msgid "" "Mean Time Between Failure, computed based on done corrective maintenances." -msgstr "平均故障間隔(Mean Time Between Failure):実施された修正整備に基づいて計算。" +msgstr "平均故障間隔: 実施された是正保全に基づいて計算されます。" #. module: maintenance #: model:ir.model.fields,help:maintenance.field_maintenance_equipment__mttr diff --git a/addons/maintenance/i18n/sk.po b/addons/maintenance/i18n/sk.po index e8bcd72fba63d..ab4d5e32867fe 100644 --- a/addons/maintenance/i18n/sk.po +++ b/addons/maintenance/i18n/sk.po @@ -727,12 +727,12 @@ msgstr "Spracováva sa" #. module: maintenance #: model:ir.model.fields,field_description:maintenance.field_maintenance_request__instruction_type msgid "Instruction" -msgstr "" +msgstr "Inštrukcie" #. module: maintenance #: model_terms:ir.ui.view,arch_db:maintenance.hr_equipment_request_view_form msgid "Instructions" -msgstr "" +msgstr "Inštrukcie" #. module: maintenance #: model:maintenance.team,name:maintenance.equipment_team_maintenance diff --git a/addons/marketing_card/i18n/az.po b/addons/marketing_card/i18n/az.po index 32dbd82a8d5c6..ed502a0d552fd 100644 --- a/addons/marketing_card/i18n/az.po +++ b/addons/marketing_card/i18n/az.po @@ -3,9 +3,9 @@ # * marketing_card # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-03 08:35+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -610,6 +610,10 @@ msgid "" "a placeholder expression that provides the appropriate language, e.g. {{ " "object.partner_id.lang }}." msgstr "" +"E-poçt göndərərkən seçmək üçün əlavə tərcümə dili (ISO kodu). " +"Quraşdırılmayıbsa, ingilis versiyası istifadə olunacaq. Bu, adətən müvafiq " +"dili təmin edən yer tutucu ifadə olmalıdır, məs. {{ obyekt.partner_id.lang " +"}}." #. module: marketing_card #: model:ir.model.fields,field_description:marketing_card.field_card_campaign__target_url @@ -694,7 +698,7 @@ msgstr "ID qeyd et" #. module: marketing_card #: model:ir.model.fields,field_description:marketing_card.field_card_campaign__render_model msgid "Rendering Model" -msgstr "" +msgstr "Render modeli" #. module: marketing_card #: model:ir.model.fields,field_description:marketing_card.field_card_campaign__request_title diff --git a/addons/mass_mailing/i18n/az.po b/addons/mass_mailing/i18n/az.po index fc85a9c5ca942..fe7f39e4071f5 100644 --- a/addons/mass_mailing/i18n/az.po +++ b/addons/mass_mailing/i18n/az.po @@ -6,7 +6,7 @@ # Nurlan Farajov, 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:22+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3613,6 +3613,10 @@ msgid "" "a placeholder expression that provides the appropriate language, e.g. {{ " "object.partner_id.lang }}." msgstr "" +"E-poçt göndərərkən seçmək üçün əlavə tərcümə dili (ISO kodu). " +"Quraşdırılmayıbsa, ingilis versiyası istifadə olunacaq. Bu, adətən müvafiq " +"dili təmin edən yer tutucu ifadə olmalıdır, məs. {{ obyekt.partner_id.lang " +"}}." #. module: mass_mailing #: model:ir.actions.act_window,name:mass_mailing.mailing_subscription_optout_action @@ -3909,7 +3913,7 @@ msgstr "" #. module: mass_mailing #: model:ir.model.fields,field_description:mass_mailing.field_mailing_mailing__render_model msgid "Rendering Model" -msgstr "" +msgstr "Render modeli" #. module: mass_mailing #: model:ir.model.fields,field_description:mass_mailing.field_mailing_mailing__replied @@ -4293,7 +4297,7 @@ msgstr "" #. module: mass_mailing #: model_terms:ir.ui.view,arch_db:mass_mailing.theme_default_template msgid "Signature" -msgstr "" +msgstr "İmza" #. module: mass_mailing #: model_terms:ir.ui.view,arch_db:mass_mailing.ab_testing_description diff --git a/addons/mass_mailing/i18n/vi.po b/addons/mass_mailing/i18n/vi.po index 344506997090e..f333c2af4c3ad 100644 --- a/addons/mass_mailing/i18n/vi.po +++ b/addons/mass_mailing/i18n/vi.po @@ -3108,7 +3108,7 @@ msgstr "Quản lý Chiến dịch Gửi mail hàng loạt" #. odoo-python #: code:addons/mass_mailing/controllers/main.py:0 msgid "Manage Subscriptions" -msgstr "" +msgstr "Quản lý đăng ký" #. module: mass_mailing #: model_terms:ir.ui.view,arch_db:mass_mailing.res_config_settings_view_form @@ -4576,7 +4576,7 @@ msgstr "Đã huỷ đăng ký thành công" #. odoo-python #: code:addons/mass_mailing/controllers/main.py:0 msgid "Successfully unsubscribed!" -msgstr "" +msgstr "Đã huỷ đăng ký thành công!" #. module: mass_mailing #: model:ir.model.fields,field_description:mass_mailing.field_mailing_contact__tag_ids diff --git a/addons/mass_mailing_sms/i18n/zh_CN.po b/addons/mass_mailing_sms/i18n/zh_CN.po index 5bdece5f971bc..511f7a3994b10 100644 --- a/addons/mass_mailing_sms/i18n/zh_CN.po +++ b/addons/mass_mailing_sms/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Chloe Wang, 2024 # msgid "" diff --git a/addons/mass_mailing_themes/i18n/az.po b/addons/mass_mailing_themes/i18n/az.po index 64505a87afd52..e7c85dfcf2ee7 100644 --- a/addons/mass_mailing_themes/i18n/az.po +++ b/addons/mass_mailing_themes/i18n/az.po @@ -5,7 +5,7 @@ # Translators: # Jumshud Sultanov , 2024 # erpgo translator , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1157,7 +1157,7 @@ msgstr "" #. module: mass_mailing_themes #: model_terms:ir.ui.view,arch_db:mass_mailing_themes.theme_bignews_template msgid "Signature" -msgstr "" +msgstr "İmza" #. module: mass_mailing_themes #: model_terms:ir.ui.view,arch_db:mass_mailing_themes.theme_newsletter_template diff --git a/addons/membership/i18n/az.po b/addons/membership/i18n/az.po index 93390000539e2..93d58e0cb0ab9 100644 --- a/addons/membership/i18n/az.po +++ b/addons/membership/i18n/az.po @@ -4,8 +4,8 @@ # # Translators: # erpgo translator , 2024 -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-26 21:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -622,7 +622,7 @@ msgstr "" #. module: membership #: model_terms:ir.ui.view,arch_db:membership.report_membership_view_tree msgid "Sum of Quantity" -msgstr "" +msgstr "Kəmiyyətin cəmi" #. module: membership #: model_terms:ir.ui.view,arch_db:membership.membership_products_form diff --git a/addons/membership/i18n/ja.po b/addons/membership/i18n/ja.po index 0cccf2567ce5a..b0d8bcdd8488a 100644 --- a/addons/membership/i18n/ja.po +++ b/addons/membership/i18n/ja.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-26 21:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -360,7 +361,7 @@ msgstr "仕訳" #. module: membership #: model:ir.model,name:membership.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: membership #: model:ir.model.fields,field_description:membership.field_membership_invoice__write_uid diff --git a/addons/mrp/i18n/az.po b/addons/mrp/i18n/az.po index bbf51d057f8cb..6533c635c5798 100644 --- a/addons/mrp/i18n/az.po +++ b/addons/mrp/i18n/az.po @@ -3,9 +3,9 @@ # * mrp # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:22+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -848,7 +848,7 @@ msgstr "Qoşmaların Sayı" #. module: mrp #: model:ir.model.fields,field_description:mrp.field_mrp_production__product_variant_attributes msgid "Attribute Values" -msgstr "" +msgstr "Atribut Dəyərləri" #. module: mrp #: model:ir.model.fields,field_description:mrp.field_stock_picking_type__auto_print_mrp_reception_report @@ -1328,7 +1328,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:mrp.mrp_bom_form_view #: model_terms:ir.ui.view,arch_db:mrp.mrp_production_form_view msgid "Catalog" -msgstr "" +msgstr "Kataloq" #. module: mrp #: model:ir.model.fields,field_description:mrp.field_mrp_bom__product_uom_category_id @@ -2918,7 +2918,7 @@ msgstr "" #: code:addons/mrp/static/src/components/bom_overview_table/mrp_bom_overview_table.xml:0 #: model_terms:ir.ui.view,arch_db:mrp.report_mrp_bom msgid "Lead Time" -msgstr "" +msgstr "Göndərmə vaxtı" #. module: mrp #. odoo-javascript diff --git a/addons/mrp/i18n/ja.po b/addons/mrp/i18n/ja.po index 14d0528fe3c54..1f361184c1e1a 100644 --- a/addons/mrp/i18n/ja.po +++ b/addons/mrp/i18n/ja.po @@ -1146,7 +1146,7 @@ msgstr "ブロック" #: model:ir.actions.act_window,name:mrp.act_mrp_block_workcenter_wo #: model_terms:ir.ui.view,arch_db:mrp.mrp_workcenter_block_wizard_form msgid "Block Workcenter" -msgstr "作業区のブロック" +msgstr "作業区をブロック" #. module: mrp #: model:ir.model.fields.selection,name:mrp.selection__mrp_bom__consumption__strict diff --git a/addons/mrp/i18n/sk.po b/addons/mrp/i18n/sk.po index 3f9af99b372ad..4bf4e3d7e7b86 100644 --- a/addons/mrp/i18n/sk.po +++ b/addons/mrp/i18n/sk.po @@ -4166,7 +4166,7 @@ msgstr "Umelohmotný laminát" #. odoo-python #: code:addons/mrp/models/stock_move.py:0 msgid "Please enter a positive quantity." -msgstr "" +msgstr "Zadajte, prosím, kladné množstvo." #. module: mrp #. odoo-python diff --git a/addons/mrp/i18n/vi.po b/addons/mrp/i18n/vi.po index 5c4ea98f3877f..472a8b2441e22 100644 --- a/addons/mrp/i18n/vi.po +++ b/addons/mrp/i18n/vi.po @@ -2002,7 +2002,7 @@ msgstr "" "Xác định liệu người sử dụng có thể sử dụng nhiều hay ít thành phần hơn so với số lượng được xác định trong BoM:\n" " * Được phép: Cho phép tất cả người sử dụng thực hiện sản xuất.\n" " * Được phép kèm cảnh báo: cho phép tất cả người sử dụng thực hiện sản xuất kèm theo tóm tắt chênh lệch lượng sử dụng khi đóng lệnh sản xuất.\n" -" Lưu ý rằng trong trường hợp Lượng sử dụng đáng chú ý, khi lượng sử dụng được ghi nhận riêng theo cách thủ công, các cảnh báo lượng sử dụng cũng sẽ được đưa ra khi thích hợp.\n" +" Lưu ý rằng trong trường hợp Kiểm soát lượng sử dụng, khi lượng sử dụng được ghi nhận riêng theo cách thủ công, các cảnh báo lượng sử dụng cũng sẽ được đưa ra khi thích hợp.\n" " * Đã chặn: chỉ quản lý mới có thể đóng lệnh sản xuất khi lượng sử dụng BoM khác với kế hoạch. " #. module: mrp @@ -2572,7 +2572,7 @@ msgstr "Ẩn" #. module: mrp #: model:ir.model.fields,field_description:mrp.field_mrp_bom_line__manual_consumption msgid "Highlight Consumption" -msgstr "Lượng sử dụng đáng chú ý" +msgstr "Kiểm soát lượng sử dụng" #. module: mrp #: model:ir.model.fields,help:mrp.field_mrp_workcenter__costs_hour diff --git a/addons/mrp/i18n/zh_TW.po b/addons/mrp/i18n/zh_TW.po index 0544f835b5f5d..1cf9bfcac5bd0 100644 --- a/addons/mrp/i18n/zh_TW.po +++ b/addons/mrp/i18n/zh_TW.po @@ -2304,7 +2304,7 @@ msgstr "彈性消耗" #. odoo-javascript #: code:addons/mrp/static/src/components/mo_overview_line/mrp_mo_overview_line.js:0 msgid "Fold" -msgstr "" +msgstr "收起" #. module: mrp #: model:ir.model.fields,field_description:mrp.field_mrp_bom__message_follower_ids diff --git a/addons/mrp_account/i18n/az.po b/addons/mrp_account/i18n/az.po index 8582dcc1fe9ce..d5214288811aa 100644 --- a/addons/mrp_account/i18n/az.po +++ b/addons/mrp_account/i18n/az.po @@ -3,9 +3,9 @@ # * mrp_account # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -230,7 +230,7 @@ msgstr "Göstəriləcək Ad" #. module: mrp_account #: model:ir.model.fields,field_description:mrp_account.field_mrp_workcenter__distribution_analytic_account_ids msgid "Distribution Analytic Account" -msgstr "" +msgstr "Dağıtım Analitik Hesabı" #. module: mrp_account #: model:ir.model.fields,field_description:mrp_account.field_account_analytic_applicability__business_domain diff --git a/addons/mrp_account/i18n/ja.po b/addons/mrp_account/i18n/ja.po index ab1e745052d80..e26cd56503622 100644 --- a/addons/mrp_account/i18n/ja.po +++ b/addons/mrp_account/i18n/ja.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Junko Augias, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Junko Augias, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -263,7 +263,7 @@ msgstr "仕訳" #. module: mrp_account #: model:ir.model,name:mrp_account.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: mrp_account #: model:ir.model.fields,field_description:mrp_account.field_mrp_account_wip_accounting_line__label diff --git a/addons/mrp_subcontracting_purchase/i18n/ja.po b/addons/mrp_subcontracting_purchase/i18n/ja.po index 21d6fb4b8d98c..5c5fc7739bbc0 100644 --- a/addons/mrp_subcontracting_purchase/i18n/ja.po +++ b/addons/mrp_subcontracting_purchase/i18n/ja.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -59,7 +60,7 @@ msgstr "構成品供給日" #. module: mrp_subcontracting_purchase #: model:ir.model,name:mrp_subcontracting_purchase.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: mrp_subcontracting_purchase #. odoo-python diff --git a/addons/onboarding/i18n/el.po b/addons/onboarding/i18n/el.po index 07df39e27e194..cc23f49c63a30 100644 --- a/addons/onboarding/i18n/el.po +++ b/addons/onboarding/i18n/el.po @@ -4,6 +4,7 @@ # # Translators: # Martin Trigaux, 2024 +# Anastasia Mimou, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:57+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Martin Trigaux, 2024\n" +"Last-Translator: Anastasia Mimou, 2025\n" "Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -275,7 +276,7 @@ msgstr "" #: model:ir.model,name:onboarding.model_onboarding_onboarding_step #: model:ir.model.fields,field_description:onboarding.field_onboarding_progress_step__step_id msgid "Onboarding Step" -msgstr "" +msgstr "Βήμα Εγγραφής" #. module: onboarding #: model:ir.model.fields,field_description:onboarding.field_onboarding_progress_step__step_state @@ -362,7 +363,7 @@ msgstr "" #. odoo-python #: code:addons/onboarding/models/onboarding_onboarding_step.py:0 msgid "Step Completed!" -msgstr "" +msgstr "Βήμα Ολοκληρωμένο!" #. module: onboarding #: model:ir.model.fields,field_description:onboarding.field_onboarding_onboarding_step__step_image diff --git a/addons/onboarding/i18n/sk.po b/addons/onboarding/i18n/sk.po index 8b05823713aa9..281f270bcec38 100644 --- a/addons/onboarding/i18n/sk.po +++ b/addons/onboarding/i18n/sk.po @@ -5,6 +5,7 @@ # Translators: # Martin Trigaux, 2024 # Wil Odoo, 2024 +# Tomáš Píšek, 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:57+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Tomáš Píšek, 2025\n" "Language-Team: Slovak (https://app.transifex.com/odoo/teams/41243/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -383,7 +384,7 @@ msgstr "" #. module: onboarding #: model_terms:ir.ui.view,arch_db:onboarding.onboarding_onboarding_view_form msgid "Steps" -msgstr "" +msgstr "Kroky" #. module: onboarding #: model:ir.model.fields,help:onboarding.field_onboarding_onboarding_step__button_text diff --git a/addons/payment/i18n/az.po b/addons/payment/i18n/az.po index ac802fa0d6b7c..ebd9b460a4f3a 100644 --- a/addons/payment/i18n/az.po +++ b/addons/payment/i18n/az.po @@ -394,6 +394,8 @@ msgid "" "Are you sure you want to void the authorized transaction? This action can't " "be undone." msgstr "" +"Səlahiyyətli tranzaksiyanı ləğv etmək istədiyinizə əminsiniz? Bu əməliyyat " +"geri qaytarıla bilməz." #. module: payment #: model:payment.method,name:payment.payment_method_argencard @@ -674,7 +676,7 @@ msgstr "" #. module: payment #: model_terms:ir.ui.view,arch_db:payment.payment_transaction_form msgid "Capture Transaction" -msgstr "" +msgstr "Tranzaksiyanı ələ keçirin" #. module: payment #: model:ir.model.fields,help:payment.field_payment_provider__capture_manually @@ -891,7 +893,7 @@ msgstr "" #: model:ir.model.fields.selection,name:payment.selection__payment_provider_onboarding_wizard__payment_method__stripe #: model:ir.model.fields.selection,name:payment.selection__sale_payment_provider_onboarding_wizard__payment_method__stripe msgid "Credit & Debit card (via Stripe)" -msgstr "" +msgstr "Kredit və Debet kartı (Stripe vasitəsilə)" #. module: payment #: model:payment.method,name:payment.payment_method_credit @@ -916,7 +918,7 @@ msgstr "Valyuta" #: model:ir.model.fields.selection,name:payment.selection__payment_provider_onboarding_wizard__payment_method__manual #: model:ir.model.fields.selection,name:payment.selection__sale_payment_provider_onboarding_wizard__payment_method__manual msgid "Custom payment instructions" -msgstr "" +msgstr "Fərdi ödəniş təlimatları" #. module: payment #: model:ir.model.fields,field_description:payment.field_payment_transaction__partner_id @@ -1114,7 +1116,7 @@ msgstr "" #. module: payment #: model:ir.model,name:payment.model_payment_link_wizard msgid "Generate Sales Payment Link" -msgstr "" +msgstr "Satış Ödəniş Linki yaradın" #. module: payment #: model_terms:ir.ui.view,arch_db:payment.payment_link_wizard_view_form @@ -1685,7 +1687,7 @@ msgstr "" #. module: payment #: model:onboarding.onboarding.step,title:payment.onboarding_onboarding_step_payment_provider msgid "Online Payments" -msgstr "" +msgstr "Onlayn ödənişlər" #. module: payment #: model:ir.model.fields.selection,name:payment.selection__payment_transaction__operation__online_direct @@ -1830,7 +1832,7 @@ msgstr "" #: model:ir.model.fields.selection,name:payment.selection__sale_payment_provider_onboarding_wizard__payment_method__paypal #: model:payment.provider,name:payment.payment_provider_paypal msgid "PayPal" -msgstr "" +msgstr "PayPal" #. module: payment #: model:payment.method,name:payment.payment_method_paypay @@ -1880,7 +1882,7 @@ msgstr "" #. module: payment #: model:ir.model.fields,field_description:payment.field_payment_provider_onboarding_wizard__manual_post_msg msgid "Payment Instructions" -msgstr "" +msgstr "Ödəniş Təlimatları" #. module: payment #: model:ir.model.fields,field_description:payment.field_payment_link_wizard__link @@ -1914,7 +1916,7 @@ msgstr "Ödəniş Üsulları" #. module: payment #: model:ir.model,name:payment.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment #: model:ir.actions.act_window,name:payment.action_payment_provider @@ -1947,7 +1949,7 @@ msgstr "Ödəniş Tokenləri" #. module: payment #: model:ir.model,name:payment.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment #: model:ir.actions.act_window,name:payment.action_payment_transaction @@ -2884,7 +2886,7 @@ msgstr "" #. module: payment #: model_terms:ir.ui.view,arch_db:payment.payment_transaction_form msgid "Void Transaction" -msgstr "" +msgstr "Etibarsız Əməliyyat" #. module: payment #: model:payment.method,name:payment.payment_method_wallets_india diff --git a/addons/payment/i18n/el.po b/addons/payment/i18n/el.po index e01c4f474ba06..21ca55d6acc5d 100644 --- a/addons/payment/i18n/el.po +++ b/addons/payment/i18n/el.po @@ -1240,6 +1240,8 @@ msgid "" "In test mode, a fake payment is processed through a test payment interface.\n" "This mode is advised when setting up the provider." msgstr "" +"Στη λειτουργία δοκιμής, επεξεργάζεται μια ψεύτικη πληρωμή μέσω διεπαφής δοκιμής πληρωμής.\n" +"Αυτή η λειτουργία συνιστάται κατά την ρύθμιση του παρόχου." #. module: payment #: model:ir.model.fields,field_description:payment.field_payment_provider__inline_form_view_id @@ -1660,7 +1662,7 @@ msgstr "" #. module: payment #: model:ir.model,name:payment.model_onboarding_onboarding_step msgid "Onboarding Step" -msgstr "" +msgstr "Βήμα Εγγραφής" #. module: payment #: model:onboarding.onboarding.step,step_image_alt:payment.onboarding_onboarding_step_payment_provider @@ -1690,7 +1692,7 @@ msgstr "" #. module: payment #: model:onboarding.onboarding.step,title:payment.onboarding_onboarding_step_payment_provider msgid "Online Payments" -msgstr "" +msgstr "Online Πληρωμές" #. module: payment #: model:ir.model.fields.selection,name:payment.selection__payment_transaction__operation__online_direct @@ -1925,7 +1927,7 @@ msgstr "Πάροχος Πληρωμών" #: model:ir.actions.act_window,name:payment.action_payment_provider #: model_terms:ir.ui.view,arch_db:payment.payment_provider_list msgid "Payment Providers" -msgstr "" +msgstr "Πάροχοι Πληρωμών" #. module: payment #: model:ir.model,name:payment.model_payment_token @@ -2215,7 +2217,7 @@ msgstr "Επιστροφές" #. module: payment #: model:ir.model.fields,field_description:payment.field_payment_transaction__refunds_count msgid "Refunds Count" -msgstr "" +msgstr "Αριθμός Επιστροφών" #. module: payment #: model:ir.model.fields,field_description:payment.field_payment_link_wizard__res_id @@ -2349,7 +2351,7 @@ msgstr "Κατάσταση" #. module: payment #: model:onboarding.onboarding.step,done_text:payment.onboarding_onboarding_step_payment_provider msgid "Step Completed!" -msgstr "" +msgstr "Βήμα Ολοκληρωμένο!" #. module: payment #: model:ir.model.fields.selection,name:payment.selection__res_company__payment_onboarding_payment_method__stripe @@ -2427,7 +2429,7 @@ msgstr "" #. odoo-python #: code:addons/payment/controllers/portal.py:0 msgid "The access token is invalid." -msgstr "" +msgstr "Ο κωδικός ασφαλείας πρόσβασης είναι άκυρος." #. module: payment #. odoo-python diff --git a/addons/payment/i18n/nl.po b/addons/payment/i18n/nl.po index 207e7aa12a872..5ce23347f4f49 100644 --- a/addons/payment/i18n/nl.po +++ b/addons/payment/i18n/nl.po @@ -7,10 +7,10 @@ # Martin Trigaux, 2024 # Tiffany Chang, 2024 # Wil Odoo, 2024 -# Erwin van der Ploeg , 2025 # Fabien Pinckaers , 2025 # Manon Rondou, 2025 # Dylan Kiss, 2025 +# Erwin van der Ploeg , 2025 # msgid "" msgstr "" @@ -18,7 +18,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Dylan Kiss, 2025\n" +"Last-Translator: Erwin van der Ploeg , 2025\n" "Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -691,7 +691,7 @@ msgstr "Geannuleerd" #. module: payment #: model:ir.model.fields,field_description:payment.field_payment_provider__cancel_msg msgid "Cancelled Message" -msgstr "Geannuleerd bericht" +msgstr "Bericht bij geannuleerd" #. module: payment #. odoo-javascript @@ -1037,7 +1037,7 @@ msgstr "Neem gerust contact met ons op als je niets ontvangt." #. module: payment #: model:ir.model.fields,field_description:payment.field_payment_provider__done_msg msgid "Done Message" -msgstr "Gedaan bericht" +msgstr "Bericht bij gereed" #. module: payment #: model:ir.model.fields.selection,name:payment.selection__payment_transaction__state__draft diff --git a/addons/payment/i18n/zh_TW.po b/addons/payment/i18n/zh_TW.po index 7a63ffe476e71..7772725a3f862 100644 --- a/addons/payment/i18n/zh_TW.po +++ b/addons/payment/i18n/zh_TW.po @@ -5,8 +5,8 @@ # Translators: # Martin Trigaux, 2024 # 敬雲 林 , 2024 -# Wil Odoo, 2025 # Tony Ng, 2025 +# Wil Odoo, 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Tony Ng, 2025\n" +"Last-Translator: Wil Odoo, 2025\n" "Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -779,7 +779,7 @@ msgstr "Cirrus" #: model:ir.model.fields,field_description:payment.field_payment_transaction__partner_city #: model_terms:ir.ui.view,arch_db:payment.payment_transaction_form msgid "City" -msgstr "縣市" +msgstr "城市" #. module: payment #: model:payment.method,name:payment.payment_method_clearpay diff --git a/addons/payment_adyen/i18n/az.po b/addons/payment_adyen/i18n/az.po index 25746afa393ec..f298bd2b0d2d2 100644 --- a/addons/payment_adyen/i18n/az.po +++ b/addons/payment_adyen/i18n/az.po @@ -5,7 +5,7 @@ # Translators: # erpgo translator , 2024 # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -121,7 +121,7 @@ msgstr "" #. module: payment_adyen #: model:ir.model,name:payment_adyen.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_adyen #: model:ir.model,name:payment_adyen.model_payment_token @@ -131,7 +131,7 @@ msgstr "Ödəniş Tokeni" #. module: payment_adyen #: model:ir.model,name:payment_adyen.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_adyen #. odoo-javascript diff --git a/addons/payment_aps/i18n/az.po b/addons/payment_aps/i18n/az.po index 0b4c36d512003..95d678c1a61d4 100644 --- a/addons/payment_aps/i18n/az.po +++ b/addons/payment_aps/i18n/az.po @@ -4,6 +4,7 @@ # # Translators: # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-26 21:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -68,12 +69,12 @@ msgstr "" #. module: payment_aps #: model:ir.model,name:payment_aps.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_aps #: model:ir.model,name:payment_aps.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_aps #. odoo-python diff --git a/addons/payment_asiapay/i18n/az.po b/addons/payment_asiapay/i18n/az.po index 95338af0a31bb..4337205915344 100644 --- a/addons/payment_asiapay/i18n/az.po +++ b/addons/payment_asiapay/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -94,12 +95,12 @@ msgstr "" #. module: payment_asiapay #: model:ir.model,name:payment_asiapay.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_asiapay #: model:ir.model,name:payment_asiapay.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_asiapay #: model:ir.model.fields.selection,name:payment_asiapay.selection__payment_provider__asiapay_brand__pesopay diff --git a/addons/payment_authorize/i18n/az.po b/addons/payment_authorize/i18n/az.po index bd831855d8d24..6f39c68f881cd 100644 --- a/addons/payment_authorize/i18n/az.po +++ b/addons/payment_authorize/i18n/az.po @@ -4,7 +4,7 @@ # # Translators: # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -114,7 +114,7 @@ msgstr "" #. module: payment_authorize #: model_terms:ir.ui.view,arch_db:payment_authorize.inline_form msgid "Expiration" -msgstr "" +msgstr "Başaçatma Tarixi" #. module: payment_authorize #. odoo-python @@ -159,7 +159,7 @@ msgstr "" #. module: payment_authorize #: model:ir.model,name:payment_authorize.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_authorize #: model:ir.model,name:payment_authorize.model_payment_token @@ -169,7 +169,7 @@ msgstr "Ödəniş Tokeni" #. module: payment_authorize #: model:ir.model,name:payment_authorize.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_authorize #. odoo-javascript diff --git a/addons/payment_buckaroo/i18n/az.po b/addons/payment_buckaroo/i18n/az.po index 5a0f5cbd802a5..07dfb71605efa 100644 --- a/addons/payment_buckaroo/i18n/az.po +++ b/addons/payment_buckaroo/i18n/az.po @@ -4,6 +4,7 @@ # # Translators: # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-26 21:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -51,12 +52,12 @@ msgstr "" #. module: payment_buckaroo #: model:ir.model,name:payment_buckaroo.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_buckaroo #: model:ir.model,name:payment_buckaroo.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_buckaroo #. odoo-python diff --git a/addons/payment_custom/i18n/az.po b/addons/payment_custom/i18n/az.po index 427c982c1f773..a5adf75d8d16e 100644 --- a/addons/payment_custom/i18n/az.po +++ b/addons/payment_custom/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -81,12 +82,12 @@ msgstr "" #. module: payment_custom #: model:ir.model,name:payment_custom.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_custom #: model:ir.model,name:payment_custom.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_custom #: model_terms:ir.ui.view,arch_db:payment_custom.payment_provider_form diff --git a/addons/payment_demo/i18n/az.po b/addons/payment_demo/i18n/az.po index 87b82b7ec07fe..3d39206dde5e2 100644 --- a/addons/payment_demo/i18n/az.po +++ b/addons/payment_demo/i18n/az.po @@ -4,8 +4,8 @@ # # Translators: # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -180,7 +180,7 @@ msgstr "" #. module: payment_demo #: model:ir.model,name:payment_demo.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_demo #: model:ir.model,name:payment_demo.model_payment_token @@ -190,7 +190,7 @@ msgstr "Ödəniş Tokeni" #. module: payment_demo #: model:ir.model,name:payment_demo.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_demo #. odoo-javascript diff --git a/addons/payment_flutterwave/i18n/az.po b/addons/payment_flutterwave/i18n/az.po index b7bc9fcea0185..4a55dc21ad781 100644 --- a/addons/payment_flutterwave/i18n/az.po +++ b/addons/payment_flutterwave/i18n/az.po @@ -4,7 +4,7 @@ # # Translators: # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-26 21:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -73,7 +73,7 @@ msgstr "" #. module: payment_flutterwave #: model:ir.model,name:payment_flutterwave.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_flutterwave #: model:ir.model,name:payment_flutterwave.model_payment_token @@ -83,7 +83,7 @@ msgstr "Ödəniş Tokeni" #. module: payment_flutterwave #: model:ir.model,name:payment_flutterwave.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_flutterwave #: model_terms:ir.ui.view,arch_db:payment_flutterwave.payment_provider_form diff --git a/addons/payment_mercado_pago/i18n/az.po b/addons/payment_mercado_pago/i18n/az.po index b5e0f3f8867ce..aed530cc13fda 100644 --- a/addons/payment_mercado_pago/i18n/az.po +++ b/addons/payment_mercado_pago/i18n/az.po @@ -4,6 +4,7 @@ # # Translators: # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -86,12 +87,12 @@ msgstr "" #. module: payment_mercado_pago #: model:ir.model,name:payment_mercado_pago.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_mercado_pago #: model:ir.model,name:payment_mercado_pago.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_mercado_pago #. odoo-python diff --git a/addons/payment_mercado_pago/i18n/zh_CN.po b/addons/payment_mercado_pago/i18n/zh_CN.po index f17c56ad863ec..6b3b9bc69707e 100644 --- a/addons/payment_mercado_pago/i18n/zh_CN.po +++ b/addons/payment_mercado_pago/i18n/zh_CN.po @@ -5,7 +5,7 @@ # Translators: # Wil Odoo, 2024 # Chloe Wang, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Odoo哥 , 2024\n" +"Last-Translator: 何彬 , 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/addons/payment_mollie/i18n/az.po b/addons/payment_mollie/i18n/az.po index da6ed325ff356..fbdbc6446af05 100644 --- a/addons/payment_mollie/i18n/az.po +++ b/addons/payment_mollie/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-08 06:52+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -62,12 +63,12 @@ msgstr "" #. module: payment_mollie #: model:ir.model,name:payment_mollie.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_mollie #: model:ir.model,name:payment_mollie.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_mollie #. odoo-python diff --git a/addons/payment_paypal/i18n/az.po b/addons/payment_paypal/i18n/az.po index 1ad7e22e58067..9cfd236a4b5fd 100644 --- a/addons/payment_paypal/i18n/az.po +++ b/addons/payment_paypal/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -83,7 +84,7 @@ msgstr "" #. module: payment_paypal #: model:ir.model.fields.selection,name:payment_paypal.selection__payment_provider__code__paypal msgid "PayPal" -msgstr "" +msgstr "PayPal" #. module: payment_paypal #: model:ir.model.fields,field_description:payment_paypal.field_payment_provider__paypal_access_token @@ -118,12 +119,12 @@ msgstr "" #. module: payment_paypal #: model:ir.model,name:payment_paypal.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_paypal #: model:ir.model,name:payment_paypal.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_paypal #. odoo-javascript diff --git a/addons/payment_paypal/models/payment_transaction.py b/addons/payment_paypal/models/payment_transaction.py index e9630f572577c..7d6b120eb9f3f 100644 --- a/addons/payment_paypal/models/payment_transaction.py +++ b/addons/payment_paypal/models/payment_transaction.py @@ -34,6 +34,31 @@ def _get_specific_processing_values(self, processing_values): if self.provider_code != 'paypal': return res + payload = self._paypal_prepare_order_payload() + + _logger.info( + "Sending '/checkout/orders' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(payload) + ) + idempotency_key = payment_utils.generate_idempotency_key( + self, scope='payment_request_order' + ) + order_data = self.provider_id._paypal_make_request( + '/v2/checkout/orders', json_payload=payload, idempotency_key=idempotency_key + ) + _logger.info( + "Response of '/checkout/orders' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(order_data) + ) + return {'order_id': order_data['id']} + + def _paypal_prepare_order_payload(self): + """ Prepare the payload for the Paypal create order request. + + :return: The requested payload to create a Paypal order. + :rtype: dict + """ + country_code = self.partner_country_id.code or self.company_id.country_id.code partner_first_name, partner_last_name = payment_utils.split_partner_name(self.partner_name) payload = { 'intent': 'CAPTURE', @@ -59,7 +84,6 @@ def _get_specific_processing_values(self, processing_values): 'experience_context': { 'shipping_preference': 'NO_SHIPPING', }, - 'email_address': self.partner_email, 'name': { 'given_name': partner_first_name, 'surname': partner_last_name, @@ -69,26 +93,15 @@ def _get_specific_processing_values(self, processing_values): 'admin_area_1': self.partner_state_id.name, 'admin_area_2': self.partner_city, 'postal_code': self.partner_zip, - 'country_code': self.partner_country_id.code, + 'country_code': country_code, }, }, }, } - _logger.info( - "Sending '/checkout/orders' request for transaction with reference %s:\n%s", - self.reference, pprint.pformat(payload) - ) - idempotency_key = payment_utils.generate_idempotency_key( - self, scope='payment_request_order' - ) - order_data = self.provider_id._paypal_make_request( - '/v2/checkout/orders', json_payload=payload, idempotency_key=idempotency_key - ) - _logger.info( - "Response of '/checkout/orders' request for transaction with reference %s:\n%s", - self.reference, pprint.pformat(order_data) - ) - return {'order_id': order_data['id']} + if self.partner_email: + payload['payment_source']['paypal']['email_address'] = self.partner_email + + return payload def _get_tx_from_notification_data(self, provider_code, notification_data): """ Override of `payment` to find the transaction based on Paypal data. diff --git a/addons/payment_paypal/tests/test_paypal.py b/addons/payment_paypal/tests/test_paypal.py index 45ef415a032ee..8bab472194da4 100644 --- a/addons/payment_paypal/tests/test_paypal.py +++ b/addons/payment_paypal/tests/test_paypal.py @@ -23,6 +23,15 @@ def test_processing_values(self): processing_values = tx._get_processing_values() self.assertEqual(processing_values['order_id'], self.order_id) + def test_order_payload_values_for_public_user(self): + """ If a payment is made with the public user we need to make sure that the + email address is not sent to PayPal and that we provide the country code of the company instead.""" + tx = self._create_transaction(flow='direct', partner_id=self.public_user.id) + payload = tx._paypal_prepare_order_payload() + customer_payload = payload['payment_source']['paypal'] + self.assertTrue('email_address' not in customer_payload) + self.assertEqual(customer_payload['address']['country_code'], self.company.country_id.code) + @mute_logger('odoo.addons.payment_paypal.controllers.main') def test_complete_order_confirms_transaction(self): """ Test the processing of a webhook notification. """ diff --git a/addons/payment_razorpay/i18n/az.po b/addons/payment_razorpay/i18n/az.po index 237b627622de5..514d30abb33bd 100644 --- a/addons/payment_razorpay/i18n/az.po +++ b/addons/payment_razorpay/i18n/az.po @@ -4,7 +4,7 @@ # # Translators: # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -62,7 +62,7 @@ msgstr "" #. module: payment_razorpay #: model:ir.model,name:payment_razorpay.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_razorpay #: model:ir.model,name:payment_razorpay.model_payment_token @@ -72,7 +72,7 @@ msgstr "Ödəniş Tokeni" #. module: payment_razorpay #: model:ir.model,name:payment_razorpay.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_razorpay #. odoo-javascript diff --git a/addons/payment_stripe/i18n/az.po b/addons/payment_stripe/i18n/az.po index 19f620dd6c20d..0342219c3b6b9 100644 --- a/addons/payment_stripe/i18n/az.po +++ b/addons/payment_stripe/i18n/az.po @@ -4,8 +4,8 @@ # # Translators: # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -98,7 +98,7 @@ msgstr "" #. module: payment_stripe #: model:ir.model,name:payment_stripe.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_stripe #: model:ir.actions.act_window,name:payment_stripe.action_payment_provider_onboarding @@ -113,7 +113,7 @@ msgstr "Ödəniş Tokeni" #. module: payment_stripe #: model:ir.model,name:payment_stripe.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_stripe #. odoo-javascript diff --git a/addons/payment_stripe/i18n/el.po b/addons/payment_stripe/i18n/el.po index 7f3a23bb606db..6ae109a172df1 100644 --- a/addons/payment_stripe/i18n/el.po +++ b/addons/payment_stripe/i18n/el.po @@ -6,6 +6,7 @@ # Martin Trigaux, 2024 # Kostas Goutoudis , 2024 # Charalampos Loukas, 2025 +# Anastasia Mimou, 2025 # msgid "" msgstr "" @@ -13,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Charalampos Loukas, 2025\n" +"Last-Translator: Anastasia Mimou, 2025\n" "Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -103,7 +104,7 @@ msgstr "Πάροχος Πληρωμών" #. module: payment_stripe #: model:ir.actions.act_window,name:payment_stripe.action_payment_provider_onboarding msgid "Payment Providers" -msgstr "" +msgstr "Πάροχοι Πληρωμών" #. module: payment_stripe #: model:ir.model,name:payment_stripe.model_payment_token diff --git a/addons/payment_worldline/i18n/az.po b/addons/payment_worldline/i18n/az.po index c5e70d5f82e32..8167fdca259b3 100644 --- a/addons/payment_worldline/i18n/az.po +++ b/addons/payment_worldline/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-29 00:00+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -56,12 +57,12 @@ msgstr "" #. module: payment_worldline #: model:ir.model,name:payment_worldline.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_worldline #: model:ir.model,name:payment_worldline.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_worldline #. odoo-python diff --git a/addons/payment_xendit/i18n/az.po b/addons/payment_xendit/i18n/az.po index 40158ee9e85d6..401526253ad37 100644 --- a/addons/payment_xendit/i18n/az.po +++ b/addons/payment_xendit/i18n/az.po @@ -3,9 +3,9 @@ # * payment_xendit # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -68,7 +68,7 @@ msgstr "Elektron poçt" #. module: payment_xendit #: model_terms:ir.ui.view,arch_db:payment_xendit.inline_form msgid "Expiration" -msgstr "" +msgstr "Başaçatma Tarixi" #. module: payment_xendit #. odoo-javascript @@ -107,12 +107,12 @@ msgstr "" #. module: payment_xendit #: model:ir.model,name:payment_xendit.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: payment_xendit #: model:ir.model,name:payment_xendit.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: payment_xendit #. odoo-javascript diff --git a/addons/point_of_sale/i18n/az.po b/addons/point_of_sale/i18n/az.po index f7438b242ebda..460b3a6ab9832 100644 --- a/addons/point_of_sale/i18n/az.po +++ b/addons/point_of_sale/i18n/az.po @@ -4,8 +4,8 @@ # # Translators: # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 # erpgo translator , 2025 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:22+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2025\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -93,7 +93,7 @@ msgstr "" #. odoo-javascript #: code:addons/point_of_sale/static/src/app/screens/receipt_screen/receipt/receipt_header/receipt_header.js:0 msgid "%(vatLabel)s: %(vatId)s" -msgstr "" +msgstr "%(vatLabel)s: %(vatId)s" #. module: point_of_sale #. odoo-javascript @@ -1937,7 +1937,7 @@ msgstr "Kombo Seçimləri" #. module: point_of_sale #: model:ir.model.fields,field_description:point_of_sale.field_pos_order_line__combo_item_id msgid "Combo Item" -msgstr "" +msgstr "Kombo elementi" #. module: point_of_sale #: model:ir.model.fields,field_description:point_of_sale.field_pos_order_line__combo_line_ids @@ -2292,7 +2292,7 @@ msgstr "Özəl Başlıq & Alt Başlıq" #. module: point_of_sale #: model:ir.model.fields,field_description:point_of_sale.field_pos_order_line__custom_attribute_value_ids msgid "Custom Values" -msgstr "" +msgstr "Fərdi Dəyərlər" #. module: point_of_sale #. odoo-javascript @@ -5878,7 +5878,7 @@ msgstr "Məhsul Atributu" #. module: point_of_sale #: model:ir.model,name:point_of_sale.model_product_attribute_custom_value msgid "Product Attribute Custom Value" -msgstr "" +msgstr "Məhsul Atributunun Fərdi Dəyəri" #. module: point_of_sale #: model:ir.model,name:point_of_sale.model_product_category diff --git a/addons/point_of_sale/i18n/hr.po b/addons/point_of_sale/i18n/hr.po index 4f193579c13da..2726d965c5611 100644 --- a/addons/point_of_sale/i18n/hr.po +++ b/addons/point_of_sale/i18n/hr.po @@ -7,7 +7,6 @@ # Ivan Marijanović , 2024 # storm_mpildek , 2024 # Servisi RAM d.o.o. , 2024 -# Luka Carević , 2024 # Mario Jureša , 2024 # Ivica Dimjašević , 2024 # Vladimir Olujić , 2024 @@ -21,6 +20,7 @@ # Martin Trigaux, 2024 # Jurica Pomper, 2025 # Bole , 2025 +# Luka Carević , 2025 # msgid "" msgstr "" @@ -28,7 +28,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:22+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Bole , 2025\n" +"Last-Translator: Luka Carević , 2025\n" "Language-Team: Croatian (https://app.transifex.com/odoo/teams/41243/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3976,13 +3976,13 @@ msgstr "RUC" #: model:ir.model.fields,field_description:point_of_sale.field_pos_order__margin_percent #: model:ir.model.fields,field_description:point_of_sale.field_pos_order_line__margin_percent msgid "Margin (%)" -msgstr "" +msgstr "Margina (%)" #. module: point_of_sale #. odoo-javascript #: code:addons/point_of_sale/static/src/app/screens/product_screen/product_info_popup/product_info_popup.xml:0 msgid "Margin:" -msgstr "" +msgstr "Marža:" #. module: point_of_sale #: model:ir.model.fields,field_description:point_of_sale.field_pos_config__is_margins_costs_accessible_to_every_user diff --git a/addons/point_of_sale/i18n/ja.po b/addons/point_of_sale/i18n/ja.po index 26f9a6c8061f5..dfe592b52ff7d 100644 --- a/addons/point_of_sale/i18n/ja.po +++ b/addons/point_of_sale/i18n/ja.po @@ -360,7 +360,7 @@ msgstr "現金レジスタ" #. module: point_of_sale #: model_terms:ir.ui.view,arch_db:point_of_sale.view_pos_session_form msgid "Journal Items" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: point_of_sale #: model_terms:ir.ui.view,arch_db:point_of_sale.res_config_settings_view_form @@ -3657,13 +3657,13 @@ msgstr "仕訳" #. module: point_of_sale #: model:ir.model,name:point_of_sale.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: point_of_sale #. odoo-python #: code:addons/point_of_sale/models/pos_session.py:0 msgid "Journal Items" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: point_of_sale #. odoo-javascript diff --git a/addons/point_of_sale/static/src/app/models/product_product.js b/addons/point_of_sale/static/src/app/models/product_product.js index fa8c624cea890..6f368a079d0ec 100644 --- a/addons/point_of_sale/static/src/app/models/product_product.js +++ b/addons/point_of_sale/static/src/app/models/product_product.js @@ -206,7 +206,7 @@ export class ProductProduct extends Base { } get searchString() { - const fields = ["display_name"]; + const fields = ["display_name", "default_code"]; return fields .map((field) => this[field] || "") .filter(Boolean) @@ -214,7 +214,7 @@ export class ProductProduct extends Base { } exactMatch(searchWord) { - const fields = ["barcode", "default_code"]; + const fields = ["barcode"]; return fields.some((field) => this[field] && this[field].toLowerCase() == searchWord); } diff --git a/addons/point_of_sale/static/src/app/screens/product_screen/control_buttons/control_buttons.js b/addons/point_of_sale/static/src/app/screens/product_screen/control_buttons/control_buttons.js index 7d4c546ba83f9..a603874e65d80 100644 --- a/addons/point_of_sale/static/src/app/screens/product_screen/control_buttons/control_buttons.js +++ b/addons/point_of_sale/static/src/app/screens/product_screen/control_buttons/control_buttons.js @@ -72,10 +72,13 @@ export class ControlButtons extends Component { fiscal_position_id: selectedFiscalPosition ? selectedFiscalPosition.id : false, }); } - async clickPricelist() { - // Create the list to be passed to the SelectionPopup. - // Pricelist object is passed as item in the list because it - // is the object that will be returned when the popup is confirmed. + /** + * Create the list to be passed to the SelectionPopup on the `click` function. + * Pricelist object is passed as item in the list because it + * is the object that will be returned when the popup is confirmed. + * @returns {Array} + */ + getPricelistList() { const selectionList = this.pos.models["product.pricelist"].map((pricelist) => ({ id: pricelist.id, label: pricelist.name, @@ -93,7 +96,10 @@ export class ControlButtons extends Component { item: null, }); } - + return selectionList; + } + async clickPricelist() { + const selectionList = this.getPricelistList(); const payload = await makeAwaitable(this.dialog, SelectionPopup, { title: _t("Select the pricelist"), list: selectionList, diff --git a/addons/point_of_sale/static/src/app/screens/product_screen/control_buttons/control_buttons.xml b/addons/point_of_sale/static/src/app/screens/product_screen/control_buttons/control_buttons.xml index 5bb12110dea79..11bb668b472f8 100644 --- a/addons/point_of_sale/static/src/app/screens/product_screen/control_buttons/control_buttons.xml +++ b/addons/point_of_sale/static/src/app/screens/product_screen/control_buttons/control_buttons.xml @@ -10,7 +10,7 @@ class="buttonClass" setter="(orderline, note) => orderline.setNote(note)" /> - diff --git a/addons/point_of_sale/static/tests/tours/product_screen_tour.js b/addons/point_of_sale/static/tests/tours/product_screen_tour.js index fb1d865536cbb..503719f5cb8dc 100644 --- a/addons/point_of_sale/static/tests/tours/product_screen_tour.js +++ b/addons/point_of_sale/static/tests/tours/product_screen_tour.js @@ -355,9 +355,11 @@ registry.category("web_tour.tours").add("SearchProducts", { ProductScreen.searchProduct("chair"), ProductScreen.clickDisplayedProduct("Test chair 1"), ProductScreen.clickDisplayedProduct("Test CHAIR 2"), + ProductScreen.clickDisplayedProduct("Test sofa"), ProductScreen.searchProduct("CHAIR"), ProductScreen.clickDisplayedProduct("Test chair 1"), ProductScreen.clickDisplayedProduct("Test CHAIR 2"), + ProductScreen.clickDisplayedProduct("Test sofa"), ProductScreen.searchProduct("clémentine"), ProductScreen.clickDisplayedProduct("clémentine"), ].flat(), diff --git a/addons/portal/i18n/zh_TW.po b/addons/portal/i18n/zh_TW.po index bb8d6111a89ae..5032e58208076 100644 --- a/addons/portal/i18n/zh_TW.po +++ b/addons/portal/i18n/zh_TW.po @@ -3,8 +3,8 @@ # * portal # # Translators: -# Wil Odoo, 2025 # Tony Ng, 2025 +# Wil Odoo, 2025 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:25+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Tony Ng, 2025\n" +"Last-Translator: Wil Odoo, 2025\n" "Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -348,7 +348,7 @@ msgstr "檢查失敗" #. module: portal #: model_terms:ir.ui.view,arch_db:portal.portal_my_details_fields msgid "City" -msgstr "縣市" +msgstr "城市" #. module: portal #. odoo-javascript @@ -1013,7 +1013,7 @@ msgstr "一些必要資訊尚未填入。" #. module: portal #: model_terms:ir.ui.view,arch_db:portal.portal_my_details_fields msgid "State / Province" -msgstr "縣市" +msgstr "州 / 省" #. module: portal #: model:ir.model.fields,field_description:portal.field_portal_wizard_user__email_state diff --git a/addons/pos_discount/i18n/az.po b/addons/pos_discount/i18n/az.po index 29e2a4800c440..2f0cff65839c4 100644 --- a/addons/pos_discount/i18n/az.po +++ b/addons/pos_discount/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -48,7 +49,7 @@ msgstr "Endirim" #. module: pos_discount #: model_terms:ir.ui.view,arch_db:pos_discount.res_config_settings_view_form msgid "Discount %" -msgstr "" +msgstr "Endirim %" #. module: pos_discount #. odoo-javascript @@ -62,7 +63,7 @@ msgstr "" #: model:ir.model.fields,field_description:pos_discount.field_pos_config__discount_product_id #: model_terms:ir.ui.view,arch_db:pos_discount.res_config_settings_view_form msgid "Discount Product" -msgstr "" +msgstr "Endirimli məhsul" #. module: pos_discount #. odoo-javascript diff --git a/addons/pos_event/i18n/el.po b/addons/pos_event/i18n/el.po index 2a81e157d27bf..265f8f3ff6bfc 100644 --- a/addons/pos_event/i18n/el.po +++ b/addons/pos_event/i18n/el.po @@ -7,6 +7,7 @@ # Martin Trigaux, 2024 # Kostas Goutoudis , 2024 # Charalampos Loukas, 2025 +# Agapi Psyllou, 2025 # msgid "" msgstr "" @@ -14,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-29 00:00+0000\n" -"Last-Translator: Charalampos Loukas, 2025\n" +"Last-Translator: Agapi Psyllou, 2025\n" "Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -217,7 +218,7 @@ msgstr "" #. odoo-javascript #: code:addons/pos_event/static/src/app/popup/event_configurator_popup/event_configurator_popup.xml:0 msgid "Unlimited" -msgstr "" +msgstr "Απεριόριστα" #. module: pos_event #. odoo-javascript diff --git a/addons/pos_hr/i18n/sk.po b/addons/pos_hr/i18n/sk.po index 01e8f0c4ea53c..663f89a154308 100644 --- a/addons/pos_hr/i18n/sk.po +++ b/addons/pos_hr/i18n/sk.po @@ -6,6 +6,7 @@ # Rastislav Brencic , 2024 # Jan Prokop, 2024 # Wil Odoo, 2025 +# Tomáš Píšek, 2025 # msgid "" msgstr "" @@ -13,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:40+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2025\n" +"Last-Translator: Tomáš Píšek, 2025\n" "Language-Team: Slovak (https://app.transifex.com/odoo/teams/41243/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -238,7 +239,7 @@ msgstr "" #. odoo-javascript #: code:addons/pos_hr/static/src/app/select_cashier_mixin.js:0 msgid "Password?" -msgstr "" +msgstr "Heslo?" #. module: pos_hr #. odoo-javascript diff --git a/addons/pos_hr/i18n/zh_CN.po b/addons/pos_hr/i18n/zh_CN.po index efa3f71322eaf..9fa8171e15233 100644 --- a/addons/pos_hr/i18n/zh_CN.po +++ b/addons/pos_hr/i18n/zh_CN.po @@ -6,7 +6,7 @@ # Martin Trigaux, 2024 # Wil Odoo, 2024 # Chloe Wang, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Tiffany Chang, 2024 # msgid "" diff --git a/addons/pos_loyalty/i18n/az.po b/addons/pos_loyalty/i18n/az.po index 14745fe309c6e..c5de1e95b66d8 100644 --- a/addons/pos_loyalty/i18n/az.po +++ b/addons/pos_loyalty/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -216,7 +217,7 @@ msgstr "" #. odoo-javascript #: code:addons/pos_loyalty/static/src/utils/manage_giftcard_popup/manage_giftcard_popup.xml:0 msgid "Expiration" -msgstr "" +msgstr "Başaçatma Tarixi" #. module: pos_loyalty #: model:loyalty.reward,description:pos_loyalty.loyalty_program_reward diff --git a/addons/pos_loyalty/static/src/overrides/components/control_buttons/control_buttons.xml b/addons/pos_loyalty/static/src/overrides/components/control_buttons/control_buttons.xml index 29fa240a9d29e..acb6de067e242 100644 --- a/addons/pos_loyalty/static/src/overrides/components/control_buttons/control_buttons.xml +++ b/addons/pos_loyalty/static/src/overrides/components/control_buttons/control_buttons.xml @@ -38,5 +38,8 @@ + + {{ getPotentialRewards().length ? 'active text-action' : '' }} + diff --git a/addons/pos_online_payment/i18n/az.po b/addons/pos_online_payment/i18n/az.po index b9286ecb8d4c6..c7214752b74cb 100644 --- a/addons/pos_online_payment/i18n/az.po +++ b/addons/pos_online_payment/i18n/az.po @@ -5,7 +5,7 @@ # Translators: # erpgo translator , 2024 # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -222,7 +222,7 @@ msgstr "Ödəniş Provayderləri" #. module: pos_online_payment #: model:ir.model,name:pos_online_payment.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: pos_online_payment #: model:ir.model,name:pos_online_payment.model_account_payment diff --git a/addons/pos_online_payment/i18n/el.po b/addons/pos_online_payment/i18n/el.po index cba1e1ed9906b..bf87ee08eaacb 100644 --- a/addons/pos_online_payment/i18n/el.po +++ b/addons/pos_online_payment/i18n/el.po @@ -7,6 +7,7 @@ # George Tarasidis , 2024 # Kostas Goutoudis , 2024 # Martin Trigaux, 2024 +# Anastasia Mimou, 2025 # msgid "" msgstr "" @@ -14,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Martin Trigaux, 2024\n" +"Last-Translator: Anastasia Mimou, 2025\n" "Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -218,7 +219,7 @@ msgstr "" #. module: pos_online_payment #: model_terms:ir.ui.view,arch_db:pos_online_payment.pos_payment_method_view_form_inherit_pos_online_payment msgid "Payment Providers" -msgstr "" +msgstr "Πάροχοι Πληρωμών" #. module: pos_online_payment #: model:ir.model,name:pos_online_payment.model_payment_transaction diff --git a/addons/pos_restaurant/i18n/az.po b/addons/pos_restaurant/i18n/az.po index 560c3fd64f792..d3b9e6029a0c3 100644 --- a/addons/pos_restaurant/i18n/az.po +++ b/addons/pos_restaurant/i18n/az.po @@ -3,9 +3,9 @@ # * pos_restaurant # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -211,7 +211,7 @@ msgstr "" #. module: pos_restaurant #: model:product.template,name:pos_restaurant.pos_food_bacon_product_template msgid "Bacon Burger" -msgstr "" +msgstr "Bekon Burger" #. module: pos_restaurant #: model:product.attribute.value,name:pos_restaurant.product_attribute_fries @@ -1059,7 +1059,7 @@ msgstr "" #. odoo-javascript #: code:addons/pos_restaurant/static/src/app/tip_receipt/tip_receipt.xml:0 msgid "Signature" -msgstr "" +msgstr "İmza" #. module: pos_restaurant #: model:product.attribute.value,name:pos_restaurant.product_attribute_value_smashed_sweet_potatoes diff --git a/addons/pos_restaurant/i18n/it.po b/addons/pos_restaurant/i18n/it.po index 9c9e9de140e82..b93533b911205 100644 --- a/addons/pos_restaurant/i18n/it.po +++ b/addons/pos_restaurant/i18n/it.po @@ -1158,7 +1158,7 @@ msgstr "Passa a da asporto" #: code:addons/pos_restaurant/static/src/overrides/components/ticket_screen/ticket_screen.xml:0 #: model:ir.model.fields,field_description:pos_restaurant.field_pos_order__table_id msgid "Table" -msgstr "Tabella" +msgstr "Tavolo" #. module: pos_restaurant #: model:ir.model.fields,field_description:pos_restaurant.field_pos_config__module_pos_restaurant_appointment diff --git a/addons/pos_restaurant/i18n/zh_CN.po b/addons/pos_restaurant/i18n/zh_CN.po index 67397042689ba..08fc7ff4d3dda 100644 --- a/addons/pos_restaurant/i18n/zh_CN.po +++ b/addons/pos_restaurant/i18n/zh_CN.po @@ -5,7 +5,7 @@ # Translators: # 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2024 # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Chloe Wang, 2025 # msgid "" diff --git a/addons/pos_sale/i18n/az.po b/addons/pos_sale/i18n/az.po index 8f5815859c6ac..afba838c901d7 100644 --- a/addons/pos_sale/i18n/az.po +++ b/addons/pos_sale/i18n/az.po @@ -3,9 +3,9 @@ # * pos_sale # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -78,7 +78,7 @@ msgstr "" #. module: pos_sale #: model:ir.model.fields,field_description:pos_sale.field_pos_order_line__qty_delivered msgid "Delivery Quantity" -msgstr "" +msgstr "Çatdırılma Miqdarı" #. module: pos_sale #. odoo-javascript @@ -90,7 +90,7 @@ msgstr "" #. odoo-javascript #: code:addons/pos_sale/static/src/overrides/models/pos_store.js:0 msgid "Down Payment" -msgstr "" +msgstr "İlkin ödəniş" #. module: pos_sale #: model:product.template,name:pos_sale.default_downpayment_product_product_template @@ -268,7 +268,7 @@ msgstr "" #. module: pos_sale #: model:ir.model.fields,field_description:pos_sale.field_pos_order__sale_order_count msgid "Sale Order Count" -msgstr "" +msgstr "Satış Sifarişi Sayı" #. module: pos_sale #: model_terms:ir.ui.view,arch_db:pos_sale.res_config_settings_view_form diff --git a/addons/pos_self_order/i18n/it.po b/addons/pos_self_order/i18n/it.po index c7f9f3067cebd..ed82c6c3a2e03 100644 --- a/addons/pos_self_order/i18n/it.po +++ b/addons/pos_self_order/i18n/it.po @@ -1112,7 +1112,7 @@ msgstr "Successo" #. module: pos_self_order #: model:ir.model.fields.selection,name:pos_self_order.selection__pos_config__self_ordering_service_mode__table msgid "Table" -msgstr "Tabella" +msgstr "Tavolo" #. module: pos_self_order #: model:ir.model.fields,field_description:pos_self_order.field_pos_order__table_stand_number diff --git a/addons/pos_self_order/i18n/nl.po b/addons/pos_self_order/i18n/nl.po index 8b5c8bce43f44..315e1a953417a 100644 --- a/addons/pos_self_order/i18n/nl.po +++ b/addons/pos_self_order/i18n/nl.po @@ -4,8 +4,8 @@ # # Translators: # Wil Odoo, 2024 -# Erwin van der Ploeg , 2025 # Manon Rondou, 2025 +# Erwin van der Ploeg , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:24+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Manon Rondou, 2025\n" +"Last-Translator: Erwin van der Ploeg , 2025\n" "Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -140,7 +140,7 @@ msgstr "Beschikbaarheid na" #. module: pos_self_order #: model:ir.model.fields,field_description:pos_self_order.field_pos_category__hour_until msgid "Availability Until" -msgstr "Beschikbaarheid tot" +msgstr "Beschikbaarheid t/m" #. module: pos_self_order #. odoo-javascript @@ -1170,7 +1170,7 @@ msgstr "De Beschikbaarheid tussen moet groter zijn dan de Beschikbaarheid na." #. odoo-python #: code:addons/pos_self_order/models/pos_category.py:0 msgid "The Availability Until must be set between 00:00 and 24:00" -msgstr "De Beschikbaarheid tot moet zich tussen 00:00 en 24:00 vinden" +msgstr "De beschikbaarheid t/m moet zich tussen 00:00 en 24:00 vinden." #. module: pos_self_order #. odoo-python @@ -1187,7 +1187,7 @@ msgstr "Het product moet beschikbaar zijn na dit uur." #. module: pos_self_order #: model:ir.model.fields,help:pos_self_order.field_pos_category__hour_until msgid "The product will be available until this hour." -msgstr "Het product moet beschikbaar zijn tot dit uur." +msgstr "Het product moet beschikbaar zijn t/m dit uur." #. module: pos_self_order #. odoo-python diff --git a/addons/pos_self_order/i18n/zh_CN.po b/addons/pos_self_order/i18n/zh_CN.po index 15309b929a26c..04bf71ccc9001 100644 --- a/addons/pos_self_order/i18n/zh_CN.po +++ b/addons/pos_self_order/i18n/zh_CN.po @@ -3,10 +3,10 @@ # * pos_self_order # # Translators: -# Chloe Wang, 2024 # Chill Liao , 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Wil Odoo, 2024 +# Chloe Wang, 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:24+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Chloe Wang, 2025\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -787,7 +787,7 @@ msgstr "取货区" #. odoo-javascript #: code:addons/pos_self_order/static/src/app/self_order_service.js:0 msgid "Please wait until the price is loaded" -msgstr "" +msgstr "价格正在载入,请稍等。" #. module: pos_self_order #. odoo-python diff --git a/addons/pos_stripe/i18n/zh_CN.po b/addons/pos_stripe/i18n/zh_CN.po index a0008f67f8e0c..d6eec219bb9ae 100644 --- a/addons/pos_stripe/i18n/zh_CN.po +++ b/addons/pos_stripe/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:03+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Odoo哥 , 2024\n" +"Last-Translator: 何彬 , 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/addons/product/i18n/az.po b/addons/product/i18n/az.po index 998540390f40e..fee59e160fa52 100644 --- a/addons/product/i18n/az.po +++ b/addons/product/i18n/az.po @@ -644,7 +644,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:product.product_attribute_value_list #: model_terms:ir.ui.view,arch_db:product.product_attribute_view_form msgid "Attribute Values" -msgstr "" +msgstr "Atribut Dəyərləri" #. module: product #: model:ir.actions.act_window,name:product.attribute_action @@ -843,7 +843,7 @@ msgstr "Kombo Seçimləri" #. module: product #: model:ir.model.fields,field_description:product.field_product_combo__combo_item_ids msgid "Combo Item" -msgstr "" +msgstr "Kombo elementi" #. module: product #: model:ir.model.fields,field_description:product.field_product_combo__base_price @@ -1019,7 +1019,7 @@ msgstr "" #: model:ir.model.fields,field_description:product.field_product_product__service_tracking #: model:ir.model.fields,field_description:product.field_product_template__service_tracking msgid "Create on Order" -msgstr "" +msgstr "Sifariş yaradın" #. module: product #: model:ir.model.fields,field_description:product.field_product_attribute__create_uid @@ -1583,6 +1583,8 @@ msgid "" "Goods are tangible materials and merchandise you provide.\n" "A service is a non-material product you provide." msgstr "" +"Mallar maddi materiallar və təqdim etdiyiniz mallardır.\n" +"Xidmət sizin təqdim etdiyiniz qeyri-maddi məhsuldur." #. module: product #: model_terms:ir.ui.view,arch_db:product.res_config_settings_view_form @@ -2556,7 +2558,7 @@ msgstr "Məhsul Atributu" #. module: product #: model:ir.model,name:product.model_product_attribute_custom_value msgid "Product Attribute Custom Value" -msgstr "" +msgstr "Məhsul Atributunun Fərdi Dəyəri" #. module: product #: model:ir.model.fields,field_description:product.field_product_template_attribute_line__product_template_value_ids diff --git a/addons/product/i18n/el.po b/addons/product/i18n/el.po index e610b6c3d3492..0320dad1bebbb 100644 --- a/addons/product/i18n/el.po +++ b/addons/product/i18n/el.po @@ -1581,7 +1581,7 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:product.product_template_search_view #: model_terms:ir.ui.view,arch_db:product.product_view_search_catalog msgid "Goods" -msgstr "" +msgstr "Εμπορεύματα" #. module: product #: model:ir.model.fields,help:product.field_product_product__type diff --git a/addons/product_email_template/i18n/az.po b/addons/product_email_template/i18n/az.po index 0c2a600ef38e7..3c40474626956 100644 --- a/addons/product_email_template/i18n/az.po +++ b/addons/product_email_template/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-26 21:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,7 +56,7 @@ msgstr "Məhsul Email Şablonu" #. module: product_email_template #: model_terms:ir.ui.view,arch_db:product_email_template.product_template_form_view msgid "Send a product-specific email once the invoice is validated" -msgstr "" +msgstr "Faktura təsdiq edildikdən sonra məhsula xüsusi e-poçt göndərin" #. module: product_email_template #: model:ir.model.fields,help:product_email_template.field_product_product__email_template_id diff --git a/addons/product_expiry/i18n/sk.po b/addons/product_expiry/i18n/sk.po index c64cea89fe807..eb7c41130411e 100644 --- a/addons/product_expiry/i18n/sk.po +++ b/addons/product_expiry/i18n/sk.po @@ -274,7 +274,7 @@ msgstr "Produkt" #: model:ir.model.fields,field_description:product_expiry.field_stock_lot__product_expiry_alert #: model:ir.model.fields,field_description:product_expiry.field_stock_move_line__is_expired msgid "Product Expiry Alert" -msgstr "" +msgstr "Upozornenie na uplynutie platnosti výrobku" #. module: product_expiry #: model:ir.model,name:product_expiry.model_stock_move_line @@ -318,7 +318,7 @@ msgstr "Pohyb skladu" #: model:ir.model.fields,help:product_expiry.field_stock_lot__product_expiry_alert #: model:ir.model.fields,help:product_expiry.field_stock_move_line__is_expired msgid "The Expiration Date has been reached." -msgstr "" +msgstr "Bol dosiahnutý dátum exspirácie." #. module: product_expiry #. odoo-python diff --git a/addons/project/i18n/az.po b/addons/project/i18n/az.po index 5ebb8274b98f5..cb823f6512a52 100644 --- a/addons/project/i18n/az.po +++ b/addons/project/i18n/az.po @@ -4,9 +4,9 @@ # # Translators: # Nurlan Farajov, 2024 -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -616,7 +616,7 @@ msgstr "Faəliyyət istisnaetmə İşarəsi" #: model:ir.actions.act_window,name:project.mail_activity_plan_action_config_project_task_plan #: model:ir.ui.menu,name:project.mail_activity_plan_menu_config_project msgid "Activity Plans" -msgstr "" +msgstr "Fəaliyyət Planları" #. module: project #: model:ir.model.fields,field_description:project.field_project_project__activity_state @@ -1245,7 +1245,7 @@ msgstr "" #. module: project #: model_terms:ir.ui.view,arch_db:project.portal_my_task msgid "Communication history" -msgstr "" +msgstr "Kommunikasiya tarixçəsi" #. module: project #: model:ir.model.fields,field_description:project.field_project_project__company_id diff --git a/addons/project/i18n/el.po b/addons/project/i18n/el.po index a1ab2baa08f23..28bcb140b3997 100644 --- a/addons/project/i18n/el.po +++ b/addons/project/i18n/el.po @@ -11,9 +11,9 @@ # Kostas Goutoudis , 2024 # Maria Chalepiadou, 2025 # Gerasimos Kanelatos, 2025 -# Agapi Psyllou, 2025 # Anastasia Mimou, 2025 # Charalampos Loukas, 2025 +# Agapi Psyllou, 2025 # msgid "" msgstr "" @@ -21,7 +21,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Charalampos Loukas, 2025\n" +"Last-Translator: Agapi Psyllou, 2025\n" "Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -881,7 +881,7 @@ msgstr "" #: code:addons/project/static/src/components/project_right_side_panel/components/project_milestone.js:0 #: code:addons/project/static/src/components/subtask_one2many_field/subtask_list_renderer.js:0 msgid "Are you sure you want to delete this record?" -msgstr "" +msgstr "Είστε σίγουρος/η ότι θέλετε να διαγράψετε αυτή την εγγραφή;" #. module: project #. odoo-javascript diff --git a/addons/project_sale_expense/i18n/ja.po b/addons/project_sale_expense/i18n/ja.po index 3b0a33d209ad5..c57c6aef0cb62 100644 --- a/addons/project_sale_expense/i18n/ja.po +++ b/addons/project_sale_expense/i18n/ja.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,7 +33,7 @@ msgstr "経費報告" #. module: project_sale_expense #: model:ir.model,name:project_sale_expense.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: project_sale_expense #: model:ir.model,name:project_sale_expense.model_project_project diff --git a/addons/project_timesheet_holidays/i18n/zh_CN.po b/addons/project_timesheet_holidays/i18n/zh_CN.po index 6ebe34a73032a..4c42cc67b042c 100644 --- a/addons/project_timesheet_holidays/i18n/zh_CN.po +++ b/addons/project_timesheet_holidays/i18n/zh_CN.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Chloe Wang, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-10 13:24+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Chloe Wang, 2025\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -176,7 +177,7 @@ msgstr "您不能为已链接到休假类型的任务创建时间表。请使用 #. odoo-python #: code:addons/project_timesheet_holidays/models/account_analytic.py:0 msgid "You cannot delete timesheets that are linked to global time off." -msgstr "" +msgstr "您不能删除已链接到全局休假的工时单。" #. module: project_timesheet_holidays #. odoo-python diff --git a/addons/purchase/i18n/az.po b/addons/purchase/i18n/az.po index 4751a76292101..bd97f0c6decab 100644 --- a/addons/purchase/i18n/az.po +++ b/addons/purchase/i18n/az.po @@ -4,8 +4,8 @@ # # Translators: # Jumshud Sultanov , 2024 -# Nurlan Farajov , 2024 # erpgo translator , 2025 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2025\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -701,7 +701,7 @@ msgstr "Qoşma Sayı" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_order_line__product_template_attribute_value_ids msgid "Attribute Values" -msgstr "" +msgstr "Atribut Dəyərləri" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_product_attribute_action @@ -885,7 +885,7 @@ msgstr "" #. module: purchase #: model_terms:ir.ui.view,arch_db:purchase.purchase_order_form msgid "Catalog" -msgstr "" +msgstr "Kataloq" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_order_line__product_uom_category_id @@ -905,7 +905,7 @@ msgstr "Kommersiya Təşkilatı" #. module: purchase #: model_terms:ir.ui.view,arch_db:purchase.portal_my_purchase_order msgid "Communication history" -msgstr "" +msgstr "Kommunikasiya tarixçəsi" #. module: purchase #: model:ir.model,name:purchase.model_res_company @@ -1140,7 +1140,7 @@ msgstr "İqtisadi Tənəzzül" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_order__company_price_include msgid "Default Sales Price Include" -msgstr "" +msgstr "Defolt Satış Qiymətinə Daxildir" #. module: purchase #: model:ir.model.fields,help:purchase.field_purchase_order__company_price_include @@ -1148,6 +1148,8 @@ msgid "" "Default on whether the sales price used on the product and invoices with " "this Company includes its taxes." msgstr "" +"Bu Şirkətlə məhsul və fakturalarda istifadə edilən satış qiymətinə onun " +"vergilərinin daxil olub-olmaması ilə bağlı defolt." #. module: purchase #: model:ir.model.fields,help:purchase.field_purchase_bill_line_match__product_uom_id @@ -1226,7 +1228,7 @@ msgstr "Göstəriləcək Form" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_order_line__distribution_analytic_account_ids msgid "Distribution Analytic Account" -msgstr "" +msgstr "Dağıtım Analitik Hesabı" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_account_analytic_applicability__business_domain @@ -1253,7 +1255,7 @@ msgstr "" #. odoo-python #: code:addons/purchase/models/purchase_order.py:0 msgid "Down Payments" -msgstr "" +msgstr "İlkin ödənişlər" #. module: purchase #: model:ir.model.fields.selection,name:purchase.selection__purchase_report__state__draft @@ -1369,6 +1371,8 @@ msgid "" "Goods are tangible materials and merchandise you provide.\n" "A service is a non-material product you provide." msgstr "" +"Mallar maddi materiallar və təqdim etdiyiniz mallardır.\n" +"Xidmət sizin təqdim etdiyiniz qeyri-maddi məhsuldur." #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_report__weight @@ -1471,7 +1475,7 @@ msgstr "" #. module: purchase #: model_terms:ir.ui.view,arch_db:purchase.product_view_search_catalog msgid "In the Order" -msgstr "" +msgstr "Sərəncamda" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_order__incoterm_id @@ -1507,7 +1511,7 @@ msgstr "Hesab-faktura göndərilməsi" #: model:ir.model.fields,field_description:purchase.field_account_move_line__is_downpayment #: model:ir.model.fields,field_description:purchase.field_purchase_order_line__is_downpayment msgid "Is Downpayment" -msgstr "" +msgstr "İlkin Ödənişdir" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_order__message_is_follower @@ -1961,7 +1965,7 @@ msgstr "Sifariş Tarixi" #. module: purchase #: model_terms:ir.ui.view,arch_db:purchase.purchase_order_line_search msgid "Order Date: Last 365 Days" -msgstr "" +msgstr "Sifariş Tarixi: Son 365 Gün" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_order__date_order @@ -2466,7 +2470,7 @@ msgstr "Fakturalanmış Miqdar" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_bill_line_match__qty_invoiced msgid "Qty Invoiced" -msgstr "" +msgstr "Qty Faktura" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_report__qty_ordered @@ -2814,7 +2818,7 @@ msgstr "" #. module: purchase #: model_terms:ir.ui.view,arch_db:purchase.res_config_settings_view_form_purchase msgid "Sell and purchase products in different units of measure" -msgstr "" +msgstr "Məhsulları müxtəlif ölçü vahidlərində satmaq və almaq" #. module: purchase #: model_terms:ir.ui.view,arch_db:purchase.purchase_order_form @@ -3472,19 +3476,19 @@ msgstr "Baxın" #. module: purchase #: model_terms:ir.ui.view,arch_db:purchase.portal_my_purchase_order msgid "View Details" -msgstr "" +msgstr "Daha ətraflı" #. module: purchase #. odoo-python #: code:addons/purchase/models/purchase_order.py:0 msgid "View Order" -msgstr "" +msgstr "Sifarişə Baxın" #. module: purchase #. odoo-python #: code:addons/purchase/models/purchase_order.py:0 msgid "View Quotation" -msgstr "" +msgstr "Sitata Baxın" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_purchase_report__volume @@ -3639,6 +3643,8 @@ msgid "" "Your quotation contains products from company %(product_company)s whereas your quotation belongs to company %(quote_company)s. \n" " Please change the company of your quotation or remove the products from other companies (%(bad_products)s)." msgstr "" +"Kotirovkanızda %(product_company)s şirkətinin məhsulları var, təklifiniz isə %(quote_company)s şirkətinə aiddir. \n" +" Lütfən, təklif etdiyiniz şirkətin adını dəyişin və ya məhsulları digər şirkətlərdən çıxarın (%(bad_products)s)." #. module: purchase #: model_terms:ir.ui.view,arch_db:purchase.portal_my_purchase_order diff --git a/addons/purchase/i18n/ja.po b/addons/purchase/i18n/ja.po index 5b7b056460aec..f20f70471dfde 100644 --- a/addons/purchase/i18n/ja.po +++ b/addons/purchase/i18n/ja.po @@ -1605,7 +1605,7 @@ msgstr "仕訳" #. module: purchase #: model:ir.model,name:purchase.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: purchase #: model:ir.model.fields,field_description:purchase.field_bill_to_po_wizard__write_uid diff --git a/addons/purchase_mrp/i18n/ja.po b/addons/purchase_mrp/i18n/ja.po index 4fbf6b135b34b..3d78dfd116900 100644 --- a/addons/purchase_mrp/i18n/ja.po +++ b/addons/purchase_mrp/i18n/ja.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -68,7 +69,7 @@ msgstr "生成された購買オーダ数" #. module: purchase_mrp #: model:ir.model,name:purchase_mrp.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: purchase_mrp #: model:ir.model,name:purchase_mrp.model_report_mrp_report_mo_overview diff --git a/addons/purchase_product_matrix/i18n/az.po b/addons/purchase_product_matrix/i18n/az.po index 383818f45fd89..402f69b7c5e4a 100644 --- a/addons/purchase_product_matrix/i18n/az.po +++ b/addons/purchase_product_matrix/i18n/az.po @@ -3,9 +3,9 @@ # * purchase_product_matrix # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-26 21:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,13 +24,13 @@ msgstr "" #. module: purchase_product_matrix #: model:ir.model.fields,field_description:purchase_product_matrix.field_purchase_order_line__product_template_attribute_value_ids msgid "Attribute Values" -msgstr "" +msgstr "Atribut Dəyərləri" #. module: purchase_product_matrix #. odoo-javascript #: code:addons/purchase_product_matrix/static/src/js/purchase_product_field.js:0 msgid "Edit Configuration" -msgstr "" +msgstr "Konfiqurasiyanı redaktə edin" #. module: purchase_product_matrix #: model:ir.model.fields,field_description:purchase_product_matrix.field_purchase_order__grid @@ -57,7 +57,7 @@ msgstr "" #. module: purchase_product_matrix #: model:ir.model.fields,field_description:purchase_product_matrix.field_purchase_order_line__is_configurable_product msgid "Is the product configurable?" -msgstr "" +msgstr "Məhsul konfiqurasiya edilə bilərmi?" #. module: purchase_product_matrix #: model:ir.model.fields,field_description:purchase_product_matrix.field_purchase_order__report_grids diff --git a/addons/purchase_requisition/i18n/az.po b/addons/purchase_requisition/i18n/az.po index e6359da861b3a..b1be4b66c2ee5 100644 --- a/addons/purchase_requisition/i18n/az.po +++ b/addons/purchase_requisition/i18n/az.po @@ -3,9 +3,9 @@ # * purchase_requisition # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -396,7 +396,7 @@ msgstr "Göstəriləcək Ad" #. module: purchase_requisition #: model:ir.model.fields,field_description:purchase_requisition.field_purchase_requisition_line__distribution_analytic_account_ids msgid "Distribution Analytic Account" -msgstr "" +msgstr "Dağıtım Analitik Hesabı" #. module: purchase_requisition #: model_terms:ir.ui.view,arch_db:purchase_requisition.view_purchase_requisition_filter @@ -578,7 +578,7 @@ msgstr "Mesajlar" #. module: purchase_requisition #: model_terms:ir.ui.view,arch_db:purchase_requisition.report_purchaserequisition_document msgid "Mitchell Admin" -msgstr "" +msgstr "Mitchell Admin" #. module: purchase_requisition #: model:ir.model.fields,field_description:purchase_requisition.field_purchase_requisition__my_activity_date_deadline diff --git a/addons/purchase_stock/i18n/ja.po b/addons/purchase_stock/i18n/ja.po index 6283de36149eb..705ac4fceba76 100644 --- a/addons/purchase_stock/i18n/ja.po +++ b/addons/purchase_stock/i18n/ja.po @@ -4,8 +4,8 @@ # # Translators: # Wil Odoo, 2024 -# Junko Augias, 2024 # Ryoko Tsuda , 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Ryoko Tsuda , 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -315,7 +315,7 @@ msgstr "仕訳" #. module: purchase_stock #: model:ir.model,name:purchase_stock.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: purchase_stock #: model:ir.model.fields,field_description:purchase_stock.field_product_supplierinfo__last_purchase_date diff --git a/addons/rating/i18n/zh_CN.po b/addons/rating/i18n/zh_CN.po index c8084033b587e..067ff6e7814b8 100644 --- a/addons/rating/i18n/zh_CN.po +++ b/addons/rating/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:40+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Odoo哥 , 2024\n" +"Last-Translator: 何彬 , 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/addons/repair/i18n/az.po b/addons/repair/i18n/az.po index 958da1b4bea0d..8375952fa67d2 100644 --- a/addons/repair/i18n/az.po +++ b/addons/repair/i18n/az.po @@ -3,9 +3,9 @@ # * repair # # Translators: -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -273,7 +273,7 @@ msgstr "Ləğv olundu" #. module: repair #: model_terms:ir.ui.view,arch_db:repair.view_repair_order_form msgid "Catalog" -msgstr "" +msgstr "Kataloq" #. module: repair #: model:ir.model.fields,field_description:repair.field_repair_order__product_uom_category_id diff --git a/addons/resource/i18n/bg.po b/addons/resource/i18n/bg.po index 064643054eddd..96aaf830da584 100644 --- a/addons/resource/i18n/bg.po +++ b/addons/resource/i18n/bg.po @@ -17,6 +17,7 @@ # Ивайло Малинов , 2024 # aleksandar ivanov, 2024 # margarita.katzeva, 2025 +# Martin Dinovski, 2025 # msgid "" msgstr "" @@ -24,7 +25,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: margarita.katzeva, 2025\n" +"Last-Translator: Martin Dinovski, 2025\n" "Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -321,7 +322,7 @@ msgstr "Часове" #. module: resource #: model_terms:ir.ui.view,arch_db:resource.resource_calendar_form msgid "Hours per Week" -msgstr "" +msgstr "Часове на Седмица" #. module: resource #: model:ir.model.fields.selection,name:resource.selection__resource_resource__resource_type__user diff --git a/addons/resource/i18n/el.po b/addons/resource/i18n/el.po index 55d70f9a0667c..89545433d9386 100644 --- a/addons/resource/i18n/el.po +++ b/addons/resource/i18n/el.po @@ -8,6 +8,7 @@ # Martin Trigaux, 2024 # Kostas Goutoudis , 2024 # Gerasimos Kanelatos, 2025 +# Agapi Psyllou, 2025 # msgid "" msgstr "" @@ -15,7 +16,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Gerasimos Kanelatos, 2025\n" +"Last-Translator: Agapi Psyllou, 2025\n" "Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -207,12 +208,12 @@ msgstr "Τύπος Οθόνης" #. module: resource #: model:ir.model.fields,field_description:resource.field_resource_calendar_attendance__duration_days msgid "Duration (days)" -msgstr "" +msgstr "Διάρκεια (ημέρες)" #. module: resource #: model:ir.model.fields,field_description:resource.field_resource_calendar_attendance__duration_hours msgid "Duration (hours)" -msgstr "" +msgstr "Διάρκεια (ώρες)" #. module: resource #: model:ir.model.fields,field_description:resource.field_resource_resource__time_efficiency @@ -406,7 +407,7 @@ msgstr "" #. module: resource #: model:ir.model.fields.selection,name:resource.selection__resource_calendar_attendance__day_period__morning msgid "Morning" -msgstr "" +msgstr "Πρωί" #. module: resource #: model:ir.model.fields,field_description:resource.field_resource_calendar__name diff --git a/addons/resource_mail/i18n/bg.po b/addons/resource_mail/i18n/bg.po index aa0c7501edb30..7f7166ef679c5 100644 --- a/addons/resource_mail/i18n/bg.po +++ b/addons/resource_mail/i18n/bg.po @@ -5,6 +5,7 @@ # Translators: # Martin Trigaux, 2024 # Maria Boyadjieva , 2024 +# Martin Dinovski, 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-02-12 10:37+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Maria Boyadjieva , 2024\n" +"Last-Translator: Martin Dinovski, 2025\n" "Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,7 +25,7 @@ msgstr "" #. odoo-javascript #: code:addons/resource_mail/static/src/components/avatar_card_resource/avatar_card_resource_popover.xml:0 msgid "Bot" -msgstr "" +msgstr "Бот" #. module: resource_mail #: model:ir.model.fields,field_description:resource_mail.field_resource_resource__im_status diff --git a/addons/sale/i18n/az.po b/addons/sale/i18n/az.po index 54494c242aaf9..a4de0f39f7999 100644 --- a/addons/sale/i18n/az.po +++ b/addons/sale/i18n/az.po @@ -46,13 +46,13 @@ msgstr "Satış Sifarişlərinin #" #. odoo-python #: code:addons/sale/models/sale_order_line.py:0 msgid "%(attribute)s: %(values)s" -msgstr "" +msgstr "%(attribute)s: %(values)s" #. module: sale #. odoo-python #: code:addons/sale/wizard/sale_make_invoice_advance.py:0 msgid "%s has been created" -msgstr "" +msgstr "%s yaradıldı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_orders @@ -76,17 +76,17 @@ msgstr "" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document msgid "2023-12-31" -msgstr "" +msgstr "31-12-2023" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document msgid "27.00" -msgstr "" +msgstr "27.00" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document msgid "31.05" -msgstr "" +msgstr "31.05" #. module: sale #. odoo-javascript @@ -409,6 +409,227 @@ msgid "" "\n" "
" msgstr "" +"
\n" +"

\n" +" Salam,\n" +"

\n" +" \n" +" Sizin sifarişiniz S00049 məbləği $ 10.00\n" +" \n" +" təsdiqlənib.
\n" +" Etibarınıza görə təşəkkür edirik!\n" +"
\n" +" \n" +" gözləmədədir. Ödəniş alındıqdan sonra təsdiqlənəcək.\n" +" \n" +" Ödəniş referansınız .\n" +" \n" +" \n" +"
\n" +" \n" +" \n" +"
\n" +" \n" +" Sizin üçün maraqlı ola biləcək əlavə sənədlər:\n" +" \n" +" \n" +" Sizin üçün maraqlı ola biləcək əlavə sənəd:\n" +" \n" +"

\n" +" \n" +"
\n" +" Hər hansı bir sualınız olarsa, bizimlə əlaqə saxlamaqdan çəkinməyin.\n" +" \n" +"

\n" +" --
Mitchell Admin
\n" +"
\n" +"

\n" +"

\n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
Məhsullar\n" +" Miqdar\n" +" \n" +" \n" +" Vergi daxil olmayan\n" +" \n" +" \n" +" Vergi daxil olan\n" +" \n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +" Ağaclara Qulluq Kursu\n" +" \n" +" \n" +" \n" +" \n" +" Ağaclara Qulluq Kursu\n" +" \n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \"Product\n" +" Ağaclara Qulluq Kursu1\n" +" \n" +" \n" +" $ 10.00\n" +" \n" +" \n" +" $ 10.00\n" +" \n" +" \n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" Ara cəmi:\n" +" $ 10.00\n" +"
\n" +"
\n" +"
\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" Çatdırılma:$ 0.00
\n" +" Vergisiz Məbləğ:$ 10.00
\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" Vergisiz Məbləğ:$ 10.00
\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" Vergilər:$ 10.00
\n" +" Ümumi:$ 10.00
\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" Faktura Ünvanı:\n" +" 1201 S Figueroa St\n" +" Los Angeles\n" +" California\n" +" 90015\n" +" United States\n" +"
\n" +" Ödəniş Metodu:\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ($ 10.00)\n" +"
\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +"
\n" +" Çatdırılma Ünvanı:\n" +" 1201 S Figueroa St\n" +" Los Angeles\n" +" California\n" +" 90015\n" +" United States\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" Çatdırılma Metodu:\n" +" \n" +" \n" +" (Pulsuz)\n" +" \n" +" \n" +" ($ 10.00)\n" +" \n" +"
\n" +" Çatdırılma Təsviri:\n" +" \n" +"
\n" +"
\n" +"
\n" +"
" #. module: sale #: model:mail.template,body_html:sale.email_template_edi_sale @@ -462,54 +683,53 @@ msgid "" "\n" " " msgstr "" -"
\n" -"

\n" -" \n" +"

\n" +"

\n" " Salam,\n" "

\n" -" Sizin\n" -" \n" -" qiymət təklifi üçün Pro forma hesab-faktura S00052\n" -" \n" -" (istinad: )\n" +" \n" +" Sizin məbləği \n" +" olan \n" +" \n" +" (referans: )\n" " \n" -" məbləği $ 10.00 mövcuddur.\n" +" Pro forma hesab-fakturanız hazırdır.\n" " \n" -" \n" -" qiymət təklifi \n" -" \n" -" (istinad: S00052 )\n" +" \n" +" Sizin məbləği \n" +" olan \n" +" \n" +" (referans: )\n" " \n" -" məbləği $ 10.00 nəzərdən keçirmək üçün hazırdır.\n" +" qiymət təklifiniz nəzərdən keçirmək üçün hazırdır.\n" " \n" "
\n" -" \n" -" \n" +" \n" +" \n" "
\n" -" \n" +" \n" " Sizin üçün maraqlı ola biləcək əlavə sənədlər:\n" " \n" -" \n" +" \n" " Sizin üçün maraqlı ola biləcək əlavə sənəd:\n" " \n" -"

\n" -" " +"
" #. module: sale #: model:mail.template,body_html:sale.mail_template_sale_cancellation @@ -556,46 +776,48 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid " Contact us to get a new quotation." msgstr "" +"Yeni təklif almaq üçün bizimlə əlaqə " +"saxlayın." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid " Feedback" -msgstr "" +msgstr "Rəy" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid " Authorized" -msgstr "" +msgstr "Səlahiyyətli" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid " Paid" -msgstr "" +msgstr "Ödənişli" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid " Reversed" -msgstr "" +msgstr "Geri çevrildi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_quotations msgid " Expired" -msgstr "" +msgstr "İstifadə müddəti bitdi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid " Waiting Payment" -msgstr "" +msgstr "Ödəniş Gözləyir" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.utm_campaign_view_kanban msgid "" -msgstr "" +msgstr "" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_quotations msgid " Cancelled" -msgstr "" +msgstr "Ləğv edildi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -603,16 +825,18 @@ msgid "" "\n" " Locked" msgstr "" +"\n" +" Bağlanıb" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "View Details" -msgstr "" +msgstr "Ətraflı Bax" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid " Reject" -msgstr "" +msgstr "Rədd edin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.crm_lead_partner_kanban_view @@ -620,16 +844,18 @@ msgid "" "" msgstr "" +"" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Your contact" -msgstr "" +msgstr "Sizin əlaqəniz" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Your advantage" -msgstr "" +msgstr "Sizin üstünlüyünüz" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_orders @@ -637,6 +863,8 @@ msgid "" "Sales Order #\n" " Ref." msgstr "" +"Satış Sifarişi #\n" +" Ref." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -645,6 +873,9 @@ msgid "" "product is archived\" invisible=\"state not in ['draft', 'sent'] or not " "is_product_archived\"/>" msgstr "" +"" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -652,22 +883,24 @@ msgid "" "" msgstr "" +"" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.crm_team_salesteams_view_form msgid "/ Month" -msgstr "" +msgstr "/ Ay" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "of" -msgstr "" +msgstr "" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.product_form_view_sale_order_button #: model_terms:ir.ui.view,arch_db:sale.product_template_form_view_sale_order_button msgid "Sold" -msgstr "" +msgstr "Satıldı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template @@ -676,6 +909,9 @@ msgid "" " By paying,\n" " " msgstr "" +"\n" +" Bunu ödəyərək, \n" +" " #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sale_advance_payment_inv @@ -684,6 +920,9 @@ msgid "" " \n" " " msgstr "" +"\n" +" \n" +" " #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sale_advance_payment_inv @@ -691,6 +930,8 @@ msgid "" "% " msgstr "" +"%" #. module: sale #: model_terms:web_tour.tour,rainbow_man_message:sale.sale_tour @@ -698,6 +939,8 @@ msgid "" "Congratulations, your first quotation is sent!
Check your email to validate the quote.\n" "
" msgstr "" +"Təbrik edirik , ilk təklifiniz göndərildi!
Təklifi " +"təsdiqləmək üçün e-poçtunuzu yoxlayın.
" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document @@ -713,6 +956,10 @@ msgid "" " Draft invoices for this order will be cancelled.
\n" "
" msgstr "" +"Bu sifarişi ləğv etmək istədiyinizə əminsiniz?
\n" +" \n" +" Bu sifariş üçün qaralama hesab-fakturalar ləğv ediləcək.
\n" +"
" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document @@ -723,7 +970,7 @@ msgstr "Endirim%" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.product_document_kanban msgid "Sales visibility" -msgstr "" +msgstr "Satış görünümlüyü" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content @@ -734,11 +981,12 @@ msgstr "Vergi" #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Warning: This quote contains archived product(s)" msgstr "" +"Xəbərdarlıq: Bu təklifdə arxivləşdirilmiş məhsul(lar) var" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Warning: this order might be a duplicate of" -msgstr "" +msgstr "Xəbərdarlıq: bu sifarişin dublikat ola bilər => " #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document @@ -784,7 +1032,7 @@ msgstr "Bu təklifin müddəti bitdi!" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "This quotation has been cancelled." -msgstr "Bu kotirovka ləğv edilib." +msgstr "Bu təklif ləğv edilib." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document @@ -910,7 +1158,7 @@ msgstr "Hesab nömrəsi" #. module: sale #: model:ir.actions.act_window,name:sale.action_accrued_revenue_entry msgid "Accrued Revenue Entry" -msgstr "" +msgstr "Hesablanmış Gəlir Girişi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__message_needaction @@ -931,7 +1179,7 @@ msgstr "Faəliyyət istisnaetmə İşarəsi" #. module: sale #: model:ir.ui.menu,name:sale.sale_menu_config_activity_plan msgid "Activity Plans" -msgstr "" +msgstr "Fəaliyyət Planları" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__activity_state @@ -955,6 +1203,8 @@ msgid "" "Activity plans are used to assign a list of activities in just a few clicks\n" " (e.g. \"Delivery scheduling\", \"Order Payment Follow-up\", ...)" msgstr "" +"Fəaliyyət planları bir neçə kliklə fəaliyyətlərin siyahısını təyin etmək üçün istifadə olunur\n" +" (məsələn, \"Çatdırılma cədvəli\", \"Sifarişin ödənilməsinin izlənməsi\", ...)" #. module: sale #. odoo-javascript @@ -980,7 +1230,7 @@ msgstr "Bölmə əlavə et" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Add note" -msgstr "" +msgstr "Qeydlər əlavə edin" #. module: sale #. odoo-javascript @@ -992,32 +1242,32 @@ msgstr "Birini əlavə et" #. odoo-javascript #: code:addons/sale/static/src/js/product_list/product_list.js:0 msgid "Add optional products" -msgstr "" +msgstr "Seçimə bağlı məhsullar əlavə edin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Add product" -msgstr "" +msgstr "Məhsul əlavə edin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Add section" -msgstr "" +msgstr "Bölmə əlavə edin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Add several variants to an order from a grid" -msgstr "" +msgstr "Bir kataloqdan sifarişə bir neçə variant əlavə edin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Allows you to send Pro-Forma Invoice to your customers" -msgstr "" +msgstr "Müştərilərinizə Pro-Forma Faktura göndərməyə imkan verir" #. module: sale #: model:ir.model.fields,help:sale.field_res_config_settings__group_proforma_sales msgid "Allows you to send pro-forma invoice." -msgstr "" +msgstr "Proforma hesab-faktura göndərməyə imkan verir." #. module: sale #: model:ir.model.fields,help:sale.field_product_document__attached_on_sale @@ -1030,22 +1280,29 @@ msgid "" "e.g. this option can be useful to share User Manual or digital content bought on ecommerce. \n" "Inside quote: The document will be included in the pdf of the quotation and sale order between the header pages and the quote table. " msgstr "" +"Sənədi satış çərçivəsində müştərilərinizlə paylaşmağa imkan verir.\n" +"Bu sənədi satış müştərisi ilə bölüşmək istəmirsinizsə, onu boş qoyun.\n" +"Sitat üzrə: sənəd istənilən vaxt müştərilərə göndəriləcək və müştərilər tərəfindən əlçatan olacaq.\n" +"məs. bu seçim Məhsul təsviri fayllarını paylaşmaq üçün faydalı ola bilər.\n" +"Sifariş təsdiqləndikdə: sənəd müştərilərə göndəriləcək və müştərilər tərəfindən əlçatan olacaq.\n" +"məs. bu seçim İstifadəçi Təlimatını və ya e-ticarətdən alınmış rəqəmsal məzmunu paylaşmaq üçün faydalı ola bilər. \n" +"Daxili təklif: Sənəd başlıq səhifələri və qiymət cədvəli arasında təklif və satış sifarişinin pdf-ə daxil ediləcək. " #. module: sale #: model:ir.model.fields,field_description:sale.field_payment_link_wizard__amount_paid msgid "Already Paid" -msgstr "" +msgstr "Artıq Ödənilib" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__amount_invoiced #: model:ir.model.fields,field_description:sale.field_sale_order__amount_invoiced msgid "Already invoiced" -msgstr "" +msgstr "Artıq faktura verilib" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_sale_amazon msgid "Amazon Sync" -msgstr "" +msgstr "Amazon Sync" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_discount__discount_amount @@ -1075,6 +1332,8 @@ msgid "" "An order is to upsell when delivered quantities are above initially\n" " ordered quantities, and the invoicing policy is based on ordered quantities." msgstr "" +"Upsell Sifariş o zaman olur ki, çatdırılan miqdar ilkin sifariş olunan miqdardan çox olur\n" +" və hesab-faktura siyasəti isə sifariş edilmiş miqdarlara əsaslanır." #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__analytic_distribution @@ -1084,7 +1343,7 @@ msgstr "Analitik bölüşdürmə" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_order_line__qty_delivered_method__analytic msgid "Analytic From Expenses" -msgstr "" +msgstr "Xərclərdən Analitik" #. module: sale #: model:ir.model,name:sale.model_account_analytic_line @@ -1117,16 +1376,19 @@ msgid "" "Apply manual discounts on sales order lines or display discounts computed " "from pricelists (option to activate in the pricelist configuration)." msgstr "" +"Satış sifarişi xətlərində əl ilə endirimlər tətbiq edin və ya qiymət " +"siyahılarından hesablanmış endirimləri göstərin (qiymət siyahısı " +"konfiqurasiyasında aktivləşdirmək üçün seçim)." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.mass_cancel_orders_view_form msgid "Are you sure you want to cancel the" -msgstr "" +msgstr "Ləğv etmək istədiyinizə əminsiniz" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.mass_cancel_orders_view_form msgid "Are you sure you want to cancel the selected item?" -msgstr "" +msgstr "Seçilmiş elementi ləğv etmək istədiyinizə əminsiniz?" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -1134,6 +1396,8 @@ msgid "" "Are you sure you want to void the authorized transaction? This action can't " "be undone." msgstr "" +"Səlahiyyətli tranzaksiyanı ləğv etmək istədiyinizə əminsiniz? Bu əməliyyat " +"geri qaytarıla bilməz." #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_orders_upselling @@ -1141,11 +1405,13 @@ msgid "" "As an example, if you sell pre-paid hours of services, Odoo recommends you\n" " to sell extra hours when all ordered hours have been consumed." msgstr "" +"Nümunə olaraq, əvvəlcədən ödənilmiş saat xidmətləri satırsınızsa, Odoo sizə tövsiyə edir ki,\n" +" bütün sifariş edilmiş saatlar tükəndikdən sonra əlavə saatlar satışını edəsiniz." #. module: sale #: model:ir.model.fields.selection,name:sale.selection__product_template__expense_policy__cost msgid "At cost" -msgstr "" +msgstr "Maya dəyərinə" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__message_attachment_count @@ -1155,7 +1421,7 @@ msgstr "Qoşma Sayı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__product_template_attribute_value_ids msgid "Attribute Values" -msgstr "" +msgstr "Atribut Dəyərləri" #. module: sale #: model:ir.ui.menu,name:sale.menu_product_attribute_action @@ -1171,12 +1437,12 @@ msgstr "Müəllif" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__authorized_transaction_ids msgid "Authorized Transactions" -msgstr "" +msgstr "Səlahiyyətli Əməliyyatlar" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__automatic_invoice msgid "Automatic Invoice" -msgstr "" +msgstr "Avtomatik faktura" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_report_view_tree @@ -1186,7 +1452,7 @@ msgstr "Orta" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document msgid "Bacon Burger" -msgstr "" +msgstr "Bekon Burger" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_payment_provider_onboarding_wizard__journal_name @@ -1196,18 +1462,18 @@ msgstr "Bank Adı" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__payment_provider__so_reference_type__partner msgid "Based on Customer ID" -msgstr "" +msgstr "Müştəri ID-si əsasında" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__payment_provider__so_reference_type__so_name msgid "Based on Document Reference" -msgstr "" +msgstr "Sənəd Referansı əsasında" #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_quotations #: model_terms:ir.actions.act_window,help:sale.action_quotations_with_onboarding msgid "Beat competitors with stunning quotations!" -msgstr "" +msgstr "Çarpıcı sitatlar ilə rəqibləri məğlub edin!" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__product_template__sale_line_warn__block @@ -1218,7 +1484,7 @@ msgstr "Bloklanmış Mesaj" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_cancel__body_has_template_value msgid "Body content is the same as the template" -msgstr "" +msgstr "Əsas məzmun şablonla eynidir" #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_quotations @@ -1227,6 +1493,8 @@ msgid "" "Boost sales with online payments or signatures, upsells, and a great " "customer portal." msgstr "" +"Onlayn ödənişlər və ya imzalar, satışlar və əla müştəri portalı ilə " +"satışları artırın." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -1245,22 +1513,22 @@ msgstr "" #. odoo-javascript #: code:addons/sale/static/src/js/tours/sale.js:0 msgid "Build your first quotation right here!" -msgstr "" +msgstr "İlk kotirovkanızı elə burada qurun!" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "By paying a down payment of" -msgstr "" +msgstr "İlkin ödəniş etməklə" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "By paying," -msgstr "" +msgstr "Ödəyərək," #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "By signing, you confirm acceptance on behalf of" -msgstr "" +msgstr "İmzalamaqla siz adından qəbul etdiyinizi təsdiq edirsiniz" #. module: sale #: model:ir.model.fields,field_description:sale.field_account_bank_statement_line__campaign_id @@ -1273,12 +1541,12 @@ msgstr "Kampaniya" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_cancel__can_edit_body msgid "Can Edit Body" -msgstr "" +msgstr "Məzmunu Redaktə edə bilər" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__product_updatable msgid "Can Edit Product" -msgstr "" +msgstr "Məhsulu Redaktə edə bilər" #. module: sale #. odoo-javascript @@ -1297,17 +1565,17 @@ msgstr "Ləğv edin" #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "Cancel %s" -msgstr "" +msgstr "%s ləğv edin" #. module: sale #: model:ir.model,name:sale.model_sale_mass_cancel_orders msgid "Cancel multiple quotations" -msgstr "" +msgstr "Çoxsaylı təklifləri ləğv edin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.mass_cancel_orders_view_form msgid "Cancel quotations" -msgstr "" +msgstr "Təklifləri ləğv edin" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_order__state__cancel @@ -1329,16 +1597,25 @@ msgid "" " • For consumable or storable products, open the product, go to the 'General Information' tab and change the 'Invoicing Policy' from 'Delivered Quantities' to 'Ordered Quantities'.\n" " • For services (and other products), change the 'Invoicing Policy' to 'Prepaid/Fixed Price'.\n" msgstr "" +"Faktura yaratmaq mümkün deyil. Faktura üçün heç bir element yoxdur.\n" +"\n" +"Bu problemi həll etmək üçün əmin olun:\n" +" • Məhsullar faktura yazılmadan əvvəl çatdırılmışdır.\n" +" • Məhsulun faktura siyasəti düzgün konfiqurasiya edilmişdir.\n" +"\n" +"Əvəzində sifariş edilmiş miqdarlar əsasında faktura etmək istəyirsinizsə:\n" +" • İstehlak olunan və ya saxlanıla bilən məhsullar üçün məhsulu açın, 'Ümumi Məlumat' tabına keçin və 'Faktura Siyasəti'ni 'Çatdırılan Miqdarlar'dan 'Sifariş Edilən Miqdarlar'a dəyişin.\n" +" • Xidmətlər (və digər məhsullar) üçün 'Faktura Siyasəti'ni 'Öncədən Ödənilmiş/Sabit Qiymət'ə dəyişin.\n" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Capture Transaction" -msgstr "" +msgstr "Tranzaksiyanı ələ keçirin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Catalog" -msgstr "" +msgstr "Kataloq" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__product_uom_category_id @@ -1348,7 +1625,7 @@ msgstr "Kateqoriya" #. module: sale #: model:product.template,name:sale.product_product_1_product_template msgid "Chair floor protection" -msgstr "" +msgstr "Kreslo döşəməsinin qorunması" #. module: sale #. odoo-python @@ -1358,24 +1635,28 @@ msgid "" "adjustments in the details of the lines. You might consider updating the " "prices." msgstr "" +"Mövcud təklifin şirkətinin dəyişdirilməsi nəticəsində elementlərin " +"təfərrüatlarında bəzi əl ilə düzəlişlərə ehtiyac ola bilər. Qiymətlərə " +"yenidən nəzər yetirin." #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_quotations #: model_terms:ir.actions.act_window,help:sale.action_quotations_with_onboarding msgid "Check a sample. It's clean!" -msgstr "" +msgstr "Nümunəni yoxlayın. Təmizdir!" #. module: sale #. odoo-javascript #: code:addons/sale/static/src/js/tours/sale.js:0 msgid "Click here to add some products or services to your quotation." msgstr "" +"Təklifinizə bəzi məhsul və ya xidmətlər əlavə etmək üçün bura klikləyin." #. module: sale #. odoo-javascript #: code:addons/sale/static/src/xml/sales_team_progress_bar_template.xml:0 msgid "Click to define an invoicing target" -msgstr "" +msgstr "Faktura hədəfini müəyyən etmək üçün klikləyin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template @@ -1390,12 +1671,12 @@ msgstr "Kombo Seçimləri" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__combo_item_id msgid "Combo Item" -msgstr "" +msgstr "Kombo elementi" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_sale_commission msgid "Commissions" -msgstr "" +msgstr "Komissiyalar" #. module: sale #: model:ir.model.fields,field_description:sale.field_payment_provider__so_reference_type @@ -1405,7 +1686,7 @@ msgstr "Kommunikasiya" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Communication history" -msgstr "" +msgstr "Kommunikasiya tarixçəsi" #. module: sale #: model:ir.model,name:sale.model_res_company @@ -1436,7 +1717,7 @@ msgstr "Çatdırılma xərclərini hesabla və DHL ilə göndər" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Compute shipping costs and ship with Easypost" -msgstr "" +msgstr "Göndərmə xərclərini hesablayın və Easypost ilə göndərin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -1446,17 +1727,17 @@ msgstr "Çatdırılma xərclərini hesabla və FedEx ilə göndər" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Compute shipping costs and ship with Sendcloud" -msgstr "" +msgstr "Göndərmə xərclərini hesablayın və Sendcloud ilə göndərin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Compute shipping costs and ship with Shiprocket" -msgstr "" +msgstr "Göndərmə xərclərini hesablayın və Shiprocket ilə göndərin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Compute shipping costs and ship with Starshipit" -msgstr "" +msgstr "Göndərmə xərclərini hesablayın və Starshipit ilə göndərin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -1510,12 +1791,12 @@ msgstr "Təsdiq Mesajı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Connectors" -msgstr "" +msgstr "Bağlayıcılar" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__consolidated_billing msgid "Consolidated Billing" -msgstr "" +msgstr "Birləşdirilmiş Hesablaşma" #. module: sale #: model:ir.model,name:sale.model_res_partner @@ -1544,7 +1825,7 @@ msgstr "Ölkə Kodu" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_sale_loyalty msgid "Coupons & Loyalty" -msgstr "" +msgstr "Kuponlar və Sadiqlik" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_view_search_inherit_quotation @@ -1554,23 +1835,23 @@ msgstr "Tarix Yaradın" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sale_advance_payment_inv msgid "Create Draft" -msgstr "" +msgstr "Qaralama yaradın" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__advance_payment_method #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Create Invoice" -msgstr "Hesab-faktura Tərtib edin" +msgstr "Hesab-Faktura yaradın" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_tree msgid "Create Invoices" -msgstr "" +msgstr "Hesab-Fakturalar yaradın" #. module: sale #: model_terms:ir.actions.act_window,help:sale.mail_activity_plan_action_sale_order msgid "Create a Sale Order Activity Plan" -msgstr "" +msgstr "Satış Sifarişi Fəaliyyət Planı yaradın" #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_invoice_salesteams @@ -1588,12 +1869,12 @@ msgstr "Yeni məhsul yaradın" #: model_terms:ir.actions.act_window,help:sale.action_orders_salesteams #: model_terms:ir.actions.act_window,help:sale.action_quotations_salesteams msgid "Create a new quotation, the first step of a new sale!" -msgstr "" +msgstr "Yeni təklif yaradın, yeni satışın ilk addımı!" #. module: sale #: model:ir.actions.act_window,name:sale.action_view_sale_advance_payment_inv msgid "Create invoice(s)" -msgstr "" +msgstr "Hesab-Faktura(lar) yaradın" #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_invoice_salesteams @@ -1607,7 +1888,7 @@ msgstr "" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__service_tracking msgid "Create on Order" -msgstr "" +msgstr "Sifariş yaradın" #. module: sale #: model:ir.model.fields,help:sale.field_sale_advance_payment_inv__consolidated_billing @@ -1615,6 +1896,8 @@ msgid "" "Create one invoice for all orders related to same customer and same " "invoicing address" msgstr "" +"Eyni müştəri və eyni faktura ünvanı ilə əlaqəli bütün sifarişlər üçün bir " +"hesab-faktura yaradın" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__create_uid @@ -1649,11 +1932,13 @@ msgid "" "Creation date of draft/sent orders,\n" "Confirmation date of confirmed orders." msgstr "" +"Qaralama/göndərilmiş sifarişlərin yaranma tarixi,\n" +"Təsdiq edilmiş sifarişlərin təsdiq tarixi." #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_payment_provider_onboarding_wizard__payment_method__stripe msgid "Credit & Debit card (via Stripe)" -msgstr "" +msgstr "Kredit və Debet kartı (Stripe vasitəsilə)" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__currency_id @@ -1678,12 +1963,12 @@ msgstr "Xüsusi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__product_custom_attribute_value_ids msgid "Custom Values" -msgstr "" +msgstr "Fərdi Dəyərlər" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_payment_provider_onboarding_wizard__payment_method__manual msgid "Custom payment instructions" -msgstr "" +msgstr "Fərdi ödəniş təlimatları" #. module: sale #. odoo-python @@ -1705,13 +1990,13 @@ msgstr "Müştərinin Ölkəsi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__commercial_partner_id msgid "Customer Entity" -msgstr "" +msgstr "Müştəri qurumu" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__industry_id #: model_terms:ir.ui.view,arch_db:sale.view_order_product_search msgid "Customer Industry" -msgstr "" +msgstr "Müştəri Sənayesi" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__access_url @@ -1726,23 +2011,23 @@ msgstr "Müştəri Rəyi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Customer Signature" -msgstr "" +msgstr "Müştəri İmzası" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__state_id msgid "Customer State" -msgstr "" +msgstr "Müştəri Əyaləti" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__partner_zip msgid "Customer ZIP" -msgstr "" +msgstr "Müştəri ZIP" #. module: sale #. odoo-python #: code:addons/sale/wizard/payment_link_wizard.py:0 msgid "Customer needs to pay at least %(amount)s to confirm the order." -msgstr "" +msgstr "Sifarişi təsdiqləmək üçün müştəri ən azı %(amount)s ödəməlidir." #. module: sale #: model:ir.ui.menu,name:sale.menu_reporting_customer @@ -1773,23 +2058,25 @@ msgid "" "Days between quotation proposal and expiration. 0 days means automatic " "expiration is disabled" msgstr "" +"Təklifin olunma və bitmə tarixi arasındakı günlər. 0 gün avtomatik bitmənin " +"söndürülməsi deməkdir" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__deduct_down_payments msgid "Deduct down payments" -msgstr "" +msgstr "İlkin ödənişləri çıxarın" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_company__quotation_validity_days #: model:ir.model.fields,field_description:sale.field_res_config_settings__quotation_validity_days msgid "Default Quotation Validity" -msgstr "" +msgstr "Defolt Təklif Etibarlılığı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__company_price_include #: model:ir.model.fields,field_description:sale.field_sale_order_line__company_price_include msgid "Default Sales Price Include" -msgstr "" +msgstr "Defolt Satış Qiymətinə Daxildir" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__company_price_include @@ -1798,6 +2085,8 @@ msgid "" "Default on whether the sales price used on the product and invoices with " "this Company includes its taxes." msgstr "" +"Bu Şirkətlə məhsul və fakturalarda istifadə edilən satış qiymətinə onun " +"vergilərinin daxil olub-olmaması ilə bağlı defolt." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -1805,16 +2094,19 @@ msgid "" "Default period during which the quote is valid and can still be accepted by " "the customer. The default can be changed per order or template." msgstr "" +"Kotirovkanın etibarlı olduğu və hələ də müştəri tərəfindən qəbul edilə " +"biləcəyi defolt müddət. Standart sifariş və ya şablona görə dəyişdirilə " +"bilər." #. module: sale #: model:ir.model.fields,help:sale.field_res_company__sale_discount_product_id msgid "Default product used for discounts" -msgstr "" +msgstr "Endirimlər üçün istifadə edilən defolt məhsul" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Deliver Content by Email" -msgstr "" +msgstr "Məzmunu e-poçtla çatdırın" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -1825,12 +2117,12 @@ msgstr "Çatdırıldı" #. odoo-python #: code:addons/sale/models/sale_order_line.py:0 msgid "Delivered Quantity: %s" -msgstr "" +msgstr "Çatdırılan Miqdar: %s" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__product_template__invoice_policy__delivery msgid "Delivered quantities" -msgstr "" +msgstr "Çatdırılmış miqdarlar" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__partner_shipping_id @@ -1841,7 +2133,7 @@ msgstr "Çatdırılma Ünvanı" #: model:ir.model.fields,field_description:sale.field_sale_order__commitment_date #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Delivery Date" -msgstr "" +msgstr "Çatdırılma tarixi" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_delivery @@ -1851,7 +2143,7 @@ msgstr "Təslimat Metodları" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__qty_delivered msgid "Delivery Quantity" -msgstr "" +msgstr "Çatdırılma Miqdarı" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__expected_date @@ -1861,11 +2153,15 @@ msgid "" "shipping, the shipping policy of the order will be taken into account to " "either use the minimum or maximum lead time of the order lines." msgstr "" +"Müştəriyə vəd edə biləcəyiniz çatdırılma tarixi, Xidmət məhsulları halında " +"sifariş xətlərinin minimum çatdırılma müddətindən hesablanır. Göndərmə " +"halında, sifariş xətlərinin minimum və ya maksimum çatdırılma müddətindən " +"istifadə etmək üçün sifarişin göndərmə siyasəti nəzərə alınacaqdır." #. module: sale #: model:product.template,name:sale.advance_product_0_product_template msgid "Deposit" -msgstr "" +msgstr "Depozit" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__name @@ -1898,19 +2194,19 @@ msgstr "Endirim" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__discount msgid "Discount %" -msgstr "" +msgstr "Endirim %" #. module: sale #. odoo-python #: code:addons/sale/wizard/sale_order_discount.py:0 msgid "Discount %(percent)s%%" -msgstr "" +msgstr "Endirim %(percent)s%%" #. module: sale #. odoo-python #: code:addons/sale/wizard/sale_order_discount.py:0 msgid "Discount %(percent)s%%- On products with the following taxes %(taxes)s" -msgstr "" +msgstr "Endirim %(percent)s%%- Aşağıdakı vergiləri olan məhsullarda %(taxes)s" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__discount @@ -1925,28 +2221,28 @@ msgstr "Endirim məbləği" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_company__sale_discount_product_id msgid "Discount Product" -msgstr "" +msgstr "Endirimli məhsul" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_discount__discount_type msgid "Discount Type" -msgstr "" +msgstr "Endirim növü" #. module: sale #: model:ir.model,name:sale.model_sale_order_discount msgid "Discount Wizard" -msgstr "" +msgstr "Endirim sehrbazı" #. module: sale #: model:res.groups,name:sale.group_discount_per_so_line msgid "Discount on lines" -msgstr "" +msgstr "Xətlərdə endirim" #. module: sale #. odoo-python #: code:addons/sale/wizard/sale_order_discount.py:0 msgid "Discount- On products with the following taxes %(taxes)s" -msgstr "" +msgstr "Endirim- Aşağıdakı vergiləri olan məhsullara %(taxes)s" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -1961,7 +2257,7 @@ msgstr "Endirimlər" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__display_draft_invoice_warning msgid "Display Draft Invoice Warning" -msgstr "" +msgstr "Qaralama faktura xəbərdarlığını göstərin" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__display_invoice_amount_warning @@ -1988,7 +2284,7 @@ msgstr "Göstəriləcək Form" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__distribution_analytic_account_ids msgid "Distribution Analytic Account" -msgstr "" +msgstr "Dağıtım Analitik Hesabı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content @@ -2006,19 +2302,19 @@ msgstr "Domen" #: code:addons/sale/wizard/sale_make_invoice_advance.py:0 #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__amount msgid "Down Payment" -msgstr "" +msgstr "İlkin ödəniş" #. module: sale #. odoo-python #: code:addons/sale/models/sale_order_line.py:0 msgid "Down Payment (Cancelled)" -msgstr "" +msgstr "İlkin ödəniş (Ləğv edilib)" #. module: sale #. odoo-python #: code:addons/sale/models/sale_order_line.py:0 msgid "Down Payment (ref: %(reference)s on %(date)s)" -msgstr "" +msgstr "İlkin ödəniş (ref: %(date)s üzrə %(reference)s)" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__fixed_amount @@ -2029,14 +2325,14 @@ msgstr "İlkin ödəniş məbləği (sabit)" #. odoo-python #: code:addons/sale/models/sale_order_line.py:0 msgid "Down Payment: %(date)s (Draft)" -msgstr "" +msgstr "İlkin ödəniş: %(date)s (Qaralama)" #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 #: code:addons/sale/models/sale_order_line.py:0 msgid "Down Payments" -msgstr "" +msgstr "İlkin ödənişlər" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_advance_payment_inv__advance_payment_method__fixed @@ -2046,24 +2342,24 @@ msgstr "İlkin ödəniş (sabit məbləğ)" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_advance_payment_inv__advance_payment_method__percentage msgid "Down payment (percentage)" -msgstr "" +msgstr "İlkin ödəniş (faizlə)" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Down payment
" -msgstr "" +msgstr "İlkin ödəniş
" #. module: sale #. odoo-python #: code:addons/sale/wizard/sale_make_invoice_advance.py:0 msgid "Down payment invoice" -msgstr "" +msgstr "İlkin ödəniş fakturası" #. module: sale #. odoo-python #: code:addons/sale/wizard/sale_make_invoice_advance.py:0 msgid "Down payment of %s%%" -msgstr "" +msgstr "%s%% ilkin ödəniş" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order_line__is_downpayment @@ -2071,54 +2367,56 @@ msgid "" "Down payments are made when creating invoices from a sales order. They are " "not copied when duplicating a sales order." msgstr "" +"İlkin ödənişlər satış sifarişindən hesab-fakturalar yaradılarkən həyata " +"keçirilir. Satış sifarişinin təkrarlanması zamanı onlar kopyalanmır." #. module: sale #: model:ir.model.fields,field_description:sale.field_product_category__property_account_downpayment_categ_id msgid "Downpayment Account" -msgstr "" +msgstr "İlkin ödəniş hesabı" #. module: sale #. odoo-python #: code:addons/sale/wizard/sale_make_invoice_advance.py:0 #: model_terms:ir.ui.view,arch_db:sale.view_sale_advance_payment_inv msgid "Draft Invoices" -msgstr "Qaralama Hesab-fakturalar" +msgstr "Qaralama Fakturalar" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Duplicated Documents" -msgstr "" +msgstr "Dublikat sənədlər" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__duplicated_order_ids msgid "Duplicated Order" -msgstr "" +msgstr "Dublikat Sifariş" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_delivery_easypost msgid "Easypost Connector" -msgstr "" +msgstr "Easypost Connector" #. module: sale #. odoo-javascript #: code:addons/sale/static/src/js/sale_product_field.js:0 msgid "Edit Configuration" -msgstr "" +msgstr "Konfiqurasiyanı redaktə edin" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_payment_provider_onboarding_wizard__payment_method__digital_signature msgid "Electronic signature" -msgstr "" +msgstr "Elektron imza" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_payment_provider_onboarding_wizard__paypal_email_account msgid "Email" -msgstr "Elektron poçt" +msgstr "E-poçt" #. module: sale #: model:ir.model.fields,help:sale.field_res_config_settings__invoice_mail_template_id msgid "Email sent to the customer once the invoice is available." -msgstr "" +msgstr "Faktura mövcud olduqdan sonra müştəriyə e-poçt göndərilir." #. module: sale #. odoo-javascript @@ -2132,6 +2430,8 @@ msgstr "Fərdiləşdirilmiş dəyər daxil edin" msgid "" "Error importing attachment '%(file_name)s' as order (decoder=%(decoder)s)" msgstr "" +"'%(file_name)s' qoşmasını sifariş olaraq idxal edərkən xəta baş verdi " +"(dekoder=%(decoder)s)" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__expected_date @@ -2141,7 +2441,7 @@ msgstr "Gözlənilən Tarix" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Expected:" -msgstr "" +msgstr "Gözlənilir:" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.product_template_form_view @@ -2151,12 +2451,12 @@ msgstr "Xərclər" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__validity_date msgid "Expiration" -msgstr "" +msgstr "Başaçatma Tarixi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid "Expiration Date:" -msgstr "" +msgstr "Bitmə Tarixi:" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_product_search @@ -2166,18 +2466,18 @@ msgstr "Genişləndirilmiş Filtrlər" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__product_no_variant_attribute_value_ids msgid "Extra Values" -msgstr "" +msgstr "Əlavə Dəyərlər" #. module: sale #. odoo-python #: code:addons/sale/models/sale_order_line.py:0 msgid "Extra line with %s" -msgstr "" +msgstr "%s ilə əlavə sətir" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_delivery_fedex msgid "FedEx Connector" -msgstr "" +msgstr "FedEx birləşdiricisi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__fiscal_position_id @@ -2191,6 +2491,9 @@ msgid "" "customers or sales orders/invoices.The default value comes from the " "customer." msgstr "" +"Fiskal mövqelər vergiləri və hesabları xüsusi müştərilər və ya satış " +"sifarişləri/qaimə-fakturaları üçün uyğunlaşdırmaq üçün istifadə olunur. " +"Defolt dəyər müştəridən gəlir." #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_order_discount__discount_type__amount @@ -2200,7 +2503,7 @@ msgstr "Sabit Məbləğ" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_home_sale msgid "Follow, view or pay your orders" -msgstr "" +msgstr "Sifarişlərinizi izləyin, baxın və ya ödəyin" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__message_follower_ids @@ -2220,7 +2523,7 @@ msgstr "Gözəl şriftli ikon, məsələn fa-tapşırıqlar" #. module: sale #: model:ir.model.constraint,message:sale.constraint_sale_order_line_non_accountable_null_fields msgid "Forbidden values on non-accountable sale order line" -msgstr "" +msgstr "Qeyri-məsuliyyətli satış sifarişi xəttində qadağan edilmiş dəyərlər" #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_account_invoice_report_salesteam @@ -2229,6 +2532,10 @@ msgid "" "customer. The search tool can also be used to personalise your Invoices " "reports and so, match this analysis to your needs." msgstr "" +"Bu hesabatdan siz müştəriyə hesab-fakturaya göndərilən məbləğ haqqında ümumi" +" məlumat əldə edə bilərsiniz. Axtarış aləti həmçinin Faktura hesabatlarınızı" +" fərdiləşdirmək üçün istifadə edilə bilər və beləliklə, bu təhlili " +"ehtiyaclarınıza uyğunlaşdırın." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template @@ -2242,7 +2549,7 @@ msgstr "Tam məbləğ
" #: model:ir.model.fields.selection,name:sale.selection__sale_report__line_invoice_status__invoiced #: model_terms:ir.ui.view,arch_db:sale.view_order_product_search msgid "Fully Invoiced" -msgstr "" +msgstr "Tam fakturalanıb" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sales_order_filter @@ -2252,12 +2559,12 @@ msgstr "Gələcək Fəaliyyətlər" #. module: sale #: model:ir.model,name:sale.model_payment_link_wizard msgid "Generate Sales Payment Link" -msgstr "" +msgstr "Satış Ödəniş Linki yaradın" #. module: sale #: model:ir.actions.act_window,name:sale.action_sale_order_generate_link msgid "Generate a Payment Link" -msgstr "" +msgstr "Ödəniş Linki yaradın" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -2269,23 +2576,23 @@ msgstr "Ödəniş təsdiqləndiyində Fakturanı avtomatik tərtib et" #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "Generated Orders" -msgstr "" +msgstr "Yaradılmış Sifarişlər" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Get warnings in orders for products or customers" -msgstr "" +msgstr "Məhsullar və ya müştərilər üçün sifarişlərdə xəbərdarlıq alın" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_order_discount__discount_type__so_discount msgid "Global Discount" -msgstr "" +msgstr "Qlobal Endirim" #. module: sale #. odoo-javascript #: code:addons/sale/static/src/js/tours/sale.js:0 msgid "Go ahead and send the quotation." -msgstr "" +msgstr "Davam edin və təklifi göndərin." #. module: sale #: model:ir.model.fields,help:sale.field_sale_order_line__product_type @@ -2293,11 +2600,13 @@ msgid "" "Goods are tangible materials and merchandise you provide.\n" "A service is a non-material product you provide." msgstr "" +"Mallar maddi materiallar və təqdim etdiyiniz mallardır.\n" +"Xidmət sizin təqdim etdiyiniz qeyri-maddi məhsuldur." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Grant discounts on sales order lines" -msgstr "" +msgstr "Satış sifarişi xətlərində endirimlər verin" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__weight @@ -2314,22 +2623,22 @@ msgstr "Görə Qrupla" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__has_active_pricelist msgid "Has Active Pricelist" -msgstr "" +msgstr "Aktiv Qiymət siyahısı var" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__has_archived_products msgid "Has Archived Products" -msgstr "" +msgstr "Arxivləşdirilmiş Məhsullara malikdir" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_mass_cancel_orders__has_confirmed_order msgid "Has Confirmed Order" -msgstr "" +msgstr "Sifarişi Təsdiqlədi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__show_update_fpos msgid "Has Fiscal Position Changed" -msgstr "" +msgstr "Fiskal Mövqeyi Dəyişdi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__has_message @@ -2339,12 +2648,12 @@ msgstr "Mesajı Var" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__show_update_pricelist msgid "Has Pricelist Changed" -msgstr "" +msgstr "Qiymət Siyahısı Dəyişib" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__has_down_payments msgid "Has down payments" -msgstr "" +msgstr "İlkin ödənişləri var" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__product_document__attached_on_sale__hidden @@ -2390,6 +2699,8 @@ msgid "" "If set, the SO will invoice in this journal; otherwise the sales journal " "with the lowest sequence is used." msgstr "" +"Əgər təyin edilərsə, SO bu jurnalda faktura verəcək; əks halda ən aşağı " +"ardıcıllıqla satış jurnalından istifadə edilir." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -2397,21 +2708,25 @@ msgid "" "If the sale is locked, you can not modify it anymore. However, you will " "still be able to invoice or deliver." msgstr "" +"Satış kilidlidirsə, daha onu dəyişdirə bilməzsiniz. Bununla belə, siz yenə " +"də faktura və ya çatdıra biləcəksiniz." #. module: sale #: model:ir.model.fields,help:sale.field_product_packaging__sales msgid "If true, the packaging can be used for sales orders" -msgstr "" +msgstr "Doğrudursa, qablaşdırma satış sifarişləri üçün istifadə edilə bilər" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__pricelist_id msgid "If you change the pricelist, only newly added lines will be affected." msgstr "" +"Qiymət siyahısını dəyişdirsəniz, yalnız yeni əlavə edilmiş xətlər " +"təsirlənəcək." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Immediate" -msgstr "" +msgstr "Dərhal" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -2427,12 +2742,12 @@ msgstr "Məhsullar üçün İdxal Şablonu" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.product_view_search_catalog msgid "In the Order" -msgstr "" +msgstr "Sərəncamda" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Incl. tax)" -msgstr "" +msgstr "O cümlədən vergi)" #. module: sale #. odoo-python @@ -2444,19 +2759,19 @@ msgstr "Yanlış endirim məbləği" #. odoo-python #: code:addons/sale/controllers/portal.py:0 msgid "Invalid order." -msgstr "" +msgstr "Yanlış sifariş." #. module: sale #. odoo-python #: code:addons/sale/controllers/portal.py:0 msgid "Invalid signature data." -msgstr "" +msgstr "Etibarsız imza datası." #. module: sale #. odoo-python #: code:addons/sale/models/account_move.py:0 msgid "Invoice %s paid" -msgstr "" +msgstr "%s faktura ödənildi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__partner_invoice_id @@ -2466,27 +2781,27 @@ msgstr "Qaimə Ünvanı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_cancel__display_invoice_alert msgid "Invoice Alert" -msgstr "" +msgstr "Faktura Xəbərdarlığı" #. module: sale #: model:mail.message.subtype,name:sale.mt_salesteam_invoice_confirmed msgid "Invoice Confirmed" -msgstr "" +msgstr "Faktura Təsdiqləndi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__invoice_count msgid "Invoice Count" -msgstr "Qaimə hesabı" +msgstr "Hesab-Faktura Sayı" #. module: sale #: model:mail.message.subtype,name:sale.mt_salesteam_invoice_created msgid "Invoice Created" -msgstr "Hesab-faktura Yaradıldı" +msgstr "Faktura Yaradıldı" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__invoice_mail_template_id msgid "Invoice Email Template" -msgstr "" +msgstr "Faktura E-poçt Şablonu" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__invoice_lines @@ -2496,26 +2811,28 @@ msgstr "Hesab- faktura sətirləri" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sale_advance_payment_inv msgid "Invoice Sales Order" -msgstr "" +msgstr "Faktura Satış Sifarişi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__invoice_status #: model:ir.model.fields,field_description:sale.field_sale_order_line__invoice_status #: model:ir.model.fields,field_description:sale.field_sale_report__line_invoice_status msgid "Invoice Status" -msgstr "Hesab-fakturanın Statusu" +msgstr "Faktura Vəziyyəti" #. module: sale #. odoo-python #: code:addons/sale/models/product_template.py:0 msgid "Invoice after delivery, based on quantities delivered, not ordered." msgstr "" +"Çatdırılmadan sonra hesab-faktura, çatdırılan miqdarlara əsasən, sifariş " +"verilmir." #. module: sale #. odoo-python #: code:addons/sale/models/product_template.py:0 msgid "Invoice ordered quantities as soon as this service is sold." -msgstr "" +msgstr "Bu xidmət satılan kimi sifariş edilən miqdarları faktura göndərin." #. module: sale #: model:ir.model.fields,help:sale.field_crm_team__invoiced @@ -2524,47 +2841,50 @@ msgid "" "has invoiced this month. It is used to compute the progression ratio of the " "current and target revenue on the kanban view." msgstr "" +"Cari ay üçün faktura gəliri. Bu, satış kanalının bu ay hesabladığı " +"məbləğdir. Kanban görünüşündə cari və hədəf gəlirin irəliləmə nisbətini " +"hesablamaq üçün istifadə olunur." #. module: sale #: model:ir.model.fields.selection,name:sale.selection__res_config_settings__default_invoice_policy__delivery msgid "Invoice what is delivered" -msgstr "" +msgstr "Çatdırılanı faktura" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__res_config_settings__default_invoice_policy__order msgid "Invoice what is ordered" -msgstr "" +msgstr "Sifariş olunan faktura" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Invoiced" -msgstr "Qaimə Kəsilib" +msgstr "Fakturalanmış vergisiz məbləğ" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__amount_invoiced msgid "Invoiced Amount" -msgstr "Faktura üzrə Məbləğ" +msgstr "Vergiləndirilməmiş Fakturalanmış Məbləğ" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__qty_invoiced msgid "Invoiced Quantity" -msgstr "" +msgstr "Faktura Miqdarı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__qty_invoiced_posted msgid "Invoiced Quantity (posted)" -msgstr "" +msgstr "Faktura Miqdarı (qeydə alınıb)" #. module: sale #. odoo-python #: code:addons/sale/models/sale_order_line.py:0 msgid "Invoiced Quantity: %s" -msgstr "" +msgstr "Faktura Miqdarı: %s" #. module: sale #: model:ir.model.fields,field_description:sale.field_crm_team__invoiced msgid "Invoiced This Month" -msgstr "" +msgstr "Faktura Bu Ayda" #. module: sale #: model:ir.actions.act_window,name:sale.action_invoice_salesteams @@ -2572,35 +2892,35 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:sale.crm_team_view_kanban_dashboard #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Invoices" -msgstr "Qaimələr" +msgstr "Hesab-Fakturalar yaradın" #. module: sale #: model:ir.actions.act_window,name:sale.action_account_invoice_report_salesteam msgid "Invoices Analysis" -msgstr "Hesab-fakturaların Analizi" +msgstr "Fakturaların təhlili" #. module: sale #: model:ir.model,name:sale.model_account_invoice_report msgid "Invoices Statistics" -msgstr "Hesab-fakturaların Statistikası" +msgstr "Faktura Statistikası" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.crm_team_view_kanban_dashboard #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Invoicing" -msgstr "Hesab-faktura göndərilməsi" +msgstr "Hesab-Faktura və Çatdırılma Ünvanı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid "Invoicing Address" -msgstr "" +msgstr "Faktura Ünvanı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__journal_id msgid "Invoicing Journal" -msgstr "" +msgstr "Faktura jurnalı" #. module: sale #: model:ir.model.fields,field_description:sale.field_product_product__invoice_policy @@ -2612,23 +2932,23 @@ msgstr "Fakturalama Qaydası" #. module: sale #: model:ir.model.fields,field_description:sale.field_crm_team__invoiced_target msgid "Invoicing Target" -msgstr "" +msgstr "Faktura Hədəfi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid "Invoicing and Shipping Address" -msgstr "" +msgstr "Hesab-Faktura və Çatdırılma Ünvanı" #. module: sale #: model:ir.model.fields,field_description:sale.field_account_move_line__is_downpayment msgid "Is Downpayment" -msgstr "" +msgstr "İlkin Ödənişdir" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_cancel__is_mail_template_editor msgid "Is Editor" -msgstr "" +msgstr "Redaktordur" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__is_expired @@ -2643,33 +2963,35 @@ msgstr "İzləyicidir" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__is_product_archived msgid "Is Product Archived" -msgstr "" +msgstr "Məhsul Arxivdədir" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__is_downpayment msgid "Is a down payment" -msgstr "" +msgstr "İlkin ödənişdir" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__is_expense msgid "Is expense" -msgstr "" +msgstr "Xərcdir" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__is_configurable_product msgid "Is the product configurable?" -msgstr "" +msgstr "Məhsul konfiqurasiya edilə bilərmi?" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order_line__is_expense msgid "" "Is true if the sales order line comes from an expense or a vendor bills" msgstr "" +"Əgər satış sifarişi xətti xərcdən və ya satıcı hesablarından gəlirsə, " +"doğrudur" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document msgid "Issued Date" -msgstr "" +msgstr "Buraxılış tarixi" #. module: sale #. odoo-python @@ -2678,6 +3000,8 @@ msgid "" "It is forbidden to modify the following fields in a locked order:\n" "%s" msgstr "" +"Aşağıdakı sahələri kilidli qaydada dəyişdirmək qadağandır:\n" +"%s" #. module: sale #: model:ir.model,name:sale.model_account_move @@ -2697,7 +3021,7 @@ msgstr "Dil" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid "Last Invoices" -msgstr "" +msgstr "Son fakturalar" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__write_uid @@ -2729,7 +3053,7 @@ msgstr "Ən son Əməliyyatlar" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__customer_lead msgid "Lead Time" -msgstr "" +msgstr "Göndərmə vaxtı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -2740,7 +3064,7 @@ msgstr "Qoy müştəriləriniz sənədlərini görmək üçün daxil olsunlar" #. odoo-javascript #: code:addons/sale/static/src/js/tours/sale.js:0 msgid "Let’s create a beautiful quotation in a few clicks ." -msgstr "" +msgstr "Gəlin bir neçə kliklə gözəl sitat yaradaq." #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__linked_line_id @@ -2750,12 +3074,12 @@ msgstr "Əlaqəli Satış Sətri" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__linked_line_ids msgid "Linked Order Lines" -msgstr "" +msgstr "Əlaqəli Sifariş Sətirləri" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__linked_virtual_id msgid "Linked Virtual" -msgstr "" +msgstr "Əlaqəli Virtual" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -2766,7 +3090,7 @@ msgstr "Bağlama" #: model:ir.model.fields,field_description:sale.field_res_config_settings__group_auto_done_setting #: model:res.groups,name:sale.group_auto_done_setting msgid "Lock Confirmed Sales" -msgstr "" +msgstr "Təsdiqlənmiş Satışları Kilidləyin" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__locked @@ -2776,7 +3100,7 @@ msgstr "Blok edilib" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__locked msgid "Locked orders cannot be modified." -msgstr "" +msgstr "Kilidlənmiş sifarişlər dəyişdirilə bilməz." #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_cancel__template_id @@ -2789,16 +3113,20 @@ msgid "" "Make your quote attractive by adding header pages, product descriptions and " "footer pages to your quote." msgstr "" +"Təklifinizə başlıq səhifələri, məhsul təsvirləri və altbilgi səhifələri " +"əlavə etməklə təklifinizi cəlbedici edin." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Manage Promotions, Coupons, Loyalty cards, Gift cards & eWallet" msgstr "" +"Promosyonlar, Kuponlar, Sadiqlik kartları, Hədiyyə kartları və eWallet-i " +"idarə edin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Manage Sales & teams targets and commissions" -msgstr "" +msgstr "Satış və komandaların hədəflərini və komissiyalarını idarə edin" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_order_line__qty_delivered_method__manual @@ -2808,12 +3136,12 @@ msgstr "Əl ilə" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__res_company__sale_onboarding_payment_method__manual msgid "Manual Payment" -msgstr "" +msgstr "Manual Ödəniş" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__product_template__service_type__manual msgid "Manually set quantities on order" -msgstr "" +msgstr "Sifariş üzrə miqdarları əl ilə təyin edin" #. module: sale #: model:ir.model.fields,help:sale.field_product_product__service_type @@ -2823,6 +3151,9 @@ msgid "" "Timesheets on contract: Invoice based on the tracked hours on the related timesheet.\n" "Create a task and track hours: Create a task on the sales order validation and track the work hours." msgstr "" +"Sifariş üzrə miqdarı əl ilə təyin edin: Analitik hesab yaratmadan əl ilə daxil edilmiş kəmiyyətə əsaslanan faktura.\n" +"Müqavilə üzrə vaxt cədvəlləri: Müvafiq vaxt cədvəlində izlənilən saatlara əsaslanan faktura.\n" +"Tapşırıq yaradın və saatları izləyin: Satış sifarişinin təsdiqi ilə bağlı tapşırıq yaradın və iş saatlarını izləyin." #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_sale_margin @@ -2832,7 +3163,7 @@ msgstr "Marjalar" #. module: sale #: model:ir.actions.server,name:sale.model_sale_order_action_quotation_sent msgid "Mark Quotation as Sent" -msgstr "" +msgstr "Təklifi Göndərilmiş et" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.account_invoice_form @@ -2862,13 +3193,13 @@ msgstr "Mesajın Çatdırılmasında xəta" #: model:ir.model.fields,field_description:sale.field_res_partner__sale_warn_msg #: model:ir.model.fields,field_description:sale.field_res_users__sale_warn_msg msgid "Message for Sales Order" -msgstr "" +msgstr "Satış Sifarişi üçün Mesaj" #. module: sale #: model:ir.model.fields,field_description:sale.field_product_product__sale_line_warn_msg #: model:ir.model.fields,field_description:sale.field_product_template__sale_line_warn_msg msgid "Message for Sales Order Line" -msgstr "" +msgstr "Satış Sifariş Xətti üçün Mesaj" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__message_ids @@ -2883,17 +3214,17 @@ msgstr "Metod" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__qty_delivered_method msgid "Method to update delivered qty" -msgstr "" +msgstr "Çatdırılan miqdarı yeniləmək üsulu" #. module: sale #: model:ir.model.constraint,message:sale.constraint_sale_order_line_accountable_required_fields msgid "Missing required fields on accountable sale order line." -msgstr "" +msgstr "Hesabatlı satış sifarişi xəttində tələb olunan sahələr çatışmır." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document msgid "Mitchell Admin" -msgstr "" +msgstr "Mitchell Admin" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__my_activity_date_deadline @@ -2913,7 +3244,7 @@ msgstr "Mənim Qiymət Təkliflərim" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sales_order_line_filter msgid "My Sales Order Lines" -msgstr "" +msgstr "Satış Sifariş Xətlərim" #. module: sale #. odoo-python @@ -2961,7 +3292,7 @@ msgstr "Mesaj Yoxdur" #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "No attachment was provided" -msgstr "" +msgstr "Heç bir əlavə təmin edilmədi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document @@ -2971,17 +3302,17 @@ msgstr "Bu ödəniş üçün əlavə tələblər yoxdur" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "No longer edit orders once confirmed" -msgstr "" +msgstr "Təsdiqləndikdən sonra artıq sifarişləri redaktə etməyin" #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_orders_to_invoice msgid "No orders to invoice found" -msgstr "" +msgstr "Fakturaya sifariş tapılmadı" #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_orders_upselling msgid "No orders to upsell found." -msgstr "" +msgstr "Satış üçün heç bir sifariş tapılmadı." #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_order_line__display_type__line_note @@ -2995,7 +3326,7 @@ msgstr "Qeyd" #: model:ir.model.fields.selection,name:sale.selection__sale_report__invoice_status__no #: model:ir.model.fields.selection,name:sale.selection__sale_report__line_invoice_status__no msgid "Nothing to Invoice" -msgstr "" +msgstr "Fakturaya heç nə yoxdur" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_tree @@ -3013,6 +3344,8 @@ msgid "" "Number of days between the order confirmation and the shipping of the " "products to the customer" msgstr "" +"Sifarişin təsdiqi ilə məhsulların müştəriyə göndərilməsi arasındakı günlərin" +" sayı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__message_has_error_counter @@ -3032,32 +3365,32 @@ msgstr "Çatdırılma xətası olan mesajların sayı" #. module: sale #: model:ir.model.fields,field_description:sale.field_crm_team__quotations_count msgid "Number of quotations to invoice" -msgstr "" +msgstr "Faktura üçün təkliflərin sayı" #. module: sale #: model:ir.model.fields,field_description:sale.field_crm_team__sales_to_invoice_count msgid "Number of sales to invoice" -msgstr "" +msgstr "Fakturaya satışların sayı" #. module: sale #: model:product.template,description_sale:sale.product_product_1_product_template msgid "Office chairs can harm your floor: protect it." -msgstr "" +msgstr "Ofis kresloları döşəmənizə zərər verə bilər: onu qoruyun." #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_order_discount__discount_type__sol_discount msgid "On All Order Lines" -msgstr "" +msgstr "Bütün Sifariş Xətlərində" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__product_document__attached_on_sale__sale_order msgid "On confirmed order" -msgstr "" +msgstr "Təsdiqlənmiş sifarişlə" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__product_document__attached_on_sale__quotation msgid "On quote" -msgstr "" +msgstr "Təkif üzrə" #. module: sale #. odoo-python @@ -3066,6 +3399,8 @@ msgid "" "Once a sales order is confirmed, you can't remove one of its lines (we need to track if something gets invoiced or delivered).\n" " Set the quantity to 0 instead." msgstr "" +"Satış sifarişi təsdiq edildikdən sonra siz onun sətirlərindən birini silə bilməzsiniz (biz nəyinsə faktura yazıldığını və ya çatdırılmasını izləməliyik).\n" +" Bunun əvəzinə kəmiyyəti 0-a qoyun." #. module: sale #: model_terms:ir.actions.act_window,help:sale.act_res_partner_2_sale_order @@ -3075,6 +3410,8 @@ msgid "" "Once the quotation is confirmed by the customer, it becomes a sales " "order.
You will be able to create an invoice and collect the payment." msgstr "" +"Təklif müştəri tərəfindən təsdiqləndikdən sonra o, satış sifarişinə " +"çevrilir.
Siz faktura yarada və ödənişi yığa biləcəksiniz." #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_orders @@ -3082,6 +3419,8 @@ msgid "" "Once the quotation is confirmed, it becomes a sales order.
You will be " "able to create an invoice and collect the payment." msgstr "" +"Kotirovka təsdiqləndikdən sonra o, satış sifarişinə çevrilir.
Siz " +"faktura yarada və ödənişi yığa biləcəksiniz." #. module: sale #: model:ir.model.fields,field_description:sale.field_res_company__portal_confirmation_pay @@ -3092,7 +3431,7 @@ msgstr "Onlayn Ödəniş" #. module: sale #: model:ir.ui.menu,name:sale.payment_menu msgid "Online Payments" -msgstr "" +msgstr "Onlayn ödənişlər" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_company__portal_confirmation_sign @@ -3103,29 +3442,31 @@ msgstr "Onlayn İmza" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__require_payment msgid "Online payment" -msgstr "" +msgstr "Onlayn ödəniş" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__require_signature msgid "Online signature" -msgstr "" +msgstr "Onlayn imza" #. module: sale #: model:ir.model.fields,help:sale.field_sale_advance_payment_inv__amount_invoiced msgid "Only confirmed down payments are considered." -msgstr "" +msgstr "Yalnız təsdiqlənmiş ilkin ödənişlər nəzərə alınır." #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "Only draft orders can be marked as sent directly." -msgstr "" +msgstr "Yalnız qaralama sifarişlər birbaşa göndərilmiş kimi qeyd edilə bilər." #. module: sale #: model:ir.model.constraint,message:sale.constraint_product_attribute_custom_value_sol_custom_value_unique msgid "" "Only one Custom Value is allowed per Attribute Value per Sales Order Line." msgstr "" +"Satış Sifariş Xətti üzrə Atribut Dəyəri üçün yalnız bir Fərdi Dəyər icazə " +"verilir." #. module: sale #. odoo-python @@ -3158,6 +3499,9 @@ msgid "" "Optional Products are suggested whenever the customer hits *Add to Cart* " "(cross-sell strategy, e.g. for computers: warranty, software, etc.)." msgstr "" +"Müştəri *Səbətə əlavə et* (çarpaz satış strategiyası, məsələn, kompüterlər " +"üçün: zəmanət, proqram təminatı və s.) düyməsini vurduqda Könüllü Məhsullar " +"təklif olunur." #. module: sale #: model:ir.model.fields,help:sale.field_sale_order_cancel__lang @@ -3167,6 +3511,10 @@ msgid "" "a placeholder expression that provides the appropriate language, e.g. {{ " "object.partner_id.lang }}." msgstr "" +"E-poçt göndərərkən seçmək üçün əlavə tərcümə dili (ISO kodu). " +"Quraşdırılmayıbsa, ingilis versiyası istifadə olunacaq. Bu, adətən müvafiq " +"dili təmin edən yer tutucu ifadə olmalıdır, məs. {{ obyekt.partner_id.lang " +"}}." #. module: sale #. odoo-python @@ -3209,12 +3557,12 @@ msgstr "Sifariş Tarixi:" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_product_search msgid "Order Date: Last 365 Days" -msgstr "" +msgstr "Sifariş Tarixi: Son 365 Gün" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__invoice_status msgid "Order Invoice Status" -msgstr "" +msgstr "Sifariş faktura statusu" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__order_line @@ -3232,29 +3580,29 @@ msgstr "Sipariş Referansı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__state msgid "Order Status" -msgstr "" +msgstr "Sipariş vəziyyəti" #. module: sale #: model:mail.activity.type,name:sale.mail_act_sale_upsell msgid "Order Upsell" -msgstr "" +msgstr "Upsell sifariş edin" #. module: sale #. odoo-python #: code:addons/sale/controllers/portal.py:0 msgid "Order signed by %s" -msgstr "" +msgstr "%s tərəfindən imzalanmış sifariş" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.crm_team_view_kanban_dashboard msgid "Order to Invoice" -msgstr "" +msgstr "Fakturaya sifariş" #. module: sale #. odoo-python #: code:addons/sale/models/sale_order_line.py:0 msgid "Ordered Quantity: %(old_qty)s -> %(new_qty)s" -msgstr "" +msgstr "Sifariş Miqdarı: %(old_qty)s -> %(new_qty)s" #. module: sale #: model:ir.model.fields,help:sale.field_product_product__invoice_policy @@ -3263,6 +3611,8 @@ msgid "" "Ordered Quantity: Invoice quantities ordered by the customer.\n" "Delivered Quantity: Invoice quantities delivered to the customer." msgstr "" +"Sifariş Miqdarı: Müştəri tərəfindən sifariş edilən faktura miqdarları.\n" +"Çatdırılma Miqdarı: Müştəriyə çatdırılan faktura miqdarı." #. module: sale #: model:ir.model.fields.selection,name:sale.selection__product_template__invoice_policy__order @@ -3280,18 +3630,18 @@ msgstr "Sifarişlər" #: model:ir.ui.menu,name:sale.menu_sale_order_invoice #: model_terms:ir.ui.view,arch_db:sale.crm_team_view_kanban_dashboard msgid "Orders to Invoice" -msgstr "" +msgstr "Sifarişlər Fakturaya" #. module: sale #: model:ir.actions.act_window,name:sale.action_orders_upselling #: model:ir.ui.menu,name:sale.menu_sale_order_upselling msgid "Orders to Upsell" -msgstr "" +msgstr "Satış üçün sifarişlər" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document msgid "Oscar Morgan" -msgstr "" +msgstr "Oskar Morqan" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -3301,18 +3651,18 @@ msgstr "Digər Məlumatlar" #. module: sale #: model:ir.actions.report,name:sale.action_report_saleorder msgid "PDF Quote" -msgstr "" +msgstr "PDF Təklif" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_sale_pdf_quote_builder #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "PDF Quote builder" -msgstr "" +msgstr "PDF Təklif yaradıcısı" #. module: sale #: model:ir.actions.report,name:sale.action_report_pro_forma_invoice msgid "PRO-FORMA Invoice" -msgstr "" +msgstr "PRO-FORMA Fakturası" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__product_packaging_id @@ -3327,23 +3677,23 @@ msgstr "Qablaşdırma Miqdarı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__partner_credit_warning msgid "Partner Credit Warning" -msgstr "" +msgstr "Partnyor Kredit Xəbərdarlığı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Pay Now" -msgstr "" +msgstr "İndi ödəyin" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__res_company__sale_onboarding_payment_method__other msgid "Pay with another payment provider" -msgstr "" +msgstr "Başqa ödəniş provayderi ilə ödəyin" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__res_company__sale_onboarding_payment_method__paypal #: model:ir.model.fields.selection,name:sale.selection__sale_payment_provider_onboarding_wizard__payment_method__paypal msgid "PayPal" -msgstr "" +msgstr "PayPal" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -3353,7 +3703,7 @@ msgstr "Ödəniş" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_payment_provider_onboarding_wizard__manual_post_msg msgid "Payment Instructions" -msgstr "" +msgstr "Ödəniş Təlimatları" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_payment_provider_onboarding_wizard__payment_method @@ -3368,7 +3718,7 @@ msgstr "Ödəniş Üsulları" #. module: sale #: model:ir.model,name:sale.model_payment_provider msgid "Payment Provider" -msgstr "" +msgstr "Ödəniş Provayderi" #. module: sale #: model:ir.ui.menu,name:sale.payment_provider_menu @@ -3379,7 +3729,7 @@ msgstr "Ödəniş Provayderləri" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__reference msgid "Payment Ref." -msgstr "" +msgstr "Ödəniş Ref." #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__payment_term_id @@ -3394,7 +3744,7 @@ msgstr "Ödəniş Tokenləri" #. module: sale #: model:ir.model,name:sale.model_payment_transaction msgid "Payment Transaction" -msgstr "" +msgstr "Ödəniş əməliyyatı" #. module: sale #: model:ir.ui.menu,name:sale.payment_transaction_menu @@ -3404,7 +3754,7 @@ msgstr "Ödəniş Əməliyyatları" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__amount_paid msgid "Payment Transactions Amount" -msgstr "" +msgstr "Ödəniş əməliyyatlarının məbləği" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content @@ -3426,14 +3776,14 @@ msgstr "Porta Giriş URL-si" #: model:ir.model.fields,field_description:sale.field_res_config_settings__prepayment_percent #: model:ir.model.fields,field_description:sale.field_sale_order__prepayment_percent msgid "Prepayment percentage" -msgstr "" +msgstr "İlkin ödəniş faizi" #. module: sale #. odoo-python #: code:addons/sale/models/res_company.py:0 #: code:addons/sale/models/sale_order.py:0 msgid "Prepayment percentage must be a valid percentage." -msgstr "" +msgstr "İlkin ödəniş faizi etibarlı faiz olmalıdır." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -3449,12 +3799,12 @@ msgstr "Qiymət" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__price_reduce_taxexcl msgid "Price Reduce Tax excl" -msgstr "" +msgstr "Qiyməti Endirmə Vergisi xaric" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__price_reduce_taxinc msgid "Price Reduce Tax incl" -msgstr "" +msgstr "Qiymətin azaldılması vergisi daxil" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__pricelist_id @@ -3465,7 +3815,7 @@ msgstr "Qiymət siyahısı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__pricelist_item_id msgid "Pricelist Item" -msgstr "" +msgstr "Qiymət siyahısı maddəsi" #. module: sale #: model:ir.ui.menu,name:sale.menu_product_pricelist_main @@ -3481,7 +3831,7 @@ msgstr "Qiymətləndirmə" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__group_proforma_sales msgid "Pro-Forma Invoice" -msgstr "" +msgstr "PRO-FORMA Fakturası" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document @@ -3491,7 +3841,7 @@ msgstr "Pro-Forma Qaimə #" #. module: sale #: model:res.groups,name:sale.group_proforma_sales msgid "Pro-forma Invoices" -msgstr "" +msgstr "Pro-Forma Fakturalar" #. module: sale #. odoo-javascript @@ -3510,17 +3860,17 @@ msgstr "Məhsul" #. module: sale #: model:ir.model,name:sale.model_product_attribute_custom_value msgid "Product Attribute Custom Value" -msgstr "" +msgstr "Məhsul Atributunun Fərdi Dəyəri" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Product Catalog" -msgstr "" +msgstr "Məhsul Kataloğu" #. module: sale #: model:ir.model.fields,field_description:sale.field_product_product__product_catalog_product_is_in_sale_order msgid "Product Catalog Product Is In Sale Order" -msgstr "" +msgstr "Məhsul Kataloq Məhsul Satılır Sifarişdədir" #. module: sale #: model:ir.ui.menu,name:sale.menu_product_categories @@ -3569,7 +3919,7 @@ msgstr "Məhsulun Növü" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__product_uom_readonly msgid "Product Uom Readonly" -msgstr "" +msgstr "Məhsul Uom Yalnız oxunur" #. module: sale #: model:ir.model,name:sale.model_product_product @@ -3589,18 +3939,19 @@ msgstr "Məhsul Çeşidləri" #: code:addons/sale/models/sale_order.py:0 msgid "Product prices have been recomputed according to pricelist %s." msgstr "" +"Məhsul qiymətləri %s qiymət siyahısına uyğun olaraq yenidən hesablanıb." #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "Product prices have been recomputed." -msgstr "" +msgstr "Məhsulların qiymətləri yenidən hesablanıb." #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "Product taxes have been recomputed according to fiscal position %s." -msgstr "" +msgstr "Məhsul vergiləri %s fiskal mövqeyinə uyğun olaraq yenidən hesablanıb." #. module: sale #: model:ir.actions.act_window,name:sale.product_template_action @@ -3615,7 +3966,7 @@ msgstr "Məhsullar" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Promotions, Loyalty & Gift Card" -msgstr "" +msgstr "Promosyonlar, Sadiqlik və Hədiyyə Kartı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_line_tree @@ -3625,12 +3976,12 @@ msgstr "Sayı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__qty_delivered msgid "Qty Delivered" -msgstr "" +msgstr "Miqdar Çatdırılır" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__qty_invoiced msgid "Qty Invoiced" -msgstr "" +msgstr "Qty Faktura" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__product_uom_qty @@ -3640,17 +3991,17 @@ msgstr "Sifariş edilən miqdar" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__qty_to_deliver msgid "Qty To Deliver" -msgstr "" +msgstr "Çatdırılma Miqdarı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__qty_to_invoice msgid "Qty To Invoice" -msgstr "" +msgstr "Fakturaya Miqdar" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Quantities to invoice from sales orders" -msgstr "" +msgstr "Satış sifarişlərindən faktura üçün miqdarlar" #. module: sale #. odoo-javascript @@ -3665,7 +4016,7 @@ msgstr "Miqdar" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__qty_to_invoice msgid "Quantity To Invoice" -msgstr "" +msgstr "Faktura üçün Miqdarı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -3704,37 +4055,39 @@ msgstr "Təklif Tarixi" #: model:ir.model.fields.selection,name:sale.selection__sale_order__state__sent #: model:ir.model.fields.selection,name:sale.selection__sale_report__state__sent msgid "Quotation Sent" -msgstr "" +msgstr "Sitat Göndərilib" #. module: sale #. odoo-python #: code:addons/sale/wizard/res_config_settings.py:0 msgid "Quotation Validity is required and must be greater or equal to 0." msgstr "" +"Kotirovkanın etibarlılığı tələb olunur və 0-dan böyük və ya bərabər " +"olmalıdır." #. module: sale #: model:mail.message.subtype,name:sale.mt_order_viewed #: model:mail.message.subtype,name:sale.mt_salesteam_order_viewed msgid "Quotation Viewed" -msgstr "" +msgstr "Sitat baxıldı" #. module: sale #: model:mail.message.subtype,description:sale.mt_order_confirmed msgid "Quotation confirmed" -msgstr "" +msgstr "Sitat təsdiqləndi" #. module: sale #: model:mail.message.subtype,description:sale.mt_order_sent #: model:mail.message.subtype,name:sale.mt_order_sent #: model:mail.message.subtype,name:sale.mt_salesteam_order_sent msgid "Quotation sent" -msgstr "" +msgstr "Sitat göndərildi" #. module: sale #. odoo-python #: code:addons/sale/controllers/portal.py:0 msgid "Quotation viewed by customer %s" -msgstr "" +msgstr "Kotirovkaya müştəri %s baxdı" #. module: sale #: model:ir.actions.act_window,name:sale.action_quotations @@ -3755,22 +4108,22 @@ msgstr "Qiymət Təklifləri" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Quotations & Orders" -msgstr "" +msgstr "Sitatlar və Sifarişlər" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_report_quotation_salesteam msgid "Quotations Analysis" -msgstr "" +msgstr "Sitatların təhlili" #. module: sale #: model:ir.actions.act_window,name:sale.act_res_partner_2_sale_order msgid "Quotations and Sales" -msgstr "" +msgstr "Kotirovkalar və Satış" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_home_sale msgid "Quotations to review" -msgstr "" +msgstr "Nəzərdən keçirilməsi üçün sitatlar" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__rating_ids @@ -3781,13 +4134,13 @@ msgstr "Qiymətləndirmələr" #: model:ir.model.fields,field_description:sale.field_product_product__expense_policy #: model:ir.model.fields,field_description:sale.field_product_template__expense_policy msgid "Re-Invoice Costs" -msgstr "" +msgstr "Yenidən Faktura Xərcləri" #. module: sale #: model:ir.model.fields,field_description:sale.field_product_product__visible_expense_policy #: model:ir.model.fields,field_description:sale.field_product_template__visible_expense_policy msgid "Re-Invoice Policy visible" -msgstr "" +msgstr "Yenidən Faktura Siyasəti görünür" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_cancel__recipient_ids @@ -3797,32 +4150,32 @@ msgstr "Qəbuledicilər" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.product_template_view_form msgid "Recommend when 'Adding to Cart' or quotation" -msgstr "" +msgstr "'Səbətə əlavə edərkən' və ya sitat gətirərkən tövsiyə edin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Recompute all prices based on this pricelist" -msgstr "" +msgstr "Bu qiymət siyahısı əsasında bütün qiymətləri yenidən hesablayın" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Recompute all taxes based on this fiscal position" -msgstr "" +msgstr "Bu fiskal mövqeyə əsasən bütün vergiləri yenidən hesablayın" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__origin msgid "Reference of the document that generated this sales order request" -msgstr "" +msgstr "Bu satış sifarişi sorğusunu yaradan sənədə istinad" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_advance_payment_inv__advance_payment_method__delivered msgid "Regular invoice" -msgstr "" +msgstr "Adi faktura" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Reject This Quotation" -msgstr "" +msgstr "Bu Sitatı rədd edin" #. module: sale #. odoo-javascript @@ -3839,7 +4192,7 @@ msgstr "Birini Silin" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_cancel__render_model msgid "Rendering Model" -msgstr "" +msgstr "Render modeli" #. module: sale #: model:ir.ui.menu,name:sale.menu_sale_report @@ -3849,12 +4202,12 @@ msgstr "Hesabatlıq" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__require_payment msgid "Request a online payment from the customer to confirm the order." -msgstr "" +msgstr "Sifarişi təsdiqləmək üçün müştəridən onlayn ödəniş tələb edin." #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__require_signature msgid "Request a online signature from the customer to confirm the order." -msgstr "" +msgstr "Sifarişi təsdiqləmək üçün müştəridən onlayn imza tələb edin." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -3862,6 +4215,8 @@ msgid "" "Request a payment to confirm orders, in full (100%) or partial. The default " "can be changed per order or template." msgstr "" +"Sifarişləri tam (100%) və ya qismən təsdiqləmək üçün ödəniş tələb edin. " +"Standart sifariş və ya şablona görə dəyişdirilə bilər." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -3869,12 +4224,14 @@ msgid "" "Request customers to sign quotations to validate orders. The default can be " "changed per order or template." msgstr "" +"Sifarişləri təsdiqləmək üçün müştərilərdən kotirovkaları imzalamağı xahiş " +"edin. Standart sifariş və ya şablona görə dəyişdirilə bilər." #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "Requested date is too soon." -msgstr "" +msgstr "Tələb olunan tarix çox tezdir." #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__activity_user_id @@ -3885,6 +4242,8 @@ msgstr "Məsul İstifadəçi" #: model:ir.model.fields,help:sale.field_crm_team__invoiced_target msgid "Revenue Target for the current month (untaxed total of paid invoices)." msgstr "" +"Cari ay üçün Gəlir Hədəfi (ödənilmiş fakturaların vergiyə cəlb edilməmiş " +"cəmi)." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.utm_campaign_view_form @@ -3895,7 +4254,7 @@ msgstr "Gəlirlər" #. module: sale #: model:ir.model.fields,field_description:sale.field_utm_campaign__invoiced_amount msgid "Revenues generated by the campaign" -msgstr "" +msgstr "Kampaniya nəticəsində əldə edilən gəlirlər" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__message_has_sms_error @@ -3905,7 +4264,7 @@ msgstr "SMS-in Çatdırılmasında xəta" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document msgid "SO0000" -msgstr "" +msgstr "SO0000" #. module: sale #. odoo-javascript @@ -3916,12 +4275,12 @@ msgstr "Satış" #. module: sale #: model:ir.model.fields,field_description:sale.field_product_document__attached_on_sale msgid "Sale : Visible at" -msgstr "" +msgstr "Satılır: Görünür" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid "Sale Information" -msgstr "" +msgstr "Satış Məlumatı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_advance_payment_inv__sale_order_ids @@ -3937,17 +4296,17 @@ msgstr "Satış Sifarişi" #: model:ir.model.fields,field_description:sale.field_res_partner__sale_order_count #: model:ir.model.fields,field_description:sale.field_res_users__sale_order_count msgid "Sale Order Count" -msgstr "" +msgstr "Satış Sifarişi Sayı" #. module: sale #: model:ir.actions.act_window,name:sale.mail_activity_plan_action_sale_order msgid "Sale Order Plans" -msgstr "" +msgstr "Satış Sifariş Planları" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__group_warning_sale msgid "Sale Order Warnings" -msgstr "" +msgstr "Satış Sifarişləri Xəbərdarlıqları" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.account_invoice_form @@ -3957,22 +4316,22 @@ msgstr "Satiş Sifarişləri" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_mass_cancel_orders__sale_orders_count msgid "Sale Orders Count" -msgstr "" +msgstr "Satış Sifarişləri Sayı" #. module: sale #: model:ir.model,name:sale.model_sale_payment_provider_onboarding_wizard msgid "Sale Payment provider onboarding wizard" -msgstr "" +msgstr "Satış Ödəniş provayderinin işə başlama ustası" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Sale Warnings" -msgstr "" +msgstr "Satış Xəbərdarlıqları" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_company__sale_onboarding_payment_method msgid "Sale onboarding selected payment method" -msgstr "" +msgstr "Seçilmiş ödəniş üsulu ilə satış" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_mass_cancel_orders__sale_order_ids @@ -3994,7 +4353,7 @@ msgstr "Satışlar" #. module: sale #: model:ir.model,name:sale.model_sale_advance_payment_inv msgid "Sales Advance Payment Invoice" -msgstr "" +msgstr "Satış üçün əvvəlcədən ödəmə fakturası" #. module: sale #. odoo-python @@ -4012,12 +4371,12 @@ msgstr "Satışların Təhlili" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_report_customers msgid "Sales Analysis By Customers" -msgstr "" +msgstr "Müştərilər tərəfindən Satış Analizi" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_report_products msgid "Sales Analysis By Products" -msgstr "" +msgstr "Məhsullar üzrə Satış Analizi" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_report_salesperson @@ -4032,7 +4391,7 @@ msgstr "Satış Analizləri Hesabatı" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_sale_product_matrix msgid "Sales Grid Entry" -msgstr "" +msgstr "Satış şəbəkəsinə giriş" #. module: sale #. odoo-python @@ -4052,13 +4411,13 @@ msgstr "Satış Sifarişi" #. module: sale #: model:ir.model,name:sale.model_sale_order_cancel msgid "Sales Order Cancel" -msgstr "" +msgstr "Satış Sifarişini Ləğv et" #. module: sale #: model:mail.message.subtype,name:sale.mt_order_confirmed #: model:mail.message.subtype,name:sale.mt_salesteam_order_confirmed msgid "Sales Order Confirmed" -msgstr "" +msgstr "Satış Sifarişi Təsdiqləndi" #. module: sale #: model:ir.model.fields,field_description:sale.field_account_analytic_line__so_line @@ -4089,7 +4448,7 @@ msgstr "Satış Sifariş Sətirləri fakturaya hazırdır" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sales_order_line_filter msgid "Sales Order Lines related to a Sales Order of mine" -msgstr "" +msgstr "Mənim Satış Sifarişimlə əlaqəli Satış Sifariş Xətləri" #. module: sale #. odoo-python @@ -4149,6 +4508,9 @@ msgid "" "invoiced to your customer. Remove the sales order item for the timesheet " "entry to be non-billable." msgstr "" +"Müştərinizə faktura yazmaq üçün sərf olunan vaxtın əlavə ediləcəyi satış " +"sifarişi maddəsi. Qeyri-fakturalı olmaq üçün vaxt cədvəli girişi üçün satış " +"sifarişi elementini silin." #. module: sale #: model:ir.model.fields.selection,name:sale.selection__product_template__expense_policy__sales_price @@ -4232,7 +4594,7 @@ msgstr "Bir məhsul seçin və ya dərhal yenisini yaradın." #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__selected_combo_items msgid "Selected Combo Items" -msgstr "" +msgstr "Seçilmiş Kombo Elementlər" #. module: sale #: model:ir.model.fields,help:sale.field_product_product__sale_line_warn @@ -4251,27 +4613,29 @@ msgstr "" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Sell and purchase products in different units of measure" -msgstr "" +msgstr "Məhsulları müxtəlif ölçü vahidlərində satmaq və almaq" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Sell products by multiple of unit # per package" -msgstr "" +msgstr "Məhsulları paket başına # ədədinə görə satın" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Sell variants of a product using attributes (size, color, etc.)" msgstr "" +"Atributlardan (ölçü, rəng və s.) istifadə edərək məhsulun variantlarını " +"satmaq." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Send PRO-FORMA Invoice" -msgstr "" +msgstr "PRO-FORMA faktura göndərin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Send a product-specific email once the invoice is validated" -msgstr "" +msgstr "Faktura təsdiq edildikdən sonra məhsula xüsusi e-poçt göndərin" #. module: sale #: model:ir.actions.server,name:sale.model_sale_order_send_mail @@ -4281,7 +4645,7 @@ msgstr "E-məktub Göndərin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_cancel_view_form msgid "Send and cancel" -msgstr "" +msgstr "Göndər və ləğv et" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -4291,7 +4655,7 @@ msgstr "Emaillə Göndər" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_delivery_sendcloud msgid "Sendcloud Connector" -msgstr "" +msgstr "Sendcloud Konnektoru" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -4300,6 +4664,10 @@ msgid "" "content about a product (instructions, rules, links, media, etc.). Create " "and set the email template from the product detail form (in Accounting tab)." msgstr "" +"Məhsul haqqında xüsusi məlumat və ya məzmun (təlimatlar, qaydalar, keçidlər," +" media və s.) paylaşmaq lazımdırsa, e-poçt göndərmək faydalıdır. Məhsul " +"təfərrüatları formasından e-poçt şablonunu yaradın və təyin edin (Mühasibat " +"sekmesinde)." #. module: sale #: model:mail.template,description:sale.mail_template_sale_cancellation @@ -4309,7 +4677,7 @@ msgstr "Sifarişi ləğv etdiyiniz zaman avtomatik olaraq müştərilərə gönd #. module: sale #: model:mail.template,description:sale.mail_template_sale_confirmation msgid "Sent to customers on order confirmation" -msgstr "" +msgstr "Sifarişin təsdiqi ilə müştərilərə göndərilir" #. module: sale #: model:mail.template,description:sale.mail_template_sale_payment_executed @@ -4317,6 +4685,8 @@ msgid "" "Sent to customers when a payment is received but doesn't immediately confirm" " their order" msgstr "" +"Ödəniş alındıqda müştərilərə göndərilir, lakin onların sifarişini dərhal " +"təsdiq etmir" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__sequence @@ -4359,7 +4729,7 @@ msgstr "Təslimat Ünvanı" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_delivery_shiprocket msgid "Shiprocket Connector" -msgstr "" +msgstr "Shiprocket birləşdiricisi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sales_order_filter @@ -4369,7 +4739,7 @@ msgstr "Növbəti fəaliyyət tarixi bu günə qədər olan bütün qeydləri g #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form msgid "Show margins on orders" -msgstr "" +msgstr "Sifarişlərdə kənarları göstərin" #. module: sale #. odoo-python @@ -4380,46 +4750,46 @@ msgstr "Təklifə imza at və ödə" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Sign & Pay" -msgstr "" +msgstr "İmza & Ödəmək" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__res_company__sale_onboarding_payment_method__digital_signature msgid "Sign online" -msgstr "" +msgstr "Onlayn daxil olun" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__signature #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid "Signature" -msgstr "" +msgstr "İmza" #. module: sale #. odoo-python #: code:addons/sale/controllers/portal.py:0 msgid "Signature is missing." -msgstr "" +msgstr "İmza yoxdur." #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__signed_by msgid "Signed By" -msgstr "" +msgstr "İmzalı" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__signed_on msgid "Signed On" -msgstr "" +msgstr "Daxil olub" #. module: sale #: model:ir.model.fields,field_description:sale.field_product_product__sales_count #: model:ir.model.fields,field_description:sale.field_product_template__sales_count msgid "Sold" -msgstr "" +msgstr "Satıldı" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.product_form_view_sale_order_button #: model_terms:ir.ui.view,arch_db:sale.product_template_form_view_sale_order_button msgid "Sold in the last 365 days" -msgstr "" +msgstr "Son 365 gündə satılıb" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.mass_cancel_orders_view_form @@ -4427,12 +4797,14 @@ msgid "" "Some confirmed orders are selected. Their related documents might be\n" " affected by the cancellation." msgstr "" +"Bəzi təsdiqlənmiş sifarişlər seçilir. Onların əlaqəli sənədləri ola bilər\n" +" ləğv edilməsindən təsirlənir." #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "Some orders are not in a state requiring confirmation." -msgstr "" +msgstr "Bəzi sifarişlər təsdiq tələb edən vəziyyətdə deyil." #. module: sale #: model:ir.model.fields,field_description:sale.field_account_bank_statement_line__source_id @@ -4450,12 +4822,12 @@ msgstr "Mənbə Sənəd" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_product_email_template msgid "Specific Email" -msgstr "" +msgstr "Xüsusi E-poçt" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_delivery_starshipit msgid "Starshipit Connector" -msgstr "" +msgstr "Starshipit birləşdiricisi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__state @@ -4496,7 +4868,7 @@ msgstr "Yekun" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_report_view_tree msgid "Sum of Quantity" -msgstr "" +msgstr "Kəmiyyətin cəmi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_report_view_tree @@ -4514,6 +4886,8 @@ msgid "" "Sum of transactions made in through the online payment form that are in the " "state 'done' or 'authorized' and linked to this order." msgstr "" +"Onlayn ödəniş forması vasitəsilə edilən və bu sifarişlə əlaqələndirilmiş " +"\"bitmiş\" və ya \"səlahiyyətli\" vəziyyətdə olan əməliyyatların cəmi." #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__tag_ids @@ -4524,7 +4898,7 @@ msgstr "Etiketlər" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document msgid "Tax 15%" -msgstr "" +msgstr "Vergi 15%" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__tax_calculation_rounding_method @@ -4545,7 +4919,7 @@ msgstr "Vergi İD-si" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_tree msgid "Tax Total" -msgstr "" +msgstr "Vergi Cəmi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__tax_totals @@ -4568,7 +4942,7 @@ msgstr "Vergi" #. module: sale #: model:ir.model.fields,help:sale.field_sale_order_discount__tax_ids msgid "Taxes to add on the discount line." -msgstr "" +msgstr "Endirim xəttinə əlavə ediləcək vergilər." #. module: sale #. odoo-python @@ -4577,6 +4951,8 @@ msgid "" "Team %(team_name)s has %(sale_order_count)s active sale orders. Consider " "cancelling them or archiving the team instead." msgstr "" +"%(team_name)s komandasının %(sale_order_count)s aktiv satış sifarişi var. " +"Onları ləğv etməyi və ya əvəzinə komandanı arxivləşdirməyi düşünün." #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__technical_price_unit @@ -4616,7 +4992,7 @@ msgstr "Şərtlər və Qaydalar" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Terms and conditions..." -msgstr "" +msgstr "Qaydalar və şərtlər..." #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__country_code @@ -4634,6 +5010,8 @@ msgid "" "The Sales Order %(order)s to be reinvoiced is cancelled. You cannot register" " an expense on a cancelled Sales Order." msgstr "" +"Yenidən hesablanacaq Satış Sifarişi %(order)s ləğv edildi. Ləğv edilmiş " +"Satış Sifarişi üzrə xərcləri qeyd edə bilməzsiniz." #. module: sale #. odoo-python @@ -4642,6 +5020,8 @@ msgid "" "The Sales Order %(order)s to be reinvoiced is currently locked. You cannot " "register an expense on a locked Sales Order." msgstr "" +"Yenidən hesablanacaq Satış Sifarişi %(order)s hazırda kilidlənib. Siz " +"kilidlənmiş Satış Sifarişində xərcləri qeyd edə bilməzsiniz." #. module: sale #. odoo-python @@ -4650,6 +5030,8 @@ msgid "" "The Sales Order %(order)s to be reinvoiced must be validated before " "registering expenses." msgstr "" +"Yenidən hesablanacaq Satış Sifarişi %(order)s xərclər qeydə alınmazdan əvvəl" +" təsdiq edilməlidir." #. module: sale #. odoo-python @@ -4661,6 +5043,7 @@ msgstr "Giriş Tokeni işlək deyil." #: model:ir.model.fields,help:sale.field_sale_advance_payment_inv__amount_to_invoice msgid "The amount to invoice = Sale Order Total - Confirmed Down Payments." msgstr "" +"Faktura məbləği = Satış Sifarişinin Cəmi - Təsdiqlənmiş İlkin Ödənişlər." #. module: sale #. odoo-python @@ -4669,6 +5052,8 @@ msgid "" "The company is required, please select one before making any other changes " "to the sale order." msgstr "" +"Şirkət tələb olunur, lütfən, satış sifarişinə başqa dəyişikliklər etməzdən " +"əvvəl birini seçin." #. module: sale #. odoo-python @@ -4677,11 +5062,13 @@ msgid "" "The delivery date is sooner than the expected date. You may be unable to " "honor the delivery date." msgstr "" +"Çatdırılma tarixi gözlənilən tarixdən tezdir. Çatdırılma tarixinə riayət edə" +" bilməyəcəksiniz." #. module: sale #: model:ir.model.fields,help:sale.field_sale_advance_payment_inv__fixed_amount msgid "The fixed amount to be invoiced in advance." -msgstr "" +msgstr "Əvvəlcədən hesab-fakturaya göndəriləcək sabit məbləğ." #. module: sale #. odoo-python @@ -4691,6 +5078,9 @@ msgid "" "%(used_products)s\n" "You can archive these products and recreate them with your company restriction instead, or leave them as shared product." msgstr "" +"Aşağıdakı məhsullar %(company)s şirkəti ilə məhdudlaşdırıla bilməz, çünki onlar artıq başqa şirkətdə kotirovkalarda və ya satış sifarişlərində istifadə olunub:\n" +"%(used_products)s\n" +"Siz bu məhsulları arxivləşdirə və əvəzində şirkət məhdudiyyətinizlə yenidən yarada və ya paylaşılan məhsul kimi buraxa bilərsiniz." #. module: sale #: model:ir.model.fields,help:sale.field_res_config_settings__automatic_invoice @@ -4699,6 +5089,9 @@ msgid "" "The invoice is marked as paid and the payment is registered in the payment journal defined in the configuration of the payment provider.\n" "This mode is advised if you issue the final invoice at the order and not after the delivery." msgstr "" +"Hesab-faktura avtomatik olaraq yaradılır və əməliyyat ödəniş provayderi tərəfindən təsdiq edildikdən sonra müştəri portalında mövcuddur.\n" +"Faktura ödənilmiş kimi qeyd olunur və ödəniş ödəniş provayderinin konfiqurasiyasında müəyyən edilmiş ödəniş jurnalında qeydə alınır.\n" +"Son fakturanı çatdırılmadan sonra deyil, sifariş zamanı versəniz, bu rejim tövsiyə olunur." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -4706,11 +5099,13 @@ msgid "" "The margin is computed as the sum of product sales prices minus the cost set" " in their detail form." msgstr "" +"Marja məhsulun satış qiymətlərinin onların təfərrüat formasında müəyyən " +"edilmiş dəyəri çıxılmaqla cəmi kimi hesablanır." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sale_advance_payment_inv msgid "The new invoice will deduct draft invoices linked to this sale order." -msgstr "" +msgstr "Yeni faktura bu satış sifarişi ilə əlaqəli qaimə-fakturaları çıxacaq." #. module: sale #. odoo-python @@ -4719,28 +5114,30 @@ msgid "" "The number of selected combo items must match the number of available combo " "choices." msgstr "" +"Seçilmiş kombinasiya elementlərinin sayı mövcud kombo seçimlərinin sayına " +"uyğun olmalıdır." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "The order is not in a state requiring customer payment." -msgstr "" +msgstr "Sifariş müştəri ödənişini tələb edən vəziyyətdə deyil." #. module: sale #. odoo-python #: code:addons/sale/controllers/portal.py:0 msgid "The order is not in a state requiring customer signature." -msgstr "" +msgstr "Sifariş müştərinin imzasını tələb edən vəziyyətdə deyil." #. module: sale #. odoo-python #: code:addons/sale/models/sale_order_line.py:0 msgid "The ordered quantity has been updated." -msgstr "" +msgstr "Sifariş edilən miqdar yeniləndi." #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__reference msgid "The payment communication of this sale order." -msgstr "" +msgstr "Bu satış sifarişinin ödəniş rabitəsi." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document @@ -4750,7 +5147,7 @@ msgstr "Ödəniş sevgi ilə də göndərilməlidir" #. module: sale #: model:ir.model.fields,help:sale.field_sale_advance_payment_inv__amount msgid "The percentage of amount to be invoiced in advance." -msgstr "" +msgstr "Əvvəlcədən hesablanacaq məbləğin faizi." #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__prepayment_percent @@ -4758,45 +5155,47 @@ msgid "" "The percentage of the amount needed that must be paid by the customer to " "confirm the order." msgstr "" +"Sifarişi təsdiqləmək üçün müştəri tərəfindən ödənilməli olan tələb olunan " +"məbləğin faizi." #. module: sale #: model:ir.model.fields,help:sale.field_res_company__prepayment_percent #: model:ir.model.fields,help:sale.field_res_config_settings__prepayment_percent msgid "The percentage of the amount needed to be paid to confirm quotations." -msgstr "" +msgstr "Kotirovkaları təsdiqləmək üçün ödənilməli olan məbləğin faizi." #. module: sale #. odoo-python #: code:addons/sale/models/product_template.py:0 msgid "The product (%(product)s) has incompatible values: %(value_list)s" -msgstr "" +msgstr "Məhsulun (%(product)s) uyğun olmayan dəyərləri var: %(value_list)s" #. module: sale #. odoo-python #: code:addons/sale/controllers/portal.py:0 msgid "The provided parameters are invalid." -msgstr "" +msgstr "Təqdim olunan parametrlər etibarsızdır." #. module: sale #. odoo-python #: code:addons/sale/wizard/sale_make_invoice_advance.py:0 msgid "The value of the down payment amount must be positive." -msgstr "" +msgstr "İlkin ödəniş məbləğinin dəyəri müsbət olmalıdır." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_quotations msgid "There are currently no quotations for your account." -msgstr "" +msgstr "Hesabınız üçün hazırda heç bir kotirovka yoxdur." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_orders msgid "There are currently no sales orders for your account." -msgstr "" +msgstr "Hazırda hesabınız üçün heç bir satış sifarişi yoxdur." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_sale_advance_payment_inv msgid "There are existing" -msgstr "" +msgstr "Mövcudlar var" #. module: sale #. odoo-python @@ -4806,11 +5205,14 @@ msgid "" "yet. You can either use a per-line discount, or ask an administrator to " "grant the discount the first time." msgstr "" +"Hələlik bu şirkət üçün konfiqurasiya edilmiş endirim məhsulu yoxdur. Siz ya " +"hər sətir endirimindən istifadə edə bilərsiniz, ya da ilk dəfə endirimin " +"verilməsini administratordan xahiş edə bilərsiniz." #. module: sale #: model:ir.model.fields,help:sale.field_product_category__property_account_downpayment_categ_id msgid "This account will be used on Downpayment invoices." -msgstr "" +msgstr "Bu hesab İlkin Ödəniş fakturalarında istifadə olunacaq." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -4838,6 +5240,9 @@ msgid "" "This is the delivery date promised to the customer. If set, the delivery " "order will be scheduled based on this date rather than product lead times." msgstr "" +"Bu, müştəriyə vəd edilən çatdırılma tarixidir. Əgər təyin edilərsə, " +"çatdırılma sifarişi məhsulun çatdırılma vaxtlarına deyil, bu tarixə əsasən " +"planlaşdırılacaq." #. module: sale #: model:ir.model.fields,help:sale.field_account_bank_statement_line__medium_id @@ -4861,13 +5266,13 @@ msgstr "" #. odoo-javascript #: code:addons/sale/static/src/js/product/product.xml:0 msgid "This option or combination of options is not available" -msgstr "" +msgstr "Bu seçim və ya seçimlərin birləşməsi mövcud deyil" #. module: sale #. odoo-python #: code:addons/sale/wizard/payment_link_wizard.py:0 msgid "This payment will confirm the quotation." -msgstr "" +msgstr "Bu ödəniş kotirovkanı təsdiq edəcək." #. module: sale #. odoo-python @@ -4876,6 +5281,8 @@ msgid "" "This product is packaged by %(pack_size).2f %(pack_name)s. You should sell " "%(quantity).2f %(unit)s." msgstr "" +"Bu məhsul %(pack_size).2f %(pack_name)s tərəfindən qablaşdırılıb. Siz " +"%(quantity).2f %(unit)s satmalısınız." #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_order_report_all @@ -4889,6 +5296,12 @@ msgid "" "having invoiced yet. If you want to analyse your turnover, you should use " "the Invoice Analysis report in the Accounting application." msgstr "" +"Bu hesabat kotirovkalarınız və satış sifarişləriniz üzrə təhlil aparır. " +"Analiz satış gəlirlərinizi yoxlayın və onu müxtəlif qrup meyarlarına görə " +"çeşidləyin (satıcı, tərəfdaş, məhsul və s.) Bu hesabatdan hələ fakturasız " +"satışlar üzrə təhlil aparmaq üçün istifadə edin. Əgər dövriyyənizi təhlil " +"etmək istəyirsinizsə, Mühasibat proqramında Faktura Təhlili hesabatından " +"istifadə etməlisiniz." #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_order_report_quotation_salesteam @@ -4899,6 +5312,11 @@ msgid "" "invoiced yet. If you want to analyse your turnover, you should use the " "Invoice Analysis report in the Accounting application." msgstr "" +"Bu hesabat kotirovkalarınız üzrə təhlil aparır. Analiz satış gəlirlərinizi " +"yoxlayın və onu müxtəlif qrup meyarlarına (satıcı, partnyor, məhsul və s.) " +"görə çeşidləyin. Hələ fakturasız satışlar üzrə təhlil aparmaq üçün bu " +"hesabatdan istifadə edin. Əgər dövriyyənizi təhlil etmək istəyirsinizsə, " +"Mühasibat proqramında Faktura Təhlili hesabatından istifadə etməlisiniz." #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_order_report_so_salesteam @@ -4909,18 +5327,27 @@ msgid "" "invoiced yet. If you want to analyse your turnover, you should use the " "Invoice Analysis report in the Accounting application." msgstr "" +"Bu hesabat satış sifarişləriniz üzrə təhlil aparır. Analiz satış " +"gəlirlərinizi yoxlayın və onu müxtəlif qrup meyarlarına görə çeşidləyin " +"(satıcı, tərəfdaş, məhsul və s.) Bu hesabatdan hələ fakturasız satışlar üzrə" +" təhlil aparmaq üçün istifadə edin. Əgər dövriyyənizi təhlil etmək " +"istəyirsinizsə, Mühasibat proqramında Faktura Təhlili hesabatından istifadə " +"etməlisiniz." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "" "This will update all taxes based on the currently selected fiscal position." msgstr "" +"Bu, hazırda seçilmiş fiskal mövqeyə əsasən bütün vergiləri yeniləyəcək." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "" "This will update the unit price of all products based on the new pricelist." msgstr "" +"Bu, yeni qiymət siyahısı əsasında bütün məhsulların vahid qiymətini " +"yeniləyəcək." #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_order__invoice_status__to_invoice @@ -4937,7 +5364,7 @@ msgstr "Hesab-fakturaya" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_view_search_inherit_sale msgid "To Upsell" -msgstr "" +msgstr "Satışa" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -4968,17 +5395,17 @@ msgstr "Cəmi" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__price_tax msgid "Total Tax" -msgstr "" +msgstr "Cəmi vergi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_tree msgid "Total Tax Excluded" -msgstr "" +msgstr "Ümumi Vergi xaric" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_tree msgid "Total Tax Included" -msgstr "" +msgstr "Ümumi Vergi Daxildir" #. module: sale #. odoo-javascript @@ -4991,7 +5418,7 @@ msgstr "Cəmi: %s" #: model:ir.model.fields,field_description:sale.field_product_product__service_type #: model:ir.model.fields,field_description:sale.field_product_template__service_type msgid "Track Service" -msgstr "" +msgstr "İzləmə Xidməti" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -5022,22 +5449,22 @@ msgstr "Qeyddəki istisna fəaliyyət növü." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Type to find a customer..." -msgstr "" +msgstr "Müştəri tapmaq üçün yazın..." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Type to find a product..." -msgstr "" +msgstr "Məhsul tapmaq üçün yazın..." #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_delivery_ups msgid "UPS Connector" -msgstr "" +msgstr "UPS Konnektoru" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_delivery_usps msgid "USPS Connector" -msgstr "" +msgstr "USPS birləşdiricisi" #. module: sale #: model:ir.model,name:sale.model_utm_campaign @@ -5048,7 +5475,7 @@ msgstr "Kampaniyanın UTM kodu" #: model:ir.model.fields,field_description:sale.field_sale_order__amount_to_invoice #: model:ir.model.fields,field_description:sale.field_sale_order_line__amount_to_invoice msgid "Un-invoiced Balance" -msgstr "" +msgstr "Fakturasız Balans" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__price_unit @@ -5116,7 +5543,7 @@ msgstr "Vergiləndirilməmiş Cəmi Məbləğ" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_line_wizard_form msgid "Untaxed discount" -msgstr "" +msgstr "Vergisiz endirim" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form @@ -5126,18 +5553,18 @@ msgstr "Ölçü Vahidi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Update Prices" -msgstr "" +msgstr "Qiymətləri Yeniləyin" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Update Taxes" -msgstr "" +msgstr "Vergiləri yeniləyin" #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "Upsell %(order)s for customer %(customer)s" -msgstr "" +msgstr "%(customer)s müştəri üçün %(order)s satışını artırın" #. module: sale #: model:ir.model.fields.selection,name:sale.selection__sale_order__invoice_status__upselling @@ -5145,12 +5572,14 @@ msgstr "" #: model:ir.model.fields.selection,name:sale.selection__sale_report__invoice_status__upselling #: model:ir.model.fields.selection,name:sale.selection__sale_report__line_invoice_status__upselling msgid "Upselling Opportunity" -msgstr "" +msgstr "Satış fürsəti" #. module: sale #: model:mail.template,description:sale.email_template_edi_sale msgid "Used by salespeople when they send quotations or proforma to prospects" msgstr "" +"Satış işçiləri tərəfindən perspektivlərə kotirovkalar və ya proforma " +"göndərildikdə istifadə olunur" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_quotations @@ -5160,7 +5589,7 @@ msgstr "Etibarlılıq Müddəti" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Validate Order" -msgstr "" +msgstr "Sifarişi təsdiqləyin" #. module: sale #: model:ir.model.fields,help:sale.field_product_product__expense_policy @@ -5169,6 +5598,9 @@ msgid "" "Validated expenses, vendor bills, or stock pickings (set up to track costs) " "can be invoiced to the customer at either cost or sales price." msgstr "" +"Təsdiq edilmiş xərclər, satıcı fakturaları və ya səhm seçimləri (xərcləri " +"izləmək üçün qurulmuşdur) müştəriyə ya dəyəri, həm də satış qiyməti ilə " +"hesablana bilər." #. module: sale #: model:ir.model.fields,help:sale.field_sale_order__validity_date @@ -5176,6 +5608,8 @@ msgid "" "Validity of the order, after that you will not able to sign & pay the " "quotation." msgstr "" +"Sifarişin etibarlılığı, bundan sonra siz kotirovkanı imzalaya və ödəyə " +"bilməyəcəksiniz." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_config_settings_view_form @@ -5185,29 +5619,29 @@ msgstr "Variant Şəbəkə Girişi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "View Details" -msgstr "" +msgstr "Daha ətraflı" #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "View Order" -msgstr "" +msgstr "Sifarişə Baxın" #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "View Quotation" -msgstr "" +msgstr "Sitata Baxın" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_line__virtual_id msgid "Virtual" -msgstr "" +msgstr "Virtual" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Void Transaction" -msgstr "" +msgstr "Etibarsız Əməliyyat" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_report__volume @@ -5238,17 +5672,17 @@ msgstr "%s üçün xəbərdarlıq" #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "Warning for the change of your quotation's company" -msgstr "" +msgstr "Kotirovka şirkətinin dəyişdirilməsi ilə bağlı xəbərdarlıq" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.res_partner_view_buttons msgid "Warning on the Sales Order" -msgstr "" +msgstr "Satış Sifarişi ilə bağlı xəbərdarlıq" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.product_template_form_view msgid "Warning when Selling this Product" -msgstr "" +msgstr "Bu məhsulu satarkən xəbərdarlıq" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order__website_message_ids @@ -5264,7 +5698,7 @@ msgstr "Veb saytın kommunikasiya tarixçəsi" #. odoo-python #: code:addons/sale/models/product_template.py:0 msgid "You can invoice goods before they are delivered." -msgstr "" +msgstr "Malları çatdırılmadan əvvəl faktura edə bilərsiniz." #. module: sale #. odoo-python @@ -5273,6 +5707,8 @@ msgid "" "You can not delete a sent quotation or a confirmed sales order. You must " "first cancel it." msgstr "" +"Siz göndərilmiş kotirovkanı və ya təsdiqlənmiş satış sifarişini silə " +"bilməzsiniz. Əvvəlcə onu ləğv etməlisiniz." #. module: sale #: model_terms:ir.actions.act_window,help:sale.action_orders_to_invoice @@ -5280,6 +5716,8 @@ msgid "" "You can select all orders and invoice them in batch,
\n" " or check every order and invoice them one by one." msgstr "" +"Siz bütün sifarişləri seçə və toplu olaraq hesab-faktura verə " +"bilərsiniz,
və ya hər sifarişi yoxlayın və onları bir-bir hesablayın." #. module: sale #: model:ir.model.fields,help:sale.field_payment_provider__so_reference_type @@ -5288,18 +5726,22 @@ msgid "" " communication will be given to the customer when they choose the payment " "method." msgstr "" +"Siz burada satış sifarişlərində görünəcək rabitə növünü təyin edə " +"bilərsiniz. Müştəri ödəniş üsulunu seçdiyi zaman rabitə ona veriləcək." #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "You cannot cancel a locked order. Please unlock it first." msgstr "" +"Siz kilidlənmiş sifarişi ləğv edə bilməzsiniz. Zəhmət olmasa əvvəlcə " +"kilidini açın." #. module: sale #. odoo-python #: code:addons/sale/models/sale_order.py:0 msgid "You cannot change the pricelist of a confirmed order !" -msgstr "" +msgstr "Siz təsdiqlənmiş sifarişin qiymət siyahısını dəyişə bilməzsiniz!" #. module: sale #. odoo-python @@ -5309,6 +5751,8 @@ msgid "" "You cannot change the product's type because it is already used in sales " "orders." msgstr "" +"Siz məhsulun növünü dəyişə bilməzsiniz, çünki o, artıq satış sifarişlərində " +"istifadə olunur." #. module: sale #. odoo-python @@ -5317,6 +5761,8 @@ msgid "" "You cannot change the type of a sale order line. Instead you should delete " "the current line and create a new line of the proper type." msgstr "" +"Siz satış sifarişi xəttinin növünü dəyişə bilməzsiniz. Bunun əvəzinə cari " +"xətti silməli və uyğun tipdə yeni bir xətt yaratmalısınız." #. module: sale #: model:ir.model.constraint,message:sale.constraint_res_company_check_quotation_validity_days @@ -5324,6 +5770,8 @@ msgid "" "You cannot set a negative number for the default quotation validity. Leave " "empty (or 0) to disable the automatic expiration of quotations." msgstr "" +"Defolt kotirovka etibarlılığı üçün mənfi rəqəm təyin edə bilməzsiniz. " +"Kotirovkaların avtomatik bitməsini söndürmək üçün boş (və ya 0) qoyun." #. module: sale #: model_terms:ir.actions.act_window,help:sale.product_template_action @@ -5338,43 +5786,44 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:sale.portal_my_home_sale #: model_terms:ir.ui.view,arch_db:sale.portal_my_orders msgid "Your Orders" -msgstr "" +msgstr "Sifarişləriniz" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_content msgid "Your Reference:" -msgstr "" +msgstr "Referansınız:" #. module: sale #. odoo-javascript #: code:addons/sale/static/src/js/sale_action_helper/sale_action_helper_dialog.xml:0 msgid "Your browser does not support iframe." -msgstr "" +msgstr "Brauzeriniz iframe-i dəstəkləmir." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Your feedback..." -msgstr "" +msgstr "Rəyiniz..." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Your order has been confirmed." -msgstr "" +msgstr "Sifarişiniz təsdiqləndi." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Your order has been signed but still needs to be paid to be confirmed." msgstr "" +"Sifarişiniz imzalanıb, lakin təsdiqlənmək üçün hələ də ödəniş edilməlidir." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Your order has been signed." -msgstr "" +msgstr "Sifarişiniz imzalanıb." #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "Your order is not in a state to be rejected." -msgstr "" +msgstr "Sifarişiniz rədd ediləcək vəziyyətdə deyil." #. module: sale #. odoo-python @@ -5383,22 +5832,24 @@ msgid "" "Your quotation contains products from company %(product_company)s whereas your quotation belongs to company %(quote_company)s. \n" " Please change the company of your quotation or remove the products from other companies (%(bad_products)s)." msgstr "" +"Kotirovkanızda %(product_company)s şirkətinin məhsulları var, təklifiniz isə %(quote_company)s şirkətinə aiddir. \n" +" Lütfən, təklif etdiyiniz şirkətin adını dəyişin və ya məhsulları digər şirkətlərdən çıxarın (%(bad_products)s)." #. module: sale #. odoo-javascript #: code:addons/sale/static/src/js/tours/sale.js:0 msgid "add the price of your product." -msgstr "" +msgstr "məhsulunuzun qiymətini əlavə edin." #. module: sale #: model:ir.actions.server,name:sale.send_invoice_cron_ir_actions_server msgid "automatic invoicing: send ready invoice" -msgstr "" +msgstr "avtomatik faktura: hazır faktura göndərin" #. module: sale #: model:ir.model.fields,field_description:sale.field_res_config_settings__module_delivery_bpost msgid "bpost Connector" -msgstr "" +msgstr "bpost birləşdiricisi" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template @@ -5444,6 +5895,8 @@ msgid "" "selected\n" " items?" msgstr "" +"seçilmişdir\n" +" məhsullar?" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.report_saleorder_document @@ -5453,7 +5906,7 @@ msgstr "ədədlər" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.sale_order_portal_template msgid "you confirm acceptance on the behalf of" -msgstr "" +msgstr "adından qəbul etdiyinizi təsdiq edirsiniz" #. module: sale #: model:mail.template,subject:sale.mail_template_sale_confirmation diff --git a/addons/sale/i18n/el.po b/addons/sale/i18n/el.po index db35d563f1d89..a6c8caed8d8c4 100644 --- a/addons/sale/i18n/el.po +++ b/addons/sale/i18n/el.po @@ -4596,7 +4596,7 @@ msgstr "" #. odoo-python #: code:addons/sale/controllers/portal.py:0 msgid "The access token is invalid." -msgstr "" +msgstr "Ο κωδικός ασφαλείας πρόσβασης είναι άκυρος." #. module: sale #: model:ir.model.fields,help:sale.field_sale_advance_payment_inv__amount_to_invoice @@ -4718,7 +4718,7 @@ msgstr "" #. odoo-python #: code:addons/sale/controllers/portal.py:0 msgid "The provided parameters are invalid." -msgstr "" +msgstr "Οι παρεχόμενες παράμετροι είναι άκυρες." #. module: sale #. odoo-python diff --git a/addons/sale/i18n/it.po b/addons/sale/i18n/it.po index 1b1aafb2087ce..51f69abf4c22a 100644 --- a/addons/sale/i18n/it.po +++ b/addons/sale/i18n/it.po @@ -5940,9 +5940,9 @@ msgid "" "(ctx.get('proforma') and 'Proforma' or 'Quotation') or 'Order' }} (Ref {{ " "object.name or 'n/a' }})" msgstr "" -"{{ object.state in ('draft', 'sent') and (ctx.get('proforma') and 'Proforma'" -" or 'Preventivo') or 'Ordine' }} {{ object.company_id.name }} (Ref {{ " -"object.name or 'n/d' }})" +"{{ object.company_id.name }} {{ object.state in ('draft', 'sent') and " +"(ctx.get('proforma') and 'Proforma' or 'Quotation') or 'Order' }} (Ref {{ " +"object.name or 'n/a' }})" #. module: sale #: model:mail.template,subject:sale.mail_template_sale_cancellation diff --git a/addons/sale/i18n/ja.po b/addons/sale/i18n/ja.po index 3f0bee96d2263..636f08b0d41c7 100644 --- a/addons/sale/i18n/ja.po +++ b/addons/sale/i18n/ja.po @@ -2941,7 +2941,7 @@ msgstr "仕訳" #. module: sale #: model:ir.model,name:sale.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: sale #: model:ir.model.fields,field_description:sale.field_sale_order_cancel__lang diff --git a/addons/sale/i18n/sk.po b/addons/sale/i18n/sk.po index 62f8634946cde..0246e8d8304e9 100644 --- a/addons/sale/i18n/sk.po +++ b/addons/sale/i18n/sk.po @@ -883,7 +883,7 @@ msgstr "" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form msgid "Add product" -msgstr "" +msgstr "Pridať produkt" #. module: sale #: model_terms:ir.ui.view,arch_db:sale.view_order_form diff --git a/addons/sale_expense/i18n/az.po b/addons/sale_expense/i18n/az.po index a94d787413b9b..f17a320565543 100644 --- a/addons/sale_expense/i18n/az.po +++ b/addons/sale_expense/i18n/az.po @@ -123,7 +123,7 @@ msgstr "" #. module: sale_expense #: model:ir.model.fields,field_description:sale_expense.field_hr_expense_sheet__sale_order_count msgid "Sale Order Count" -msgstr "" +msgstr "Satış Sifarişi Sayı" #. module: sale_expense #: model:ir.model,name:sale_expense.model_sale_order diff --git a/addons/sale_expense/i18n/ja.po b/addons/sale_expense/i18n/ja.po index 653ff0dbc65ba..fb171abc26073 100644 --- a/addons/sale_expense/i18n/ja.po +++ b/addons/sale_expense/i18n/ja.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-05 12:32+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -105,7 +106,7 @@ msgstr "仕訳" #. module: sale_expense #: model:ir.model,name:sale_expense.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: sale_expense #: model:ir.model,name:sale_expense.model_product_template diff --git a/addons/sale_expense_margin/i18n/ja.po b/addons/sale_expense_margin/i18n/ja.po index 8a7a48f427851..7767ca0392c91 100644 --- a/addons/sale_expense_margin/i18n/ja.po +++ b/addons/sale_expense_margin/i18n/ja.po @@ -4,6 +4,7 @@ # # Translators: # Wil Odoo, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -11,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-26 21:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Wil Odoo, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,7 +28,7 @@ msgstr "費用" #. module: sale_expense_margin #: model:ir.model,name:sale_expense_margin.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: sale_expense_margin #: model:ir.model,name:sale_expense_margin.model_sale_order_line diff --git a/addons/sale_loyalty/i18n/az.po b/addons/sale_loyalty/i18n/az.po index 4461e898faac7..bd367d519f1eb 100644 --- a/addons/sale_loyalty/i18n/az.po +++ b/addons/sale_loyalty/i18n/az.po @@ -3,9 +3,9 @@ # * sale_loyalty # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -102,7 +102,7 @@ msgstr "" #. module: sale_loyalty #: model_terms:ir.ui.view,arch_db:sale_loyalty.sale_loyalty_reward_wizard_view_form msgid "Coupons & Loyalty" -msgstr "" +msgstr "Kuponlar və Sadiqlik" #. module: sale_loyalty #: model:ir.model.fields,field_description:sale_loyalty.field_sale_loyalty_coupon_wizard__create_uid @@ -128,7 +128,7 @@ msgstr "Ləğv edin" #. odoo-python #: code:addons/sale_loyalty/models/sale_order.py:0 msgid "Discount %(desc)s%(tax_str)s" -msgstr "" +msgstr "Endirim %(desc)s%(tax_str)s" #. module: sale_loyalty #: model:ir.ui.menu,name:sale_loyalty.menu_discount_loyalty_type_config diff --git a/addons/sale_management/i18n/az.po b/addons/sale_management/i18n/az.po index 9eb3034fdc045..f8667b22ac851 100644 --- a/addons/sale_management/i18n/az.po +++ b/addons/sale_management/i18n/az.po @@ -24,17 +24,17 @@ msgstr "" #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.report_saleorder_document_inherit_sale_management msgid "1.5" -msgstr "" +msgstr "1.5" #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.sale_order_portal_content_inherit_sale_management msgid "Add to order" -msgstr "" +msgstr "Sifarişə əlavə edin" #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.sale_order_template_view_form msgid "of" -msgstr "" +msgstr "" #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.report_saleorder_document_inherit_sale_management @@ -172,7 +172,7 @@ msgstr "Defolt Şablon" #: model_terms:ir.ui.view,arch_db:sale_management.report_saleorder_document_inherit_sale_management #: model_terms:ir.ui.view,arch_db:sale_management.sale_order_template_view_form msgid "Description" -msgstr "Təsvir" +msgstr "Açıqlama" #. module: sale_management #: model:ir.model,name:sale_management.model_digest_digest @@ -215,12 +215,14 @@ msgstr "" #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.report_saleorder_document_inherit_sale_management msgid "Extra Chips" -msgstr "" +msgstr "Əlavə çiplər" #. module: sale_management #: model:ir.model.constraint,message:sale_management.constraint_sale_order_template_line_non_accountable_fields_null msgid "Forbidden product, quantity and UoM on non-accountable sale quote line" msgstr "" +"Qeyri-məsuliyyətli satış təklifi xəttində qadağan olunmuş məhsul, miqdar və " +"UoM" #. module: sale_management #: model:ir.model.fields,help:sale_management.field_sale_order_option__sequence @@ -251,6 +253,8 @@ msgid "" "If set, SO with this template will invoice in this journal; otherwise the " "sales journal with the lowest sequence is used." msgstr "" +"Əgər təyin edilərsə, bu şablonla SO bu jurnalda faktura verəcək; əks halda " +"ən aşağı ardıcıllıqla satış jurnalından istifadə edilir." #. module: sale_management #: model:ir.model.fields,help:sale_management.field_sale_order_template__active @@ -263,7 +267,7 @@ msgstr "" #. module: sale_management #: model:ir.model.fields,field_description:sale_management.field_sale_order_template__journal_id msgid "Invoicing Journal" -msgstr "" +msgstr "Faktura jurnalı" #. module: sale_management #: model:ir.model.fields,field_description:sale_management.field_digest_digest__kpi_all_sale_total_value @@ -300,7 +304,7 @@ msgstr "Sətirlər" #. module: sale_management #: model:ir.model.constraint,message:sale_management.constraint_sale_order_template_line_accountable_product_id_required msgid "Missing required product and UoM on accountable sale quote line." -msgstr "" +msgstr "Hesabatlı satış təklifi xəttində tələb olunan məhsul və UoM çatışmır." #. module: sale_management #: model:ir.model.fields.selection,name:sale_management.selection__sale_order_template_line__display_type__line_note @@ -344,18 +348,18 @@ msgstr "Seçimlər" #. module: sale_management #: model:ir.model.fields,field_description:sale_management.field_sale_order_template__prepayment_percent msgid "Prepayment percentage" -msgstr "" +msgstr "İlkin ödəniş faizi" #. module: sale_management #. odoo-python #: code:addons/sale_management/models/sale_order_template.py:0 msgid "Prepayment percentage must be a valid percentage." -msgstr "" +msgstr "İlkin ödəniş faizi etibarlı faiz olmalıdır." #. module: sale_management #: model:ir.model.fields,field_description:sale_management.field_sale_order_option__is_present msgid "Present on Quotation" -msgstr "" +msgstr "Təklif üzrə təqdim edin" #. module: sale_management #: model:ir.model.fields,field_description:sale_management.field_sale_order_option__product_id @@ -424,7 +428,7 @@ msgstr "Təklif Şablonları" #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.sale_order_template_view_form msgid "Quotation Validity" -msgstr "" +msgstr "Təklifin Etibarlılığı" #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.sale_order_portal_content_inherit_sale_management @@ -501,6 +505,9 @@ msgid "" "and populate your orders with multiple quantities of each variant. This " "feature also exists in the Purchase application." msgstr "" +"Eyni məhsulu müxtəlif ölçülərdə və ya rənglərdə satırsınız? Məhsul " +"şəbəkəsini sınayın və sifarişlərinizi hər bir variantın çoxlu miqdarı ilə " +"doldurun. Bu xüsusiyyət Satınalma proqramında da mövcuddur." #. module: sale_management #: model:ir.model.fields,field_description:sale_management.field_sale_order_option__sequence @@ -516,6 +523,10 @@ msgid "" "to help sales configure a product with different options: colors, size, " "capacity, etc. Make sale orders encoding easier and error-proof." msgstr "" +"Mürəkkəb bir məhsul kataloqu ilə mübarizə aparırsınız? Satışlara məhsulu " +"müxtəlif variantlarla konfiqurasiya etməkdə kömək etmək üçün Məhsul " +"Konfiquratorunu sınayın: rənglər, ölçülər, tutumlar və s. Satış " +"sifarişlərinin kodlaşdırılmasını asanlaşdırın və səhvsiz edin." #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.sale_order_template_view_form @@ -533,11 +544,14 @@ msgid "" "The Administrator can set default Terms & Conditions in Sales Settings. " "Terms set here will show up instead if you select this quotation template." msgstr "" +"Administrator defolt Şərtlər və Şərtləri Satış Parametrlərində təyin edə " +"bilər. Bu kotirovka şablonunu seçsəniz, burada təyin edilmiş şərtlər əvəzinə" +" görünəcək." #. module: sale_management #: model:ir.model.fields,help:sale_management.field_sale_order_template__prepayment_percent msgid "The percentage of the amount needed to be paid to confirm quotations." -msgstr "" +msgstr "Kotirovkaları təsdiqləmək üçün ödənilməli olan məbləğin faizi." #. module: sale_management #: model:ir.model.fields,help:sale_management.field_sale_order_template__mail_template_id @@ -553,7 +567,7 @@ msgstr "" msgid "" "This field will be checked if the option line's product is already present " "in the quotation." -msgstr "" +msgstr "Seçim xəttinin məhsulu kotirovkada artıq varsa, bu sahə yoxlanılacaq." #. module: sale_management #: model:digest.tip,name:sale_management.digest_tip_sale1_management_0 @@ -598,6 +612,9 @@ msgid "" " Send these quotes by email and let your customers sign online.\n" " Use cross-selling and discounts to push and boost your sales." msgstr "" +"Bir neçə dəqiqə ərzində cilalanmış, peşəkar sitatlar yaratmaq üçün şablonlardan istifadə edin.\n" +" Bu sitatları e-poçtla göndərin və müştərilərinizin onlayn imzalamasına icazə verin.\n" +" Satışlarınızı artırmaq və artırmaq üçün çarpaz satış və endirimlərdən istifadə edin." #. module: sale_management #. odoo-python @@ -622,6 +639,8 @@ msgid "" "Your quotation contains products from company %(product_company)s whereas your quotation belongs to company %(quote_company)s. \n" " Please change the company of your quotation or remove the products from other companies (%(bad_products)s)." msgstr "" +"Kotirovkanızda %(product_company)s şirkətinin məhsulları var, təklifiniz isə %(quote_company)s şirkətinə aiddir. \n" +" Lütfən, təklif etdiyiniz şirkətin adını dəyişin və ya məhsulları digər şirkətlərdən çıxarın (%(bad_products)s)." #. module: sale_management #. odoo-python @@ -636,11 +655,13 @@ msgid "" "Your template contains products from company %(product_company)s whereas your template belongs to company %(template_company)s. \n" " Please change the company of your template or remove the products from other companies." msgstr "" +"Şablonunuzda %(product_company)s şirkətinin məhsulları var, şablonunuz isə %(template_company)s şirkətinə aiddir. \n" +" Lütfən, şablonunuzun şirkətini dəyişdirin və ya məhsulları digər şirkətlərdən çıxarın." #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.sale_order_template_view_form msgid "days" -msgstr "Gün" +msgstr "gün" #. module: sale_management #: model_terms:ir.ui.view,arch_db:sale_management.sale_order_template_view_form diff --git a/addons/sale_margin/i18n/hr.po b/addons/sale_margin/i18n/hr.po index c3024d11632e2..eb1008446f276 100644 --- a/addons/sale_margin/i18n/hr.po +++ b/addons/sale_margin/i18n/hr.po @@ -5,6 +5,7 @@ # Translators: # Bole , 2024 # Martin Trigaux, 2024 +# Luka Carević , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-26 21:55+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Martin Trigaux, 2024\n" +"Last-Translator: Luka Carević , 2025\n" "Language-Team: Croatian (https://app.transifex.com/odoo/teams/41243/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -36,7 +37,7 @@ msgstr "RUC" #: model:ir.model.fields,field_description:sale_margin.field_sale_order__margin_percent #: model:ir.model.fields,field_description:sale_margin.field_sale_order_line__margin_percent msgid "Margin (%)" -msgstr "" +msgstr "Margina (%)" #. module: sale_margin #: model:ir.model,name:sale_margin.model_sale_report diff --git a/addons/sale_mrp/i18n/ja.po b/addons/sale_mrp/i18n/ja.po index 4be55faeab2fa..57731665b39b2 100644 --- a/addons/sale_mrp/i18n/ja.po +++ b/addons/sale_mrp/i18n/ja.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Junko Augias, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Junko Augias, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -88,7 +88,7 @@ msgstr "日付:" #. module: sale_mrp #: model:ir.model,name:sale_mrp.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: sale_mrp #: model:ir.model,name:sale_mrp.model_mrp_production diff --git a/addons/sale_pdf_quote_builder/i18n/az.po b/addons/sale_pdf_quote_builder/i18n/az.po index 10afa528b2807..c5a0c1bbfca2d 100644 --- a/addons/sale_pdf_quote_builder/i18n/az.po +++ b/addons/sale_pdf_quote_builder/i18n/az.po @@ -88,6 +88,13 @@ msgid "" "e.g. this option can be useful to share User Manual or digital content bought on ecommerce. \n" "Inside quote: The document will be included in the pdf of the quotation and sale order between the header pages and the quote table. " msgstr "" +"Sənədi satış çərçivəsində müştərilərinizlə paylaşmağa imkan verir.\n" +"Bu sənədi satış müştərisi ilə bölüşmək istəmirsinizsə, onu boş qoyun.\n" +"Sitat üzrə: sənəd istənilən vaxt müştərilərə göndəriləcək və müştərilər tərəfindən əlçatan olacaq.\n" +"məs. bu seçim Məhsul təsviri fayllarını paylaşmaq üçün faydalı ola bilər.\n" +"Sifariş təsdiqləndikdə: sənəd müştərilərə göndəriləcək və müştərilər tərəfindən əlçatan olacaq.\n" +"məs. bu seçim İstifadəçi Təlimatını və ya e-ticarətdən alınmış rəqəmsal məzmunu paylaşmaq üçün faydalı ola bilər. \n" +"Daxili təklif: Sənəd başlıq səhifələri və qiymət cədvəli arasında təklif və satış sifarişinin pdf-ə daxil ediləcək. " #. module: sale_pdf_quote_builder #: model_terms:ir.ui.view,arch_db:sale_pdf_quote_builder.quotation_document_kanban @@ -549,7 +556,7 @@ msgstr "Resurs Adı" #. module: sale_pdf_quote_builder #: model:ir.model.fields,field_description:sale_pdf_quote_builder.field_product_document__attached_on_sale msgid "Sale : Visible at" -msgstr "" +msgstr "Satılır: Görünür" #. module: sale_pdf_quote_builder #: model:ir.actions.server,name:sale_pdf_quote_builder.cron_post_upgrade_assign_missing_form_fields_ir_actions_server diff --git a/addons/sale_pdf_quote_builder/i18n/zh_CN.po b/addons/sale_pdf_quote_builder/i18n/zh_CN.po index cbfb3618f83e3..e8d0c3d1ae6f3 100644 --- a/addons/sale_pdf_quote_builder/i18n/zh_CN.po +++ b/addons/sale_pdf_quote_builder/i18n/zh_CN.po @@ -7,7 +7,7 @@ # Wil Odoo, 2024 # Chloe Wang, 2024 # Raymond Yu , 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # msgid "" msgstr "" @@ -15,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:40+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Odoo哥 , 2024\n" +"Last-Translator: 何彬 , 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/addons/sale_project/i18n/az.po b/addons/sale_project/i18n/az.po index 408542f62b919..778c5609fff9e 100644 --- a/addons/sale_project/i18n/az.po +++ b/addons/sale_project/i18n/az.po @@ -184,7 +184,7 @@ msgstr "Müştəri fakturası yaradın" #. odoo-python #: code:addons/sale_project/models/project_project.py:0 msgid "Create a new quotation, the first step of a new sale!" -msgstr "" +msgstr "Yeni təklif yaradın, yeni satışın ilk addımı!" #. module: sale_project #. odoo-python @@ -236,7 +236,7 @@ msgstr "" #: model:ir.model.fields,field_description:sale_project.field_product_product__service_tracking #: model:ir.model.fields,field_description:sale_project.field_product_template__service_tracking msgid "Create on Order" -msgstr "" +msgstr "Sifariş yaradın" #. module: sale_project #. odoo-python @@ -289,7 +289,7 @@ msgstr "Hazırdır" #. odoo-python #: code:addons/sale_project/models/project_project.py:0 msgid "Down Payments" -msgstr "" +msgstr "İlkin ödənişlər" #. module: sale_project #: model_terms:ir.ui.view,arch_db:sale_project.product_template_form_view_invoice_policy_inherit_sale_project @@ -362,6 +362,9 @@ msgid "" "Timesheets on contract: Invoice based on the tracked hours on the related timesheet.\n" "Create a task and track hours: Create a task on the sales order validation and track the work hours." msgstr "" +"Sifariş üzrə miqdarı əl ilə təyin edin: Analitik hesab yaratmadan əl ilə daxil edilmiş kəmiyyətə əsaslanan faktura.\n" +"Müqavilə üzrə vaxt cədvəlləri: Müvafiq vaxt cədvəlində izlənilən saatlara əsaslanan faktura.\n" +"Tapşırıq yaradın və saatları izləyin: Satış sifarişinin təsdiqi ilə bağlı tapşırıq yaradın və iş saatlarını izləyin." #. module: sale_project #. odoo-python @@ -372,7 +375,7 @@ msgstr "" #. module: sale_project #: model:ir.model.fields,field_description:sale_project.field_sale_order_line__qty_delivered_method msgid "Method to update delivered qty" -msgstr "" +msgstr "Çatdırılan miqdarı yeniləmək üsulu" #. module: sale_project #. odoo-python @@ -635,7 +638,7 @@ msgstr "" #. odoo-javascript #: code:addons/sale_project/static/src/components/project_right_side_panel/components/project_profitability_section.xml:0 msgid "Sold" -msgstr "" +msgstr "Satıldı" #. module: sale_project #: model:ir.model.fields,field_description:sale_project.field_project_task__sale_order_state @@ -728,7 +731,7 @@ msgstr "Qaimə Üçün" #: model:ir.model.fields,field_description:sale_project.field_product_product__service_type #: model:ir.model.fields,field_description:sale_project.field_product_template__service_type msgid "Track Service" -msgstr "" +msgstr "İzləmə Xidməti" #. module: sale_project #. odoo-python diff --git a/addons/sale_project/i18n/ja.po b/addons/sale_project/i18n/ja.po index 8a5cd13cba0d5..b38840315413d 100644 --- a/addons/sale_project/i18n/ja.po +++ b/addons/sale_project/i18n/ja.po @@ -4,7 +4,7 @@ # # Translators: # Wil Odoo, 2024 -# Junko Augias, 2024 +# Junko Augias, 2025 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Junko Augias, 2024\n" +"Last-Translator: Junko Augias, 2025\n" "Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -372,7 +372,7 @@ msgstr "仕訳" #. module: sale_project #: model:ir.model,name:sale_project.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: sale_project #. odoo-javascript diff --git a/addons/sale_project/i18n/nl.po b/addons/sale_project/i18n/nl.po index b326bfea25fa9..6ed2d27aa97ec 100644 --- a/addons/sale_project/i18n/nl.po +++ b/addons/sale_project/i18n/nl.po @@ -4,8 +4,8 @@ # # Translators: # Wil Odoo, 2024 -# Erwin van der Ploeg , 2025 # Manon Rondou, 2025 +# Erwin van der Ploeg , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Manon Rondou, 2025\n" +"Last-Translator: Erwin van der Ploeg , 2025\n" "Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -665,13 +665,13 @@ msgstr "Schroevendraaier" #. odoo-python #: code:addons/sale_project/controllers/portal.py:0 msgid "Search in Invoice" -msgstr "Zoeken in factuur" +msgstr "Zoek in factuur" #. module: sale_project #. odoo-python #: code:addons/sale_project/controllers/portal.py:0 msgid "Search in Sales Order" -msgstr "Zoeken in verkooporder" +msgstr "Zoek in verkooporder" #. module: sale_project #: model_terms:ir.ui.view,arch_db:sale_project.project_project_view_form_simplified_inherit diff --git a/addons/sale_project_stock/i18n/zh_CN.po b/addons/sale_project_stock/i18n/zh_CN.po index 5ed2690ee37f7..26a746c4c7131 100644 --- a/addons/sale_project_stock/i18n/zh_CN.po +++ b/addons/sale_project_stock/i18n/zh_CN.po @@ -4,7 +4,7 @@ # # Translators: # Chloe Wang, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Wil Odoo, 2025 # msgid "" diff --git a/addons/sale_purchase/i18n/az.po b/addons/sale_purchase/i18n/az.po index 49c5da69bb713..205459aa7ece3 100644 --- a/addons/sale_purchase/i18n/az.po +++ b/addons/sale_purchase/i18n/az.po @@ -5,6 +5,7 @@ # Translators: # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -12,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -178,7 +179,7 @@ msgstr "Satış Sifarişi" #. module: sale_purchase #: model:ir.model,name:sale_purchase.model_sale_order_cancel msgid "Sales Order Cancel" -msgstr "" +msgstr "Satış Sifarişini Ləğv et" #. module: sale_purchase #: model:ir.model,name:sale_purchase.model_sale_order_line diff --git a/addons/sale_stock/i18n/az.po b/addons/sale_stock/i18n/az.po index b90d98801d971..8e533781c2106 100644 --- a/addons/sale_stock/i18n/az.po +++ b/addons/sale_stock/i18n/az.po @@ -210,6 +210,10 @@ msgid "" "shipping, the shipping policy of the order will be taken into account to " "either use the minimum or maximum lead time of the order lines." msgstr "" +"Müştəriyə vəd edə biləcəyiniz çatdırılma tarixi, Xidmət məhsulları halında " +"sifariş xətlərinin minimum çatdırılma müddətindən hesablanır. Göndərmə " +"halında, sifariş xətlərinin minimum və ya maksimum çatdırılma müddətindən " +"istifadə etmək üçün sifarişin göndərmə siyasəti nəzərə alınacaqdır." #. module: sale_stock #: model:ir.model.fields,field_description:sale_stock.field_sale_order_line__display_qty_widget @@ -258,7 +262,7 @@ msgstr "" #. module: sale_stock #: model_terms:ir.ui.view,arch_db:sale_stock.view_order_form_inherit_sale_stock msgid "Expected:" -msgstr "" +msgstr "Gözlənilir:" #. module: sale_stock #: model:ir.model.fields,field_description:sale_stock.field_sale_order_line__forecast_expected_date @@ -369,7 +373,7 @@ msgstr "" #. module: sale_stock #: model:ir.model.fields,field_description:sale_stock.field_sale_order_line__customer_lead msgid "Lead Time" -msgstr "" +msgstr "Göndərmə vaxtı" #. module: sale_stock #: model:ir.model,name:sale_stock.model_stock_lot @@ -402,7 +406,7 @@ msgstr "" #. module: sale_stock #: model:ir.model.fields,field_description:sale_stock.field_sale_order_line__qty_delivered_method msgid "Method to update delivered qty" -msgstr "" +msgstr "Çatdırılan miqdarı yeniləmək üsulu" #. module: sale_stock #: model_terms:ir.ui.view,arch_db:sale_stock.res_config_settings_view_form_stock @@ -437,6 +441,8 @@ msgid "" "Number of days between the order confirmation and the shipping of the " "products to the customer" msgstr "" +"Sifarişin təsdiqi ilə məhsulların müştəriyə göndərilməsi arasındakı günlərin" +" sayı" #. module: sale_stock #. odoo-javascript @@ -478,7 +484,7 @@ msgstr "" #. module: sale_stock #: model:ir.model.fields,field_description:sale_stock.field_sale_order_line__qty_to_deliver msgid "Qty To Deliver" -msgstr "" +msgstr "Çatdırılma Miqdarı" #. module: sale_stock #. odoo-javascript @@ -565,7 +571,7 @@ msgstr "Satış Sifarişi" #. module: sale_stock #: model:ir.model,name:sale_stock.model_sale_order_cancel msgid "Sales Order Cancel" -msgstr "" +msgstr "Satış Sifarişini Ləğv et" #. module: sale_stock #: model:ir.model,name:sale_stock.model_sale_order_line diff --git a/addons/sale_stock/i18n/ja.po b/addons/sale_stock/i18n/ja.po index b70558300e22e..786c97ff6b537 100644 --- a/addons/sale_stock/i18n/ja.po +++ b/addons/sale_stock/i18n/ja.po @@ -366,7 +366,7 @@ msgstr "仕訳" #. module: sale_stock #: model:ir.model,name:sale_stock.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: sale_stock #: model_terms:ir.ui.view,arch_db:sale_stock.sale_order_portal_content_inherit_sale_stock diff --git a/addons/sale_stock/i18n/zh_CN.po b/addons/sale_stock/i18n/zh_CN.po index 3bddbd77fc242..2efd4aa1d7131 100644 --- a/addons/sale_stock/i18n/zh_CN.po +++ b/addons/sale_stock/i18n/zh_CN.po @@ -5,7 +5,7 @@ # Translators: # Chloe Wang, 2024 # Chill Liao , 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Raymond Yu , 2024 # Wil Odoo, 2024 # diff --git a/addons/sale_timesheet/i18n/az.po b/addons/sale_timesheet/i18n/az.po index 5c35e53f15454..660187a06a084 100644 --- a/addons/sale_timesheet/i18n/az.po +++ b/addons/sale_timesheet/i18n/az.po @@ -747,6 +747,9 @@ msgid "" "Timesheets on contract: Invoice based on the tracked hours on the related timesheet.\n" "Create a task and track hours: Create a task on the sales order validation and track the work hours." msgstr "" +"Sifariş üzrə miqdarı əl ilə təyin edin: Analitik hesab yaratmadan əl ilə daxil edilmiş kəmiyyətə əsaslanan faktura.\n" +"Müqavilə üzrə vaxt cədvəlləri: Müvafiq vaxt cədvəlində izlənilən saatlara əsaslanan faktura.\n" +"Tapşırıq yaradın və saatları izləyin: Satış sifarişinin təsdiqi ilə bağlı tapşırıq yaradın və iş saatlarını izləyin." #. module: sale_timesheet #: model:ir.model.fields,field_description:sale_timesheet.field_timesheets_analysis_report__margin @@ -770,7 +773,7 @@ msgstr "" #. module: sale_timesheet #: model:ir.model.fields,field_description:sale_timesheet.field_sale_order_line__qty_delivered_method msgid "Method to update delivered qty" -msgstr "" +msgstr "Çatdırılan miqdarı yeniləmək üsulu" #. module: sale_timesheet #: model_terms:ir.ui.view,arch_db:sale_timesheet.product_template_view_search_sale_timesheet @@ -1066,7 +1069,7 @@ msgstr "" #. module: sale_timesheet #: model:ir.model,name:sale_timesheet.model_sale_advance_payment_inv msgid "Sales Advance Payment Invoice" -msgstr "" +msgstr "Satış üçün əvvəlcədən ödəmə fakturası" #. module: sale_timesheet #. odoo-python @@ -1118,6 +1121,9 @@ msgid "" "invoiced to your customer. Remove the sales order item for the timesheet " "entry to be non-billable." msgstr "" +"Müştərinizə faktura yazmaq üçün sərf olunan vaxtın əlavə ediləcəyi satış " +"sifarişi maddəsi. Qeyri-fakturalı olmaq üçün vaxt cədvəli girişi üçün satış " +"sifarişi elementini silin." #. module: sale_timesheet #: model:ir.model.fields,help:sale_timesheet.field_project_task__sale_order_id @@ -1486,7 +1492,7 @@ msgstr "" #: model:ir.model.fields,field_description:sale_timesheet.field_product_product__service_type #: model:ir.model.fields,field_description:sale_timesheet.field_product_template__service_type msgid "Track Service" -msgstr "" +msgstr "İzləmə Xidməti" #. module: sale_timesheet #: model_terms:ir.actions.act_window,help:sale_timesheet.action_timesheet_from_invoice diff --git a/addons/sale_timesheet/i18n/ja.po b/addons/sale_timesheet/i18n/ja.po index b6111da566ae6..2cb2d6ef2caa4 100644 --- a/addons/sale_timesheet/i18n/ja.po +++ b/addons/sale_timesheet/i18n/ja.po @@ -746,7 +746,7 @@ msgstr "仕訳" #. module: sale_timesheet #: model:ir.model,name:sale_timesheet.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: sale_timesheet #: model:product.template,name:sale_timesheet.product_service_deliver_timesheet_2_product_template diff --git a/addons/sale_timesheet/i18n/nl.po b/addons/sale_timesheet/i18n/nl.po index c2582afb91c1c..1ee371547689d 100644 --- a/addons/sale_timesheet/i18n/nl.po +++ b/addons/sale_timesheet/i18n/nl.po @@ -4,8 +4,8 @@ # # Translators: # Wil Odoo, 2024 -# Erwin van der Ploeg , 2025 # Manon Rondou, 2025 +# Erwin van der Ploeg , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:04+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Manon Rondou, 2025\n" +"Last-Translator: Erwin van der Ploeg , 2025\n" "Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1192,13 +1192,13 @@ msgstr "Verkooporder waaraan de taak is gerelateerd." #. odoo-python #: code:addons/sale_timesheet/controllers/portal.py:0 msgid "Search in Invoice" -msgstr "Zoeken in factuur" +msgstr "Zoek in factuur" #. module: sale_timesheet #. odoo-python #: code:addons/sale_timesheet/controllers/portal.py:0 msgid "Search in Sales Order" -msgstr "Zoeken in verkooporder" +msgstr "Zoek in verkooporder" #. module: sale_timesheet #: model_terms:ir.ui.view,arch_db:sale_timesheet.res_config_settings_view_form diff --git a/addons/sale_timesheet/i18n/zh_CN.po b/addons/sale_timesheet/i18n/zh_CN.po index ae0098132c4bd..00df8aca02b5f 100644 --- a/addons/sale_timesheet/i18n/zh_CN.po +++ b/addons/sale_timesheet/i18n/zh_CN.po @@ -5,7 +5,7 @@ # Translators: # Tanguy Queguineur, 2024 # e2f , 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Wil Odoo, 2024 # Chloe Wang, 2025 # diff --git a/addons/sales_team/i18n/ca.po b/addons/sales_team/i18n/ca.po index c5d61209dc7ae..2b8ccb73b7ebb 100644 --- a/addons/sales_team/i18n/ca.po +++ b/addons/sales_team/i18n/ca.po @@ -12,7 +12,7 @@ # Susanna Pujol, 2024 # Josep Anton Belchi, 2024 # Quim - coopdevs , 2024 -# Josep Sànchez , 2024 +# Josep Sànchez , 2024 # Ivan Espinola, 2024 # Martin Trigaux, 2024 # RGB Consulting , 2024 diff --git a/addons/sales_team/i18n/zh_CN.po b/addons/sales_team/i18n/zh_CN.po index faf6bfe50507c..6e6a4078aa997 100644 --- a/addons/sales_team/i18n/zh_CN.po +++ b/addons/sales_team/i18n/zh_CN.po @@ -5,7 +5,7 @@ # Translators: # Wil Odoo, 2024 # Raymond Yu , 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:40+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Odoo哥 , 2024\n" +"Last-Translator: 何彬 , 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/addons/sms/i18n/az.po b/addons/sms/i18n/az.po index e1e3092855af1..cc03abcf91122 100644 --- a/addons/sms/i18n/az.po +++ b/addons/sms/i18n/az.po @@ -4,9 +4,9 @@ # # Translators: # Nurlan Farajov, 2024 -# Nurlan Farajov , 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:40+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: erpgo translator , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -868,6 +868,10 @@ msgid "" "a placeholder expression that provides the appropriate language, e.g. {{ " "object.partner_id.lang }}." msgstr "" +"E-poçt göndərərkən seçmək üçün əlavə tərcümə dili (ISO kodu). " +"Quraşdırılmayıbsa, ingilis versiyası istifadə olunacaq. Bu, adətən müvafiq " +"dili təmin edən yer tutucu ifadə olmalıdır, məs. {{ obyekt.partner_id.lang " +"}}." #. module: sms #: model:ir.model,name:sms.model_sms_sms @@ -1015,7 +1019,7 @@ msgstr "" #. module: sms #: model:ir.model.fields,field_description:sms.field_sms_template__render_model msgid "Rendering Model" -msgstr "" +msgstr "Render modeli" #. module: sms #: model:ir.actions.server,name:sms.ir_actions_server_sms_sms_resend diff --git a/addons/sms/i18n/bg.po b/addons/sms/i18n/bg.po index c30c2645c018d..7a54ddb768826 100644 --- a/addons/sms/i18n/bg.po +++ b/addons/sms/i18n/bg.po @@ -15,8 +15,8 @@ # Venelin Stoykov, 2024 # Petko Karamotchev, 2024 # Veselina Slavkova, 2025 -# Martin Dinovski, 2025 # Milena Georgieva, 2025 +# Martin Dinovski, 2025 # msgid "" msgstr "" @@ -24,7 +24,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:40+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Milena Georgieva, 2025\n" +"Last-Translator: Martin Dinovski, 2025\n" "Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1031,7 +1031,7 @@ msgstr "Модел на изобразяване" #. module: sms #: model:ir.actions.server,name:sms.ir_actions_server_sms_sms_resend msgid "Resend" -msgstr "" +msgstr "Изпрати отново" #. module: sms #: model:ir.model,name:sms.model_sms_resend_recipient diff --git a/addons/sms/i18n/zh_CN.po b/addons/sms/i18n/zh_CN.po index e8f4dd844baa0..38c46d378546e 100644 --- a/addons/sms/i18n/zh_CN.po +++ b/addons/sms/i18n/zh_CN.po @@ -5,7 +5,7 @@ # Translators: # LINYUN TONG , 2024 # Wil Odoo, 2024 -# Odoo哥 , 2024 +# 何彬 , 2024 # Jeffery CHEN , 2024 # Chloe Wang, 2025 # diff --git a/addons/snailmail/i18n/zh_TW.po b/addons/snailmail/i18n/zh_TW.po index af3c3201699db..ec3c51673344a 100644 --- a/addons/snailmail/i18n/zh_TW.po +++ b/addons/snailmail/i18n/zh_TW.po @@ -3,8 +3,8 @@ # * snailmail # # Translators: -# Wil Odoo, 2024 # Tony Ng, 2025 +# Wil Odoo, 2025 # msgid "" msgstr "" @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-26 08:56+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Tony Ng, 2025\n" +"Last-Translator: Wil Odoo, 2025\n" "Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -140,7 +140,7 @@ msgstr "已取消" #: model:ir.model.fields,field_description:snailmail.field_snailmail_letter_missing_required_fields__city #: model_terms:ir.ui.view,arch_db:snailmail.snailmail_letter_missing_required_fields msgid "City" -msgstr "縣市" +msgstr "城市" #. module: snailmail #. odoo-javascript diff --git a/addons/spreadsheet/i18n/bg.po b/addons/spreadsheet/i18n/bg.po index b7a68b21f2219..04fdc4fc1f5f0 100644 --- a/addons/spreadsheet/i18n/bg.po +++ b/addons/spreadsheet/i18n/bg.po @@ -20,8 +20,8 @@ # Margarita Katzeva, 2024 # Petko Karamotchev, 2024 # Veselina Slavkova, 2025 -# Martin Dinovski, 2025 # Milena Georgieva, 2025 +# Martin Dinovski, 2025 # msgid "" msgstr "" @@ -29,7 +29,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:04+0000\n" "PO-Revision-Date: 2024-09-25 09:41+0000\n" -"Last-Translator: Milena Georgieva, 2025\n" +"Last-Translator: Martin Dinovski, 2025\n" "Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3070,7 +3070,7 @@ msgstr "" #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Energy" -msgstr "" +msgstr "Енергия" #. module: spreadsheet #. odoo-javascript diff --git a/addons/spreadsheet/i18n/nl.po b/addons/spreadsheet/i18n/nl.po index 946b499df1ff2..12a5324ce6ce5 100644 --- a/addons/spreadsheet/i18n/nl.po +++ b/addons/spreadsheet/i18n/nl.po @@ -664,7 +664,7 @@ msgstr "Een ander item toevoegen" #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.xml:0 msgid "Add any characters or symbol" -msgstr "Voeg eender welk karakter of symbool toe" +msgstr "Voeg tekens of symbolen toe" #. module: spreadsheet #. odoo-javascript @@ -2737,7 +2737,7 @@ msgstr "Dag van de week van de opgegeven datum (als nummer)." #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Days from settlement until next coupon." -msgstr "Dagen vanaf afrekening tot de volgende kortingsbon." +msgstr "Dagen vanaf afrekening t/m de volgende kortingsbon." #. module: spreadsheet #. odoo-javascript @@ -2781,13 +2781,13 @@ msgstr "Verwijderen" #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Delete cell and shift left" -msgstr "Verwijderen cel en naar links schuiven" +msgstr "Verwijderen cel en naar links verplaatsen" #. module: spreadsheet #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Delete cell and shift up" -msgstr "Verwijderen cel en omhoog schuiven" +msgstr "Verwijderen cel en omhoog verplaatsen" #. module: spreadsheet #. odoo-javascript @@ -4282,7 +4282,7 @@ msgstr "%s rijen hierboven invoegen" #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Insert %s rows below" -msgstr "Voeg %s rijen hieronder in" +msgstr "%s rijen hieronder invoegen" #. module: spreadsheet #. odoo-javascript @@ -4294,13 +4294,13 @@ msgstr "Cellen invoegen" #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Insert cells and shift down" -msgstr "Cellen invoegen en omlaag schuiven" +msgstr "Cellen invoegen en omlaag verplaatsen" #. module: spreadsheet #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Insert cells and shift right" -msgstr "Cellen invoegen en naar rechts schuiven" +msgstr "Cellen invoegen en naar rechts verplaatsen" #. module: spreadsheet #. odoo-javascript @@ -6222,7 +6222,7 @@ msgid "" "from a starting cell reference." msgstr "" "Geeft als resultaat een bereikverwijzing die met een opgegeven aantal rijen " -"en kolommen is verschoven vanaf een initiële celverwijzing." +"en kolommen is verplaatst vanaf een initiële celverwijzing." #. module: spreadsheet #. odoo-javascript @@ -6625,7 +6625,7 @@ msgstr "Verplaats omlaag" #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Shift left" -msgstr "Shift naar links" +msgstr "Verplaats naar links" #. module: spreadsheet #. odoo-javascript @@ -6637,7 +6637,7 @@ msgstr "Verplaats naar rechts" #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Shift up" -msgstr "Opschakelen" +msgstr "Verplaats omhoog" #. module: spreadsheet #. odoo-javascript @@ -11068,7 +11068,7 @@ msgstr "Onverwacht token: %s" #. odoo-javascript #: code:addons/spreadsheet/static/src/o_spreadsheet/o_spreadsheet.js:0 msgid "Unfreeze" -msgstr "Ontvriezen" +msgstr "Ontgrendelen" #. module: spreadsheet #. odoo-javascript diff --git a/addons/spreadsheet/static/tests/charts/model/link_chart_plugin.test.js b/addons/spreadsheet/static/tests/charts/model/link_chart_plugin.test.js index 301a91b0547a3..facc94f3a3951 100644 --- a/addons/spreadsheet/static/tests/charts/model/link_chart_plugin.test.js +++ b/addons/spreadsheet/static/tests/charts/model/link_chart_plugin.test.js @@ -1,38 +1,14 @@ -import { defineMenus, makeMockEnv } from "@web/../tests/web_test_helpers"; import { describe, expect, test } from "@odoo/hoot"; +import { createSpreadsheetWithChart } from "@spreadsheet/../tests/helpers/chart"; +import { createBasicChart } from "@spreadsheet/../tests/helpers/commands"; +import { defineSpreadsheetModels } from "@spreadsheet/../tests/helpers/data"; +import { makeMockEnv } from "@web/../tests/web_test_helpers"; import { Model } from "@odoo/o-spreadsheet"; -import { createBasicChart } from "@spreadsheet/../tests/helpers/commands"; -import { createSpreadsheetWithChart } from "@spreadsheet/../tests/helpers/chart"; -import { defineSpreadsheetModels } from "../../helpers/data"; const chartId = "uuid1"; describe.current.tags("headless"); -defineMenus([ - { - id: "root", - children: [1, 2], - name: "root", - appID: "root", - }, - { - id: 1, - children: [], - name: "test menu 1", - xmlid: "documents_spreadsheet.test.menu", - appID: 1, - actionID: "menuAction", - }, - { - id: 2, - children: [], - name: "test menu 2", - xmlid: "documents_spreadsheet.test.menu2", - appID: 1, - actionID: "menuAction2", - }, -]); defineSpreadsheetModels(); diff --git a/addons/spreadsheet/static/tests/charts/ui/link_chart_figure.test.js b/addons/spreadsheet/static/tests/charts/ui/link_chart_figure.test.js index 3f2f175792ad2..3e08ae4acd767 100644 --- a/addons/spreadsheet/static/tests/charts/ui/link_chart_figure.test.js +++ b/addons/spreadsheet/static/tests/charts/ui/link_chart_figure.test.js @@ -46,18 +46,11 @@ function mockActionService(doActionStep) { mockService("action", fakeActionService); } -beforeEach(async () => { +beforeEach(() => { serverData = {}; serverData.menus = { - root: { - id: "root", - children: [1, 2], - name: "root", - appID: "root", - }, 1: { id: 1, - children: [], name: "test menu 1", xmlid: "documents_spreadsheet.test.menu", appID: 1, @@ -65,7 +58,6 @@ beforeEach(async () => { }, 2: { id: 2, - children: [], name: "test menu 2", xmlid: "documents_spreadsheet.test.menu2", appID: 1, @@ -73,7 +65,6 @@ beforeEach(async () => { }, 3: { id: 3, - children: [], name: "test menu 2", xmlid: "documents_spreadsheet.test.menu_without_action", appID: 1, diff --git a/addons/spreadsheet/static/tests/helpers/model.js b/addons/spreadsheet/static/tests/helpers/model.js index 2b2cca34c829a..b03223eaef8f8 100644 --- a/addons/spreadsheet/static/tests/helpers/model.js +++ b/addons/spreadsheet/static/tests/helpers/model.js @@ -1,10 +1,10 @@ +import { animationFrame } from "@odoo/hoot-mock"; import { Model } from "@odoo/o-spreadsheet"; import { OdooDataProvider } from "@spreadsheet/data_sources/odoo_data_provider"; -import { animationFrame } from "@odoo/hoot-mock"; -import { defineActions, defineParams, makeMockEnv, onRpc } from "@web/../tests/web_test_helpers"; -import { addRecordsFromServerData, addViewsFromServerData } from "./data"; import { getMockEnv } from "@web/../tests/_framework/env_test_helpers"; +import { defineActions, defineMenus, makeMockEnv, onRpc } from "@web/../tests/web_test_helpers"; import { setCellContent } from "./commands"; +import { addRecordsFromServerData, addViewsFromServerData } from "./data"; /** * @typedef {import("@spreadsheet/../tests/helpers/data").ServerData} ServerData @@ -65,8 +65,7 @@ export async function makeSpreadsheetMockEnv(params = {}) { onRpc((args) => params.mockRPC(args.route, args)); // separate route from args for legacy (& forward ports) compatibility } if (params.serverData?.menus) { - const menus = Object.values(params.serverData.menus); - defineParams({ menus }, "replace"); + defineMenus(Object.values(params.serverData.menus)); } if (params.serverData?.actions) { defineActions(Object.values(params.serverData.actions)); @@ -82,11 +81,11 @@ export async function makeSpreadsheetMockEnv(params = {}) { } export function createModelFromGrid(grid) { - const model = new Model(); - for (let xc in grid) { - if (grid[xc] !== undefined) { - setCellContent(model, xc, grid[xc]); + const model = new Model(); + for (const xc in grid) { + if (grid[xc] !== undefined) { + setCellContent(model, xc, grid[xc]); + } } - } - return model; + return model; } diff --git a/addons/spreadsheet/static/tests/links/menu_data_utils.js b/addons/spreadsheet/static/tests/links/menu_data_utils.js index cd8012be49aa3..a739f42ba50b8 100644 --- a/addons/spreadsheet/static/tests/links/menu_data_utils.js +++ b/addons/spreadsheet/static/tests/links/menu_data_utils.js @@ -4,31 +4,24 @@ import { serverState } from "@web/../tests/web_test_helpers"; export function getMenuServerData() { const serverData = {}; serverData.menus = { - root: { - id: "root", - name: "root", - appID: "root", + 1: { + id: 1, + name: "App_1", + appID: 1, + xmlid: "app_1", children: [ { - id: 1, - name: "App_1", + id: 11, + name: "menu with xmlid", + appID: 1, + xmlid: "test_menu", + actionID: "spreadsheet.action1", + }, + { + id: 12, + name: "menu without xmlid", + actionID: "spreadsheet.action1", appID: 1, - xmlid: "app_1", - children: [ - { - id: 11, - name: "menu with xmlid", - appID: 1, - xmlid: "test_menu", - actionID: "spreadsheet.action1", - }, - { - id: 12, - name: "menu without xmlid", - actionID: "spreadsheet.action1", - appID: 1, - }, - ], }, ], }, diff --git a/addons/stock/i18n/az.po b/addons/stock/i18n/az.po index 1a62439bd57dc..25042219f960b 100644 --- a/addons/stock/i18n/az.po +++ b/addons/stock/i18n/az.po @@ -1838,7 +1838,7 @@ msgstr "Çatdırılma xərclərini hesabla və DHL ilə göndər" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.res_config_settings_view_form msgid "Compute shipping costs and ship with Easypost" -msgstr "" +msgstr "Göndərmə xərclərini hesablayın və Easypost ilə göndərin" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.res_config_settings_view_form @@ -1848,17 +1848,17 @@ msgstr "Çatdırılma xərclərini hesabla və FedEx ilə göndər" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.res_config_settings_view_form msgid "Compute shipping costs and ship with Sendcloud" -msgstr "" +msgstr "Göndərmə xərclərini hesablayın və Sendcloud ilə göndərin" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.res_config_settings_view_form msgid "Compute shipping costs and ship with Shiprocket" -msgstr "" +msgstr "Göndərmə xərclərini hesablayın və Shiprocket ilə göndərin" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.res_config_settings_view_form msgid "Compute shipping costs and ship with Starshipit" -msgstr "" +msgstr "Göndərmə xərclərini hesablayın və Starshipit ilə göndərin" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.res_config_settings_view_form @@ -2653,7 +2653,7 @@ msgstr "Çatdırılma Ünvanı" #: model:ir.model.fields,field_description:stock.field_stock_lot_report__delivery_date #: model_terms:ir.ui.view,arch_db:stock.search_customer_lot_filter msgid "Delivery Date" -msgstr "" +msgstr "Çatdırılma tarixi" #. module: stock #: model:ir.model.fields,field_description:stock.field_res_config_settings__module_delivery @@ -3096,7 +3096,7 @@ msgstr "" #. module: stock #: model:ir.model.fields,field_description:stock.field_res_config_settings__module_delivery_easypost msgid "Easypost Connector" -msgstr "" +msgstr "Easypost Connector" #. module: stock #. odoo-python @@ -3246,7 +3246,7 @@ msgstr "Fevral" #. module: stock #: model:ir.model.fields,field_description:stock.field_res_config_settings__module_delivery_fedex msgid "FedEx Connector" -msgstr "" +msgstr "FedEx birləşdiricisi" #. module: stock #: model:ir.model.fields,field_description:stock.field_stock_package_destination__filtered_location @@ -4668,7 +4668,7 @@ msgstr "" #: model:ir.model.fields,field_description:stock.field_stock_replenishment_option__lead_time #: model:ir.model.fields,field_description:stock.field_stock_rule__delay msgid "Lead Time" -msgstr "" +msgstr "Göndərmə vaxtı" #. module: stock #. odoo-javascript @@ -5827,7 +5827,7 @@ msgstr "" #. odoo-python #: code:addons/stock/models/stock_picking.py:0 msgid "Order signed by %s" -msgstr "" +msgstr "%s tərəfindən imzalanmış sifariş" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.report_delivery_document @@ -7908,7 +7908,7 @@ msgstr "" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.res_config_settings_view_form msgid "Sell and purchase products in different units of measure" -msgstr "" +msgstr "Məhsulları müxtəlif ölçü vahidlərində satmaq və almaq" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.res_config_settings_view_form @@ -7930,7 +7930,7 @@ msgstr "Emaili göndər" #. module: stock #: model:ir.model.fields,field_description:stock.field_res_config_settings__module_delivery_sendcloud msgid "Sendcloud Connector" -msgstr "" +msgstr "Sendcloud Konnektoru" #. module: stock #: model:mail.template,description:stock.mail_template_data_delivery_confirmation @@ -8124,7 +8124,7 @@ msgstr "" #. module: stock #: model:ir.model.fields,field_description:stock.field_res_config_settings__module_delivery_shiprocket msgid "Shiprocket Connector" -msgstr "" +msgstr "Shiprocket birləşdiricisi" #. module: stock #: model:ir.model.fields,field_description:stock.field_stock_warehouse__code @@ -8236,7 +8236,7 @@ msgstr "İşarə" #: model:ir.model.fields,field_description:stock.field_stock_picking__signature #: model:ir.model.fields,help:stock.field_stock_picking__signature msgid "Signature" -msgstr "" +msgstr "İmza" #. module: stock #: model_terms:ir.ui.view,arch_db:stock.vpicktree @@ -8359,7 +8359,7 @@ msgstr "" #. module: stock #: model:ir.model.fields,field_description:stock.field_res_config_settings__module_delivery_starshipit msgid "Starshipit Connector" -msgstr "" +msgstr "Starshipit birləşdiricisi" #. module: stock #: model:ir.model.fields,field_description:stock.field_report_stock_quantity__state @@ -9645,12 +9645,12 @@ msgstr "Qeyddəki istisna fəaliyyət növü." #. module: stock #: model:ir.model.fields,field_description:stock.field_res_config_settings__module_delivery_ups msgid "UPS Connector" -msgstr "" +msgstr "UPS Konnektoru" #. module: stock #: model:ir.model.fields,field_description:stock.field_res_config_settings__module_delivery_usps msgid "USPS Connector" -msgstr "" +msgstr "USPS birləşdiricisi" #. module: stock #. odoo-javascript @@ -10879,7 +10879,7 @@ msgstr "" #. module: stock #: model:ir.model.fields,field_description:stock.field_res_config_settings__module_delivery_bpost msgid "bpost Connector" -msgstr "" +msgstr "bpost birləşdiricisi" #. module: stock #: model:product.removal,method:stock.removal_closest diff --git a/addons/stock/i18n/bg.po b/addons/stock/i18n/bg.po index 7f7ce1858ce7f..3b5c97d3ee893 100644 --- a/addons/stock/i18n/bg.po +++ b/addons/stock/i18n/bg.po @@ -24,6 +24,7 @@ # Любомир Георгиев, 2025 # Veselina Slavkova, 2025 # Igor Sheludko , 2025 +# Martin Dinovski, 2025 # msgid "" msgstr "" @@ -31,7 +32,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:02+0000\n" "PO-Revision-Date: 2024-09-25 09:42+0000\n" -"Last-Translator: Igor Sheludko , 2025\n" +"Last-Translator: Martin Dinovski, 2025\n" "Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1935,7 +1936,7 @@ msgstr "" #: model:ir.model.fields,field_description:stock.field_stock_inventory_conflict__quant_to_fix_ids #: model_terms:ir.ui.view,arch_db:stock.quant_search_view msgid "Conflicts" -msgstr "" +msgstr "Kонфликти" #. module: stock #: model:ir.model.fields,help:stock.field_stock_warehouse_orderpoint__visibility_days diff --git a/addons/stock/i18n/es_419.po b/addons/stock/i18n/es_419.po index 509176a4b296e..31a911b67e393 100644 --- a/addons/stock/i18n/es_419.po +++ b/addons/stock/i18n/es_419.po @@ -4,8 +4,8 @@ # # Translators: # Wil Odoo, 2024 -# Patricia Gutiérrez Capetillo , 2025 # Fernanda Alvarez, 2025 +# Patricia Gutiérrez Capetillo , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:02+0000\n" "PO-Revision-Date: 2024-09-25 09:42+0000\n" -"Last-Translator: Fernanda Alvarez, 2025\n" +"Last-Translator: Patricia Gutiérrez Capetillo , 2025\n" "Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -10828,6 +10828,9 @@ msgid "" "%(operation)s are created from %(source_location)s to fulfill " "the need. %(suffix)s" msgstr "" +"Cuando se necesita productos en %(destination)s,
se creará una " +"operación de %(operation)s desde %(source_location)s para " +"cumplir con la necesidad.%(suffix)s" #. module: stock #. odoo-python diff --git a/addons/stock/i18n/it.po b/addons/stock/i18n/it.po index fb5748f8dcd53..8ff448caa462f 100644 --- a/addons/stock/i18n/it.po +++ b/addons/stock/i18n/it.po @@ -10814,6 +10814,9 @@ msgid "" "%(operation)s are created from %(source_location)s to fulfill " "the need. %(suffix)s" msgstr "" +"Quando i prodotti sono necessari in %(destination)s, vengono create " +"
%(operation)s da %(source_location)s per soddisfare " +"l'esigenza. %(suffix)s" #. module: stock #. odoo-python diff --git a/addons/stock/i18n/ko.po b/addons/stock/i18n/ko.po index 7bea57d84fc57..94defb7f318fa 100644 --- a/addons/stock/i18n/ko.po +++ b/addons/stock/i18n/ko.po @@ -10478,6 +10478,8 @@ msgid "" "%(operation)s are created from %(source_location)s to fulfill " "the need. %(suffix)s" msgstr "" +"품목이 %(destination)s 위치에서 필요한 경우,
%(operation)s 항목이 " +"%(source_location)s 위치에서 %(suffix)s 필요에 맞게 생성됩니다." #. module: stock #. odoo-python diff --git a/addons/stock/i18n/nl.po b/addons/stock/i18n/nl.po index b593f7e4bd38b..6c02d9dbf6f0b 100644 --- a/addons/stock/i18n/nl.po +++ b/addons/stock/i18n/nl.po @@ -5,8 +5,8 @@ # Translators: # Martin Trigaux, 2024 # Wil Odoo, 2024 -# Erwin van der Ploeg , 2025 # Manon Rondou, 2025 +# Erwin van der Ploeg , 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-27 13:02+0000\n" "PO-Revision-Date: 2024-09-25 09:42+0000\n" -"Last-Translator: Manon Rondou, 2025\n" +"Last-Translator: Erwin van der Ploeg , 2025\n" "Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -10808,6 +10808,8 @@ msgid "" "%(operation)s are created from %(source_location)s to fulfill " "the need. %(suffix)s" msgstr "" +"Wanneer producten nodig zijn in %(destination)s, worden er \n" +"
%(operation)s gemaakt vanuit %(source_location)s om aan de behoefte te voldoen. %(suffix)s" #. module: stock #. odoo-python diff --git a/addons/stock/i18n/sk.po b/addons/stock/i18n/sk.po index d992d345982ad..80fc51a465299 100644 --- a/addons/stock/i18n/sk.po +++ b/addons/stock/i18n/sk.po @@ -8984,6 +8984,10 @@ msgid "" " On the operation type you could e.g. specify if packing is needed by default,\n" " if it should show the customer." msgstr "" +"Systém typov operácií umožňuje priradiť každej operácii so zásobami \n" +" špecifický typ, ktorý zodpovedajúcim spôsobom zmení jej zobrazenie.\n" +" Na type operácie môžete napr. určiť, či je predvolene potrebné balenie,\n" +" či sa má zobrazovať zákazník." #. module: stock #: model:ir.model.fields,help:stock.field_stock_move__location_dest_id diff --git a/addons/stock/i18n/tr.po b/addons/stock/i18n/tr.po index 9b8ed0db7f14b..a0dad54b60eb1 100644 --- a/addons/stock/i18n/tr.po +++ b/addons/stock/i18n/tr.po @@ -11154,6 +11154,8 @@ msgid "" "You need to supply a Lot/Serial Number for product:\n" "%(products)s" msgstr "" +"Bu ürün için bir Lot/Seri Numarası seçmeniz gerekiyor:\n" +"%(products)s" #. module: stock #. odoo-python diff --git a/addons/stock/models/stock_picking.py b/addons/stock/models/stock_picking.py index 1a68fa4710ad4..5ade2660aaff6 100644 --- a/addons/stock/models/stock_picking.py +++ b/addons/stock/models/stock_picking.py @@ -1066,6 +1066,7 @@ def _onchange_location_dest_id(self): @api.onchange('location_id') def _onchange_location_id(self): + (self.move_ids | self.move_ids_without_package).location_id = self.location_id for move in self.move_ids.filtered(lambda m: m.move_orig_ids): for ml in move.move_line_ids: parent_path = [int(loc_id) for loc_id in ml.location_id.parent_path.split('/')[:-1]] diff --git a/addons/stock/tests/test_move2.py b/addons/stock/tests/test_move2.py index 278a6f3407f36..16e71e6996fbc 100644 --- a/addons/stock/tests/test_move2.py +++ b/addons/stock/tests/test_move2.py @@ -2673,6 +2673,34 @@ def test_unreservation_on_qty_decrease(self): ('Shell 2', 'LOT004', 2.0), ]) + def test_onchange_picking_locations(self): + """ + Check that changing the location/destination of a picking propagets the info + to the related moves. + """ + new_location, new_destination = self.env['stock.location'].create([ + { + 'name': f'Super location', + 'usage': 'internal', + 'location_id': self.stock_location, + }, + { + 'name': f'Super destination', + 'usage': 'internal', + 'location_id': self.stock_location, + } + ]) + with Form(self.env['stock.picking'].with_context(restricted_picking_type_code='internal')) as picking_form: + with picking_form.move_ids_without_package.new() as new_move: + new_move.product_id = self.product + new_move.product_uom_qty = 3.0 + picking_form.location_id = new_location + picking_form.location_dest_id = new_destination + picking = picking_form.save() + self.assertRecordValues(picking.move_ids, [ + { 'location_id': new_location.id, 'location_dest_id': new_destination.id } + ]) + class TestStockUOM(TestStockCommon): @classmethod diff --git a/addons/stock_account/i18n/ja.po b/addons/stock_account/i18n/ja.po index e2180da2a7264..b011821857ffa 100644 --- a/addons/stock_account/i18n/ja.po +++ b/addons/stock_account/i18n/ja.po @@ -322,7 +322,7 @@ msgid "" "Counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account\n" " set on the source location. This is the default value for all products in this category. It can also directly be set on each product." msgstr "" -"全ての入荷在庫移動の相手仕訳項目は、移動元に特定の評価勘定が設定されていない限り、この勘定に計上されます。\n" +"全ての入荷在庫移動の相手仕訳明細は、移動元に特定の評価勘定が設定されていない限り、この勘定に計上されます。\n" "    これは、このカテゴリの全プロダクトのデフォルト値です。各プロダクトに直接設定することもできます。" #. module: stock_account @@ -485,7 +485,7 @@ msgstr "仕訳" #. module: stock_account #: model:ir.model,name:stock_account.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: stock_account #: model:ir.model.fields,field_description:stock_account.field_res_config_settings__module_stock_landed_costs diff --git a/addons/stock_delivery/i18n/zh_CN.po b/addons/stock_delivery/i18n/zh_CN.po index c79e5d475bc46..135420410878a 100644 --- a/addons/stock_delivery/i18n/zh_CN.po +++ b/addons/stock_delivery/i18n/zh_CN.po @@ -3,7 +3,7 @@ # * stock_delivery # # Translators: -# Odoo哥 , 2024 +# 何彬 , 2024 # Wil Odoo, 2025 # Chloe Wang, 2025 # diff --git a/addons/stock_landed_costs/i18n/az.po b/addons/stock_landed_costs/i18n/az.po index df77dc92fac5e..ed3239b3c4aae 100644 --- a/addons/stock_landed_costs/i18n/az.po +++ b/addons/stock_landed_costs/i18n/az.po @@ -3,9 +3,9 @@ # * stock_landed_costs # # Translators: -# Nurlan Farajov , 2024 # erpgo translator , 2024 # Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-25 08:39+0000\n" "PO-Revision-Date: 2024-09-25 09:42+0000\n" -"Last-Translator: Jumshud Sultanov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -292,6 +292,8 @@ msgid "" "Goods are tangible materials and merchandise you provide.\n" "A service is a non-material product you provide." msgstr "" +"Mallar maddi materiallar və təqdim etdiyiniz mallardır.\n" +"Xidmət sizin təqdim etdiyiniz qeyri-maddi məhsuldur." #. module: stock_landed_costs #: model_terms:ir.ui.view,arch_db:stock_landed_costs.view_stock_landed_cost_search diff --git a/addons/stock_landed_costs/i18n/ja.po b/addons/stock_landed_costs/i18n/ja.po index e802829040c92..b2fed2207991e 100644 --- a/addons/stock_landed_costs/i18n/ja.po +++ b/addons/stock_landed_costs/i18n/ja.po @@ -380,7 +380,7 @@ msgstr "仕訳" #. module: stock_landed_costs #: model:ir.model,name:stock_landed_costs.model_account_move_line msgid "Journal Item" -msgstr "仕訳項目" +msgstr "仕訳明細" #. module: stock_landed_costs #: model:ir.model.fields,field_description:stock_landed_costs.field_stock_landed_cost_lines__cost_id diff --git a/addons/survey/i18n/az.po b/addons/survey/i18n/az.po index cf90a3fc41d70..f65345aa6365e 100644 --- a/addons/survey/i18n/az.po +++ b/addons/survey/i18n/az.po @@ -6,7 +6,7 @@ # Nurlan Farajov, 2024 # Jumshud Sultanov , 2024 # erpgo translator , 2024 -# Nurlan Farajov , 2024 +# Nurlan Farajov , 2025 # msgid "" msgstr "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:42+0000\n" -"Last-Translator: Nurlan Farajov , 2024\n" +"Last-Translator: Nurlan Farajov , 2025\n" "Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1096,7 +1096,7 @@ msgstr "" #. module: survey #: model:ir.model.fields,field_description:survey.field_survey_invite__body_has_template_value msgid "Body content is the same as the template" -msgstr "" +msgstr "Əsas məzmun şablonla eynidir" #. module: survey #: model:survey.question.answer,value:survey.survey_demo_quiz_p3_q4_sug4 @@ -1137,7 +1137,7 @@ msgstr "" #. module: survey #: model:ir.model.fields,field_description:survey.field_survey_invite__can_edit_body msgid "Can Edit Body" -msgstr "" +msgstr "Məzmunu Redaktə edə bilər" #. module: survey #: model:survey.question,title:survey.survey_demo_burger_quiz_p4_q3 @@ -1218,7 +1218,7 @@ msgstr "" #. module: survey #: model:survey.question.answer,value:survey.vendor_certification_page_1_question_2_choice_1 msgid "Chair floor protection" -msgstr "" +msgstr "Kreslo döşəməsinin qorunması" #. module: survey #. odoo-python @@ -2371,7 +2371,7 @@ msgstr "" #. module: survey #: model:ir.model.fields,field_description:survey.field_survey_invite__is_mail_template_editor msgid "Is Editor" -msgstr "" +msgstr "Redaktordur" #. module: survey #: model:ir.model.fields,field_description:survey.field_survey_survey__message_is_follower @@ -3252,6 +3252,10 @@ msgid "" "a placeholder expression that provides the appropriate language, e.g. {{ " "object.partner_id.lang }}." msgstr "" +"E-poçt göndərərkən seçmək üçün əlavə tərcümə dili (ISO kodu). " +"Quraşdırılmayıbsa, ingilis versiyası istifadə olunacaq. Bu, adətən müvafiq " +"dili təmin edən yer tutucu ifadə olmalıdır, məs. {{ obyekt.partner_id.lang " +"}}." #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_question_form @@ -3679,7 +3683,7 @@ msgstr "" #. module: survey #: model:ir.model.fields,field_description:survey.field_survey_invite__render_model msgid "Rendering Model" -msgstr "" +msgstr "Render modeli" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_survey_view_form diff --git a/addons/survey/i18n/cs.po b/addons/survey/i18n/cs.po index 095845c05cab4..8500cc54107bd 100644 --- a/addons/survey/i18n/cs.po +++ b/addons/survey/i18n/cs.po @@ -4270,7 +4270,7 @@ msgstr "Zahájit certifikaci" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_survey_view_kanban msgid "Start Live Session" -msgstr "" +msgstr "Zahájit živou relaci" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_fill_form_start @@ -4433,7 +4433,7 @@ msgstr "" #. odoo-python #: code:addons/survey/models/survey_user_input.py:0 msgid "Survey Participant" -msgstr "" +msgstr "Účastník průzkumu" #. module: survey #: model:ir.model,name:survey.model_survey_question @@ -4486,12 +4486,12 @@ msgstr "Záznamy uživatele průzkumu" #. module: survey #: model:mail.template,name:survey.mail_template_certification msgid "Survey: Certification Success" -msgstr "" +msgstr "Průzkum: Úspěšnost certifikace" #. module: survey #: model:mail.template,name:survey.mail_template_user_input_invite msgid "Survey: Invite" -msgstr "" +msgstr "Průzkum: Pozvat" #. module: survey #: model:ir.actions.act_window,name:survey.action_survey_form @@ -4508,7 +4508,7 @@ msgstr "Takaaki kajita" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_button_retake msgid "Take Again" -msgstr "" +msgstr "Vzít znovu" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_survey_view_form @@ -4545,7 +4545,7 @@ msgstr "Otestujte si své dovednosti dodavatele!" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_user_input_view_search msgid "Tests Only" -msgstr "" +msgstr "Pouze testy" #. module: survey #: model:ir.model.fields.selection,name:survey.selection__survey_user_input_line__answer_type__char_box @@ -4561,7 +4561,7 @@ msgstr "Textová odpověď" #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "Thank you for your participation, hope you had a blast!" -msgstr "" +msgstr "Děkujeme za účast, doufáme, že jste si to užili!" #. module: survey #. odoo-python @@ -4579,7 +4579,7 @@ msgstr "Děkujeme" #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "Thank you. We will contact you soon." -msgstr "" +msgstr "Děkujeme. Brzy vás budeme kontaktovat." #. module: survey #. odoo-python @@ -4692,7 +4692,7 @@ msgstr "" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_session_code msgid "The session did not start yet." -msgstr "" +msgstr "Relace ještě nezačala." #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_fill_form_start @@ -4746,13 +4746,14 @@ msgstr "Během ověřování průzkumu došlo k chybě." #: code:addons/survey/models/survey_survey_template.py:0 msgid "They are a default answer, used if the participant skips the question" msgstr "" +"Jsou výchozí odpovědí, která se používá, pokud účastník otázku přeskočí" #. module: survey #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "" "They are technical parameters that guarantees the responsiveness of the page" -msgstr "" +msgstr "Jsou to technické parametry, které zaručují odezvu stránky" #. module: survey #. odoo-python @@ -4819,7 +4820,7 @@ msgstr "Otázka musí být zodpovězena." #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_page_print msgid "This question was skipped" -msgstr "" +msgstr "Tato otázka byla přeskočena" #. module: survey #: model_terms:survey.question,description:survey.survey_feedback_p1 @@ -4873,7 +4874,7 @@ msgstr "Tento průzkum je přístupný pouze registrovaným osobám. Prosím" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_survey_view_form msgid "Time & Scoring" -msgstr "" +msgstr "Čas a bodování" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_survey_view_form @@ -4899,12 +4900,12 @@ msgstr "Časový limit (sekundy)" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_fill_form_start msgid "Time limit for this certification:" -msgstr "" +msgstr "Časový limit pro tuto certifikaci:" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_fill_form_start msgid "Time limit for this survey:" -msgstr "" +msgstr "Časový limit pro tuto průzkum:" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_question_form @@ -4919,7 +4920,7 @@ msgstr "Název" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.user_input_session_manage_content msgid "To join:" -msgstr "" +msgstr "K připojení:" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_fill_form @@ -5043,7 +5044,7 @@ msgstr "Unikátní" #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "Unlikely" -msgstr "" +msgstr "Nepravděpodobné" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_survey_view_search @@ -5054,13 +5055,13 @@ msgstr "Připravované aktivity" #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "Use a fun visual support, like a live presentation" -msgstr "" +msgstr "Použijte zábavnou vizuální podporu, jako je živá prezentace" #. module: survey #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "Use humor and make jokes" -msgstr "" +msgstr "Používejte humor a dělejte vtipy" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_invite_view_form @@ -5071,7 +5072,7 @@ msgstr "Použít šablonu" #. odoo-javascript #: code:addons/survey/static/src/js/tours/survey_tour.js:0 msgid "Use the breadcrumbs to quickly go back to the dashboard." -msgstr "" +msgstr "Pomocí navigace se rychle vraťte na dashboard." #. module: survey #: model:ir.model.fields,help:survey.field_survey_question__description @@ -5227,6 +5228,7 @@ msgid "" "Welcome to this Odoo certification. You will receive 2 random questions out " "of a pool of 3." msgstr "" +"Vítejte v této certifikaci Odoo. Dostanete 2 náhodné otázky ze skupiny 3." #. module: survey #: model:survey.question,title:survey.vendor_certification_page_3_question_5 @@ -5265,25 +5267,25 @@ msgstr "" #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "What does \"ODOO\" stand for?" -msgstr "" +msgstr "Co znamená „ODOO“?" #. module: survey #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "What does one need to get to pass an Odoo Survey?" -msgstr "" +msgstr "Co člověk potřebuje, aby mohl projít průzkumem Odoo?" #. module: survey #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "What is a frequent mistake public speakers do?" -msgstr "" +msgstr "Co je častou chybou veřejných řečníků?" #. module: survey #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "What is the best way to catch the attention of an audience?" -msgstr "" +msgstr "Jaký je nejlepší způsob, jak upoutat pozornost publika?" #. module: survey #: model:survey.question,title:survey.survey_demo_burger_quiz_p2_q2 @@ -5334,7 +5336,7 @@ msgstr "" #. odoo-javascript #: code:addons/survey/static/src/js/tours/survey_tour.js:0 msgid "Whenever you pick an answer, Odoo saves it for you." -msgstr "" +msgstr "Kdykoli vyberete odpověď, Odoo ji pro vás uloží." #. module: survey #: model:survey.question,title:survey.survey_demo_quiz_p1_q3 @@ -5410,6 +5412,8 @@ msgstr "" msgid "" "Why should you consider making your presentation more fun with a small quiz?" msgstr "" +"Proč byste měli zvážit, jak udělat svou prezentaci zábavnější pomocí malého " +"kvízu?" #. module: survey #: model:survey.question.answer,value:survey.vendor_certification_page_1_question_3_choice_3 @@ -5437,6 +5441,8 @@ msgid "" "YYYY-MM-DD\n" " " msgstr "" +"YYYY-MM-DD\n" +" " #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_question_form @@ -5444,12 +5450,14 @@ msgid "" "YYYY-MM-DD hh:mm:ss\n" " " msgstr "" +"YYYY-MM-DD hh:mm:ss\n" +" " #. module: survey #. odoo-python #: code:addons/survey/models/survey_survey_template.py:0 msgid "Yellow Pen" -msgstr "" +msgstr "Žluté pero" #. module: survey #: model:survey.question.answer,value:survey.survey_demo_food_preferences_q1_sug1 @@ -5480,6 +5488,8 @@ msgid "" "You can share your links through different means: email, invite shortcut, " "live presentation, ..." msgstr "" +"Své odkazy můžete sdílet různými způsoby: e-mailem, zástupcem pozvánky, " +"živou prezentací, ..." #. module: survey #. odoo-python @@ -5498,6 +5508,8 @@ msgid "" "You cannot send an invitation for a \"One page per section\" survey if the " "survey has no sections." msgstr "" +"Pokud průzkum neobsahuje žádné sekce, nemůžete odeslat pozvánku k průzkumu " +"„Jedna stránka na sekci“." #. module: survey #. odoo-python @@ -5506,6 +5518,8 @@ msgid "" "You cannot send an invitation for a \"One page per section\" survey if the " "survey only contains empty sections." msgstr "" +"Pokud průzkum obsahuje pouze prázdné sekce, nemůžete odeslat pozvánku k " +"průzkumu „Jedna stránka na sekci“." #. module: survey #. odoo-python @@ -5541,6 +5555,8 @@ msgid "" "Your responses will help us improve our product range to serve you even " "better." msgstr "" +"Vaše odpovědi nám pomohou zlepšit naši produktovou řadu, abychom vám " +"sloužili ještě lépe." #. module: survey #. odoo-javascript @@ -5558,7 +5574,7 @@ msgstr "Oddálit" #. odoo-javascript #: code:addons/survey/static/src/xml/survey_image_zoomer_templates.xml:0 msgid "Zoomed Image" -msgstr "" +msgstr "Přiblížený obrázek" #. module: survey #. odoo-python @@ -5596,32 +5612,33 @@ msgstr "" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_survey_view_form msgid "e.g. \"Thank you very much for your feedback!\"" -msgstr "" +msgstr "např. \"Děkujeme za vaši zpětnou vazbu!\"" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_survey_view_form msgid "e.g. \"The following Survey will help us...\"" -msgstr "" +msgstr "např. \"Následující průzkum nám pomůže...\"" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_question_form msgid "e.g. \"What is the...\"" -msgstr "" +msgstr "např. \"Co je...\"" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_session_code msgid "e.g. 4812" -msgstr "" +msgstr "např. 4812" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_question_form msgid "e.g. Guidelines, instructions, picture, ... to help attendees answer" msgstr "" +"např. Pokyny, instrukce, obrázek, ..., které pomohou účastníkům odpovědět" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.gamification_badge_form_view_simplified msgid "e.g. No one can solve challenges like you do" -msgstr "" +msgstr "např. Nikdo nemůže vyřešit výzvy, jako vy." #. module: survey #: model_terms:ir.ui.view,arch_db:survey.gamification_badge_form_view_simplified @@ -5636,7 +5653,7 @@ msgstr "např. Průzkum spokojenosti" #. module: survey #: model:survey.question,question_placeholder:survey.survey_demo_quiz_p1_q1 msgid "ex@mple.com" -msgstr "" +msgstr "prikl@d.cz" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_auth_required @@ -5656,25 +5673,25 @@ msgstr "z " #. module: survey #: model_terms:ir.ui.view,arch_db:survey.certification_report_view_general msgid "of achievement" -msgstr "" +msgstr "úspěchu" #. module: survey #. odoo-javascript #: code:addons/survey/static/src/js/survey_form.js:0 msgid "or press CTRL+Enter" -msgstr "" +msgstr "nebo stiskněte CTRL+Enter" #. module: survey #. odoo-javascript #: code:addons/survey/static/src/js/survey_form.js:0 msgid "or press Enter" -msgstr "" +msgstr "nebo stiskněte Enter" #. module: survey #. odoo-javascript #: code:addons/survey/static/src/js/survey_form.js:0 msgid "or press ⌘+Enter" -msgstr "" +msgstr "nebo stiskněte ⌘+Enter" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_progression @@ -5689,7 +5706,7 @@ msgstr "průzkum vypršel" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_void_content msgid "survey is empty" -msgstr "" +msgstr "průzkum je prázdný" #. module: survey #: model_terms:ir.ui.view,arch_db:survey.survey_403_page diff --git a/addons/survey/i18n/ko.po b/addons/survey/i18n/ko.po index ba22c6103fb26..da69d90363c1e 100644 --- a/addons/survey/i18n/ko.po +++ b/addons/survey/i18n/ko.po @@ -4,8 +4,8 @@ # # Translators: # Wil Odoo, 2024 -# Sarah Park, 2024 # Daye Jeong, 2025 +# Sarah Park, 2025 # msgid "" msgstr "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-16 13:39+0000\n" "PO-Revision-Date: 2024-09-25 09:42+0000\n" -"Last-Translator: Daye Jeong, 2025\n" +"Last-Translator: Sarah Park, 2025\n" "Language-Team: Korean (https://app.transifex.com/odoo/teams/41243/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -82,7 +82,7 @@ msgstr "%s (복사)" #. odoo-python #: code:addons/survey/models/survey_question.py:0 msgid "%s Votes" -msgstr "" +msgstr "%s 표" #. module: survey #. odoo-python diff --git a/addons/test_mail/data/test_mail_data.py b/addons/test_mail/data/test_mail_data.py index 7eb9b24187a2d..b265109307c3f 100644 --- a/addons/test_mail/data/test_mail_data.py +++ b/addons/test_mail/data/test_mail_data.py @@ -648,11 +648,11 @@ --001a11416b9e9b229a05272b7052-- """ -MAIL_EML_ATTACHMENT = """Subject: Re: test attac +MAIL_EML_ATTACHMENT = """Subject: {subject} From: {email_from} To: {to} -References: -Message-ID: +References: {references} +Message-ID: {msg_id} Date: Wed, 14 Mar 2018 14:26:58 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 diff --git a/addons/test_mail/tests/test_mail_gateway.py b/addons/test_mail/tests/test_mail_gateway.py index b78494aa39d65..31d77ef3793d7 100644 --- a/addons/test_mail/tests/test_mail_gateway.py +++ b/addons/test_mail/tests/test_mail_gateway.py @@ -109,7 +109,11 @@ def test_message_parse_bugs(self): def test_message_parse_eml(self): # Test that the parsing of mail with embedded emails as eml(msg) which generates empty attachments, can be processed. - mail = self.format(test_mail_data.MAIL_EML_ATTACHMENT, email_from='"Sylvie Lelitre" ', to=f'generic@{self.alias_domain}') + mail = self.format(test_mail_data.MAIL_EML_ATTACHMENT, email_from='"Sylvie Lelitre" ', to=f'generic@{self.alias_domain}', + msg_id='', + references='', + subject='Re: test attac', + ) self.env['mail.thread'].message_parse(self.from_string(mail)) def test_message_parse_eml_bounce_headers(self): diff --git a/addons/web/__manifest__.py b/addons/web/__manifest__.py index 86152ab21d7c3..3442c97bc9b4a 100644 --- a/addons/web/__manifest__.py +++ b/addons/web/__manifest__.py @@ -448,9 +448,8 @@ ('remove', 'web/static/lib/hoot/ui/hoot_style.css'), ('remove', 'web/static/lib/hoot/tests/**/*'), - # Odoo mocks - # ! must be loaded before other @web assets - 'web/static/tests/_framework/mock_module_loader.js', + # Applied here to allow libs above to be loaded normally + 'web/static/tests/_framework/hoot_module_loader.js', # Assets for features to test (views, services, fields, ...) # Typically includes most files in 'web.web.assets_backend' @@ -464,7 +463,6 @@ 'web.assets_unit_tests': [ 'web/static/tests/**/*', - ('remove', 'web/static/tests/_framework/mock_module_loader.js'), ('remove', 'web/static/tests/tours/**/*'), ('remove', 'web/static/tests/legacy/**/*'), # to remove when all legacy tests are ported ], diff --git a/addons/web/i18n/zh_TW.po b/addons/web/i18n/zh_TW.po index adfb39eb8c4fc..842b760ce6777 100644 --- a/addons/web/i18n/zh_TW.po +++ b/addons/web/i18n/zh_TW.po @@ -2953,7 +2953,7 @@ msgstr "浮點數" #. odoo-javascript #: code:addons/web/static/src/views/kanban/kanban_header.js:0 msgid "Fold" -msgstr "" +msgstr "收起" #. module: web #. odoo-javascript diff --git a/addons/web/static/lib/hoot-dom/helpers/dom.js b/addons/web/static/lib/hoot-dom/helpers/dom.js index c51ebe89292f9..a885fde993c07 100644 --- a/addons/web/static/lib/hoot-dom/helpers/dom.js +++ b/addons/web/static/lib/hoot-dom/helpers/dom.js @@ -366,82 +366,6 @@ const matchFilter = (filter, nodes, index) => { } }; -/** - * @param {string} query - * @param {number} width - * @param {number} height - */ -const matchesQuery = (query, width, height) => - query - .toLowerCase() - .split(/\s*,\s*/) - .some((orPart) => - orPart - .split(/\s*\band\b\s*/) - .every((andPart) => matchesQueryPart(andPart, width, height)) - ); - -/** - * @param {string} query - * @param {number} width - * @param {number} height - */ -const matchesQueryPart = (query, width, height) => { - const [, key, value] = query.match(/\(\s*([\w-]+)\s*:\s*(.+)\s*\)/) || []; - let result = false; - if (key) { - switch (key) { - case "display-mode": { - result = value === mockedMatchMedia.DISPLAY_MODE; - break; - } - case "max-height": { - result = height <= $parseFloat(value); - break; - } - case "max-width": { - result = width <= $parseFloat(value); - break; - } - case "min-height": { - result = height >= $parseFloat(value); - break; - } - case "min-width": { - result = width >= $parseFloat(value); - break; - } - case "orientation": { - result = value === "landscape" ? width > height : width < height; - break; - } - case "pointer": { - switch (value) { - case "coarse": { - result = globalThis.ontouchstart !== undefined; - break; - } - case "fine": { - result = globalThis.ontouchstart === undefined; - break; - } - } - break; - } - case "prefers-color-scheme": { - result = value === mockedMatchMedia.COLOR_SCHEME; - break; - } - case "prefers-reduced-motion": { - result = value === mockedMatchMedia.REDUCED_MOTION; - break; - } - } - } - - return query.startsWith("not") ? !result : result; -}; - /** * @template T * @param {T} value @@ -909,10 +833,6 @@ export function getCurrentDimensions() { return currentDimensions; } -export function getDefaultRootNode() { - return getDefaultRoot(); -} - /** * @param {Node} [node] * @returns {Document} @@ -1185,37 +1105,6 @@ export function isNodeVisible(node) { return visible; } -/** - * @type {typeof matchMedia} - */ -export function mockedMatchMedia(query) { - let onchange = null; - return { - addEventListener: (type, callback) => window.addEventListener("resize", callback), - get matches() { - return matchesQuery(query, window.innerWidth, window.innerHeight); - }, - media: query, - get onchange() { - return onchange; - }, - set onchange(value) { - value ||= null; - if (value) { - window.addEventListener("resize", value); - } else { - window.removeEventListener("resize", onchange); - } - onchange = value; - }, - removeEventListener: (type, callback) => window.removeEventListener("resize", callback), - }; -} - -mockedMatchMedia.COLOR_SCHEME = "light"; -mockedMatchMedia.DISPLAY_MODE = "browser"; -mockedMatchMedia.REDUCED_MOTION = "reduce"; - /** * @param {Dimensions} dimensions * @returns {[number, number]} @@ -1304,19 +1193,45 @@ export function formatXml(value, options) { } /** - * Returns the active element in the given document (or in the owner document of - * the given node). + * Returns the active element in the given document. Further checks are performed + * in the following cases: + * - the given node is an iframe (checks in its content document); + * - the given node has a shadow root (checks in that shadow root document); + * - the given node is the body of an iframe (checks in the parent document). * * @param {Node} [node] */ export function getActiveElement(node) { - const { activeElement } = getDocument(node); - if (activeElement.contentDocument) { - return getActiveElement(activeElement.contentDocument); + const document = getDocument(node); + const window = getWindow(node); + const { activeElement } = document; + const { contentDocument, shadowRoot } = activeElement; + + if (contentDocument && contentDocument.activeElement !== contentDocument.body) { + // Active element is an "iframe" element (with an active element other than its own body): + if (contentDocument.activeElement === contentDocument.body) { + // Active element is the body of the iframe: + // -> returns that element + return contentDocument.activeElement + } else { + // Active element is something else than the body: + // -> get the active element inside the iframe document + return getActiveElement(contentDocument); + } } - if (activeElement.shadowRoot) { - return activeElement.shadowRoot.activeElement; + + if (shadowRoot) { + // Active element has a shadow root: + // -> get the active element inside its root + return shadowRoot.activeElement; } + + if (activeElement === document.body && window !== window.parent) { + // Active element is the body of an iframe: + // -> get the active element of its parent frame (recursively) + return getActiveElement(window.parent.document); + } + return activeElement; } diff --git a/addons/web/static/lib/hoot-dom/helpers/events.js b/addons/web/static/lib/hoot-dom/helpers/events.js index d85860dc04e38..c3012649ee939 100644 --- a/addons/web/static/lib/hoot-dom/helpers/events.js +++ b/addons/web/static/lib/hoot-dom/helpers/events.js @@ -7,14 +7,15 @@ import { getNextFocusableElement, getNodeRect, getNodeValue, + getParentFrame, getPreviousFocusableElement, + getStyle, getWindow, isCheckable, isEditable, isEventTarget, isNode, isNodeFocusable, - isNodeVisible, parseDimensions, parsePosition, queryAll, @@ -22,7 +23,7 @@ import { setDimensions, toSelector, } from "./dom"; -import { getTimeOffset, microTick } from "./time"; +import { microTick } from "./time"; /** * @typedef {Target | Promise} AsyncTarget @@ -41,7 +42,9 @@ import { getTimeOffset, microTick } from "./time"; * * @typedef {((ev: Event) => boolean) | EventType} EventListPredicate * - * @typedef {{}} EventOptions generic event options + * @typedef {{ + * eventInit?: EventInit; + * }} EventOptions generic event options * * @typedef {{ * clientX: number; @@ -74,6 +77,12 @@ import { getTimeOffset, microTick } from "./time"; * * @typedef {import("./dom").QueryOptions} QueryOptions * + * @typedef {EventOptions & QueryOptions & { + * force?: boolean; + * initiator?: "keyboard" | "scrollbar" | "wheel" | null; + * relative?: boolean; + * }} ScrollOptions + * * @typedef {EventOptions & { * target: AsyncTarget; * }} SelectOptions @@ -130,28 +139,73 @@ const { } = globalThis; /** @type {Document["createRange"]} */ const $createRange = document.createRange.bind(document); -/** @type {Document["hasFocus"]} */ -const $hasFocus = document.hasFocus.bind(document); //----------------------------------------------------------------------------- // Internal //----------------------------------------------------------------------------- /** - * @param {EventTarget} target - * @param {EventType} type - */ -const catchNextEvent = (target, type) => - new Promise((resolve) => { - target.addEventListener( - type, - (event) => { - getCurrentEvents().push(event); - resolve(event); - }, - { once: true } - ); - }); + * @param {Event} ev + */ +const cancelTrustedEvent = (ev) => { + if (ev.isTrusted && runTime.eventsToIgnore.includes(ev.type)) { + runTime.eventsToIgnore.splice(runTime.eventsToIgnore.indexOf(ev.type), 1); + ev.stopPropagation(); + ev.stopImmediatePropagation(); + ev.preventDefault(); + } +}; + +/** + * @param {HTMLElement} target + * @param {number} start + * @param {number} end + */ +const changeSelection = async (target, start, end) => { + if (!isNil(start) && !isNil(target.selectionStart)) { + target.selectionStart = start; + } + if (!isNil(end) && !isNil(target.selectionEnd)) { + target.selectionEnd = end; + } +}; + +/** + * @param {HTMLElement} target + * @param {number} x + */ +const constrainScrollX = (target, x) => { + let { offsetWidth, scrollWidth } = target; + const document = getDocument(target); + if (target === document || target === document.documentElement) { + // elements in iframes consider the width of the