From 3cbe8484bbea9d2ebf84f45f683f8e077fbf36dc Mon Sep 17 00:00:00 2001 From: "Odoo S.A." Date: Tue, 21 Oct 2025 16:50:37 +0200 Subject: [PATCH 1/2] [ADD] payment_wordline: backport from v18 to v16 --- payment_worldline/README.md | 44 +++ payment_worldline/__init__.py | 14 + payment_worldline/__manifest__.py | 24 ++ payment_worldline/const.py | 72 ++++ payment_worldline/controllers/__init__.py | 3 + payment_worldline/controllers/main.py | 107 +++++ payment_worldline/data/neutralize.sql | 7 + .../data/payment_provider_data.xml | 10 + payment_worldline/i18n/ar.po | 153 ++++++++ payment_worldline/i18n/az.po | 154 ++++++++ payment_worldline/i18n/bg.po | 153 ++++++++ payment_worldline/i18n/bs.po | 147 +++++++ payment_worldline/i18n/ca.po | 158 ++++++++ payment_worldline/i18n/cs.po | 152 ++++++++ payment_worldline/i18n/da.po | 153 ++++++++ payment_worldline/i18n/de.po | 153 ++++++++ payment_worldline/i18n/el.po | 153 ++++++++ payment_worldline/i18n/es.po | 154 ++++++++ payment_worldline/i18n/es_419.po | 154 ++++++++ payment_worldline/i18n/et.po | 155 ++++++++ payment_worldline/i18n/fa.po | 151 +++++++ payment_worldline/i18n/fi.po | 157 ++++++++ payment_worldline/i18n/fr.po | 154 ++++++++ payment_worldline/i18n/he.po | 157 ++++++++ payment_worldline/i18n/hi.po | 151 +++++++ payment_worldline/i18n/hr.po | 152 ++++++++ payment_worldline/i18n/hu.po | 153 ++++++++ payment_worldline/i18n/id.po | 154 ++++++++ payment_worldline/i18n/it.po | 154 ++++++++ payment_worldline/i18n/ja.po | 155 ++++++++ payment_worldline/i18n/ko.po | 153 ++++++++ payment_worldline/i18n/ku.po | 151 +++++++ payment_worldline/i18n/lt.po | 154 ++++++++ payment_worldline/i18n/lv.po | 153 ++++++++ payment_worldline/i18n/mn.po | 152 ++++++++ payment_worldline/i18n/my.po | 151 +++++++ payment_worldline/i18n/nb.po | 152 ++++++++ payment_worldline/i18n/nl.po | 153 ++++++++ payment_worldline/i18n/payment_worldline.pot | 147 +++++++ payment_worldline/i18n/pl.po | 152 ++++++++ payment_worldline/i18n/pt.po | 152 ++++++++ payment_worldline/i18n/pt_BR.po | 154 ++++++++ payment_worldline/i18n/ro.po | 156 ++++++++ payment_worldline/i18n/ru.po | 158 ++++++++ payment_worldline/i18n/sk.po | 152 ++++++++ payment_worldline/i18n/sl.po | 152 ++++++++ payment_worldline/i18n/sr@latin.po | 147 +++++++ payment_worldline/i18n/sv.po | 155 ++++++++ payment_worldline/i18n/th.po | 152 ++++++++ payment_worldline/i18n/tr.po | 155 ++++++++ payment_worldline/i18n/uk.po | 151 +++++++ payment_worldline/i18n/vi.po | 154 ++++++++ payment_worldline/i18n/zh_CN.po | 154 ++++++++ payment_worldline/i18n/zh_TW.po | 152 ++++++++ payment_worldline/models/__init__.py | 4 + payment_worldline/models/payment_provider.py | 146 +++++++ .../models/payment_transaction.py | 369 ++++++++++++++++++ payment_worldline/static/description/icon.png | Bin 0 -> 1149 bytes payment_worldline/static/description/icon.svg | 1 + .../static/src/js/payment_form.js | 23 ++ payment_worldline/tests/__init__.py | 4 + payment_worldline/tests/common.py | 149 +++++++ payment_worldline/tests/test_worldline.py | 160 ++++++++ .../views/payment_provider_views.xml | 43 ++ .../views/payment_worldline_templates.xml | 8 + 65 files changed, 8227 insertions(+) create mode 100644 payment_worldline/README.md create mode 100644 payment_worldline/__init__.py create mode 100644 payment_worldline/__manifest__.py create mode 100644 payment_worldline/const.py create mode 100644 payment_worldline/controllers/__init__.py create mode 100644 payment_worldline/controllers/main.py create mode 100644 payment_worldline/data/neutralize.sql create mode 100644 payment_worldline/data/payment_provider_data.xml create mode 100644 payment_worldline/i18n/ar.po create mode 100644 payment_worldline/i18n/az.po create mode 100644 payment_worldline/i18n/bg.po create mode 100644 payment_worldline/i18n/bs.po create mode 100644 payment_worldline/i18n/ca.po create mode 100644 payment_worldline/i18n/cs.po create mode 100644 payment_worldline/i18n/da.po create mode 100644 payment_worldline/i18n/de.po create mode 100644 payment_worldline/i18n/el.po create mode 100644 payment_worldline/i18n/es.po create mode 100644 payment_worldline/i18n/es_419.po create mode 100644 payment_worldline/i18n/et.po create mode 100644 payment_worldline/i18n/fa.po create mode 100644 payment_worldline/i18n/fi.po create mode 100644 payment_worldline/i18n/fr.po create mode 100644 payment_worldline/i18n/he.po create mode 100644 payment_worldline/i18n/hi.po create mode 100644 payment_worldline/i18n/hr.po create mode 100644 payment_worldline/i18n/hu.po create mode 100644 payment_worldline/i18n/id.po create mode 100644 payment_worldline/i18n/it.po create mode 100644 payment_worldline/i18n/ja.po create mode 100644 payment_worldline/i18n/ko.po create mode 100644 payment_worldline/i18n/ku.po create mode 100644 payment_worldline/i18n/lt.po create mode 100644 payment_worldline/i18n/lv.po create mode 100644 payment_worldline/i18n/mn.po create mode 100644 payment_worldline/i18n/my.po create mode 100644 payment_worldline/i18n/nb.po create mode 100644 payment_worldline/i18n/nl.po create mode 100644 payment_worldline/i18n/payment_worldline.pot create mode 100644 payment_worldline/i18n/pl.po create mode 100644 payment_worldline/i18n/pt.po create mode 100644 payment_worldline/i18n/pt_BR.po create mode 100644 payment_worldline/i18n/ro.po create mode 100644 payment_worldline/i18n/ru.po create mode 100644 payment_worldline/i18n/sk.po create mode 100644 payment_worldline/i18n/sl.po create mode 100644 payment_worldline/i18n/sr@latin.po create mode 100644 payment_worldline/i18n/sv.po create mode 100644 payment_worldline/i18n/th.po create mode 100644 payment_worldline/i18n/tr.po create mode 100644 payment_worldline/i18n/uk.po create mode 100644 payment_worldline/i18n/vi.po create mode 100644 payment_worldline/i18n/zh_CN.po create mode 100644 payment_worldline/i18n/zh_TW.po create mode 100644 payment_worldline/models/__init__.py create mode 100644 payment_worldline/models/payment_provider.py create mode 100644 payment_worldline/models/payment_transaction.py create mode 100644 payment_worldline/static/description/icon.png create mode 100644 payment_worldline/static/description/icon.svg create mode 100644 payment_worldline/static/src/js/payment_form.js create mode 100644 payment_worldline/tests/__init__.py create mode 100644 payment_worldline/tests/common.py create mode 100644 payment_worldline/tests/test_worldline.py create mode 100644 payment_worldline/views/payment_provider_views.xml create mode 100644 payment_worldline/views/payment_worldline_templates.xml diff --git a/payment_worldline/README.md b/payment_worldline/README.md new file mode 100644 index 00000000000..a78abbce566 --- /dev/null +++ b/payment_worldline/README.md @@ -0,0 +1,44 @@ +# Worldline + +## Technical details + +API: [Worldline Direct API](https://docs.direct.worldline-solutions.com/en/api-reference) +version `2` + +This module integrates Worldline using the generic payment with redirection flow based on form +submission provided by the `payment` module. + +This is achieved by following the [Hosted Checkout Page] +(https://docs.direct.worldline-solutions.com/en/integration/basic-integration-methods/hosted-checkout-page) +guide. + +## Supported features + +- Payment with redirection flow +- Webhook notifications +- Tokenization with payment + +## Not implemented features + +- Tokenization without payment +- Manual capture +- Refunds + +## Module history + +- `18.0` + - The first version of the module is merged. odoo/odoo#175194. + +## Testing instructions + +https://docs.direct.worldline-solutions.com/en/integration/how-to-integrate/test-cases/index + +Use any name, any date in the future, and any 3 or 4 digits CVC. + +### VISA + +**Card Number**: `4330264936344675` + +### 3D Secure 2 (VISA) + +**Card Number**: `4874970686672022` diff --git a/payment_worldline/__init__.py b/payment_worldline/__init__.py new file mode 100644 index 00000000000..fda2a1512cb --- /dev/null +++ b/payment_worldline/__init__.py @@ -0,0 +1,14 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import controllers +from . import models + +from odoo.addons.payment import setup_provider, reset_payment_provider + + +def post_init_hook(env): + setup_provider(env, 'worldline') + + +def uninstall_hook(env): + reset_payment_provider(env, 'worldline') diff --git a/payment_worldline/__manifest__.py b/payment_worldline/__manifest__.py new file mode 100644 index 00000000000..95adc71583c --- /dev/null +++ b/payment_worldline/__manifest__.py @@ -0,0 +1,24 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': "Payment Provider: Worldline", + 'category': 'Accounting/Payment Providers', + 'sequence': 350, + 'summary': "A French payment provider covering several European countries.", + 'description': " ", # Non-empty string to avoid loading the README file. + 'depends': ['payment'], + 'data': [ + 'views/payment_provider_views.xml', + 'views/payment_worldline_templates.xml', + + 'data/payment_provider_data.xml', + ], + 'assets': { + 'web.assets_frontend': [ + 'payment_worldline/static/src/js/payment_form.js', + ], + }, + 'post_init_hook': 'post_init_hook', + 'uninstall_hook': 'uninstall_hook', + 'license': 'LGPL-3', +} diff --git a/payment_worldline/const.py b/payment_worldline/const.py new file mode 100644 index 00000000000..f2e7a16bc31 --- /dev/null +++ b/payment_worldline/const.py @@ -0,0 +1,72 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# The codes of the payment methods to activate when Worldline is activated. +DEFAULT_PAYMENT_METHOD_CODES = { + # Primary payment methods. + 'card', +} + +# Mapping of payment method codes to Worldline codes. +# See https://docs.direct.worldline-solutions.com/en/payment-methods-and-features/index. +PAYMENT_METHODS_MAPPING = { + 'alipay_plus': 5405, + 'amex': 2, + 'bancontact': 3012, + 'bizum': 5001, + 'cartes_bancaires': 130, + 'cofidis': 3012, + 'diners': 132, + 'discover': 128, + 'eps': 5406, + 'floa_bank': 5139, + 'ideal': 809, + 'jcb': 125, + 'klarna': 3301, + 'maestro': 117, + 'mastercard': 3, + 'mbway': 5908, + 'multibanco': 5500, + 'p24': 3124, + 'paypal': 840, + 'post_finance_pay': 3203, + 'twint': 5407, + 'upi': 56, + 'visa': 1, + 'wechat_pay': 5404, +} + +# The payment methods that involve a redirection to 3rd parties by Worldline. +REDIRECT_PAYMENT_METHODS = { + 'alipay_plus', + 'bizum', + 'eps', + 'floa_bank', + 'ideal', + 'klarna', + 'mbway', + 'multibanco', + 'p24', + 'paypal', + 'post_finance_pay', + 'twint', + 'wechat_pay', +} + +# Mapping of transaction states to Worldline's payment statuses. +# See https://docs.direct.worldline-solutions.com/en/integration/api-developer-guide/statuses. +PAYMENT_STATUS_MAPPING = { + 'pending': ( + 'CREATED', 'REDIRECTED', 'AUTHORIZATION_REQUESTED', 'PENDING_CAPTURE', 'CAPTURE_REQUESTED' + ), + 'done': ('CAPTURED',), + 'cancel': ('CANCELLED',), + 'declined': ('REJECTED', 'REJECTED_CAPTURE'), +} + +# Mapping of response codes indicating Worldline handled the request +# See https://apireference.connect.worldline-solutions.com/s2sapi/v1/en_US/json/response-codes.html. +VALID_RESPONSE_CODES = { + 200: 'Successful', + 201: 'Created', + 402: 'Payment Rejected', +} diff --git a/payment_worldline/controllers/__init__.py b/payment_worldline/controllers/__init__.py new file mode 100644 index 00000000000..80ee4da1c5e --- /dev/null +++ b/payment_worldline/controllers/__init__.py @@ -0,0 +1,3 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import main diff --git a/payment_worldline/controllers/main.py b/payment_worldline/controllers/main.py new file mode 100644 index 00000000000..ef1335bf659 --- /dev/null +++ b/payment_worldline/controllers/main.py @@ -0,0 +1,107 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from base64 import b64encode +import hashlib +import hmac +import logging +import pprint + +from werkzeug.exceptions import Forbidden + +from odoo import http +from odoo.exceptions import ValidationError +from odoo.http import request + + +_logger = logging.getLogger(__name__) + + +class WorldlineController(http.Controller): + _return_url = '/payment/worldline/return' + _webhook_url = '/payment/worldline/webhook' + + @http.route(_return_url, type='http', auth='public', methods=['GET']) + def worldline_return_from_checkout(self, **data): + """ Process the notification data sent by Worldline after redirection. + + :param dict data: The notification data, including the provider id appended to the URL in + `_get_specific_rendering_values`. + """ + _logger.info("Handling redirection from Worldline with data:\n%s", pprint.pformat(data)) + + provider_id = int(data['provider_id']) + provider_sudo = request.env['payment.provider'].sudo().browse(provider_id).exists() + if not provider_sudo or provider_sudo.code != 'worldline': + _logger.warning("Received payment data with invalid provider id.") + raise Forbidden() + + # Fetch the checkout session data from Worldline. + checkout_session_data = provider_sudo._worldline_make_request( + f'hostedcheckouts/{data["hostedCheckoutId"]}', method='GET' + ) + _logger.info( + "Response of '/hostedcheckouts/' request:\n%s", + pprint.pformat(checkout_session_data) + ) + notification_data = checkout_session_data.get('createdPaymentOutput', {}) + + # Handle the notification data. + tx_sudo = request.env['payment.transaction'].sudo()._get_tx_from_notification_data( + 'worldline', notification_data + ) + tx_sudo._handle_notification_data('worldline', notification_data) + return request.redirect('/payment/status') + + @http.route(_webhook_url, type='http', auth='public', methods=['POST'], csrf=False) + def worldline_webhook(self): + """ Process the notification data sent by Worldline to the webhook. + + See https://docs.direct.worldline-solutions.com/en/integration/api-developer-guide/webhooks. + + :return: An empty string to acknowledge the notification. + :rtype: str + """ + notification_data = request.get_json_data() + _logger.info( + "Notification received from Worldline with data:\n%s", pprint.pformat(notification_data) + ) + try: + # Check the integrity of the notification. + tx_sudo = request.env['payment.transaction'].sudo()._get_tx_from_notification_data( + 'worldline', notification_data + ) + received_signature = request.httprequest.headers.get('X-GCS-Signature') + request_data = request.httprequest.data + self._verify_notification_signature(request_data, received_signature, tx_sudo) + + # Handle the notification data. + tx_sudo._handle_notification_data('worldline', notification_data) + except ValidationError: # Acknowledge the notification to avoid getting spammed. + _logger.exception("Unable to handle the notification data; skipping to acknowledge.") + + return request.make_json_response('') # Acknowledge the notification. + + @staticmethod + def _verify_notification_signature(request_data, received_signature, tx_sudo): + """ Check that the received signature matches the expected one. + + :param dict|bytes request_data: The request data. + :param str received_signature: The signature to compare with the expected signature. + :param payment.transaction tx_sudo: The sudoed transaction referenced by the notification + data. + :return: None + :raise Forbidden: If the signatures don't match. + """ + # Retrieve the received signature from the payload. + if not received_signature: + _logger.warning("Received notification with missing signature.") + raise Forbidden() + + # Compare the received signature with the expected signature computed from the payload. + webhook_secret = tx_sudo.provider_id.worldline_webhook_secret + expected_signature = b64encode( + hmac.new(webhook_secret.encode(), request_data, hashlib.sha256).digest() + ) + if not hmac.compare_digest(received_signature.encode(), expected_signature): + _logger.warning("Received notification with invalid signature.") + raise Forbidden() diff --git a/payment_worldline/data/neutralize.sql b/payment_worldline/data/neutralize.sql new file mode 100644 index 00000000000..b9c7da57efb --- /dev/null +++ b/payment_worldline/data/neutralize.sql @@ -0,0 +1,7 @@ +-- disable worldline payment provider +UPDATE payment_provider + SET worldline_pspid = NULL, + worldline_api_key = NULL, + worldline_api_secret = NULL, + worldline_webhook_key = NULL, + worldline_webhook_secret = NULL; diff --git a/payment_worldline/data/payment_provider_data.xml b/payment_worldline/data/payment_provider_data.xml new file mode 100644 index 00000000000..db4c3a82f27 --- /dev/null +++ b/payment_worldline/data/payment_provider_data.xml @@ -0,0 +1,10 @@ + + + + + worldline + + True + + + diff --git a/payment_worldline/i18n/ar.po b/payment_worldline/i18n/ar.po new file mode 100644 index 00000000000..3061cc19a4b --- /dev/null +++ b/payment_worldline/i18n/ar.po @@ -0,0 +1,153 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Malaz Abuidris , 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: 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" +"Content-Transfer-Encoding: \n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "مفتاح الواجهة البرمجية للتطبيق " + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "سر الواجهة البرمجية للتطبيق " + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "رمز " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "تعذر إنشاء الاتصال بالواجهة البرمجية للتطبيق. " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "لم يتم العثور على معاملة تطابق المرجع %s. " + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "مزود الدفع " + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "معاملة الدفع " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "تم استلام البيانات دون حالة الدفع. " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "تم استلام البيانات دون مرجع %(ref)s. " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"تم استلام حالة معاملة غير صالحة %(status)s مع كود الخطأ %(error_code)s. " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "فشل التواصل مع الواجهة البرمجية. التفاصيل: %s " + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "الكود التقني لمزود الدفع هذا. " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "المعاملة غير مرتبطة برمز. " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "تم إلغاء المعاملة مع رمز الخطأ %(error_code)s. " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "تم رفض المعاملة مع رمز الخطأ %(error_code)s. " + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "مفتاح Webhook " + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "سر Webhook " + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Worldline API Key" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Worldline API Secret" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "Worldline PSPID" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Worldline Webhook Key" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Worldline Webhook Secret" diff --git a/payment_worldline/i18n/az.po b/payment_worldline/i18n/az.po new file mode 100644 index 00000000000..8167fdca259 --- /dev/null +++ b/payment_worldline/i18n/az.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# erpgo translator , 2024 +# Jumshud Sultanov , 2024 +# Nurlan Farajov , 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: 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" +"Content-Transfer-Encoding: \n" +"Language: az\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "" +"İnformasiya sistemlərinin texniki qarşılıqlı əlaqəsini təmin edən açar" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kod" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Ödəniş Provayderi" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Ödəniş əməliyyatı" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/bg.po b/payment_worldline/i18n/bg.po new file mode 100644 index 00000000000..c0613196841 --- /dev/null +++ b/payment_worldline/i18n/bg.po @@ -0,0 +1,153 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# aleksandar ivanov, 2024 +# Turhan Aydin , 2024 +# Maria Boyadjieva , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Maria Boyadjieva , 2024\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" +"Content-Transfer-Encoding: \n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API Key" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Код" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Неуспешно установяване на връзката с API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Не е открита транзакция, съответстваща с референция %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Доставчик на разплащания" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Платежна транзакция" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/bs.po b/payment_worldline/i18n/bs.po new file mode 100644 index 00000000000..b3cc11623c5 --- /dev/null +++ b/payment_worldline/i18n/bs.po @@ -0,0 +1,147 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-26 08:56+0000\n" +"PO-Revision-Date: 2024-09-26 08:56+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: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/ca.po b/payment_worldline/i18n/ca.po new file mode 100644 index 00000000000..53629d304b7 --- /dev/null +++ b/payment_worldline/i18n/ca.po @@ -0,0 +1,158 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# RGB Consulting , 2024 +# Martin Trigaux, 2024 +# Quim - coopdevs , 2024 +# Guspy12, 2024 +# Ivan Espinola, 2024 +# marcescu, 2024 +# "Noemi Pla Garcia (nopl)" , 2025. +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-26 08:56+0000\n" +"PO-Revision-Date: 2025-09-05 22:20+0000\n" +"Last-Translator: \"Noemi Pla Garcia (nopl)\" \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.12.2\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API Key" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "Clau secreta de l'API" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Codi" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "No s'ha pogut establir la connexió a l'API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "No s'ha trobat cap transacció que coincideixi amb la referència %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Proveïdor de pagament" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transacció de pagament" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Dades rebudes amb estat de pagament absent." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Dades rebudes sense referència %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "El codi tècnic d'aquest proveïdor de pagaments." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "La transacció no està enllaçada a un token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/cs.po b/payment_worldline/i18n/cs.po new file mode 100644 index 00000000000..8b688b6e173 --- /dev/null +++ b/payment_worldline/i18n/cs.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Marta Wacławek, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Marta Wacławek, 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" +"Content-Transfer-Encoding: \n" +"Language: cs\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Klíč API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kód" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Nepodařilo se navázat spojení s rozhraním API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Nebyla nalezena žádná transakce odpovídající odkazu %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Poskytovatel platby" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Platební transakce" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Technický kód tohoto poskytovatele plateb." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Transakce není spojena s tokenem." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/da.po b/payment_worldline/i18n/da.po new file mode 100644 index 00000000000..cd9cbecc4a7 --- /dev/null +++ b/payment_worldline/i18n/da.po @@ -0,0 +1,153 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Martin Trigaux, 2024 +# lhmflexerp , 2024 +# Kira Petersen, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Kira Petersen, 2025\n" +"Language-Team: Danish (https://app.transifex.com/odoo/teams/41243/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API nøgle" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kode" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Det var ikke muligt at oprette forbindelse til API'et." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Betalingsudbyder" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Betalingstransaktion" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhook-hemmelighed" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/de.po b/payment_worldline/i18n/de.po new file mode 100644 index 00000000000..1707459c517 --- /dev/null +++ b/payment_worldline/i18n/de.po @@ -0,0 +1,153 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Larissa Manderfeld, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Larissa Manderfeld, 2025\n" +"Language-Team: German (https://app.transifex.com/odoo/teams/41243/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API-Schlüssel" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "API-Geheimnis" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Code" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Verbindung mit API konnte nicht hergestellt werden." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Keine Transaktion gefunden, die der Referenz %s entspricht." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Zahlungsanbieter" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Zahlungstransaktion" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Erhaltene Daten mit fehlendem Zahlungsstatus." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Erhaltene Daten mit fehlender Referenz %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Ungültigen Transaktionsstatus %(status)s mit Fehlercode %(reason)s erhalten" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Die Kommunikation mit der API ist fehlgeschlagen. Details: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Der technische Code dieses Zahlungsanbieters." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Die Transaktion ist nicht mit einem Token verknüpft." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Transaktion mit Fehlercode %(error_code)s storniert." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Transaktion mit Fehlercode %(error_code)s abgelehnt." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Webhook-Schlüssel" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhook-Geheimnis" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "API-Schlüssel von Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "API-Geheimnis von Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "PSPID von Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Webhook-Schlüssel von Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Webhook-Geheimnis von Worldline" diff --git a/payment_worldline/i18n/el.po b/payment_worldline/i18n/el.po new file mode 100644 index 00000000000..40742e0e2a5 --- /dev/null +++ b/payment_worldline/i18n/el.po @@ -0,0 +1,153 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Martin Trigaux, 2024 +# Kostas Goutoudis , 2024 +# Charalampos Loukas, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Charalampos Loukas, 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" +"Content-Transfer-Encoding: \n" +"Language: el\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Κλειδί API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Κωδικός" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Πάροχος Πληρωμών" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Συναλλαγή Πληρωμής" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/es.po b/payment_worldline/i18n/es.po new file mode 100644 index 00000000000..efe1e140784 --- /dev/null +++ b/payment_worldline/i18n/es.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Larissa Manderfeld, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Larissa Manderfeld, 2025\n" +"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Clave API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "Secreto API" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Código" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "No se ha podido establecer la conexión con la API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "No se encontró ninguna transacción que coincida con la referencia %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Proveedor de pago" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transacción de pago" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Datos recibidos sin estado de pago." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Datos recibidos sin referencia %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Se recibió un estado de transacción no válido %(status)s con el código de " +"error %(reason)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Falló la comunicación con la API. Más información: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "El código técnico de este proveedor de pago." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "La transacción no está vinculada a un token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Transacción cancelada con el código de error %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Transacción rechazada con el código de error %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Clave del webhook" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Secreto de webhook" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Clave API de Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Secreto API de Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "PSPID de Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Clave del webhook de Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Secreto del webhook de Worldline" diff --git a/payment_worldline/i18n/es_419.po b/payment_worldline/i18n/es_419.po new file mode 100644 index 00000000000..d3c8d16930e --- /dev/null +++ b/payment_worldline/i18n/es_419.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Fernanda Alvarez, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Fernanda Alvarez, 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" +"Content-Transfer-Encoding: \n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Clave API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "Secreto de la API" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Código" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "No se pudo establecer la conexión con la API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "No se encontró ninguna transacción que coincida con la referencia %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "Identificador del proveedor de servicios de pago" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Proveedor de pago" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transacción de pago" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Datos recibidos con estado de pago pendiente." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Se recibió información con la referencia faltante %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Se recibió el estado %(status)s de la transacción que no es válido con el " +"código de error %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Ocurrió un error en la comunicación con la API. Detalles: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "El código técnico de este proveedor de pagos." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "La transacción no está vinculada a un token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Transacción cancelada con el código de error %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Transacción rechazada con el código de error %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Clave del webhook" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Secreto del webhook" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Clave API de Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Secreto API de Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "PSPID de Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Clave del webhook de Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Secreto del webhook de Worldline" diff --git a/payment_worldline/i18n/et.po b/payment_worldline/i18n/et.po new file mode 100644 index 00000000000..2c4c2839fe7 --- /dev/null +++ b/payment_worldline/i18n/et.po @@ -0,0 +1,155 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Leaanika Randmets, 2024 +# Martin Trigaux, 2024 +# Marek Pontus, 2024 +# Rivo Zängov , 2024 +# Anna, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Anna, 2024\n" +"Language-Team: Estonian (https://app.transifex.com/odoo/teams/41243/et/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API võti" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kood" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Could not establish the connection to the API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Ühtegi tehingut ei leitud, mis on seotud viitega %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Makseteenuse pakkuja" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Maksetehing" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Saadud andmed on puuduliku makse staatusega. " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Saadud andmed puuduliku viitega %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Side API-ga ebaõnnestus. Üksikasjad: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Antud makseteenuse pakkuja tehniline kood." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Tehing ei ole seotud tokeniga." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhook Secret" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/fa.po b/payment_worldline/i18n/fa.po new file mode 100644 index 00000000000..84e0e944207 --- /dev/null +++ b/payment_worldline/i18n/fa.po @@ -0,0 +1,151 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Tiffany Chang, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Tiffany Chang, 2025\n" +"Language-Team: Persian (https://app.transifex.com/odoo/teams/41243/fa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fa\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "کلید API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "کد" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "نتوانستیم اتصال به API را برقرار کنیم" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "هیچ تراکنشی مرجع منطبق پیدا نشد%s" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "سرویس دهنده پرداخت" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "تراکنش پرداخت" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "داده‌های دریافتی با وضعیت پرداخت ناموجود." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "داده‌های دریافتی با مرجع گمشده%(ref)s" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "ارتباط با API با خطا مواجه شد. جزئیات: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "کد فنی این ارائه دهنده پرداخت." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "تراکنش به توکن متصل نیست" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/fi.po b/payment_worldline/i18n/fi.po new file mode 100644 index 00000000000..08c23e205c2 --- /dev/null +++ b/payment_worldline/i18n/fi.po @@ -0,0 +1,157 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Veikko Väätäjä , 2024 +# Jarmo Kortetjärvi , 2024 +# Kari Lindgren , 2024 +# Ossi Mantylahti , 2025 +# Jessica Jakara, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Jessica Jakara, 2025\n" +"Language-Team: Finnish (https://app.transifex.com/odoo/teams/41243/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API Avain" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "API-salaisuus" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Koodi" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Yhteyttä API:han ei saatu muodostettua." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Viitettä %s vastaavaa tapahtumaa ei löytynyt." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Maksupalveluntarjoaja" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Maksutapahtuma" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Vastaanotetut tiedot, joista puuttuu maksutila." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Vastaanotetut tiedot, joista puuttuu viite %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Vastaanotettu virheellinen maksutapahtuman status %(status)s, jonka " +"virhekoodi %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Yhteys API:n kanssa epäonnistui. Yksityiskohdat: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Tämän maksupalveluntarjoajan tekninen koodi." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Transaktio ei ole sidottu valtuutuskoodiin." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Maksutapahtuma peruutettiin virhekoodin %(error_code)s vuoksi." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Tapahtuma hylätty virhekoodilla %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Webhook-avain" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhookin salaisuus" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Worldline API-avain" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Worldline API Salaisuus" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "Worldline PSPID" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Worldline Webhook-avain" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Worldline Webhook Secret" diff --git a/payment_worldline/i18n/fr.po b/payment_worldline/i18n/fr.po new file mode 100644 index 00000000000..146ba12b2f3 --- /dev/null +++ b/payment_worldline/i18n/fr.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Manon Rondou, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Manon Rondou, 2025\n" +"Language-Team: French (https://app.transifex.com/odoo/teams/41243/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Clé API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "Secret API" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Code" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Impossible d'établir la connexion à l'API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Aucune transaction trouvée correspondant à la référence %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Fournisseur de paiement" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transaction de paiement" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Données reçues avec un statut de paiement manquant." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Données reçus avec référence manquante %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Statut de transaction invalide reçu : %(status)s avec le code d'erreur " +"%(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Échec de la communication avec l'API. Détails : %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Le code technique de ce fournisseur de paiement." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "La transaction n'est pas liée à un jeton." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Transaction annulée avec le code d'erreur %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Transaction refusée avec le code d'erreur %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Clé Webhook" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Secret webhook" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Clé API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Secret API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "PSPID Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Clé Webhook Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Secret Webhook Worldline" diff --git a/payment_worldline/i18n/he.po b/payment_worldline/i18n/he.po new file mode 100644 index 00000000000..2365b363c23 --- /dev/null +++ b/payment_worldline/i18n/he.po @@ -0,0 +1,157 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# ExcaliberX , 2024 +# Martin Trigaux, 2024 +# Ha Ketem , 2024 +# ZVI BLONDER , 2024 +# or balmas, 2025 +# or balmas , 2025. +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-26 08:56+0000\n" +"PO-Revision-Date: 2025-09-16 22:20+0000\n" +"Last-Translator: or balmas \n" +"Language-Team: Hebrew \n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2);\n" +"X-Generator: Weblate 5.12.2\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "מפתח API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "קוד" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "לא הצלחנו להתחבר ל-API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "לא נמצאה עסקה המתאימה למספר האסמכתא %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "ספק תשלום" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "עסקת תשלום" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "הקוד הטכני של ספק התשלומים הזה." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/hi.po b/payment_worldline/i18n/hi.po new file mode 100644 index 00000000000..9a996e4b7c7 --- /dev/null +++ b/payment_worldline/i18n/hi.po @@ -0,0 +1,151 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Wil Odoo, 2024\n" +"Language-Team: Hindi (https://app.transifex.com/odoo/teams/41243/hi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "कोड" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/hr.po b/payment_worldline/i18n/hr.po new file mode 100644 index 00000000000..5d760fb1b2f --- /dev/null +++ b/payment_worldline/i18n/hr.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Bole , 2024 +# Martin Trigaux, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Martin Trigaux, 2024\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" +"Content-Transfer-Encoding: \n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API ključ" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Šifra" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Pružatelj usluge naplate" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transakcija plaćanja" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/hu.po b/payment_worldline/i18n/hu.po new file mode 100644 index 00000000000..c2f662f3232 --- /dev/null +++ b/payment_worldline/i18n/hu.po @@ -0,0 +1,153 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# gezza , 2024 +# Martin Trigaux, 2024 +# Eiler Attila, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Eiler Attila, 2025\n" +"Language-Team: Hungarian (https://app.transifex.com/odoo/teams/41243/hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API kulcs" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kód" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Fizetési szolgáltató" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Fizetési tranzakció" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhook Secret" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/id.po b/payment_worldline/i18n/id.po new file mode 100644 index 00000000000..2a19406ed10 --- /dev/null +++ b/payment_worldline/i18n/id.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Abe Manyo, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Abe Manyo, 2025\n" +"Language-Team: Indonesian (https://app.transifex.com/odoo/teams/41243/id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API Key" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "API Secret" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Code" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Tidak dapat membuat hubungan ke API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Tidak ada transaksi dengan referensi %s yang cocok." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Penyedia Pembayaran" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transaksi Tagihan" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Menerima data dengan status pembayaran yang hilang." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Menerima data dengan referensi %(ref)s yang hilang." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Menerima status transaksi tidak valid %(status)s dengan kode error " +"%(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Komunikasi dengan API gagal. Detail: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Kode teknis penyedia pembayaran ini." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Transaksi ini tidak terhubung ke token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Transaksi dibatalkan dengan kode error %(error_code)s" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Transaksi dibatalkan dengan kode error %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Webhook Key" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhook Secret" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Worldline API Key" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Worldline API Secret" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "Worldline PSPID" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Worldline Webhook Key" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Worldline Webhook Secret" diff --git a/payment_worldline/i18n/it.po b/payment_worldline/i18n/it.po new file mode 100644 index 00000000000..52e04e53a2b --- /dev/null +++ b/payment_worldline/i18n/it.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Marianna Ciofani, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Marianna Ciofani, 2025\n" +"Language-Team: Italian (https://app.transifex.com/odoo/teams/41243/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Chiave API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "Chiave privata API" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Codice" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Impossibile stabilire la connessione all'API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Nessuna transazione trovata corrispondente al riferimento %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Fornitore di pagamenti" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transazione di pagamento" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Dati ricevuti con stato di pagamento mancante." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Dati ricevuti privi di riferimento %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Stato transazione non valido ricevuto %(status)s con codice errore " +"%(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "La comunicazione con l'API non è riuscita. Dettagli: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Codice tecnico del fornitore di pagamenti." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "La transazione non è legata a un token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Transazione annullata con codice errore %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Transazione rifiutata con codice errore %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Chiave Webhook" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Segreto Webhook" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Chiave API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Chiave segreta API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "PSPID Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Chiave Webhook Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Secret Webhook Worldline" diff --git a/payment_worldline/i18n/ja.po b/payment_worldline/i18n/ja.po new file mode 100644 index 00000000000..2dd1ef54daf --- /dev/null +++ b/payment_worldline/i18n/ja.po @@ -0,0 +1,155 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Junko Augias, 2025 +# +# "Junko Augias (juau)" , 2025. +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-26 08:56+0000\n" +"PO-Revision-Date: 2025-10-15 05:31+0000\n" +"Last-Translator: \"Junko Augias (juau)\" \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.12.2\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "APIキー" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "APIシークレット" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "コード" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "APIへの接続を確立できませんでした。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "参照に一致する取引が見つかりません%s。" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "決済プロバイダー" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "支払取引" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "支払ステータスが欠落している受信データ" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "参照%(ref)sが欠落しているデータを受信しました。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "無効な取引ステータス%(status)sエラーコード: %(error_code)s を受信しました。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "APIとの連絡に失敗しました。詳細: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "この決済プロバイダーのテクニカルコード。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "取引はトークンにリンクしていません。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "取引が取消されました。エラーコード: %(error_code)s" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "取引が却下されました。エラーコード: %(error_code)s" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Webhookキー" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhookシークレット" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Worldline APIキー" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Worldline APIシークレット" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "Worldline PSPID" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Worldline Webhookキー" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Worldline Webhookシークレット" diff --git a/payment_worldline/i18n/ko.po b/payment_worldline/i18n/ko.po new file mode 100644 index 00000000000..1bc4755252e --- /dev/null +++ b/payment_worldline/i18n/ko.po @@ -0,0 +1,153 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Daye Jeong, 2024 +# Sarah Park, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: 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" +"Content-Transfer-Encoding: \n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API 키" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "API 시크릿" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "코드" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "API 연결을 설정할 수 없습니다." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "%s 참조와 일치하는 거래 항목이 없습니다." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "결제대행업체" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "지불 거래" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "결제 상태가 누락된 데이터가 수신되었습니다. " + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "참조 %(ref)s가 누락된 데이터가 수신되었습니다." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "잘못된 거래 상태 %(status)s 및 %(error_code)s 오류 코드가 수신되었습니다." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "API와의 통신에 실패했습니다. 세부 정보: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "이 결제대행업체의 기술 코드입니다." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "거래가 토큰에 연결되어 있지 않습니다." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "거래가 %(error_code)s 오류 코드로 취소되었습니다." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "거래가 %(error_code)s 오류 코드로 거부되었습니다." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "웹훅 키" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhook 보안" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Worldline API 키" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Worldline API 비밀번호" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "월드라인 PSPID" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Worldline 웹훅 키" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Worldline 웹훅 비밀번호" diff --git a/payment_worldline/i18n/ku.po b/payment_worldline/i18n/ku.po new file mode 100644 index 00000000000..a8b2e4c2246 --- /dev/null +++ b/payment_worldline/i18n/ku.po @@ -0,0 +1,151 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Raz Omer Hussein, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Raz Omer Hussein, 2025\n" +"Language-Team: Kurdish (https://app.transifex.com/odoo/teams/41243/ku/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ku\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "کۆد" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "دابینکەری پارەدان" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "مامەڵەی پارەدان" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/lt.po b/payment_worldline/i18n/lt.po new file mode 100644 index 00000000000..a832ce33fc7 --- /dev/null +++ b/payment_worldline/i18n/lt.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Ramunė ViaLaurea , 2024 +# Martin Trigaux, 2024 +# Linas Versada , 2024 +# Silvija Butko , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Silvija Butko , 2024\n" +"Language-Team: Lithuanian (https://app.transifex.com/odoo/teams/41243/lt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: lt\n" +"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API raktas" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kodas" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Mokėjimo paslaugos tiekėjas" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Mokėjimo operacija" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/lv.po b/payment_worldline/i18n/lv.po new file mode 100644 index 00000000000..5156d41e2f7 --- /dev/null +++ b/payment_worldline/i18n/lv.po @@ -0,0 +1,153 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Arnis Putniņš , 2024 +# Martin Trigaux, 2024 +# Armīns Jeltajevs , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Armīns Jeltajevs , 2024\n" +"Language-Team: Latvian (https://app.transifex.com/odoo/teams/41243/lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API atslēga" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kods" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Nevarēja izveidot savienojumu ar API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Nav atrasts darījums ar šādu atsauci %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Maksājuma sniedzējs" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Maksājuma darījums" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Maksājumu sniedzēja tehniskais kods." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Darījums nav saistīts ar atslēgkodu." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/mn.po b/payment_worldline/i18n/mn.po new file mode 100644 index 00000000000..c478d62d3d9 --- /dev/null +++ b/payment_worldline/i18n/mn.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Baskhuu Lodoikhuu , 2024 +# Martin Trigaux, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Martin Trigaux, 2024\n" +"Language-Team: Mongolian (https://app.transifex.com/odoo/teams/41243/mn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: mn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API түлхүүр" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Код" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Төлбөр дамжуулагч" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Төлбөрийн гүйлгээ" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/my.po b/payment_worldline/i18n/my.po new file mode 100644 index 00000000000..3287fb4c6e3 --- /dev/null +++ b/payment_worldline/i18n/my.po @@ -0,0 +1,151 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Oakarmin Iron , 2025. +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-26 08:56+0000\n" +"PO-Revision-Date: 2025-10-03 16:19+0000\n" +"Last-Translator: Oakarmin Iron \n" +"Language-Team: Burmese \n" +"Language: my\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.12.2\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "ကုဒ်" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "ပေးချေမှူ ဝန်ဆောင်သူ" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "ပေးချေမှူ မှတ်တမ်း" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/nb.po b/payment_worldline/i18n/nb.po new file mode 100644 index 00000000000..faa76a5a4ff --- /dev/null +++ b/payment_worldline/i18n/nb.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Martin Trigaux, 2024 +# Rune Restad, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Rune Restad, 2024\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" +"Content-Transfer-Encoding: \n" +"Language: nb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API-nøkkel" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kode" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Betalingsleverandør" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Betalingstransaksjon" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/nl.po b/payment_worldline/i18n/nl.po new file mode 100644 index 00000000000..db2e2f51134 --- /dev/null +++ b/payment_worldline/i18n/nl.po @@ -0,0 +1,153 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Erwin van der Ploeg , 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: 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" +"Content-Transfer-Encoding: \n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API key" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "API Secret" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Code" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Kan geen verbinding maken met de API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Geen transactie gevonden die overeenkomt met referentie %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Betaalprovider" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Betalingstransactie" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Gegevens ontvangen met ontbrekende betalingsstatus." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Gegevens ontvangen met ontbrekende referentie %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Ontvangen ongeldige transactiestatus %(status)s met foutcode %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "De communicatie met de API is mislukt. Details: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "De technische code van deze betaalprovider." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "De transactie is niet gekoppeld aan een token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Transactie geannuleerd met foutcode %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Transactie geweigerd met foutcode %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Webhook sleutel" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhook geheim" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Worldline API sleutel" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Worldline API Geheim" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "PSPID Wereldlijn" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Worldline Webhook Sleutel" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Worldline Webhook Geheim" diff --git a/payment_worldline/i18n/payment_worldline.pot b/payment_worldline/i18n/payment_worldline.pot new file mode 100644 index 00000000000..b3cc11623c5 --- /dev/null +++ b/payment_worldline/i18n/payment_worldline.pot @@ -0,0 +1,147 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-26 08:56+0000\n" +"PO-Revision-Date: 2024-09-26 08:56+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: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/pl.po b/payment_worldline/i18n/pl.po new file mode 100644 index 00000000000..3cc3d924607 --- /dev/null +++ b/payment_worldline/i18n/pl.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Marta Wacławek, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Marta Wacławek, 2025\n" +"Language-Team: Polish (https://app.transifex.com/odoo/teams/41243/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Klucz API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kod" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Nie można nawiązać połączenia z interfejsem API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Nie znaleziono transakcji pasującej do referencji %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Dostawca Płatności" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transakcja płatności" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Kod techniczny tego dostawcy usług płatniczych." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Transakcja nie jest powiązana z tokenem." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Szyfr Webhook" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/pt.po b/payment_worldline/i18n/pt.po new file mode 100644 index 00000000000..ab80b8684c6 --- /dev/null +++ b/payment_worldline/i18n/pt.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Manuela Silva , 2025 +# Wil Odoo, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Wil Odoo, 2025\n" +"Language-Team: Portuguese (https://app.transifex.com/odoo/teams/41243/pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Chave API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Código" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Provedor de Pagamentos" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transação de Pagamento" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/pt_BR.po b/payment_worldline/i18n/pt_BR.po new file mode 100644 index 00000000000..485b22ad905 --- /dev/null +++ b/payment_worldline/i18n/pt_BR.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Maitê Dietze, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Maitê Dietze, 2025\n" +"Language-Team: Portuguese (Brazil) (https://app.transifex.com/odoo/teams/41243/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Chave de API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "Segredo de API" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Código" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Não foi possível estabelecer a conexão com a API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Nenhuma transação encontrada com a referência %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Provedor de serviços de pagamento" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transação de pagamento" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Dados recebidos sem estado de pagamento." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Dados recebidos sem a referência %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Status de transação inválido recebido %(status)s com código de erro " +"%(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "A comunicação com a API falhou. Detalhes: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "O código técnico deste provedor de pagamento." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "A transação não está vinculada a um token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Transação cancelada com código de erro %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Transação recusada com código de erro %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Chave do webhook" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Segredo do webhook" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Chave de API da Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Segredo da API da Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "PSPID da Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Chave do Worldline Webhook" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Segredo do Worldline Webhook" diff --git a/payment_worldline/i18n/ro.po b/payment_worldline/i18n/ro.po new file mode 100644 index 00000000000..e090111f5a2 --- /dev/null +++ b/payment_worldline/i18n/ro.po @@ -0,0 +1,156 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Cozmin Candea , 2024 +# Lyall Kindmurr, 2024 +# Larisa_nexterp, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Larisa_nexterp, 2025\n" +"Language-Team: Romanian (https://app.transifex.com/odoo/teams/41243/ro/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Cheie API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "Secret API" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Cod" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Nu s-a putut stabili conexiunea cu API-ul." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Nu s-a găsit nicio tranzacție care să se potrivească cu referința %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Procesator de plată" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Tranzacție plată" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Date primite fără status de plată." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Date primite fără referință %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"S-a primit un status de tranzacție invalid %(status)s cu cod de eroare " +"%(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Comunicarea cu API-ul a eșuat. Detalii: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Cod tehnic al acestui procesator de plată" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Tranzacția nu este legată de un token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Tranzacție anulată cu cod de eroare %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Tranzacție refuzată cu cod de eroare %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Cheie webhook" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Secret webhook" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Cheie API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Secret API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "Worldline PSPID" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Cheie webhook Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Secret webhook Worldline" diff --git a/payment_worldline/i18n/ru.po b/payment_worldline/i18n/ru.po new file mode 100644 index 00000000000..0b3d53cecff --- /dev/null +++ b/payment_worldline/i18n/ru.po @@ -0,0 +1,158 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Martin Trigaux, 2024 +# Wil Odoo, 2024 +# +# "Anastasiia Koroleva (koan)" , 2025. +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-26 08:56+0000\n" +"PO-Revision-Date: 2025-10-16 10:47+0000\n" +"Last-Translator: \"Anastasiia Koroleva (koan)\" \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (" +"n%100>=11 && n%100<=14)? 2 : 3);\n" +"X-Generator: Weblate 5.12.2\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Ключ API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "Секрет API" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Код" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Не удалось установить соединение с API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Не найдено ни одной транзакции, соответствующей ссылке %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Поставщик платежей" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Платеж" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Получены данные с отсутствующим состоянием платежа." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Получены данные с отсутствующей ссылкой %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Получен неверный статус транзакции %(status)s с кодом ошибки %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Не удалось установить связь с API. Подробности: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Технический код данного провайдера платежей." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Транзакция не привязана к токену." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Транзакция отменена с кодом ошибки %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Транзакция отклонена с кодом ошибки %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Ключ вебхука" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Секрет вебхука" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Ключ API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Секрет API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "PSPID Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Ключ вебхука Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Секрет вебхука Worldline" diff --git a/payment_worldline/i18n/sk.po b/payment_worldline/i18n/sk.po new file mode 100644 index 00000000000..6b717898ef8 --- /dev/null +++ b/payment_worldline/i18n/sk.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Jaroslav Bosansky , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Jaroslav Bosansky , 2024\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" +"Content-Transfer-Encoding: \n" +"Language: sk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API Kľúč" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kód" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Platobná transakcia" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/sl.po b/payment_worldline/i18n/sl.po new file mode 100644 index 00000000000..e1418be70b8 --- /dev/null +++ b/payment_worldline/i18n/sl.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Martin Trigaux, 2024 +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Wil Odoo, 2024\n" +"Language-Team: Slovenian (https://app.transifex.com/odoo/teams/41243/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API ključ" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Oznaka" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Ponudnik plačil" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Plačilna transakcija" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/sr@latin.po b/payment_worldline/i18n/sr@latin.po new file mode 100644 index 00000000000..b3cc11623c5 --- /dev/null +++ b/payment_worldline/i18n/sr@latin.po @@ -0,0 +1,147 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-26 08:56+0000\n" +"PO-Revision-Date: 2024-09-26 08:56+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: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/sv.po b/payment_worldline/i18n/sv.po new file mode 100644 index 00000000000..5cb96ffc244 --- /dev/null +++ b/payment_worldline/i18n/sv.po @@ -0,0 +1,155 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Anders Wallenquist , 2024 +# Jakob Krabbe , 2024 +# Kim Asplund , 2024 +# Lasse L, 2024 +# Martin Trigaux, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Martin Trigaux, 2024\n" +"Language-Team: Swedish (https://app.transifex.com/odoo/teams/41243/sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API-nyckel" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kod" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Det gick inte att upprätta anslutningen till API:et." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Ingen transaktion hittades som matchar referensen %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Betalningsleverantör" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Betalningstransaktion" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Mottagen data med saknad betalningsstatus." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Mottagna data med saknade referens %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Kommunikationen med API:et misslyckades. Detaljerad information: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Den tekniska koden för denna betalningsleverantör." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Transaktionen är inte kopplad till en token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhook hemlighet" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Världslinje" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/th.po b/payment_worldline/i18n/th.po new file mode 100644 index 00000000000..d59d69fee4f --- /dev/null +++ b/payment_worldline/i18n/th.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Rasareeyar Lappiam, 2024 +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Wil Odoo, 2024\n" +"Language-Team: Thai (https://app.transifex.com/odoo/teams/41243/th/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: th\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API Key" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "โค้ด" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "ไม่สามารถสร้างการเชื่อมต่อกับ API ได้" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "ไม่พบธุรกรรมที่ตรงกับการอ้างอิง %s" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "ผู้ให้บริการชำระเงิน" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "ธุรกรรมสำหรับการชำระเงิน" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "ได้รับข้อมูลโดยไม่มีสถานะการชำระเงิน" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "ได้รับข้อมูลโดยไม่มีการอ้างอิง %(ref)s" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "การสื่อสารกับ API ล้มเหลว รายละเอียด: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "รหัสทางเทคนิคของผู้ให้บริการชำระเงินรายนี้" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "ธุรกรรมไม่ได้เชื่อมโยงกับโทเค็น" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "เว็บฮุคลับ" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/tr.po b/payment_worldline/i18n/tr.po new file mode 100644 index 00000000000..3d2e28695f2 --- /dev/null +++ b/payment_worldline/i18n/tr.po @@ -0,0 +1,155 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Ediz Duman , 2024 +# Halil, 2024 +# Murat Kaplan , 2024 +# Martin Trigaux, 2024 +# Ertuğrul Güreş , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Ertuğrul Güreş , 2024\n" +"Language-Team: Turkish (https://app.transifex.com/odoo/teams/41243/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API Anahtarı" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Kod" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "API bağlantısı kurulamadı." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Referans %s eşleşen bir işlem bulunamadı." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Ödeme Sağlayıcı" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Ödeme İşlemi" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Ödeme durumu eksik olan veriler alındı." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Bu ödeme sağlayıcısının teknik kodu." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "İşlem bir belirteçle bağlantılı değildir." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/uk.po b/payment_worldline/i18n/uk.po new file mode 100644 index 00000000000..7228fa7ee96 --- /dev/null +++ b/payment_worldline/i18n/uk.po @@ -0,0 +1,151 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Wil Odoo, 2024\n" +"Language-Team: Ukrainian (https://app.transifex.com/odoo/teams/41243/uk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: uk\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Ключ API " + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Код" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Не вдалося встановити з’єднання з API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Не знайдено жодної транзакції, що відповідає референсу %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Провайдер платежу" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Платіжна операція" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Отримані дані з відсутнім статусом платежу." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Отримані дані з відсутнім референсом %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Зʼєднання з цим API невдалося. Деталі: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Технічний код цього провайдера платежу." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Транзакція не зв'язана з токеном." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Секрет Webhook" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "" diff --git a/payment_worldline/i18n/vi.po b/payment_worldline/i18n/vi.po new file mode 100644 index 00000000000..531297554ce --- /dev/null +++ b/payment_worldline/i18n/vi.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# Thi Huong Nguyen, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: Thi Huong Nguyen, 2025\n" +"Language-Team: Vietnamese (https://app.transifex.com/odoo/teams/41243/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "Khóa API" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "Mã bí mật API" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "Mã" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "Không thể thiết lập kết nối với API." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "Không tìm thấy giao dịch nào khớp với mã %s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "Nhà cung cấp dịch vụ thanh toán" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "Giao dịch thanh toán" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "Dữ liệu đã nhận bị thiếu trạng thái thanh toán." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "Dữ liệu đã nhận bị thiếu mã %(ref)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "" +"Trạng thái giao dịch không hợp lệ đã nhận %(status)s với mã lỗi " +"%(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "Giao tiếp với API không thành công. Thông tin: %s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Mã kỹ thuật của nhà cung cấp dịch vụ thanh toán này." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "Giao dịch không được liên kết với token." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "Giao dịch bị hủy với mã lỗi %(error_code)s." + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "Giao dịch bị từ chối với mã lỗi %(error_code)s." + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Khoá Webhook" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Mã bí mật Webhook" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Khoá API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Mã bí mật API Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "PSPID Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Khoá Webhook Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Mã bí mật Webhook Worldline" diff --git a/payment_worldline/i18n/zh_CN.po b/payment_worldline/i18n/zh_CN.po new file mode 100644 index 00000000000..a2af3eff259 --- /dev/null +++ b/payment_worldline/i18n/zh_CN.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2024 +# 何彬 , 2024 +# Raymond Yu , 2024 +# Chloe Wang, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: 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" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API 密钥" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "API 密钥" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "代码" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "无法建立与API的连接。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "没有发现与参考文献%s相匹配的交易。" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "支付提供商" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "付款交易" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "收到的数据中缺少支付状态。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "收到的数据缺少参考编号%(ref)s。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "收到无效交易状态%(status)s,错误代码%(error_code)s。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "与 API 通信失败。详情:%s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "该支付提供商的技术代码。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "该交易没有与令牌挂钩。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "交易已取消,错误代码:%(error_code)s。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "交易被拒绝,错误代码:%(error_code)s。" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "Webhook 密钥" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "Webhook 密钥" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Worldline API 密钥" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Worldline API 密钥" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "Worldline PSPID" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Worldline Webhook 密钥" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Worldline Webhook 密钥" diff --git a/payment_worldline/i18n/zh_TW.po b/payment_worldline/i18n/zh_TW.po new file mode 100644 index 00000000000..8bab3a71b2d --- /dev/null +++ b/payment_worldline/i18n/zh_TW.po @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_worldline +# +# Translators: +# Wil Odoo, 2025 +# Tony Ng, 2025 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"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: 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" +"Content-Transfer-Encoding: \n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Key" +msgstr "API 金鑰" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "API Secret" +msgstr "API 秘密" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__code +msgid "Code" +msgstr "程式碼" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "Could not establish the connection to the API." +msgstr "未能建立與 API 的連線。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "No transaction found matching reference %s." +msgstr "沒有找到匹配參考 %s 的交易。" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "PSPID" +msgstr "PSPID" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_provider +msgid "Payment Provider" +msgstr "付款服務商" + +#. module: payment_worldline +#: model:ir.model,name:payment_worldline.model_payment_transaction +msgid "Payment Transaction" +msgstr "付款交易" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing payment state." +msgstr "收到的數據中缺漏付款狀態。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Received data with missing reference %(ref)s." +msgstr "收到的數據中缺漏參考編號 %(ref)s。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "" +"Received invalid transaction status %(status)s with error code " +"%(error_code)s." +msgstr "收到無效交易,狀態:%(status)s,錯誤代碼:%(error_code)s。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_provider.py:0 +msgid "The communication with the API failed. Details: %s" +msgstr "與 API 通訊失敗。詳情:%s" + +#. module: payment_worldline +#: model:ir.model.fields,help:payment_worldline.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "此付款服務商的技術代碼。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "The transaction is not linked to a token." +msgstr "交易未有連結至代碼。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction cancelled with error code %(error_code)s." +msgstr "交易已取消,錯誤代碼:%(error_code)s。" + +#. module: payment_worldline +#. odoo-python +#: code:addons/payment_worldline/models/payment_transaction.py:0 +msgid "Transaction declined with error code %(error_code)s." +msgstr "交易被拒絕,錯誤代碼:%(error_code)s。" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Key" +msgstr "網絡鈎子密鑰" + +#. module: payment_worldline +#: model_terms:ir.ui.view,arch_db:payment_worldline.payment_provider_form +msgid "Webhook Secret" +msgstr "網絡鈎子秘密" + +#. module: payment_worldline +#: model:ir.model.fields.selection,name:payment_worldline.selection__payment_provider__code__worldline +msgid "Worldline" +msgstr "Worldline" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_key +msgid "Worldline API Key" +msgstr "Worldline API 金鑰" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_api_secret +msgid "Worldline API Secret" +msgstr "Worldline API 秘密" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_pspid +msgid "Worldline PSPID" +msgstr "Worldline PSPID" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_key +msgid "Worldline Webhook Key" +msgstr "Worldline 網絡鈎子金鑰" + +#. module: payment_worldline +#: model:ir.model.fields,field_description:payment_worldline.field_payment_provider__worldline_webhook_secret +msgid "Worldline Webhook Secret" +msgstr "Worldline 網絡鈎子秘密" diff --git a/payment_worldline/models/__init__.py b/payment_worldline/models/__init__.py new file mode 100644 index 00000000000..08dfb8af342 --- /dev/null +++ b/payment_worldline/models/__init__.py @@ -0,0 +1,4 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import payment_provider +from . import payment_transaction diff --git a/payment_worldline/models/payment_provider.py b/payment_worldline/models/payment_provider.py new file mode 100644 index 00000000000..1de9953e925 --- /dev/null +++ b/payment_worldline/models/payment_provider.py @@ -0,0 +1,146 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import base64 +import hashlib +import hmac +import logging +import pprint +from wsgiref.handlers import format_date_time + +import requests + +from odoo import _, fields, models +from odoo.exceptions import ValidationError +from odoo.fields import Datetime + +from odoo.addons.payment_worldline import const + + +_logger = logging.getLogger(__name__) + + +class PaymentProvider(models.Model): + _inherit = 'payment.provider' + + code = fields.Selection( + selection_add=[('worldline', "Worldline")], ondelete={'worldline': 'set default'} + ) + worldline_pspid = fields.Char(string="Worldline PSPID", required_if_provider='worldline') + worldline_api_key = fields.Char(string="Worldline API Key", required_if_provider='worldline') + worldline_api_secret = fields.Char( + string="Worldline API Secret", required_if_provider='worldline' + ) + worldline_webhook_key = fields.Char( + string="Worldline Webhook Key", required_if_provider='worldline' + ) + worldline_webhook_secret = fields.Char( + string="Worldline Webhook Secret", required_if_provider='worldline' + ) + + # === COMPUTE METHODS === # + + def _compute_feature_support_fields(self): + """ Override of `payment` to enable additional features. """ + super()._compute_feature_support_fields() + self.filtered(lambda p: p.code == 'worldline').update({ + 'support_tokenization': True, + }) + + # === BUSINESS METHODS === # + + def _worldline_make_request(self, endpoint, payload=None, method='POST', idempotency_key=None): + """ Make a request to Worldline API at the specified endpoint. + + Note: self.ensure_one() + + :param str endpoint: The endpoint to be reached by the request. + :param dict payload: The payload of the request. + :param str method: The HTTP method of the request. + :param str idempotency_key: The idempotency key to pass in the request. + :return: The JSON-formatted content of the response. + :rtype: dict + :raise ValidationError: If an HTTP error occurs. + """ + self.ensure_one() + + api_url = self._worldline_get_api_url() + url = f'{api_url}/v2/{self.worldline_pspid}/{endpoint}' + content_type = 'application/json; charset=utf-8' if method == 'POST' else '' + dt = format_date_time(Datetime.now().timestamp()) # Datetime in locale-independent RFC1123 + signature = self._worldline_calculate_signature( + method, endpoint, content_type, dt, idempotency_key=idempotency_key + ) + authorization_header = f'GCS v1HMAC:{self.worldline_api_key}:{signature}' + headers = { + 'Authorization': authorization_header, + 'Date': dt, + 'Content-Type': content_type, + } + if method == 'POST' and idempotency_key: + headers['X-GCS-Idempotence-Key'] = idempotency_key + try: + response = requests.request(method, url, json=payload, headers=headers, timeout=10) + try: + if response.status_code not in const.VALID_RESPONSE_CODES: + response.raise_for_status() + except requests.exceptions.HTTPError: + _logger.exception( + "Invalid API request at %s with data:\n%s", url, pprint.pformat(payload) + ) + msg = ', '.join( + [error.get('message', '') for error in response.json().get('errors', [])] + ) + raise ValidationError( + "Worldline: " + _("The communication with the API failed. Details: %s", msg) + ) + except (requests.exceptions.ConnectionError, requests.exceptions.Timeout): + _logger.exception("Unable to reach endpoint at %s", url) + raise ValidationError( + "Worldline: " + _("Could not establish the connection to the API.") + ) + return response.json() + + def _worldline_get_api_url(self): + """ Return the URL of the API corresponding to the provider's state. + + :return: The API URL. + :rtype: str + """ + if self.state == 'enabled': + return 'https://payment.direct.worldline-solutions.com' + else: # 'test' + return 'https://payment.preprod.direct.worldline-solutions.com' + + def _worldline_calculate_signature( + self, method, endpoint, content_type, dt_rfc, idempotency_key=None + ): + """ Compute the signature for the provided data. + + See https://docs.direct.worldline-solutions.com/en/integration/api-developer-guide/authentication. + + :param str method: The HTTP method of the request + :param str endpoint: The endpoint to be reached by the request. + :param str content_type: The 'Content-Type' header of the request. + :param datetime.datetime dt_rfc: The timestamp of the request, in RFC1123 format. + :param str idempotency_key: The idempotency key to pass in the request. + :return: The calculated signature. + :rtype: str + """ + # specific order required: method, content_type, date, custom headers, endpoint + values_to_sign = [method, content_type, dt_rfc] + if idempotency_key: + values_to_sign.append(f'x-gcs-idempotence-key:{idempotency_key}') + values_to_sign.append(f'/v2/{self.worldline_pspid}/{endpoint}') + + signing_str = '\n'.join(values_to_sign) + '\n' + signature = hmac.new( + self.worldline_api_secret.encode(), signing_str.encode(), hashlib.sha256 + ) + return base64.b64encode(signature.digest()).decode('utf-8') + + def _get_default_payment_method_codes(self): + """ Override of `payment` to return the default payment method codes. """ + default_codes = super()._get_default_payment_method_codes() + if self.code != 'worldline': + return default_codes + return const.DEFAULT_PAYMENT_METHOD_CODES diff --git a/payment_worldline/models/payment_transaction.py b/payment_worldline/models/payment_transaction.py new file mode 100644 index 00000000000..3e90048af51 --- /dev/null +++ b/payment_worldline/models/payment_transaction.py @@ -0,0 +1,369 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import logging +import pprint + +from werkzeug import urls + +from odoo import _, models +from odoo.exceptions import UserError, ValidationError + +from odoo.addons.payment import utils as payment_utils +from odoo.addons.payment_worldline import const +from odoo.addons.payment_worldline.controllers.main import WorldlineController + + +_logger = logging.getLogger(__name__) + + +class PaymentTransaction(models.Model): + _inherit = 'payment.transaction' + + def _compute_reference(self, provider_code, prefix=None, separator='-', **kwargs): + """ Override of `payment` to ensure that Worldline requirement for references is satisfied. + + Worldline requires for references to be at most 30 characters long. + + :param str provider_code: The code of the provider handling the transaction. + :param str prefix: The custom prefix used to compute the full reference. + :param str separator: The custom separator used to separate the prefix from the suffix. + :return: The unique reference for the transaction. + :rtype: str + """ + reference = super()._compute_reference( + provider_code, prefix=prefix, separator=separator, **kwargs + ) + if provider_code != 'worldline': + return reference + + if len(reference) <= 30: # Worldline transaction merchantReference is limited to 30 chars + return reference + + prefix = payment_utils.singularize_reference_prefix(prefix='WL') + return super()._compute_reference( + provider_code, prefix=prefix, separator=separator, **kwargs + ) + + def _get_specific_processing_values(self, processing_values): + """ Override of `payment` to redirect failed token-flow transactions. + + If the financial institution insists on user authentication, + this override will reset the transaction, and switch the flow to redirect. + + Note: self.ensure_one() from `_get_processing_values`. + + :param dict processing_values: The generic processing values of the transaction. + :return: The dict of provider-specific processing values. + :rtype: dict + """ + res = super()._get_specific_processing_values(processing_values) + if ( + self.provider_code == 'worldline' + and self.operation == 'online_token' + and self.state == 'error' + and self.state_message.endswith('AUTHORIZATION_REQUESTED') + ): + # Tokenized payment failed due to 3-D Secure authentication request. + # Reset transaction to draft and switch to redirect flow. + self.write({ + 'state': 'draft', + 'operation': 'online_redirect', + }) + res['force_flow'] = 'redirect' + return res + + def _get_specific_rendering_values(self, processing_values): + """ Override of `payment` to return Worldline-specific processing values. + + Note: self.ensure_one() from `_get_processing_values`. + + :param dict processing_values: The generic processing values of the transaction. + :return: The dict of provider-specific processing values. + :rtype: dict + """ + res = super()._get_specific_rendering_values(processing_values) + if self.provider_code != 'worldline': + return res + + checkout_session_data = self._worldline_create_checkout_session() + return {'api_url': checkout_session_data['redirectUrl']} + + def _worldline_create_checkout_session(self): + """ Create a hosted checkout session and return the response data. + + :return: The hosted checkout session data. + :rtype: dict + """ + self.ensure_one() + + base_url = self.provider_id.get_base_url() + return_route = WorldlineController._return_url + return_url_params = urls.url_encode({'provider_id': str(self.provider_id.id)}) + return_url = f'{urls.url_join(base_url, return_route)}?{return_url_params}' + first_name, last_name = payment_utils.split_partner_name(self.partner_name) + payload = { + 'hostedCheckoutSpecificInput': { + 'locale': self.partner_lang or '', + 'returnUrl': return_url, + 'showResultPage': False, + }, + 'order': { + 'amountOfMoney': { + 'amount': payment_utils.to_minor_currency_units(self.amount, self.currency_id), + 'currencyCode': self.currency_id.name, + }, + 'customer': { # required to create a token and for some redirected payment methods + 'billingAddress': { + 'city': self.partner_city or '', + 'countryCode': self.partner_country_id.code or '', + 'state': self.partner_state_id.name or '', + 'street': self.partner_address or '', + 'zip': self.partner_zip or '', + }, + 'contactDetails': { + 'emailAddress': self.partner_email or '', + 'phoneNumber': self.partner_phone or '', + }, + 'personalInformation': { + 'name': { + 'firstName': first_name or '', + 'surname': last_name or '', + }, + }, + }, + 'references': { + 'descriptor': self.reference, + 'merchantReference': self.reference, + }, + }, + } + if self.payment_method_id.code in const.REDIRECT_PAYMENT_METHODS: + payload['redirectPaymentMethodSpecificInput'] = { + 'requiresApproval': False, # Force the capture. + 'paymentProductId': const.PAYMENT_METHODS_MAPPING[self.payment_method_id.code], + 'redirectionData': { + 'returnUrl': return_url, + }, + } + else: + payload['cardPaymentMethodSpecificInput'] = { + 'authorizationMode': 'SALE', # Force the capture. + 'tokenize': self.tokenize, + } + if not self.payment_method_id.brand_ids and self.payment_method_id.code != 'card': + worldline_code = const.PAYMENT_METHODS_MAPPING.get(self.payment_method_id.code, 0) + payload['cardPaymentMethodSpecificInput']['paymentProductId'] = worldline_code + else: + pm_codes = self.env['payment.method'].search([ + ('active', 'in', [True, False]), + ('primary_payment_method_id', '=', self.payment_method_id.id), + ]).mapped('code') + worldline_codes = [ + const.PAYMENT_METHODS_MAPPING[code] for code in pm_codes + if code in const.PAYMENT_METHODS_MAPPING + ] + payload['hostedCheckoutSpecificInput']['paymentProductFilters'] = { + 'restrictTo': { + 'products': worldline_codes, + }, + } + + _logger.info( + "Sending '/hostedcheckouts' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(payload) + ) + checkout_session_data = self.provider_id._worldline_make_request( + 'hostedcheckouts', payload=payload + ) + _logger.info( + "Response of '/hostedcheckouts' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(checkout_session_data) + ) + return checkout_session_data + + def _send_payment_request(self): + """ Override of `payment` to send a payment request to Worldline. + + Note: self.ensure_one() + + :return: None + :raise UserError: If the transaction is not linked to a token. + """ + super()._send_payment_request() + if self.provider_code != 'worldline': + return + + # Prepare the payment request to Worldline. + if not self.token_id: + raise UserError("Worldline: " + _("The transaction is not linked to a token.")) + + payload = { + 'cardPaymentMethodSpecificInput': { + 'authorizationMode': 'SALE', # Force the capture. + 'token': self.token_id.provider_ref, + 'unscheduledCardOnFileRequestor': 'merchantInitiated', + 'unscheduledCardOnFileSequenceIndicator': 'subsequent', + }, + 'order': { + 'amountOfMoney': { + 'amount': payment_utils.to_minor_currency_units(self.amount, self.currency_id), + 'currencyCode': self.currency_id.name, + }, + 'references': { + 'merchantReference': self.reference, + }, + }, + } + + # Make the payment request to Worldline. + response_content = self.provider_id._worldline_make_request( + 'payments', + payload=payload, + idempotency_key=payment_utils.generate_idempotency_key( + self, scope='payment_request_token' + ) + ) + + # Handle the payment request response. + _logger.info( + "Response of /payment request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(response_content) + ) + self._handle_notification_data('worldline', response_content) + + def _get_tx_from_notification_data(self, provider_code, notification_data): + """ Override of `payment` to find the transaction based on Worldline data. + + :param str provider_code: The code of the provider that handled the transaction. + :param dict notification_data: The notification data sent by the provider. + :return: The transaction if found. + :rtype: payment.transaction + :raise ValidationError: If inconsistent data are received. + :raise ValidationError: If the data match no transaction. + """ + tx = super()._get_tx_from_notification_data(provider_code, notification_data) + if provider_code != 'worldline' or len(tx) == 1: + return tx + + # In case of failed payment, paymentResult could be given as a seperate key + payment_result = notification_data.get('paymentResult', notification_data) + payment_output = payment_result.get('payment', {}).get('paymentOutput', {}) + reference = payment_output.get('references', {}).get('merchantReference', '') + if not reference: + raise ValidationError( + "Worldline: " + _("Received data with missing reference %(ref)s.", ref=reference) + ) + + tx = self.search([('reference', '=', reference), ('provider_code', '=', 'worldline')]) + if not tx: + raise ValidationError( + "Worldline: " + _("No transaction found matching reference %s.", reference) + ) + + return tx + + def _process_notification_data(self, notification_data): + """ Override of `payment' to process the transaction based on Worldline data. + + Note: self.ensure_one() + + :param dict notification_data: The notification data sent by the provider. + :return: None + :raise ValidationError: If inconsistent data are received. + """ + super()._process_notification_data(notification_data) + if self.provider_code != 'worldline': + return + + # In case of failed payment, paymentResult could be given as a seperate key + payment_result = notification_data.get('paymentResult', notification_data) + payment_data = payment_result.get('payment', {}) + + # Update the provider reference. + self.provider_reference = payment_data.get('id', '').rsplit('_', 1)[0] + + # Update the payment method. + payment_output = payment_data.get('paymentOutput', {}) + if 'cardPaymentMethodSpecificOutput' in payment_output: + payment_method_data = payment_output['cardPaymentMethodSpecificOutput'] + else: + payment_method_data = payment_output.get('redirectPaymentMethodSpecificOutput', {}) + payment_method_code = payment_method_data.get('paymentProductId', '') + payment_method = self.env['payment.method']._get_from_code( + payment_method_code, mapping=const.PAYMENT_METHODS_MAPPING + ) + self.payment_method_id = payment_method or self.payment_method_id + + # Update the payment state. + status = payment_data.get('status') + has_token_data = 'token' in payment_method_data + if not status: + raise ValidationError("Worldline: " + _("Received data with missing payment state.")) + + if status in const.PAYMENT_STATUS_MAPPING['pending']: + if status == 'AUTHORIZATION_REQUESTED': + self._set_error("Worldline: " + status) + elif self.operation == 'validation' \ + and status in {'PENDING_CAPTURE', 'CAPTURE_REQUESTED'} \ + and has_token_data: + self._worldline_tokenize_from_notification_data(payment_method_data) + self._set_done() + else: + self._set_pending() + elif status in const.PAYMENT_STATUS_MAPPING['done']: + if self.tokenize and has_token_data: + self._worldline_tokenize_from_notification_data(payment_method_data) + self._set_done() + else: + error_code = None + if errors := payment_data.get('statusOutput', {}).get('errors'): + error_code = errors[0].get('errorCode') + if status in const.PAYMENT_STATUS_MAPPING['cancel']: + self._set_canceled("Worldline: " + _( + "Transaction cancelled with error code %(error_code)s.", + error_code=error_code, + )) + elif status in const.PAYMENT_STATUS_MAPPING['declined']: + self._set_error("Worldline: " + _( + "Transaction declined with error code %(error_code)s.", + error_code=error_code, + )) + else: # Classify unsupported payment status as the `error` tx state. + _logger.info( + "Received data with invalid payment status (%(status)s) for transaction with " + "reference %(ref)s.", + {'status': status, 'ref': self.reference}, + ) + self._set_error("Worldline: " + _( + "Received invalid transaction status %(status)s with error code " + "%(error_code)s.", + status=status, + error_code=error_code, + )) + + def _worldline_tokenize_from_notification_data(self, pm_data): + """ Create a new token based on the notification data. + + Note: self.ensure_one() + + :param dict pm_data: The payment method data sent by the provider + :return: None + """ + self.ensure_one() + + token = self.env['payment.token'].create({ + 'provider_id': self.provider_id.id, + 'payment_method_id': self.payment_method_id.id, + 'payment_details': pm_data.get('card', {}).get('cardNumber', '')[-4:], # Padded with * + 'partner_id': self.partner_id.id, + 'provider_ref': pm_data['token'], + }) + self.write({ + 'token_id': token, + 'tokenize': False, + }) + _logger.info( + "Created token with id %(token_id)s for partner with id %(partner_id)s from " + "transaction with reference %(ref)s", + {'token_id': token.id, 'partner_id': self.partner_id.id, 'ref': self.reference}, + ) diff --git a/payment_worldline/static/description/icon.png b/payment_worldline/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b925454678838c9b75c196522ee719163b13bde5 GIT binary patch literal 1149 zcmV-@1cLjCP){REp5(bxW%eZOW7j9i$jHd}Zy`*v;afH%#9lQ6o+6w3rv>{7l)U+doW`rW z%NxOd0JS`4QPKPbdjw{G{-c{SG^6NqygtN|f(olRVMTYzJ)-t@2wI<4JVw~EyTBjN z-3(C?!;FNPKoH|Q?aqw0LFt4rE^tpEdIiz$&9V&$D+pP>hVpKw2?v4*VN!TxEgp1p z$peBET8WY6`mtm;Vq0LC31Ox5TPXvw3Y2pl7WL_Xu)=QzWZmy(i-QmZxwA}YWe94M zZcYQm%9;|?=t(Oa(;pM4e7cqc#PB5p>FDVQedD2PN9ftyigm1tp) z<2LRn)Ig&KDmzp(fxQsmB96jRf=x71-1f38FXe!+z)>`(KqG_7AS*41^LSpx9c760 zI^KxI)&xuPev-5m%8;UbInqcKxOp!az{zo|X)6{Cd7ChTO}e@Ao2&w3avF#*q{+&X zsME7qis=Xz5U2=x`L+#LUa_Idij{H>eL`$2tTU8UjH;2c4&G zZm+QhyGgovLBh&_A)h_o-=s$G={`{H8^A~QAlZfTaR6Gi9m4^05Tj7GJ%o|y&SfyCh`_m5ffmIQ#{I$ zfhYqw`a-oB8Dav;Ud&MvDg8nJg)Lu_3SlQE5KN~WWf2rz4&vhT?9CTJ5_S$)>2D%5 ziB$P1<=7WCLEgcyT_sGgT`?7#xgIs4-HmZ; diff --git a/payment_worldline/static/src/js/payment_form.js b/payment_worldline/static/src/js/payment_form.js new file mode 100644 index 00000000000..b2f9a87d37d --- /dev/null +++ b/payment_worldline/static/src/js/payment_form.js @@ -0,0 +1,23 @@ +import PaymentForm from '@payment/js/payment_form'; + +PaymentForm.include({ + /** + * Allow forcing redirect to 3-D Secure authentication for Ogone token flow. + * + * @override method from @payment/js/payment_form + * @private + * @param {string} providerCode - The code of the selected payment option's provider. + * @param {number} paymentOptionId - The id of the selected payment option. + * @param {string} paymentMethodCode - The code of the selected payment method, if any. + * @param {object} processingValues - The processing values of the transaction. + * @return {void} + */ + _processTokenFlow(providerCode, paymentOptionId, paymentMethodCode, processingValues) { + if (providerCode === 'worldline' && processingValues.force_flow === 'redirect') { + delete processingValues.force_flow; + this._processRedirectFlow(...arguments); + } else { + this._super(...arguments); + } + }, +}); diff --git a/payment_worldline/tests/__init__.py b/payment_worldline/tests/__init__.py new file mode 100644 index 00000000000..12f4e0fbe15 --- /dev/null +++ b/payment_worldline/tests/__init__.py @@ -0,0 +1,4 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import common +from . import test_worldline diff --git a/payment_worldline/tests/common.py b/payment_worldline/tests/common.py new file mode 100644 index 00000000000..aff9f1954b0 --- /dev/null +++ b/payment_worldline/tests/common.py @@ -0,0 +1,149 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.addons.payment.tests.common import PaymentCommon + + +class WorldlineCommon(PaymentCommon): + + @classmethod + def setUpClass(cls): + super().setUpClass() + + cls.worldline = cls._prepare_provider('worldline', update_values={ + 'worldline_pspid': 'dummy', + 'worldline_api_key': 'dummy', + 'worldline_api_secret': 'dummy', + 'worldline_webhook_key': 'dummy', + 'worldline_webhook_secret': 'dummy', + }) + + cls.provider = cls.worldline + cls.currency = cls.currency_euro + + cls.notification_data = { + 'payment': { + 'paymentOutput': { + 'references': { + 'merchantReference': cls.reference, + }, + 'cardPaymentMethodSpecificOutput': { + 'paymentProductId': 1, + 'card': { + 'cardNumber': "******4242" + }, + 'token': 'whateverToken' + }, + }, + 'id': '1234567890_0', + 'status': 'CAPTURED', + }, + } + + cls.notification_data_insufficient_funds = { + 'errorId': 'ffffffff-fff-fffff-ffff-ffffffffffff', + 'errors': [{ + 'category': 'IO_ERROR', + 'code': '9999', + 'errorCode': '30511001', + 'httpStatusCode': 402, + 'id': 'EXTERNAL_ACQUIRER_ERROR', + 'message': '', + 'retriable': False, + }], + 'paymentResult': { + 'creationOutput': { + 'externalReference': 'aaaaaaaa-5555-eeee-eeee-eeeeeeeeeeee', + 'isNewToken': False, + 'token': 'aaaaaaaa-5555-eeee-eeee-eeeeeeeeeeee', + 'tokenizationSucceeded': False, + }, + 'payment': { + 'id': '7777777000_0', + 'paymentOutput': { + 'acquiredAmount': {'amount': 0, 'currencyCode': 'EUR'}, + 'amountOfMoney': {'amount': 4990, 'currencyCode': 'EUR'}, + 'cardPaymentMethodSpecificOutput': { + 'acquirerInformation': {'name': "Test Pay"}, + 'card': { + 'bin': '50010000', + 'cardNumber': '************7777', + 'countryCode': 'BE', + 'expiryDate': '1244', + }, + 'fraudResults': {'cvvResult': 'P', 'fraudServiceResult': 'accepted'}, + 'paymentProductId': 3, + 'threeDSecureResults': {'eci': '9', 'xid': 'zOMTQ5TcODUxMg=='}, + 'token': 'aaaaaaaa-5555-eeee-eeee-eeeeeeeeeeee', + }, + 'customer': {'device': {'ipAddressCountryCode': '99'}}, + 'paymentMethod': 'card', + 'references': {'merchantReference': cls.reference}, + }, + 'status': 'REJECTED', + 'statusOutput': { + 'errors': [{ + 'category': 'IO_ERROR', + 'code': '9999', + 'errorCode': '30511001', + 'httpStatusCode': 402, + 'id': 'EXTERNAL_ACQUIRER_ERROR', + 'message': '', + 'retriable': False, + }], + 'isAuthorized': False, + 'isCancellable': False, + 'isRefundable': False, + 'statusCategory': 'UNSUCCESSFUL', + 'statusCode': 2, + }, + }, + }, + } + + cls.notification_data_expired_card = { + 'apiFullVersion': 'v1.1', + 'apiVersion': 'v1', + 'created': '2025-02-20T03:09:47.3706109+01:00', + 'id': 'ffffffff-fff-fffff-ffff-ffffffffffff', + 'merchantId': 'MyCompany', + 'payment': { + 'id': '9999999999_0', + 'paymentOutput': { + 'acquiredAmount': {'amount': 0, 'currencyCode': 'EUR'}, + 'amountOfMoney': {'amount': 4980, 'currencyCode': 'EUR'}, + 'cardPaymentMethodSpecificOutput': { + 'acquirerInformation': {'name': "Test Pay"}, + 'card': { + 'bin': '47777700', + 'cardNumber': '************9999', + 'countryCode': 'FR', + 'expiryDate': '1234', + }, + 'fraudResults': {'cvvResult': 'P', 'fraudServiceResult': 'accepted'}, + 'paymentProductId': 1, + 'threeDSecureResults': {'eci': '9'}, + 'token': 'ODOO-ALIAS-eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'}, + 'customer': {'device': {'ipAddressCountryCode': '99'}}, + 'paymentMethod': 'card', + 'references': {'merchantReference': cls.reference}, + }, + 'status': 'REJECTED', + 'statusOutput': { + 'errors': [{ + 'category': 'PAYMENT_PLATFORM_ERROR', + 'code': '9999', + 'errorCode': '30331001', + 'httpStatusCode': 402, + 'id': 'INVALID_CARD', + 'message': '', + 'retriable': False, + }], + 'isAuthorized': False, + 'isCancellable': False, + 'isRefundable': False, + 'statusCategory': 'UNSUCCESSFUL', + 'statusCode': 2 + }, + }, + 'type': 'payment.rejected', + } diff --git a/payment_worldline/tests/test_worldline.py b/payment_worldline/tests/test_worldline.py new file mode 100644 index 00000000000..d17d3c30ab9 --- /dev/null +++ b/payment_worldline/tests/test_worldline.py @@ -0,0 +1,160 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from base64 import b64encode +import hashlib +import hmac +import json +from unittest.mock import patch + +from werkzeug.exceptions import Forbidden + +from odoo.tests import tagged +from odoo.tools import mute_logger + +from odoo.addons.payment.tests.http_common import PaymentHttpCommon +from odoo.addons.payment_worldline.controllers.main import WorldlineController +from odoo.addons.payment_worldline.tests.common import WorldlineCommon + + +@tagged('post_install', '-at_install') +class WorldlineTest(WorldlineCommon, PaymentHttpCommon): + + @mute_logger('odoo.addons.payment_worldline.controllers.main') + def _webhook_notification_flow(self, payload): + """ Send a notification to the webhook, ignore the signature, and check the response. """ + url = self._build_url(WorldlineController._webhook_url) + with patch( + 'odoo.addons.payment_worldline.controllers.main.WorldlineController' + '._verify_notification_signature' + ): + response = self._make_json_request(url, data=payload) + self.assertEqual( + response.json(), '', msg="The webhook should always respond ''.", + ) + + @mute_logger('odoo.addons.payment_worldline.controllers.main') + def test_webhook_notification_confirms_transaction(self): + """ Test the processing of a webhook notification. """ + tx = self._create_transaction('redirect') + self.assertFalse(tx.tokenize, "No token should be asked.") + self._webhook_notification_flow(self.notification_data) + self.assertFalse(tx.token_id, "No token should be created.") + self.assertEqual(tx.state, 'done') + self.assertEqual(tx.provider_reference, '1234567890') + + @mute_logger('odoo.addons.payment_worldline.controllers.main') + def test_webhook_notification_creates_token(self): + """ Test the processing of a webhook notification when creating a token. """ + tx = self._create_transaction('redirect', tokenize=True) + self.assertTrue(tx.tokenize, "A token should be asked.") + self._webhook_notification_flow(self.notification_data) + self.assertEqual(tx.state, 'done') + self.assertFalse(tx.tokenize, "No token should be asked any more.") + self.assertTrue(tx.token_id, "A token should have been created and linked to the tx.") + self.assertEqual(tx.token_id.provider_ref, 'whateverToken') + self.assertEqual(tx.token_id.payment_details, '4242') + + @mute_logger('odoo.addons.payment_worldline.controllers.main') + def test_failed_webhook_notification_set_tx_as_error_1(self): + """ Test the processing of a webhook notification for a failed transaction. """ + tx = self._create_transaction('redirect') + test = self.notification_data_insufficient_funds + self._webhook_notification_flow(test) + self.assertEqual(tx.state, 'error') + self.assertEqual( + tx.state_message, + "Worldline: Transaction declined with error code 30511001.", + ) + + @mute_logger('odoo.addons.payment_worldline.controllers.main') + def test_failed_webhook_notification_set_tx_as_error_2(self): + """ Test the processing of a webhook notification for a failed transaction. """ + tx = self._create_transaction('redirect') + test = self.notification_data_expired_card + self._webhook_notification_flow(test) + self.assertEqual(tx.state, 'error') + self.assertEqual( + tx.state_message, + "Worldline: Transaction declined with error code 30331001.", + ) + + @mute_logger('odoo.addons.payment_worldline.controllers.main') + def test_failed_webhook_notification_set_tx_as_cancel(self): + """Test the processing of a webhook notification for a cancelled transaction.""" + tx = self._create_transaction('redirect') + test = { + 'payment': { + 'paymentOutput': self.notification_data['payment']['paymentOutput'], + 'hostedCheckoutSpecificOutput': { + 'hostedCheckoutId': '123456789', + }, + 'status': 'CANCELLED', + 'statusOutput': { + 'errors': [{ + 'errorCode': '30171001', + }], + }, + }, + } + self._webhook_notification_flow(test) + self.assertEqual(tx.state, 'cancel') + self.assertEqual( + tx.state_message, + "Worldline: Transaction cancelled with error code 30171001.", + ) + + @mute_logger('odoo.addons.payment_worldline.controllers.main') + def test_webhook_notification_triggers_signature_check(self): + """ Test that receiving a webhook notification triggers a signature check. """ + self._create_transaction('redirect') + url = self._build_url(WorldlineController._webhook_url) + with patch( + 'odoo.addons.payment_worldline.controllers.main.WorldlineController' + '._verify_notification_signature' + ) as signature_check_mock, patch( + 'odoo.addons.payment.models.payment_transaction.PaymentTransaction' + '._handle_notification_data' + ): + self._make_json_request(url, data=self.notification_data) + self.assertEqual(signature_check_mock.call_count, 1) + + def test_accept_notification_with_valid_signature(self): + """ Test the verification of a notification with a valid signature. """ + tx = self._create_transaction('redirect') + unencoded_result = hmac.new( + self.worldline.worldline_webhook_secret.encode(), + json.dumps(self.notification_data).encode(), + hashlib.sha256, + ).digest() + expected_signature = b64encode(unencoded_result) + self._assert_does_not_raise( + Forbidden, + WorldlineController._verify_notification_signature, + json.dumps(self.notification_data).encode(), + expected_signature, + tx, + ) + + @mute_logger('odoo.addons.payment_worldline.controllers.main') + def test_reject_notification_with_missing_signature(self): + """ Test the verification of a notification with a missing signature. """ + tx = self._create_transaction('redirect') + self.assertRaises( + Forbidden, + WorldlineController._verify_notification_signature, + json.dumps(self.notification_data).encode(), + None, + tx, + ) + + @mute_logger('odoo.addons.payment_worldline.controllers.main') + def test_reject_notification_with_invalid_signature(self): + """ Test the verification of a notification with an invalid signature. """ + tx = self._create_transaction('redirect') + self.assertRaises( + Forbidden, + WorldlineController._verify_notification_signature, + json.dumps(self.notification_data).encode(), + 'dummy', + tx, + ) diff --git a/payment_worldline/views/payment_provider_views.xml b/payment_worldline/views/payment_provider_views.xml new file mode 100644 index 00000000000..e8f295d179a --- /dev/null +++ b/payment_worldline/views/payment_provider_views.xml @@ -0,0 +1,43 @@ + + + + + Worldline Provider Form + payment.provider + + + + + + + + + + + + + + + diff --git a/payment_worldline/views/payment_worldline_templates.xml b/payment_worldline/views/payment_worldline_templates.xml new file mode 100644 index 00000000000..28813d66c9b --- /dev/null +++ b/payment_worldline/views/payment_worldline_templates.xml @@ -0,0 +1,8 @@ + + + + + + From e81c2754f01586c37955c8ba97e51abc81347eaf Mon Sep 17 00:00:00 2001 From: Benjamin Willig Date: Mon, 3 Nov 2025 09:21:50 +0100 Subject: [PATCH 2/2] [MIG] payment_worldline: migration to 16.0 --- payment_worldline/README.md | 9 +- payment_worldline/__init__.py | 8 +- payment_worldline/__manifest__.py | 36 +- payment_worldline/const.py | 100 ++--- payment_worldline/controllers/main.py | 78 ++-- payment_worldline/data/payment_icon.xml | 52 +++ .../data/payment_provider_data.xml | 28 +- payment_worldline/models/__init__.py | 2 +- payment_worldline/models/payment_icon.py | 20 + payment_worldline/models/payment_provider.py | 122 +++--- .../models/payment_transaction.py | 390 ++++++++++-------- .../static/src/js/payment_form.js | 23 -- payment_worldline/tests/common.py | 240 ++++++----- payment_worldline/tests/test_worldline.py | 117 +++--- payment_worldline/views/payment_icon.xml | 16 + .../views/payment_provider_views.xml | 16 +- .../views/payment_worldline_templates.xml | 4 +- .../odoo/addons/payment_worldline | 1 + setup/payment_worldline/setup.py | 6 + 19 files changed, 739 insertions(+), 529 deletions(-) create mode 100644 payment_worldline/data/payment_icon.xml create mode 100644 payment_worldline/models/payment_icon.py delete mode 100644 payment_worldline/static/src/js/payment_form.js create mode 100644 payment_worldline/views/payment_icon.xml create mode 120000 setup/payment_worldline/odoo/addons/payment_worldline create mode 100644 setup/payment_worldline/setup.py diff --git a/payment_worldline/README.md b/payment_worldline/README.md index a78abbce566..95dc3a4dba7 100644 --- a/payment_worldline/README.md +++ b/payment_worldline/README.md @@ -2,11 +2,12 @@ ## Technical details -API: [Worldline Direct API](https://docs.direct.worldline-solutions.com/en/api-reference) +API: +[Worldline Direct API](https://docs.direct.worldline-solutions.com/en/api-reference) version `2` -This module integrates Worldline using the generic payment with redirection flow based on form -submission provided by the `payment` module. +This module integrates Worldline using the generic payment with redirection flow based +on form submission provided by the `payment` module. This is achieved by following the [Hosted Checkout Page] (https://docs.direct.worldline-solutions.com/en/integration/basic-integration-methods/hosted-checkout-page) @@ -28,6 +29,8 @@ guide. - `18.0` - The first version of the module is merged. odoo/odoo#175194. +- `16.0` + - bACKPORT TO 16.0. ## Testing instructions diff --git a/payment_worldline/__init__.py b/payment_worldline/__init__.py index fda2a1512cb..3f22e7230dc 100644 --- a/payment_worldline/__init__.py +++ b/payment_worldline/__init__.py @@ -6,9 +6,9 @@ from odoo.addons.payment import setup_provider, reset_payment_provider -def post_init_hook(env): - setup_provider(env, 'worldline') +def post_init_hook(cr, registry): + setup_provider(cr, registry, "worldline") -def uninstall_hook(env): - reset_payment_provider(env, 'worldline') +def uninstall_hook(cr, registry): + reset_payment_provider(cr, registry, "worldline") diff --git a/payment_worldline/__manifest__.py b/payment_worldline/__manifest__.py index 95adc71583c..4fbd4a62299 100644 --- a/payment_worldline/__manifest__.py +++ b/payment_worldline/__manifest__.py @@ -1,24 +1,22 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. { - 'name': "Payment Provider: Worldline", - 'category': 'Accounting/Payment Providers', - 'sequence': 350, - 'summary': "A French payment provider covering several European countries.", - 'description': " ", # Non-empty string to avoid loading the README file. - 'depends': ['payment'], - 'data': [ - 'views/payment_provider_views.xml', - 'views/payment_worldline_templates.xml', - - 'data/payment_provider_data.xml', + "name": "Payment Provider: Worldline", + "category": "Accounting/Payment Providers", + "sequence": 350, + "version": "16.0.1.0.0", + "summary": "A French payment provider covering several European countries.", + "author": "Odoo SA, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/account-payment", + "depends": ["payment"], + "data": [ + "views/payment_icon.xml", + "views/payment_provider_views.xml", + "views/payment_worldline_templates.xml", + "data/payment_icon.xml", + "data/payment_provider_data.xml", ], - 'assets': { - 'web.assets_frontend': [ - 'payment_worldline/static/src/js/payment_form.js', - ], - }, - 'post_init_hook': 'post_init_hook', - 'uninstall_hook': 'uninstall_hook', - 'license': 'LGPL-3', + "post_init_hook": "post_init_hook", + "uninstall_hook": "uninstall_hook", + "license": "LGPL-3", } diff --git a/payment_worldline/const.py b/payment_worldline/const.py index f2e7a16bc31..dea5617f138 100644 --- a/payment_worldline/const.py +++ b/payment_worldline/const.py @@ -3,70 +3,76 @@ # The codes of the payment methods to activate when Worldline is activated. DEFAULT_PAYMENT_METHOD_CODES = { # Primary payment methods. - 'card', + "card", } # Mapping of payment method codes to Worldline codes. # See https://docs.direct.worldline-solutions.com/en/payment-methods-and-features/index. PAYMENT_METHODS_MAPPING = { - 'alipay_plus': 5405, - 'amex': 2, - 'bancontact': 3012, - 'bizum': 5001, - 'cartes_bancaires': 130, - 'cofidis': 3012, - 'diners': 132, - 'discover': 128, - 'eps': 5406, - 'floa_bank': 5139, - 'ideal': 809, - 'jcb': 125, - 'klarna': 3301, - 'maestro': 117, - 'mastercard': 3, - 'mbway': 5908, - 'multibanco': 5500, - 'p24': 3124, - 'paypal': 840, - 'post_finance_pay': 3203, - 'twint': 5407, - 'upi': 56, - 'visa': 1, - 'wechat_pay': 5404, + "alipay_plus": 5405, + "amex": 2, + "bancontact": 3012, + "bizum": 5001, + "cartes_bancaires": 130, + "cofidis": 3012, + "diners": 132, + "discover": 128, + "eps": 5406, + "floa_bank": 5139, + "ideal": 809, + "jcb": 125, + "klarna": 3301, + "maestro": 117, + "mastercard": 3, + "mbway": 5908, + "multibanco": 5500, + "p24": 3124, + "paypal": 840, + "post_finance_pay": 3203, + "twint": 5407, + "upi": 56, + "visa": 1, + "wechat_pay": 5404, } # The payment methods that involve a redirection to 3rd parties by Worldline. REDIRECT_PAYMENT_METHODS = { - 'alipay_plus', - 'bizum', - 'eps', - 'floa_bank', - 'ideal', - 'klarna', - 'mbway', - 'multibanco', - 'p24', - 'paypal', - 'post_finance_pay', - 'twint', - 'wechat_pay', + "alipay_plus", + "bizum", + "eps", + "floa_bank", + "ideal", + "klarna", + "mbway", + "multibanco", + "p24", + "paypal", + "post_finance_pay", + "twint", + "wechat_pay", } # Mapping of transaction states to Worldline's payment statuses. # See https://docs.direct.worldline-solutions.com/en/integration/api-developer-guide/statuses. PAYMENT_STATUS_MAPPING = { - 'pending': ( - 'CREATED', 'REDIRECTED', 'AUTHORIZATION_REQUESTED', 'PENDING_CAPTURE', 'CAPTURE_REQUESTED' + "pending": ( + "CREATED", + "REDIRECTED", + "AUTHORIZATION_REQUESTED", + "PENDING_CAPTURE", + "CAPTURE_REQUESTED", ), - 'done': ('CAPTURED',), - 'cancel': ('CANCELLED',), - 'declined': ('REJECTED', 'REJECTED_CAPTURE'), + "done": ("CAPTURED",), + "cancel": ("CANCELLED",), + "declined": ("REJECTED", "REJECTED_CAPTURE"), } # Mapping of response codes indicating Worldline handled the request -# See https://apireference.connect.worldline-solutions.com/s2sapi/v1/en_US/json/response-codes.html. +# See +# https://apireference.connect.worldline-solutions.com/s2sapi +# /v1/en_US/json/response-codes.html. VALID_RESPONSE_CODES = { - 200: 'Successful', - 201: 'Created', - 402: 'Payment Rejected', + 200: "Successful", + 201: "Created", + 402: "Payment Rejected", } diff --git a/payment_worldline/controllers/main.py b/payment_worldline/controllers/main.py index ef1335bf659..52f654a86c2 100644 --- a/payment_worldline/controllers/main.py +++ b/payment_worldline/controllers/main.py @@ -1,10 +1,10 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. -from base64 import b64encode import hashlib import hmac import logging import pprint +from base64 import b64encode from werkzeug.exceptions import Forbidden @@ -12,83 +12,97 @@ from odoo.exceptions import ValidationError from odoo.http import request - _logger = logging.getLogger(__name__) class WorldlineController(http.Controller): - _return_url = '/payment/worldline/return' - _webhook_url = '/payment/worldline/webhook' + _return_url = "/payment/worldline/return" + _webhook_url = "/payment/worldline/webhook" - @http.route(_return_url, type='http', auth='public', methods=['GET']) + @http.route(_return_url, type="http", auth="public", methods=["GET"]) def worldline_return_from_checkout(self, **data): - """ Process the notification data sent by Worldline after redirection. + """Process the notification data sent by Worldline after redirection. - :param dict data: The notification data, including the provider id appended to the URL in + :param dict data: The notification data, including the provider + id appended to the URL in `_get_specific_rendering_values`. """ - _logger.info("Handling redirection from Worldline with data:\n%s", pprint.pformat(data)) + _logger.info( + "Handling redirection from Worldline with data:\n%s", pprint.pformat(data) + ) - provider_id = int(data['provider_id']) - provider_sudo = request.env['payment.provider'].sudo().browse(provider_id).exists() - if not provider_sudo or provider_sudo.code != 'worldline': + provider_id = int(data["provider_id"]) + provider_sudo = ( + request.env["payment.provider"].sudo().browse(provider_id).exists() + ) + if not provider_sudo or provider_sudo.code != "worldline": _logger.warning("Received payment data with invalid provider id.") raise Forbidden() # Fetch the checkout session data from Worldline. checkout_session_data = provider_sudo._worldline_make_request( - f'hostedcheckouts/{data["hostedCheckoutId"]}', method='GET' + f'hostedcheckouts/{data["hostedCheckoutId"]}', method="GET" ) _logger.info( "Response of '/hostedcheckouts/' request:\n%s", - pprint.pformat(checkout_session_data) + pprint.pformat(checkout_session_data), ) - notification_data = checkout_session_data.get('createdPaymentOutput', {}) + notification_data = checkout_session_data.get("createdPaymentOutput", {}) # Handle the notification data. - tx_sudo = request.env['payment.transaction'].sudo()._get_tx_from_notification_data( - 'worldline', notification_data + tx_sudo = ( + request.env["payment.transaction"] + .sudo() + ._get_tx_from_notification_data("worldline", notification_data) ) - tx_sudo._handle_notification_data('worldline', notification_data) - return request.redirect('/payment/status') + tx_sudo._handle_notification_data("worldline", notification_data) + return request.redirect("/payment/status") - @http.route(_webhook_url, type='http', auth='public', methods=['POST'], csrf=False) + @http.route(_webhook_url, type="http", auth="public", methods=["POST"], csrf=False) def worldline_webhook(self): - """ Process the notification data sent by Worldline to the webhook. + """Process the notification data sent by Worldline to the webhook. - See https://docs.direct.worldline-solutions.com/en/integration/api-developer-guide/webhooks. + See https://docs.direct.worldline-solutions.com/en + /integration/api-developer-guide/webhooks. :return: An empty string to acknowledge the notification. :rtype: str """ notification_data = request.get_json_data() _logger.info( - "Notification received from Worldline with data:\n%s", pprint.pformat(notification_data) + "Notification received from Worldline with data:\n%s", + pprint.pformat(notification_data), ) try: # Check the integrity of the notification. - tx_sudo = request.env['payment.transaction'].sudo()._get_tx_from_notification_data( - 'worldline', notification_data + tx_sudo = ( + request.env["payment.transaction"] + .sudo() + ._get_tx_from_notification_data("worldline", notification_data) ) - received_signature = request.httprequest.headers.get('X-GCS-Signature') + received_signature = request.httprequest.headers.get("X-GCS-Signature") request_data = request.httprequest.data - self._verify_notification_signature(request_data, received_signature, tx_sudo) + self._verify_notification_signature( + request_data, received_signature, tx_sudo + ) # Handle the notification data. - tx_sudo._handle_notification_data('worldline', notification_data) + tx_sudo._handle_notification_data("worldline", notification_data) except ValidationError: # Acknowledge the notification to avoid getting spammed. - _logger.exception("Unable to handle the notification data; skipping to acknowledge.") + _logger.exception( + "Unable to handle the notification data; skipping to acknowledge." + ) - return request.make_json_response('') # Acknowledge the notification. + return request.make_json_response("") # Acknowledge the notification. @staticmethod def _verify_notification_signature(request_data, received_signature, tx_sudo): - """ Check that the received signature matches the expected one. + """Check that the received signature matches the expected one. :param dict|bytes request_data: The request data. :param str received_signature: The signature to compare with the expected signature. - :param payment.transaction tx_sudo: The sudoed transaction referenced by the notification - data. + :param payment.transaction tx_sudo: The sudoed transaction + referenced by the notification data. :return: None :raise Forbidden: If the signatures don't match. """ diff --git a/payment_worldline/data/payment_icon.xml b/payment_worldline/data/payment_icon.xml new file mode 100644 index 00000000000..ac07e69eaf2 --- /dev/null +++ b/payment_worldline/data/payment_icon.xml @@ -0,0 +1,52 @@ + + + + + visa + + + + mastercard + + + + amex + + + + discover + + + + diners + + + + paypal + + + + jcb + + + + maestro + + + + bancontact + + + + ideal + + + + eps + + + + p24 + + + diff --git a/payment_worldline/data/payment_provider_data.xml b/payment_worldline/data/payment_provider_data.xml index db4c3a82f27..f8a7bd57fd5 100644 --- a/payment_worldline/data/payment_provider_data.xml +++ b/payment_worldline/data/payment_provider_data.xml @@ -1,10 +1,32 @@ - + - + worldline - + True + Wordline + Wordline + + + diff --git a/payment_worldline/models/__init__.py b/payment_worldline/models/__init__.py index 08dfb8af342..a3c5bd43e3d 100644 --- a/payment_worldline/models/__init__.py +++ b/payment_worldline/models/__init__.py @@ -1,4 +1,4 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. - +from . import payment_icon from . import payment_provider from . import payment_transaction diff --git a/payment_worldline/models/payment_icon.py b/payment_worldline/models/payment_icon.py new file mode 100644 index 00000000000..09ddf9badc3 --- /dev/null +++ b/payment_worldline/models/payment_icon.py @@ -0,0 +1,20 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + + +from odoo import fields, models + + +class PaymentIcon(models.Model): + _inherit = "payment.icon" + + worldline_code = fields.Char() + + def _get_from_wordline_code(self, code, mapping=None): + generic_to_specific_mapping = mapping or {} + specific_to_generic_mapping = { + v: k for k, v in generic_to_specific_mapping.items() + } + return self.search( + [("worldline_code", "=", specific_to_generic_mapping.get(code, code))], + limit=1, + ) diff --git a/payment_worldline/models/payment_provider.py b/payment_worldline/models/payment_provider.py index 1de9953e925..3df7085966f 100644 --- a/payment_worldline/models/payment_provider.py +++ b/payment_worldline/models/payment_provider.py @@ -13,43 +13,48 @@ from odoo.exceptions import ValidationError from odoo.fields import Datetime -from odoo.addons.payment_worldline import const - +from .. import const _logger = logging.getLogger(__name__) class PaymentProvider(models.Model): - _inherit = 'payment.provider' + _inherit = "payment.provider" code = fields.Selection( - selection_add=[('worldline', "Worldline")], ondelete={'worldline': 'set default'} + selection_add=[("worldline", "Worldline")], + ondelete={"worldline": "set default"}, ) - worldline_pspid = fields.Char(string="Worldline PSPID", required_if_provider='worldline') - worldline_api_key = fields.Char(string="Worldline API Key", required_if_provider='worldline') - worldline_api_secret = fields.Char( - string="Worldline API Secret", required_if_provider='worldline' + worldline_pspid = fields.Char( + string="Worldline PSPID", required_if_provider="worldline" ) - worldline_webhook_key = fields.Char( - string="Worldline Webhook Key", required_if_provider='worldline' + worldline_api_key = fields.Char( + string="Worldline API Key", required_if_provider="worldline" ) - worldline_webhook_secret = fields.Char( - string="Worldline Webhook Secret", required_if_provider='worldline' + worldline_api_secret = fields.Char( + string="Worldline API Secret", required_if_provider="worldline" ) + worldline_webhook_key = fields.Char(required_if_provider="worldline") + worldline_webhook_secret = fields.Char(required_if_provider="worldline") # === COMPUTE METHODS === # def _compute_feature_support_fields(self): - """ Override of `payment` to enable additional features. """ - super()._compute_feature_support_fields() - self.filtered(lambda p: p.code == 'worldline').update({ - 'support_tokenization': True, - }) + """Override of `payment` to enable additional features.""" + res = super()._compute_feature_support_fields() + self.filtered(lambda p: p.code == "worldline").update( + { + "support_tokenization": True, + } + ) + return res # === BUSINESS METHODS === # - def _worldline_make_request(self, endpoint, payload=None, method='POST', idempotency_key=None): - """ Make a request to Worldline API at the specified endpoint. + def _worldline_make_request( + self, endpoint, payload=None, method="POST", idempotency_key=None + ): + """Make a request to Worldline API at the specified endpoint. Note: self.ensure_one() @@ -64,59 +69,74 @@ def _worldline_make_request(self, endpoint, payload=None, method='POST', idempot self.ensure_one() api_url = self._worldline_get_api_url() - url = f'{api_url}/v2/{self.worldline_pspid}/{endpoint}' - content_type = 'application/json; charset=utf-8' if method == 'POST' else '' - dt = format_date_time(Datetime.now().timestamp()) # Datetime in locale-independent RFC1123 + url = f"{api_url}/v2/{self.worldline_pspid}/{endpoint}" + content_type = "application/json; charset=utf-8" if method == "POST" else "" + dt = format_date_time( + Datetime.now().timestamp() + ) # Datetime in locale-independent RFC1123 signature = self._worldline_calculate_signature( method, endpoint, content_type, dt, idempotency_key=idempotency_key ) - authorization_header = f'GCS v1HMAC:{self.worldline_api_key}:{signature}' + authorization_header = ( + f"GCS v1HMAC:{self.worldline_api_key}:{signature}" # noqa: E231 + ) headers = { - 'Authorization': authorization_header, - 'Date': dt, - 'Content-Type': content_type, + "Authorization": authorization_header, + "Date": dt, + "Content-Type": content_type, } - if method == 'POST' and idempotency_key: - headers['X-GCS-Idempotence-Key'] = idempotency_key + if method == "POST" and idempotency_key: + headers["X-GCS-Idempotence-Key"] = idempotency_key try: - response = requests.request(method, url, json=payload, headers=headers, timeout=10) + response = requests.request( + method, url, json=payload, headers=headers, timeout=10 + ) try: if response.status_code not in const.VALID_RESPONSE_CODES: response.raise_for_status() - except requests.exceptions.HTTPError: + except requests.exceptions.HTTPError as e: _logger.exception( - "Invalid API request at %s with data:\n%s", url, pprint.pformat(payload) + "Invalid API request at %s with data:\n%s", + url, + pprint.pformat(payload), ) - msg = ', '.join( - [error.get('message', '') for error in response.json().get('errors', [])] + _logger.error(response) + msg = ", ".join( + [ + error.get("message", "") + for error in response.json().get("errors", []) + ] ) raise ValidationError( - "Worldline: " + _("The communication with the API failed. Details: %s", msg) - ) - except (requests.exceptions.ConnectionError, requests.exceptions.Timeout): + _("Worldline: ") + + _("The communication with the API failed. Details: %s", msg) + ) from e + except (requests.exceptions.ConnectionError, requests.exceptions.Timeout) as e: _logger.exception("Unable to reach endpoint at %s", url) raise ValidationError( - "Worldline: " + _("Could not establish the connection to the API.") - ) + _("Worldline: ") + _("Could not establish the connection to the API.") + ) from e return response.json() def _worldline_get_api_url(self): - """ Return the URL of the API corresponding to the provider's state. + """Return the URL of the API corresponding to the provider's state. :return: The API URL. :rtype: str """ - if self.state == 'enabled': - return 'https://payment.direct.worldline-solutions.com' + if self.state == "enabled": + return "https://payment.direct.worldline-solutions.com" else: # 'test' - return 'https://payment.preprod.direct.worldline-solutions.com' + return "https://payment.preprod.direct.worldline-solutions.com" def _worldline_calculate_signature( self, method, endpoint, content_type, dt_rfc, idempotency_key=None ): - """ Compute the signature for the provided data. + """Compute the signature for the provided data. - See https://docs.direct.worldline-solutions.com/en/integration/api-developer-guide/authentication. + See + https://docs.direct.worldline-solutions.com/en/integration + /api-developer-guide/authentication. :param str method: The HTTP method of the request :param str endpoint: The endpoint to be reached by the request. @@ -129,18 +149,20 @@ def _worldline_calculate_signature( # specific order required: method, content_type, date, custom headers, endpoint values_to_sign = [method, content_type, dt_rfc] if idempotency_key: - values_to_sign.append(f'x-gcs-idempotence-key:{idempotency_key}') - values_to_sign.append(f'/v2/{self.worldline_pspid}/{endpoint}') + values_to_sign.append( + f"x-gcs-idempotence-key:{idempotency_key}" # noqa: E231 + ) # pylint: disable=E231 + values_to_sign.append(f"/v2/{self.worldline_pspid}/{endpoint}") - signing_str = '\n'.join(values_to_sign) + '\n' + signing_str = "\n".join(values_to_sign) + "\n" signature = hmac.new( self.worldline_api_secret.encode(), signing_str.encode(), hashlib.sha256 ) - return base64.b64encode(signature.digest()).decode('utf-8') + return base64.b64encode(signature.digest()).decode("utf-8") def _get_default_payment_method_codes(self): - """ Override of `payment` to return the default payment method codes. """ + """Override of `payment` to return the default payment method codes.""" default_codes = super()._get_default_payment_method_codes() - if self.code != 'worldline': + if self.code != "worldline": return default_codes return const.DEFAULT_PAYMENT_METHOD_CODES diff --git a/payment_worldline/models/payment_transaction.py b/payment_worldline/models/payment_transaction.py index 3e90048af51..849e5f6f902 100644 --- a/payment_worldline/models/payment_transaction.py +++ b/payment_worldline/models/payment_transaction.py @@ -5,22 +5,27 @@ from werkzeug import urls -from odoo import _, models +from odoo import _, fields, models from odoo.exceptions import UserError, ValidationError from odoo.addons.payment import utils as payment_utils -from odoo.addons.payment_worldline import const -from odoo.addons.payment_worldline.controllers.main import WorldlineController +from .. import const +from ..controllers.main import WorldlineController _logger = logging.getLogger(__name__) class PaymentTransaction(models.Model): - _inherit = 'payment.transaction' + _inherit = "payment.transaction" - def _compute_reference(self, provider_code, prefix=None, separator='-', **kwargs): - """ Override of `payment` to ensure that Worldline requirement for references is satisfied. + payment_product_id = fields.Many2one( + comodel_name="payment.icon", string="Used payment method" + ) + + def _compute_reference(self, provider_code, prefix=None, separator="-", **kwargs): + """Override of `payment` to ensure that Worldline requirement for + references is satisfied. Worldline requires for references to be at most 30 characters long. @@ -33,19 +38,21 @@ def _compute_reference(self, provider_code, prefix=None, separator='-', **kwargs reference = super()._compute_reference( provider_code, prefix=prefix, separator=separator, **kwargs ) - if provider_code != 'worldline': + if provider_code != "worldline": return reference - if len(reference) <= 30: # Worldline transaction merchantReference is limited to 30 chars + if ( + len(reference) <= 30 + ): # Worldline transaction merchantReference is limited to 30 chars return reference - prefix = payment_utils.singularize_reference_prefix(prefix='WL') + prefix = payment_utils.singularize_reference_prefix(prefix="WL") return super()._compute_reference( provider_code, prefix=prefix, separator=separator, **kwargs ) def _get_specific_processing_values(self, processing_values): - """ Override of `payment` to redirect failed token-flow transactions. + """Override of `payment` to redirect failed token-flow transactions. If the financial institution insists on user authentication, this override will reset the transaction, and switch the flow to redirect. @@ -58,22 +65,24 @@ def _get_specific_processing_values(self, processing_values): """ res = super()._get_specific_processing_values(processing_values) if ( - self.provider_code == 'worldline' - and self.operation == 'online_token' - and self.state == 'error' - and self.state_message.endswith('AUTHORIZATION_REQUESTED') + self.provider_code == "worldline" + and self.operation == "online_token" + and self.state == "error" + and self.state_message.endswith("AUTHORIZATION_REQUESTED") ): # Tokenized payment failed due to 3-D Secure authentication request. # Reset transaction to draft and switch to redirect flow. - self.write({ - 'state': 'draft', - 'operation': 'online_redirect', - }) - res['force_flow'] = 'redirect' + self.write( + { + "state": "draft", + "operation": "online_redirect", + } + ) + res["force_flow"] = "redirect" return res def _get_specific_rendering_values(self, processing_values): - """ Override of `payment` to return Worldline-specific processing values. + """Override of `payment` to return Worldline-specific processing values. Note: self.ensure_one() from `_get_processing_values`. @@ -82,157 +91,172 @@ def _get_specific_rendering_values(self, processing_values): :rtype: dict """ res = super()._get_specific_rendering_values(processing_values) - if self.provider_code != 'worldline': + if self.provider_code != "worldline": return res checkout_session_data = self._worldline_create_checkout_session() - return {'api_url': checkout_session_data['redirectUrl']} - - def _worldline_create_checkout_session(self): - """ Create a hosted checkout session and return the response data. + return {"api_url": checkout_session_data["redirectUrl"]} - :return: The hosted checkout session data. - :rtype: dict - """ + def _worldline_create_checkout_session_get_payload(self): self.ensure_one() - + provider = self.provider_id base_url = self.provider_id.get_base_url() return_route = WorldlineController._return_url - return_url_params = urls.url_encode({'provider_id': str(self.provider_id.id)}) - return_url = f'{urls.url_join(base_url, return_route)}?{return_url_params}' + return_url_params = urls.url_encode({"provider_id": str(self.provider_id.id)}) + return_url = f"{urls.url_join(base_url, return_route)}?{return_url_params}" first_name, last_name = payment_utils.split_partner_name(self.partner_name) + payment_method = self.provider_id._get_provider_payment_method( + self.provider_code + ) payload = { - 'hostedCheckoutSpecificInput': { - 'locale': self.partner_lang or '', - 'returnUrl': return_url, - 'showResultPage': False, + "hostedCheckoutSpecificInput": { + "locale": self.partner_lang or "", + "returnUrl": return_url, + "showResultPage": False, }, - 'order': { - 'amountOfMoney': { - 'amount': payment_utils.to_minor_currency_units(self.amount, self.currency_id), - 'currencyCode': self.currency_id.name, + "order": { + "amountOfMoney": { + "amount": payment_utils.to_minor_currency_units( + self.amount, self.currency_id + ), + "currencyCode": self.currency_id.name, }, - 'customer': { # required to create a token and for some redirected payment methods - 'billingAddress': { - 'city': self.partner_city or '', - 'countryCode': self.partner_country_id.code or '', - 'state': self.partner_state_id.name or '', - 'street': self.partner_address or '', - 'zip': self.partner_zip or '', + # required to create a token and for some redirected payment methods + "customer": { + "billingAddress": { + "city": self.partner_city or "", + "countryCode": self.partner_country_id.code or "", + "state": self.partner_state_id.name or "", + "street": self.partner_address or "", + "zip": self.partner_zip or "", }, - 'contactDetails': { - 'emailAddress': self.partner_email or '', - 'phoneNumber': self.partner_phone or '', + "contactDetails": { + "emailAddress": self.partner_email or "", + "phoneNumber": self.partner_phone or "", }, - 'personalInformation': { - 'name': { - 'firstName': first_name or '', - 'surname': last_name or '', + "personalInformation": { + "name": { + "firstName": first_name or "", + "surname": last_name or "", }, }, }, - 'references': { - 'descriptor': self.reference, - 'merchantReference': self.reference, + "references": { + "descriptor": self.reference, + "merchantReference": self.reference, }, }, } - if self.payment_method_id.code in const.REDIRECT_PAYMENT_METHODS: - payload['redirectPaymentMethodSpecificInput'] = { - 'requiresApproval': False, # Force the capture. - 'paymentProductId': const.PAYMENT_METHODS_MAPPING[self.payment_method_id.code], - 'redirectionData': { - 'returnUrl': return_url, + + wordline_codes = [] + if payment_method.code in const.REDIRECT_PAYMENT_METHODS: + payload["redirectPaymentMethodSpecificInput"] = { + "requiresApproval": False, # Force the capture. + "paymentProductId": const.PAYMENT_METHODS_MAPPING[payment_method.code], + "redirectionData": { + "returnUrl": return_url, }, } else: - payload['cardPaymentMethodSpecificInput'] = { - 'authorizationMode': 'SALE', # Force the capture. - 'tokenize': self.tokenize, + payload["cardPaymentMethodSpecificInput"] = { + "authorizationMode": "SALE", # Force the capture. + "tokenize": self.tokenize, } - if not self.payment_method_id.brand_ids and self.payment_method_id.code != 'card': - worldline_code = const.PAYMENT_METHODS_MAPPING.get(self.payment_method_id.code, 0) - payload['cardPaymentMethodSpecificInput']['paymentProductId'] = worldline_code - else: - pm_codes = self.env['payment.method'].search([ - ('active', 'in', [True, False]), - ('primary_payment_method_id', '=', self.payment_method_id.id), - ]).mapped('code') - worldline_codes = [ - const.PAYMENT_METHODS_MAPPING[code] for code in pm_codes - if code in const.PAYMENT_METHODS_MAPPING - ] - payload['hostedCheckoutSpecificInput']['paymentProductFilters'] = { - 'restrictTo': { - 'products': worldline_codes, + for payment_icon in provider.payment_icon_ids: + if not payment_icon.worldline_code: + continue + wordline_codes.append( + const.PAYMENT_METHODS_MAPPING[payment_icon.worldline_code] + ) + + if wordline_codes: + payload["hostedCheckoutSpecificInput"]["paymentProductFilters"] = { + "restrictTo": { + "products": wordline_codes, }, } + return payload + def _worldline_create_checkout_session(self): + """Create a hosted checkout session and return the response data. + + :return: The hosted checkout session data. + :rtype: dict + """ + payload = self._worldline_create_checkout_session_get_payload() _logger.info( "Sending '/hostedcheckouts' request for transaction with reference %s:\n%s", - self.reference, pprint.pformat(payload) + self.reference, + pprint.pformat(payload), ) + checkout_session_data = self.provider_id._worldline_make_request( - 'hostedcheckouts', payload=payload + "hostedcheckouts", payload=payload ) _logger.info( "Response of '/hostedcheckouts' request for transaction with reference %s:\n%s", - self.reference, pprint.pformat(checkout_session_data) + self.reference, + pprint.pformat(checkout_session_data), ) return checkout_session_data def _send_payment_request(self): - """ Override of `payment` to send a payment request to Worldline. + """Override of `payment` to send a payment request to Worldline. Note: self.ensure_one() :return: None :raise UserError: If the transaction is not linked to a token. """ - super()._send_payment_request() - if self.provider_code != 'worldline': - return + res = super()._send_payment_request() + if self.provider_code != "worldline": + return res # Prepare the payment request to Worldline. if not self.token_id: - raise UserError("Worldline: " + _("The transaction is not linked to a token.")) + raise UserError( + _("Worldline: ") + _("The transaction is not linked to a token.") + ) payload = { - 'cardPaymentMethodSpecificInput': { - 'authorizationMode': 'SALE', # Force the capture. - 'token': self.token_id.provider_ref, - 'unscheduledCardOnFileRequestor': 'merchantInitiated', - 'unscheduledCardOnFileSequenceIndicator': 'subsequent', + "cardPaymentMethodSpecificInput": { + "authorizationMode": "SALE", # Force the capture. + "token": self.token_id.provider_ref, + "unscheduledCardOnFileRequestor": "merchantInitiated", + "unscheduledCardOnFileSequenceIndicator": "subsequent", }, - 'order': { - 'amountOfMoney': { - 'amount': payment_utils.to_minor_currency_units(self.amount, self.currency_id), - 'currencyCode': self.currency_id.name, + "order": { + "amountOfMoney": { + "amount": payment_utils.to_minor_currency_units( + self.amount, self.currency_id + ), + "currencyCode": self.currency_id.name, }, - 'references': { - 'merchantReference': self.reference, + "references": { + "merchantReference": self.reference, }, }, } # Make the payment request to Worldline. response_content = self.provider_id._worldline_make_request( - 'payments', + "payments", payload=payload, idempotency_key=payment_utils.generate_idempotency_key( - self, scope='payment_request_token' - ) + self, scope="payment_request_token" + ), ) # Handle the payment request response. _logger.info( "Response of /payment request for transaction with reference %s:\n%s", - self.reference, pprint.pformat(response_content) + self.reference, + pprint.pformat(response_content), ) - self._handle_notification_data('worldline', response_content) + self._handle_notification_data("worldline", response_content) def _get_tx_from_notification_data(self, provider_code, notification_data): - """ Override of `payment` to find the transaction based on Worldline data. + """Override of `payment` to find the transaction based on Worldline data. :param str provider_code: The code of the provider that handled the transaction. :param dict notification_data: The notification data sent by the provider. @@ -242,28 +266,32 @@ def _get_tx_from_notification_data(self, provider_code, notification_data): :raise ValidationError: If the data match no transaction. """ tx = super()._get_tx_from_notification_data(provider_code, notification_data) - if provider_code != 'worldline' or len(tx) == 1: + if provider_code != "worldline" or len(tx) == 1: return tx # In case of failed payment, paymentResult could be given as a seperate key - payment_result = notification_data.get('paymentResult', notification_data) - payment_output = payment_result.get('payment', {}).get('paymentOutput', {}) - reference = payment_output.get('references', {}).get('merchantReference', '') + payment_result = notification_data.get("paymentResult", notification_data) + payment_output = payment_result.get("payment", {}).get("paymentOutput", {}) + reference = payment_output.get("references", {}).get("merchantReference", "") if not reference: raise ValidationError( - "Worldline: " + _("Received data with missing reference %(ref)s.", ref=reference) + _("Worldline: ") + + _("Received data with missing reference %(ref)s.", ref=reference) ) - tx = self.search([('reference', '=', reference), ('provider_code', '=', 'worldline')]) + tx = self.search( + [("reference", "=", reference), ("provider_code", "=", "worldline")] + ) if not tx: raise ValidationError( - "Worldline: " + _("No transaction found matching reference %s.", reference) + _("Worldline: ") + + _("No transaction found matching reference %s.", reference) ) return tx def _process_notification_data(self, notification_data): - """ Override of `payment' to process the transaction based on Worldline data. + """Override of `payment' to process the transaction based on Worldline data. Note: self.ensure_one() @@ -272,77 +300,92 @@ def _process_notification_data(self, notification_data): :raise ValidationError: If inconsistent data are received. """ super()._process_notification_data(notification_data) - if self.provider_code != 'worldline': + if self.provider_code != "worldline": return # In case of failed payment, paymentResult could be given as a seperate key - payment_result = notification_data.get('paymentResult', notification_data) - payment_data = payment_result.get('payment', {}) + payment_result = notification_data.get("paymentResult", notification_data) + payment_data = payment_result.get("payment", {}) # Update the provider reference. - self.provider_reference = payment_data.get('id', '').rsplit('_', 1)[0] + self.provider_reference = payment_data.get("id", "").rsplit("_", 1)[0] # Update the payment method. - payment_output = payment_data.get('paymentOutput', {}) - if 'cardPaymentMethodSpecificOutput' in payment_output: - payment_method_data = payment_output['cardPaymentMethodSpecificOutput'] + payment_output = payment_data.get("paymentOutput", {}) + if "cardPaymentMethodSpecificOutput" in payment_output: + payment_method_data = payment_output["cardPaymentMethodSpecificOutput"] else: - payment_method_data = payment_output.get('redirectPaymentMethodSpecificOutput', {}) - payment_method_code = payment_method_data.get('paymentProductId', '') - payment_method = self.env['payment.method']._get_from_code( + payment_method_data = payment_output.get( + "redirectPaymentMethodSpecificOutput", {} + ) + payment_method_code = payment_method_data.get("paymentProductId", "") + payment_icon = self.env["payment.icon"]._get_from_wordline_code( payment_method_code, mapping=const.PAYMENT_METHODS_MAPPING ) - self.payment_method_id = payment_method or self.payment_method_id + self.payment_product_id = payment_icon.id if payment_icon else False # Update the payment state. - status = payment_data.get('status') - has_token_data = 'token' in payment_method_data + status = payment_data.get("status") + has_token_data = "token" in payment_method_data if not status: - raise ValidationError("Worldline: " + _("Received data with missing payment state.")) + raise ValidationError( + _("Worldline: ") + _("Received data with missing payment state.") + ) - if status in const.PAYMENT_STATUS_MAPPING['pending']: - if status == 'AUTHORIZATION_REQUESTED': + if status in const.PAYMENT_STATUS_MAPPING["pending"]: + if status == "AUTHORIZATION_REQUESTED": self._set_error("Worldline: " + status) - elif self.operation == 'validation' \ - and status in {'PENDING_CAPTURE', 'CAPTURE_REQUESTED'} \ - and has_token_data: - self._worldline_tokenize_from_notification_data(payment_method_data) - self._set_done() + elif ( + self.operation == "validation" + and status in {"PENDING_CAPTURE", "CAPTURE_REQUESTED"} + and has_token_data + ): + self._worldline_tokenize_from_notification_data(payment_method_data) + self._set_done() else: self._set_pending() - elif status in const.PAYMENT_STATUS_MAPPING['done']: + elif status in const.PAYMENT_STATUS_MAPPING["done"]: if self.tokenize and has_token_data: self._worldline_tokenize_from_notification_data(payment_method_data) self._set_done() else: error_code = None - if errors := payment_data.get('statusOutput', {}).get('errors'): - error_code = errors[0].get('errorCode') - if status in const.PAYMENT_STATUS_MAPPING['cancel']: - self._set_canceled("Worldline: " + _( - "Transaction cancelled with error code %(error_code)s.", - error_code=error_code, - )) - elif status in const.PAYMENT_STATUS_MAPPING['declined']: - self._set_error("Worldline: " + _( - "Transaction declined with error code %(error_code)s.", - error_code=error_code, - )) + if errors := payment_data.get("statusOutput", {}).get("errors"): + error_code = errors[0].get("errorCode") + if status in const.PAYMENT_STATUS_MAPPING["cancel"]: + self._set_canceled( + _("Worldline: ") + + _( + "Transaction cancelled with error code %(error_code)s.", + error_code=error_code, + ) + ) + elif status in const.PAYMENT_STATUS_MAPPING["declined"]: + self._set_error( + _("Worldline: ") + + _( + "Transaction declined with error code %(error_code)s.", + error_code=error_code, + ) + ) else: # Classify unsupported payment status as the `error` tx state. _logger.info( - "Received data with invalid payment status (%(status)s) for transaction with " - "reference %(ref)s.", - {'status': status, 'ref': self.reference}, + "Received data with invalid payment status " + "(%(status)s) for transaction with reference %(ref)s.", + {"status": status, "ref": self.reference}, + ) + self._set_error( + _("Worldline: ") + + _( + "Received invalid transaction status %(status)s with error code " + "%(error_code)s.", + status=status, + error_code=error_code, + ) ) - self._set_error("Worldline: " + _( - "Received invalid transaction status %(status)s with error code " - "%(error_code)s.", - status=status, - error_code=error_code, - )) def _worldline_tokenize_from_notification_data(self, pm_data): - """ Create a new token based on the notification data. + """Create a new token based on the notification data. Note: self.ensure_one() @@ -351,19 +394,28 @@ def _worldline_tokenize_from_notification_data(self, pm_data): """ self.ensure_one() - token = self.env['payment.token'].create({ - 'provider_id': self.provider_id.id, - 'payment_method_id': self.payment_method_id.id, - 'payment_details': pm_data.get('card', {}).get('cardNumber', '')[-4:], # Padded with * - 'partner_id': self.partner_id.id, - 'provider_ref': pm_data['token'], - }) - self.write({ - 'token_id': token, - 'tokenize': False, - }) + token = self.env["payment.token"].create( + { + "provider_id": self.provider_id.id, + "payment_details": pm_data.get("card", {}).get("cardNumber", "")[ + -4: + ], # Padded with * + "partner_id": self.partner_id.id, + "provider_ref": pm_data["token"], + } + ) + self.write( + { + "token_id": token, + "tokenize": False, + } + ) _logger.info( "Created token with id %(token_id)s for partner with id %(partner_id)s from " "transaction with reference %(ref)s", - {'token_id': token.id, 'partner_id': self.partner_id.id, 'ref': self.reference}, + { + "token_id": token.id, + "partner_id": self.partner_id.id, + "ref": self.reference, + }, ) diff --git a/payment_worldline/static/src/js/payment_form.js b/payment_worldline/static/src/js/payment_form.js deleted file mode 100644 index b2f9a87d37d..00000000000 --- a/payment_worldline/static/src/js/payment_form.js +++ /dev/null @@ -1,23 +0,0 @@ -import PaymentForm from '@payment/js/payment_form'; - -PaymentForm.include({ - /** - * Allow forcing redirect to 3-D Secure authentication for Ogone token flow. - * - * @override method from @payment/js/payment_form - * @private - * @param {string} providerCode - The code of the selected payment option's provider. - * @param {number} paymentOptionId - The id of the selected payment option. - * @param {string} paymentMethodCode - The code of the selected payment method, if any. - * @param {object} processingValues - The processing values of the transaction. - * @return {void} - */ - _processTokenFlow(providerCode, paymentOptionId, paymentMethodCode, processingValues) { - if (providerCode === 'worldline' && processingValues.force_flow === 'redirect') { - delete processingValues.force_flow; - this._processRedirectFlow(...arguments); - } else { - this._super(...arguments); - } - }, -}); diff --git a/payment_worldline/tests/common.py b/payment_worldline/tests/common.py index aff9f1954b0..4d7e736dd2c 100644 --- a/payment_worldline/tests/common.py +++ b/payment_worldline/tests/common.py @@ -4,146 +4,162 @@ class WorldlineCommon(PaymentCommon): - @classmethod def setUpClass(cls): super().setUpClass() - cls.worldline = cls._prepare_provider('worldline', update_values={ - 'worldline_pspid': 'dummy', - 'worldline_api_key': 'dummy', - 'worldline_api_secret': 'dummy', - 'worldline_webhook_key': 'dummy', - 'worldline_webhook_secret': 'dummy', - }) + cls.worldline = cls._prepare_provider( + "worldline", + update_values={ + "worldline_pspid": "dummy", + "worldline_api_key": "dummy", + "worldline_api_secret": "dummy", + "worldline_webhook_key": "dummy", + "worldline_webhook_secret": "dummy", + }, + ) cls.provider = cls.worldline cls.currency = cls.currency_euro cls.notification_data = { - 'payment': { - 'paymentOutput': { - 'references': { - 'merchantReference': cls.reference, + "payment": { + "paymentOutput": { + "references": { + "merchantReference": cls.reference, }, - 'cardPaymentMethodSpecificOutput': { - 'paymentProductId': 1, - 'card': { - 'cardNumber': "******4242" - }, - 'token': 'whateverToken' + "cardPaymentMethodSpecificOutput": { + "paymentProductId": 1, + "card": {"cardNumber": "******4242"}, + "token": "whateverToken", }, }, - 'id': '1234567890_0', - 'status': 'CAPTURED', + "id": "1234567890_0", + "status": "CAPTURED", }, } cls.notification_data_insufficient_funds = { - 'errorId': 'ffffffff-fff-fffff-ffff-ffffffffffff', - 'errors': [{ - 'category': 'IO_ERROR', - 'code': '9999', - 'errorCode': '30511001', - 'httpStatusCode': 402, - 'id': 'EXTERNAL_ACQUIRER_ERROR', - 'message': '', - 'retriable': False, - }], - 'paymentResult': { - 'creationOutput': { - 'externalReference': 'aaaaaaaa-5555-eeee-eeee-eeeeeeeeeeee', - 'isNewToken': False, - 'token': 'aaaaaaaa-5555-eeee-eeee-eeeeeeeeeeee', - 'tokenizationSucceeded': False, + "errorId": "ffffffff-fff-fffff-ffff-ffffffffffff", + "errors": [ + { + "category": "IO_ERROR", + "code": "9999", + "errorCode": "30511001", + "httpStatusCode": 402, + "id": "EXTERNAL_ACQUIRER_ERROR", + "message": "", + "retriable": False, + } + ], + "paymentResult": { + "creationOutput": { + "externalReference": "aaaaaaaa-5555-eeee-eeee-eeeeeeeeeeee", + "isNewToken": False, + "token": "aaaaaaaa-5555-eeee-eeee-eeeeeeeeeeee", + "tokenizationSucceeded": False, }, - 'payment': { - 'id': '7777777000_0', - 'paymentOutput': { - 'acquiredAmount': {'amount': 0, 'currencyCode': 'EUR'}, - 'amountOfMoney': {'amount': 4990, 'currencyCode': 'EUR'}, - 'cardPaymentMethodSpecificOutput': { - 'acquirerInformation': {'name': "Test Pay"}, - 'card': { - 'bin': '50010000', - 'cardNumber': '************7777', - 'countryCode': 'BE', - 'expiryDate': '1244', + "payment": { + "id": "7777777000_0", + "paymentOutput": { + "acquiredAmount": {"amount": 0, "currencyCode": "EUR"}, + "amountOfMoney": {"amount": 4990, "currencyCode": "EUR"}, + "cardPaymentMethodSpecificOutput": { + "acquirerInformation": {"name": "Test Pay"}, + "card": { + "bin": "50010000", + "cardNumber": "************7777", + "countryCode": "BE", + "expiryDate": "1244", + }, + "fraudResults": { + "cvvResult": "P", + "fraudServiceResult": "accepted", }, - 'fraudResults': {'cvvResult': 'P', 'fraudServiceResult': 'accepted'}, - 'paymentProductId': 3, - 'threeDSecureResults': {'eci': '9', 'xid': 'zOMTQ5TcODUxMg=='}, - 'token': 'aaaaaaaa-5555-eeee-eeee-eeeeeeeeeeee', + "paymentProductId": 3, + "threeDSecureResults": { + "eci": "9", + "xid": "zOMTQ5TcODUxMg==", + }, + "token": "aaaaaaaa-5555-eeee-eeee-eeeeeeeeeeee", }, - 'customer': {'device': {'ipAddressCountryCode': '99'}}, - 'paymentMethod': 'card', - 'references': {'merchantReference': cls.reference}, + "customer": {"device": {"ipAddressCountryCode": "99"}}, + "paymentMethod": "card", + "references": {"merchantReference": cls.reference}, }, - 'status': 'REJECTED', - 'statusOutput': { - 'errors': [{ - 'category': 'IO_ERROR', - 'code': '9999', - 'errorCode': '30511001', - 'httpStatusCode': 402, - 'id': 'EXTERNAL_ACQUIRER_ERROR', - 'message': '', - 'retriable': False, - }], - 'isAuthorized': False, - 'isCancellable': False, - 'isRefundable': False, - 'statusCategory': 'UNSUCCESSFUL', - 'statusCode': 2, + "status": "REJECTED", + "statusOutput": { + "errors": [ + { + "category": "IO_ERROR", + "code": "9999", + "errorCode": "30511001", + "httpStatusCode": 402, + "id": "EXTERNAL_ACQUIRER_ERROR", + "message": "", + "retriable": False, + } + ], + "isAuthorized": False, + "isCancellable": False, + "isRefundable": False, + "statusCategory": "UNSUCCESSFUL", + "statusCode": 2, }, }, }, } cls.notification_data_expired_card = { - 'apiFullVersion': 'v1.1', - 'apiVersion': 'v1', - 'created': '2025-02-20T03:09:47.3706109+01:00', - 'id': 'ffffffff-fff-fffff-ffff-ffffffffffff', - 'merchantId': 'MyCompany', - 'payment': { - 'id': '9999999999_0', - 'paymentOutput': { - 'acquiredAmount': {'amount': 0, 'currencyCode': 'EUR'}, - 'amountOfMoney': {'amount': 4980, 'currencyCode': 'EUR'}, - 'cardPaymentMethodSpecificOutput': { - 'acquirerInformation': {'name': "Test Pay"}, - 'card': { - 'bin': '47777700', - 'cardNumber': '************9999', - 'countryCode': 'FR', - 'expiryDate': '1234', + "apiFullVersion": "v1.1", + "apiVersion": "v1", + "created": "2025-02-20T03:09:47.3706109+01:00", + "id": "ffffffff-fff-fffff-ffff-ffffffffffff", + "merchantId": "MyCompany", + "payment": { + "id": "9999999999_0", + "paymentOutput": { + "acquiredAmount": {"amount": 0, "currencyCode": "EUR"}, + "amountOfMoney": {"amount": 4980, "currencyCode": "EUR"}, + "cardPaymentMethodSpecificOutput": { + "acquirerInformation": {"name": "Test Pay"}, + "card": { + "bin": "47777700", + "cardNumber": "************9999", + "countryCode": "FR", + "expiryDate": "1234", + }, + "fraudResults": { + "cvvResult": "P", + "fraudServiceResult": "accepted", }, - 'fraudResults': {'cvvResult': 'P', 'fraudServiceResult': 'accepted'}, - 'paymentProductId': 1, - 'threeDSecureResults': {'eci': '9'}, - 'token': 'ODOO-ALIAS-eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'}, - 'customer': {'device': {'ipAddressCountryCode': '99'}}, - 'paymentMethod': 'card', - 'references': {'merchantReference': cls.reference}, + "paymentProductId": 1, + "threeDSecureResults": {"eci": "9"}, + "token": "ODOO-ALIAS-eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", + }, + "customer": {"device": {"ipAddressCountryCode": "99"}}, + "paymentMethod": "card", + "references": {"merchantReference": cls.reference}, }, - 'status': 'REJECTED', - 'statusOutput': { - 'errors': [{ - 'category': 'PAYMENT_PLATFORM_ERROR', - 'code': '9999', - 'errorCode': '30331001', - 'httpStatusCode': 402, - 'id': 'INVALID_CARD', - 'message': '', - 'retriable': False, - }], - 'isAuthorized': False, - 'isCancellable': False, - 'isRefundable': False, - 'statusCategory': 'UNSUCCESSFUL', - 'statusCode': 2 + "status": "REJECTED", + "statusOutput": { + "errors": [ + { + "category": "PAYMENT_PLATFORM_ERROR", + "code": "9999", + "errorCode": "30331001", + "httpStatusCode": 402, + "id": "INVALID_CARD", + "message": "", + "retriable": False, + } + ], + "isAuthorized": False, + "isCancellable": False, + "isRefundable": False, + "statusCategory": "UNSUCCESSFUL", + "statusCode": 2, }, }, - 'type': 'payment.rejected', + "type": "payment.rejected", } diff --git a/payment_worldline/tests/test_worldline.py b/payment_worldline/tests/test_worldline.py index d17d3c30ab9..20940d3d842 100644 --- a/payment_worldline/tests/test_worldline.py +++ b/payment_worldline/tests/test_worldline.py @@ -1,9 +1,9 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. -from base64 import b64encode import hashlib import hmac import json +from base64 import b64encode from unittest.mock import patch from werkzeug.exceptions import Forbidden @@ -16,111 +16,116 @@ from odoo.addons.payment_worldline.tests.common import WorldlineCommon -@tagged('post_install', '-at_install') +@tagged("post_install", "-at_install") class WorldlineTest(WorldlineCommon, PaymentHttpCommon): - - @mute_logger('odoo.addons.payment_worldline.controllers.main') + @mute_logger("odoo.addons.payment_worldline.controllers.main") def _webhook_notification_flow(self, payload): - """ Send a notification to the webhook, ignore the signature, and check the response. """ + """Send a notification to the webhook, ignore the signature, and check the response.""" url = self._build_url(WorldlineController._webhook_url) with patch( - 'odoo.addons.payment_worldline.controllers.main.WorldlineController' - '._verify_notification_signature' + "odoo.addons.payment_worldline.controllers.main.WorldlineController" + "._verify_notification_signature" ): response = self._make_json_request(url, data=payload) self.assertEqual( - response.json(), '', msg="The webhook should always respond ''.", + response.json(), + "", + msg="The webhook should always respond ''.", ) - @mute_logger('odoo.addons.payment_worldline.controllers.main') + @mute_logger("odoo.addons.payment_worldline.controllers.main") def test_webhook_notification_confirms_transaction(self): - """ Test the processing of a webhook notification. """ - tx = self._create_transaction('redirect') + """Test the processing of a webhook notification.""" + tx = self._create_transaction("redirect") self.assertFalse(tx.tokenize, "No token should be asked.") self._webhook_notification_flow(self.notification_data) self.assertFalse(tx.token_id, "No token should be created.") - self.assertEqual(tx.state, 'done') - self.assertEqual(tx.provider_reference, '1234567890') + self.assertEqual(tx.state, "done") + self.assertEqual(tx.provider_reference, "1234567890") - @mute_logger('odoo.addons.payment_worldline.controllers.main') + @mute_logger("odoo.addons.payment_worldline.controllers.main") def test_webhook_notification_creates_token(self): - """ Test the processing of a webhook notification when creating a token. """ - tx = self._create_transaction('redirect', tokenize=True) + """Test the processing of a webhook notification when creating a token.""" + tx = self._create_transaction("redirect", tokenize=True) self.assertTrue(tx.tokenize, "A token should be asked.") self._webhook_notification_flow(self.notification_data) - self.assertEqual(tx.state, 'done') + self.assertEqual(tx.state, "done") self.assertFalse(tx.tokenize, "No token should be asked any more.") - self.assertTrue(tx.token_id, "A token should have been created and linked to the tx.") - self.assertEqual(tx.token_id.provider_ref, 'whateverToken') - self.assertEqual(tx.token_id.payment_details, '4242') + self.assertTrue( + tx.token_id, "A token should have been created and linked to the tx." + ) + self.assertEqual(tx.token_id.provider_ref, "whateverToken") + self.assertEqual(tx.token_id.payment_details, "4242") - @mute_logger('odoo.addons.payment_worldline.controllers.main') + @mute_logger("odoo.addons.payment_worldline.controllers.main") def test_failed_webhook_notification_set_tx_as_error_1(self): - """ Test the processing of a webhook notification for a failed transaction. """ - tx = self._create_transaction('redirect') + """Test the processing of a webhook notification for a failed transaction.""" + tx = self._create_transaction("redirect") test = self.notification_data_insufficient_funds self._webhook_notification_flow(test) - self.assertEqual(tx.state, 'error') + self.assertEqual(tx.state, "error") self.assertEqual( tx.state_message, "Worldline: Transaction declined with error code 30511001.", ) - @mute_logger('odoo.addons.payment_worldline.controllers.main') + @mute_logger("odoo.addons.payment_worldline.controllers.main") def test_failed_webhook_notification_set_tx_as_error_2(self): - """ Test the processing of a webhook notification for a failed transaction. """ - tx = self._create_transaction('redirect') + """Test the processing of a webhook notification for a failed transaction.""" + tx = self._create_transaction("redirect") test = self.notification_data_expired_card self._webhook_notification_flow(test) - self.assertEqual(tx.state, 'error') + self.assertEqual(tx.state, "error") self.assertEqual( tx.state_message, "Worldline: Transaction declined with error code 30331001.", ) - @mute_logger('odoo.addons.payment_worldline.controllers.main') + @mute_logger("odoo.addons.payment_worldline.controllers.main") def test_failed_webhook_notification_set_tx_as_cancel(self): """Test the processing of a webhook notification for a cancelled transaction.""" - tx = self._create_transaction('redirect') + tx = self._create_transaction("redirect") test = { - 'payment': { - 'paymentOutput': self.notification_data['payment']['paymentOutput'], - 'hostedCheckoutSpecificOutput': { - 'hostedCheckoutId': '123456789', + "payment": { + "paymentOutput": self.notification_data["payment"]["paymentOutput"], + "hostedCheckoutSpecificOutput": { + "hostedCheckoutId": "123456789", }, - 'status': 'CANCELLED', - 'statusOutput': { - 'errors': [{ - 'errorCode': '30171001', - }], + "status": "CANCELLED", + "statusOutput": { + "errors": [ + { + "errorCode": "30171001", + } + ], }, }, } self._webhook_notification_flow(test) - self.assertEqual(tx.state, 'cancel') + self.assertEqual(tx.state, "cancel") self.assertEqual( tx.state_message, "Worldline: Transaction cancelled with error code 30171001.", ) - @mute_logger('odoo.addons.payment_worldline.controllers.main') + @mute_logger("odoo.addons.payment_worldline.controllers.main") def test_webhook_notification_triggers_signature_check(self): - """ Test that receiving a webhook notification triggers a signature check. """ - self._create_transaction('redirect') + """Test that receiving a webhook notification triggers a signature check.""" + self._create_transaction("redirect") url = self._build_url(WorldlineController._webhook_url) with patch( - 'odoo.addons.payment_worldline.controllers.main.WorldlineController' - '._verify_notification_signature' + "odoo.addons.payment_worldline.controllers.main.WorldlineController" + "._verify_notification_signature" ) as signature_check_mock, patch( - 'odoo.addons.payment.models.payment_transaction.PaymentTransaction' - '._handle_notification_data' + "odoo.addons.payment.models.payment_transaction.PaymentTransaction" + "._handle_notification_data" ): self._make_json_request(url, data=self.notification_data) self.assertEqual(signature_check_mock.call_count, 1) def test_accept_notification_with_valid_signature(self): - """ Test the verification of a notification with a valid signature. """ - tx = self._create_transaction('redirect') + """Test the verification of a notification with a valid signature.""" + tx = self._create_transaction("redirect") unencoded_result = hmac.new( self.worldline.worldline_webhook_secret.encode(), json.dumps(self.notification_data).encode(), @@ -135,10 +140,10 @@ def test_accept_notification_with_valid_signature(self): tx, ) - @mute_logger('odoo.addons.payment_worldline.controllers.main') + @mute_logger("odoo.addons.payment_worldline.controllers.main") def test_reject_notification_with_missing_signature(self): - """ Test the verification of a notification with a missing signature. """ - tx = self._create_transaction('redirect') + """Test the verification of a notification with a missing signature.""" + tx = self._create_transaction("redirect") self.assertRaises( Forbidden, WorldlineController._verify_notification_signature, @@ -147,14 +152,14 @@ def test_reject_notification_with_missing_signature(self): tx, ) - @mute_logger('odoo.addons.payment_worldline.controllers.main') + @mute_logger("odoo.addons.payment_worldline.controllers.main") def test_reject_notification_with_invalid_signature(self): - """ Test the verification of a notification with an invalid signature. """ - tx = self._create_transaction('redirect') + """Test the verification of a notification with an invalid signature.""" + tx = self._create_transaction("redirect") self.assertRaises( Forbidden, WorldlineController._verify_notification_signature, json.dumps(self.notification_data).encode(), - 'dummy', + "dummy", tx, ) diff --git a/payment_worldline/views/payment_icon.xml b/payment_worldline/views/payment_icon.xml new file mode 100644 index 00000000000..bc1d8665036 --- /dev/null +++ b/payment_worldline/views/payment_icon.xml @@ -0,0 +1,16 @@ + + + + + payment.icon + + + + + + + + + + + diff --git a/payment_worldline/views/payment_provider_views.xml b/payment_worldline/views/payment_provider_views.xml index e8f295d179a..3f5ba34db2e 100644 --- a/payment_worldline/views/payment_provider_views.xml +++ b/payment_worldline/views/payment_provider_views.xml @@ -1,38 +1,38 @@ - + Worldline Provider Form payment.provider - + - + diff --git a/payment_worldline/views/payment_worldline_templates.xml b/payment_worldline/views/payment_worldline_templates.xml index 28813d66c9b..0412555a5cf 100644 --- a/payment_worldline/views/payment_worldline_templates.xml +++ b/payment_worldline/views/payment_worldline_templates.xml @@ -1,8 +1,8 @@ - + diff --git a/setup/payment_worldline/odoo/addons/payment_worldline b/setup/payment_worldline/odoo/addons/payment_worldline new file mode 120000 index 00000000000..ddd6c72f20b --- /dev/null +++ b/setup/payment_worldline/odoo/addons/payment_worldline @@ -0,0 +1 @@ +../../../../payment_worldline \ No newline at end of file diff --git a/setup/payment_worldline/setup.py b/setup/payment_worldline/setup.py new file mode 100644 index 00000000000..28c57bb6403 --- /dev/null +++ b/setup/payment_worldline/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)