diff --git a/README.md b/README.md index 3789bc3..c032c47 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,41 @@ -# payment_razorpay +# Razorpay +## Implementation details + +### Supported features + +- Direct payment flow +- Tokenization +- Manual capture +- Partial refunds +- Several payment methods such as debit/credit cards, netbanking, UPI, and + [others](https://razorpay.com/docs/payments/payment-methods/). +- [Webhook](https://razorpay.com/docs/webhooks). + +### API and gateway + +We choose to integrate with +[Razorpay Recurring Payments](https://razorpay.com/docs/api/payments/recurring-payments/), which is +more complex to handle than +[Razorpay Hosted Checkout](https://razorpay.com/docs/payments/payment-gateway/web-integration/hosted) +because it works as a direct payment flow, because it allows for tokenization. The other gateways +were ruled out; see the original task's dev notes for the details on the other gateways. + +The version of the API implemented by this module is v1. + +## Module history + +- The first version of the module was specified in task + [2800823](https://www.odoo.com/web#id=2800823&model=project.task) and merged with PR + odoo/odoo#92848 in `saas-15.5`. +- The API was changed to the Recurring Payments API to support tokenization with PR odoo/odoo#143525 + in `17.0`. + +## Testing instructions + +- The partner's phone number must be a valid Indian phone number. Example: +911234567890 +- The partner's country must be India and the payment currency INR to enable India-based payment + methods. + +See https://razorpay.com/docs/payments/payments/test-card-upi-details/ and +https://razorpay.com/docs/payments/payments/test-upi-details/ for the list of test payment details. diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..488a98c --- /dev/null +++ b/__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, 'razorpay') + + +def uninstall_hook(env): + reset_payment_provider(env, 'razorpay') diff --git a/__manifest__.py b/__manifest__.py new file mode 100644 index 0000000..2a4f761 --- /dev/null +++ b/__manifest__.py @@ -0,0 +1,24 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': "Payment Provider: Razorpay", + 'version': '1.0', + 'category': 'Accounting/Payment Providers', + 'sequence': 350, + 'summary': "A payment provider covering India.", + 'depends': ['payment'], + 'data': [ + 'views/payment_provider_views.xml', + 'views/payment_razorpay_templates.xml', + + 'data/payment_provider_data.xml', # Depends on views/payment_razorpay_templates.xml + ], + 'assets': { + 'web.assets_frontend': [ + 'payment_razorpay/static/src/js/payment_form.js', + ], + }, + 'post_init_hook': 'post_init_hook', + 'uninstall_hook': 'uninstall_hook', + 'license': 'LGPL-3', +} diff --git a/const.py b/const.py new file mode 100644 index 0000000..443e6ae --- /dev/null +++ b/const.py @@ -0,0 +1,136 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# The currencies supported by Razorpay, in ISO 4217 format. Last updated on May 26, 2021. +# See https://razorpay.com/docs/payments/payments/international-payments/#supported-currencies. +# Last seen online: 16 November 2022. +SUPPORTED_CURRENCIES = [ + 'AED', + 'ALL', + 'AMD', + 'ARS', + 'AUD', + 'AWG', + 'BBD', + 'BDT', + 'BMD', + 'BND', + 'BOB', + 'BSD', + 'BWP', + 'BZD', + 'CAD', + 'CHF', + 'CNY', + 'COP', + 'CRC', + 'CUP', + 'CZK', + 'DKK', + 'DOP', + 'DZD', + 'EGP', + 'ETB', + 'EUR', + 'FJD', + 'GBP', + 'GHS', + 'GIP', + 'GMD', + 'GTQ', + 'GYD', + 'HKD', + 'HNL', + 'HRK', + 'HTG', + 'HUF', + 'IDR', + 'ILS', + 'INR', + 'JMD', + 'KES', + 'KGS', + 'KHR', + 'KYD', + 'KZT', + 'LAK', + 'LKR', + 'LRD', + 'LSL', + 'MAD', + 'MDL', + 'MKD', + 'MMK', + 'MNT', + 'MOP', + 'MUR', + 'MVR', + 'MWK', + 'MXN', + 'MYR', + 'NAD', + 'NGN', + 'NIO', + 'NOK', + 'NPR', + 'NZD', + 'PEN', + 'PGK', + 'PHP', + 'PKR', + 'QAR', + 'RUB', + 'SAR', + 'SCR', + 'SEK', + 'SGD', + 'SLL', + 'SOS', + 'SSP', + 'SVC', + 'SZL', + 'THB', + 'TTD', + 'TZS', + 'USD', + 'UYU', + 'UZS', + 'YER', + 'ZAR', +] + +# The codes of the payment methods to activate when Razorpay is activated. +DEFAULT_PAYMENT_METHODS_CODES = [ + # Primary payment methods. + 'card', + 'netbanking', + 'upi', + # Brand payment methods. + 'visa', + 'mastercard', + 'amex', + 'discover', +] + +# The maximum amount in INR that can be paid through an eMandate. +MANDATE_MAX_AMOUNT = { + 'card': 1000000, + 'upi': 100000, +} + +# Mapping of transaction states to Razorpay's payment statuses. +# See https://razorpay.com/docs/payments/payments#payment-life-cycle. +PAYMENT_STATUS_MAPPING = { + 'pending': ('created', 'pending'), + 'authorized': ('authorized',), + 'done': ('captured', 'refunded', 'processed'), # refunded is included to discard refunded txs. + 'error': ('failed',), +} + +# Events that are handled by the webhook. +HANDLED_WEBHOOK_EVENTS = [ + 'payment.authorized', + 'payment.captured', + 'payment.failed', + 'refund.failed', + 'refund.processed', +] diff --git a/controllers/__init__.py b/controllers/__init__.py new file mode 100644 index 0000000..80ee4da --- /dev/null +++ b/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/controllers/main.py b/controllers/main.py new file mode 100644 index 0000000..67b9f2b --- /dev/null +++ b/controllers/main.py @@ -0,0 +1,89 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +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 + +from odoo.addons.payment_razorpay.const import HANDLED_WEBHOOK_EVENTS + + +_logger = logging.getLogger(__name__) + + +class RazorpayController(http.Controller): + _return_url = '/payment/razorpay/return' + _webhook_url = '/payment/razorpay/webhook' + + @http.route( + _return_url, type='http', auth='public', methods=['GET', 'POST'], csrf=False, + save_session=False + ) + def razorpay_return_from_checkout(self, reference, **data): + # TODO: Remove me in master + return request.redirect('/payment/status') + + @http.route(_webhook_url, type='http', methods=['POST'], auth='public', csrf=False) + def razorpay_webhook(self): + """ Process the notification data sent by Razorpay to the webhook. + + :return: An empty string to acknowledge the notification. + :rtype: str + """ + data = request.get_json_data() + _logger.info("Notification received from Razorpay with data:\n%s", pprint.pformat(data)) + + event_type = data['event'] + if event_type in HANDLED_WEBHOOK_EVENTS: + entity_type = 'payment' if 'payment' in event_type else 'refund' + try: + entity_data = data['payload'].get(entity_type, {}).get('entity', {}) + entity_data.update(entity_type=entity_type) + + # Check the integrity of the event. + received_signature = request.httprequest.headers.get('X-Razorpay-Signature') + tx_sudo = request.env['payment.transaction'].sudo()._get_tx_from_notification_data( + 'razorpay', entity_data + ) + self._verify_notification_signature( + request.httprequest.data, received_signature, tx_sudo, is_redirect=False + ) + + # Handle the notification data. + tx_sudo._handle_notification_data('razorpay', entity_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('') + + @staticmethod + def _verify_notification_signature( + notification_data, received_signature, tx_sudo, is_redirect=True + ): # TODO in master: remove the `is_redirect` parameter. + """ Check that the received signature matches the expected one. + + :param dict|bytes notification_data: The notification data. + :param str received_signature: The signature to compare with the expected signature. + :param recordset tx_sudo: The sudoed transaction referenced by the notification data, as a + `payment.transaction` record + :param bool is_redirect: Whether the notification data should be treated as redirect data + or as coming from a webhook notification. + :return: None + :raise :class:`werkzeug.exceptions.Forbidden`: If the signatures don't match. + """ + # Check for the received signature. + if not received_signature: + _logger.warning("Received notification with missing signature.") + raise Forbidden() + + # Compare the received signature with the expected signature. + expected_signature = tx_sudo.provider_id._razorpay_calculate_signature( + notification_data, is_redirect=is_redirect + ) + if not hmac.compare_digest(received_signature, expected_signature): + _logger.warning("Received notification with invalid signature.") + raise Forbidden() diff --git a/data/neutralize.sql b/data/neutralize.sql new file mode 100644 index 0000000..de73329 --- /dev/null +++ b/data/neutralize.sql @@ -0,0 +1,5 @@ +-- disable razorpay payment provider +UPDATE payment_provider + SET razorpay_key_id = NULL, + razorpay_key_secret = NULL, + razorpay_webhook_secret = NULL; diff --git a/data/payment_provider_data.xml b/data/payment_provider_data.xml new file mode 100644 index 0000000..1562a6e --- /dev/null +++ b/data/payment_provider_data.xml @@ -0,0 +1,9 @@ + + + + + razorpay + + + + diff --git a/i18n/ar.po b/i18n/ar.po new file mode 100644 index 0000000..d9e23ec --- /dev/null +++ b/i18n/ar.po @@ -0,0 +1,195 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Malaz Abuidris , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Malaz Abuidris , 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" قم بتمكين خاصية المدفوعات المتكررة في Razorpay " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "حدث خطأ أثناء معالجة هذا الدفع. يرجى المحاولة مجدداً. " + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "رمز " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "تعذر إنشاء الاتصال بالواجهة البرمجية للتطبيق. " + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "معرّف المفتاح " + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "سر المفتاح " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "لم يتم العثور على معاملة تطابق المرجع %s. " + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "مزود الدفع " + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "معاملة الدفع " + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "فشلت معالجة عملية الدفع " + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "معرّف مفتاح Razorpay " + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "سر مفتاح Razorpay " + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "سر Webhook لـ Razorpay " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "لقد أعطى Razorpay المعلومات التالية: '%s' " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "تم استلام البيانات مع حالة غير صالحة: %s " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "تم استلام البيانات دون معرّف الكيان. " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "تم استلام البيانات دون مرجع. " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "تم استلام البيانات دون حالة. " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "تم استلام بيانات استرداد أموال غير مكتملة. " + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "المهمة: إزالة من النسخة الرئيسية " + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "المفتاح مُستخدم فقط لتعريف الحساب مع Razorpay. " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "رقم الهاتف غير صالح. " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "رقم الهاتف غير موجود. " + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "الكود التقني لمزود الدفع هذا. " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "المعاملة غير مرتبطة برمز. " + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"لا يمكن إبطال المعاملات التي تمت معالجتها بواسطة Razorpay يدوياً من أودو. " + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "سر Webhook " diff --git a/i18n/bg.po b/i18n/bg.po new file mode 100644 index 0000000..9d2fb86 --- /dev/null +++ b/i18n/bg.po @@ -0,0 +1,188 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# aleksandar ivanov, 2023 +# Maria Boyadjieva , 2023 +# Turhan Aydin , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Turhan Aydin , 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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Код" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Неуспешно установяване на връзката с API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Не е открита транзакция, съответстваща с референция %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Доставчик на разплащания" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Платежна транзакция" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Получени данни с липсваща референция." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/ca.po b/i18n/ca.po new file mode 100644 index 0000000..9ea79a3 --- /dev/null +++ b/i18n/ca.po @@ -0,0 +1,197 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Martin Trigaux, 2023 +# Guspy12, 2023 +# RGB Consulting , 2023 +# Ivan Espinola, 2023 +# marcescu, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: marcescu, 2024\n" +"Language-Team: Catalan (https://app.transifex.com/odoo/teams/41243/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"S'ha produït un error durant el processament del seu pagament. Si us plau, " +"intenti'l de nou." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Codi" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "No s'ha pogut establir la connexió a l'API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "No s'ha trobat cap transacció que coincideixi amb la referència %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Proveïdor de pagament" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transacció de pagament" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "La transacció no està enllaçada a un token." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/cs.po b/i18n/cs.po new file mode 100644 index 0000000..6bd4a98 --- /dev/null +++ b/i18n/cs.po @@ -0,0 +1,192 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Ivana Bartonkova, 2023 +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kód" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Nepodařilo se navázat spojení s rozhraním API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Nebyla nalezena žádná transakce odpovídající odkazu %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Poskytovatel platby" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Platební transakce" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "Transakce není spojena s tokenem." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/da.po b/i18n/da.po new file mode 100644 index 0000000..448b6e9 --- /dev/null +++ b/i18n/da.po @@ -0,0 +1,192 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# lhmflexerp , 2023 +# Martin Trigaux, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Martin Trigaux, 2023\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kode" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Betalingsudbyder" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Betalingstransaktion" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/de.po b/i18n/de.po new file mode 100644 index 0000000..0240095 --- /dev/null +++ b/i18n/de.po @@ -0,0 +1,200 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Larissa Manderfeld, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Larissa Manderfeld, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Wiederkehrende Zahlungen mit Razorpay aktivieren" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"Bei der Bearbeitung dieser Zahlung ist ein Fehler aufgetreten. Bitte " +"versuchen Sie es erneut." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Code" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Verbindung mit API konnte nicht hergestellt werden." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "Schlüssel-ID" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Schlüssel-Geheimnis" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Keine Transaktion gefunden, die der Referenz %s entspricht." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Zahlungsanbieter" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Zahlungstransaktion" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Zahlungsverarbeitung fehlgeschlagen" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Schlüssel-ID von Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Schlüssel-Geheimnis von Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Webhook-Geheimnis von Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay gab uns folgende Informationen: „%s“" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Erhaltene Daten mit ungültigem Status: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Erhaltene Daten mit fehlendem Einrichtungs-ID." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Erhaltene Daten mit fehlender Referenz." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Erhaltene Daten mit fehlendem Status." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Unvollständige Erstattungsdaten erhalten." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "TO DO: in Master entfernen" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" +"Der Schlüssel, der ausschließlich zur Identifizierung des Kontos bei " +"Razorpay verwendet wird." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "Die Telefonnummer ist ungültig." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Die Telefonnummer fehlt." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Der technische Code dieses Zahlungsanbieters." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "Die Transaktion ist nicht mit einem Token verknüpft." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"Transaktionen, die von Razorpay verarbeitet werden, können in Odoo nicht " +"manuell storniert werden." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Webhook-Geheimnis" diff --git a/i18n/es.po b/i18n/es.po new file mode 100644 index 0000000..158df45 --- /dev/null +++ b/i18n/es.po @@ -0,0 +1,199 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Larissa Manderfeld, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Larissa Manderfeld, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Habilitar pagos recurrentes en Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"Ocurrió un error durante el procesamiento de su pago. Por favor, inténtelo " +"de nuevo." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Código" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "No se ha podido establecer la conexión con el API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "ID de la clave" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Secreto de la clave" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" +"No se ha encontrado ninguna transacción que coincida con la referencia %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Proveedor de pago" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transacción de pago" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Error al procesar el pago" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "ID de la clave de Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Secreto de la clave de Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Secreto del webhook de Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay nos dio la siguiente información: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Se recibió la información con un estado no válido: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Datos recibidos sin el ID de entidad." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Datos recibidos con referencia perdida." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Datos recibidos con estado faltante." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Se recibió información incompleta sobre los reembolsos." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "Por hacer: eliminar en el master" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "La clave que se utiliza solo para identificar la cuenta con Razorpay." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "El número de teléfono no es válido." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Falta el número telefónico." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "La transacción no está vinculada a un token." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"Las transacciones procesadas por Razorpay no se pueden anular manualmente " +"desde Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Secreto de Webhook" diff --git a/i18n/es_419.po b/i18n/es_419.po new file mode 100644 index 0000000..f53e495 --- /dev/null +++ b/i18n/es_419.po @@ -0,0 +1,197 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Fernanda Alvarez, 2024 +# Wil Odoo, 2024 +# Lucia Pacheco, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Lucia Pacheco, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Habilitar pagos recurrentes en Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "Ocurrió un error al procesar su pago. Inténtelo de nuevo." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Código" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "No se pudo establecer la conexión con la API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "ID de la clave" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Secreto de la clave" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "No se encontró ninguna transacción que coincida con la referencia %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Proveedor de pago" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transacción de pago" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Error al procesar el pago" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "ID de la clave de Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Secreto de la clave de Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Secreto del webhook de Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay nos dio la siguiente información: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Se recibió la información con un estado que no es válido: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Se recibió información sin el ID de entidad." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Se recibió información sin referencias." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Se recibió información en la que falta un estado." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Se recibió información incompleta sobre los reembolsos." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "Por hacer: eliminar en el master" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "La clave que se utiliza solo para identificar la cuenta con Razorpay." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "El número de teléfono no es válido." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Falta el número telefónico." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "La transacción no está vinculada a un token." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"Las transacciones que se procesen con Razorpay no se pueden anular de manera" +" manual desde Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Secreto de Webhook" diff --git a/i18n/et.po b/i18n/et.po new file mode 100644 index 0000000..9614586 --- /dev/null +++ b/i18n/et.po @@ -0,0 +1,194 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Martin Trigaux, 2023 +# Leaanika Randmets, 2023 +# Marek Pontus, 2023 +# Anna, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kood" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Could not establish the connection to the API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Makseteenuse pakkuja" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Maksetehing" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Makse töötlemine ebaõnnestus" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Antud makseteenuse pakkuja tehniline kood." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/fa.po b/i18n/fa.po new file mode 100644 index 0000000..4137660 --- /dev/null +++ b/i18n/fa.po @@ -0,0 +1,161 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# odooers ir, 2023 +# Martin Trigaux, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:56+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Martin Trigaux, 2023\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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "کد" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "سرویس دهنده پرداخت" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "تراکنش پرداخت" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "" +"The communication with the API failed. Razorpay gave us the following " +"information: '%s'" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/fi.po b/i18n/fi.po new file mode 100644 index 0000000..63fb518 --- /dev/null +++ b/i18n/fi.po @@ -0,0 +1,191 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Veikko Väätäjä , 2023 +# Jarmo Kortetjärvi , 2023 +# Ossi Mantylahti , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Ossi Mantylahti , 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Ota toistuvat maksut käyttöön Razorpayn palvelussa" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "Maksun käsittelyssä tapahtui virhe. Yritä uudelleen." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Koodi" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Yhteyttä API:han ei saatu muodostettua." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "Avain Id" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Avainsalaisuus" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Viitettä %s vastaavaa tapahtumaa ei löytynyt." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Maksupalveluntarjoaja" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Maksutapahtuma" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Maksun käsittely epäonnistui" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Razorpay Key Id" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Razorpay salainen avain" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Razorpay Webhook salaisuus" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay antoi seuraavat tiedot: \"%s\"" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Vastaanotettu data, jonka tila on virheellinen: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Vastaanotetut tiedot, joista puuttuu entiteetin tunniste." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Vastaanotetut tiedot, joista puuttuu viite." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Vastaanotetut tiedot, joiden tila puuttuu." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Saatu epätäydelliset tukitiedot." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "Avain, jota käytetään ainoastaan Razorpay-tilin tunnistamiseen." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "Puhelinnumero on virheellinen." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Puhelinnumero puuttuu." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Tämän maksupalveluntarjoajan tekninen koodi." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "Transaktio ei ole sidottu valtuutuskoodiin." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"Razorpayn käsittelemiä tapahtumia ei voi mitätöidä manuaalisesti Odoosta." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Webhookin salaisuus" diff --git a/i18n/fr.po b/i18n/fr.po new file mode 100644 index 0000000..23d68e0 --- /dev/null +++ b/i18n/fr.po @@ -0,0 +1,198 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Jolien De Paepe, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Jolien De Paepe, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Activer les paiements récurrents sur Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"Une erreur est survenue lors du traitement de votre paiement. Veuillez " +"réessayer." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Code" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Impossible d'établir la connexion avec l'API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "ID clé" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Clé secrète" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Aucune transaction ne correspond à la référence %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Fournisseur de paiement" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transaction de paiement" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Échec du traitement du paiement" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "ID clé Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Clé secrète Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Secret webhook Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay nous a fourni les informations suivantes : '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Données reçues avec statut invalide : %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Données reçues avec identifiant d'identité manquant." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Données reçues avec référence manquante." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Données reçues avec statut manquant." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Réception de données incomplètes relatives au remboursement." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "A FAIRE : supprimer dans master" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "La clé uniquement utilisée pour identifier le compte avec Razorpay." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "Le numéro de téléphone est invalide." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Le numéro de téléphone est manquant." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Le code technique de ce fournisseur de paiement." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "La transaction n'est pas liée à un jeton." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"Les transactions traitées par Razorpay ne peuvent pas être annulées " +"manuellement depuis Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Secret webhook" diff --git a/i18n/he.po b/i18n/he.po new file mode 100644 index 0000000..bec70a2 --- /dev/null +++ b/i18n/he.po @@ -0,0 +1,188 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Martin Trigaux, 2023 +# Ha Ketem , 2023 +# ExcaliberX , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: ExcaliberX , 2023\n" +"Language-Team: Hebrew (https://app.transifex.com/odoo/teams/41243/he/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: he\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "קוד" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "לא הצלחנו להתחבר ל-API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "לא נמצאה עסקה המתאימה למספר האסמכתא %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "עסקת תשלום" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/hu.po b/i18n/hu.po new file mode 100644 index 0000000..6f33a53 --- /dev/null +++ b/i18n/hu.po @@ -0,0 +1,161 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# gezza , 2023 +# Martin Trigaux, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:56+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Martin Trigaux, 2023\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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kód" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Fizetési szolgáltató" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Fizetési tranzakció" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "" +"The communication with the API failed. Razorpay gave us the following " +"information: '%s'" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/id.po b/i18n/id.po new file mode 100644 index 0000000..e1b692f --- /dev/null +++ b/i18n/id.po @@ -0,0 +1,196 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Abe Manyo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Abe Manyo, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Aktifkan pembayaran berulang pada Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "Terjadi error pada pemrosesan pembayaran Anda. Silakan coba lagi." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kode" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Tidak dapat membuat hubungan ke API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "Key Id" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Key Secret" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Tidak ada transaksi dengan referensi %s yang cocok." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Penyedia Pembayaran" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transaksi Tagihan" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Pemrosesan pembayaran gagal" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Razorpay Key Id" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Razorpay Key Secret" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Razorpay Webhook Secret" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay memberikan kami informasi berikut: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Menerima data dengan status tidak valid: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Menerima data tanpa entity id." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Menerima data dengan referensi yang kurang lengkap." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Menerima data tanpa status." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Menerima data refund yang tidak lengkap." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "TODO: hapus di master" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "Key yang hanya digunakan untuk mengidentifikasi akun dengan Razorpay." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "Nomor telepon tidak valid" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Kurang nomor telepon." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Kode teknis penyedia pembayaran ini." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "Transaksi ini tidak terhubung ke token." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"Transaksi yang diproses oleh Razorpay tidak dapat dibatalkan secara manual " +"dari Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Webhook Secret" diff --git a/i18n/it.po b/i18n/it.po new file mode 100644 index 0000000..4b68076 --- /dev/null +++ b/i18n/it.po @@ -0,0 +1,199 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Marianna Ciofani, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Marianna Ciofani, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Abilita pagamenti ricorrenti con Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"Si è verificato un errore durante l'elaborazione di questo pagamento. " +"Riprovalo più tardi." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Codice" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Impossibile stabilire la connessione all'API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "ID chiave" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Chiave segreta" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Nessuna transazione trovata corrispondente al riferimento %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Fornitore di pagamenti" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transazione di pagamento" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Elaborazione del pagamento non riuscita" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "ID chiave Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Chiave segreta Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Secret Webhook Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay ha fornito le seguenti informazioni: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Dati ricevuti con stato non valido: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Dati ricevuti con ID entità mancante." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Dati ricevuti privi di riferimento," + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Dati ricevuti privi di stato." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Dati di rimborso ricevuti non completi." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "TODO: elimina in master" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" +"La chiave utilizzata esclusivamente per identificare il conto con Razorpay." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "Il numero di telefono non è valido." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Il numero di telefono non è presente." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Codice tecnico del fornitore di pagamenti." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "La transazione non è legata a un token." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"Le operazioni elaborate da Razorpay non possono essere annullate manualmente" +" da Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Segreto Webhook" diff --git a/i18n/ja.po b/i18n/ja.po new file mode 100644 index 0000000..40aa0ce --- /dev/null +++ b/i18n/ja.po @@ -0,0 +1,194 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Junko Augias, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Junko Augias, 2024\n" +"Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Razorpayでの定期支払を有効にする" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "支払処理中にエラーが発生しました。再度試して下さい。" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "コード" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "APIへの接続を確立できませんでした。" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "キーID" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "キーシークレット" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "参照に一致する取引が見つかりません%s。" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "決済プロバイダー" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "決済トランザクション" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "支払処理に失敗しました" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "RazorpayキーID" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Razorpayキーシークレット" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Razorpay Webhookシークレット" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpayが以下の情報を提供しています: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "無効なステータスの受信データ: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "エンティティID が不明なデータを受信しました。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "参照が欠落しているデータを受信しました。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "ステータスが不明なデータを受信しました。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "不完全な返金データを受信しました。" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "TODO: マスターで削除" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "Razorpayのアカウントを識別するためにのみ使用されるキー" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "電話番号が無効です。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "電話番号がありません。" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "この決済プロバイダーのテクニカルコード。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "取引はトークンにリンクしていません。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "Razorpayで処理された取引は、Odooから手動で無効にすることはできません。" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Webhookシークレット" diff --git a/i18n/ko.po b/i18n/ko.po new file mode 100644 index 0000000..1b08251 --- /dev/null +++ b/i18n/ko.po @@ -0,0 +1,190 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Daye Jeong, 2024 +# Wil Odoo, 2024 +# Sarah Park, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Sarah Park, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Razorpay 정기 결제 활성화" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "결제를 처리하는 중 오류가 발생했습니다. 다시 시도해 주세요." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "코드" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "API 연결을 설정할 수 없습니다." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "키 Id" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "보안 키" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "%s 참조와 일치하는 거래 항목이 없습니다." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "결제대행업체" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "지불 거래" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "결제 프로세스 실패" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Razorpay 키 Id" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Razorpay 보안 키" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Razorpay Webhook 보안" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay에서 제공한 정보는 다음과 같습니다: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "잘못된 상태의 데이터를 수신했습니다: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "entity id가 없이 수신된 데이터입니다." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "참조가 누락된 데이터가 수신되었습니다." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "누락된 상태의 데이터가 수신되었습니다." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "불완전한 환불 데이터가 수신되었습니다." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "Razorpay에서 계정을 식별하는 데 사용되는 키입니다." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "유효하지 않은 전화번호입니다." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "전화번호가 누락되었습니다." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "이 결제대행업체의 기술 코드입니다." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "거래가 토큰에 연결되어 있지 않습니다." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "Razorpay에서 처리한 거래 내역은 Odoo에서 수동으로 취소할 수 없습니다." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Webhook 보안" diff --git a/i18n/lt.po b/i18n/lt.po new file mode 100644 index 0000000..22bbf9e --- /dev/null +++ b/i18n/lt.po @@ -0,0 +1,161 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Martin Trigaux, 2023 +# Linas Versada , 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:56+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Linas Versada , 2023\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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kodas" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Mokėjimo operacija" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "" +"The communication with the API failed. Razorpay gave us the following " +"information: '%s'" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/lv.po b/i18n/lv.po new file mode 100644 index 0000000..6f135f5 --- /dev/null +++ b/i18n/lv.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Arnis Putniņš , 2023 +# Armīns Jeltajevs , 2023 +# Martin Trigaux, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-26 21:56+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Martin Trigaux, 2023\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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kods" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Maksājumu sniedzējs" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Maksājuma darījums" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "" +"The communication with the API failed. Razorpay gave us the following " +"information: '%s'" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/nl.po b/i18n/nl.po new file mode 100644 index 0000000..0006e93 --- /dev/null +++ b/i18n/nl.po @@ -0,0 +1,200 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Jolien De Paepe, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Jolien De Paepe, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Schakel terugkerende betalingen in op Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"Er is een fout opgetreden tijdens de verwerking van je betaling. Probeer het" +" opnieuw." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Code" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Kan geen verbinding maken met de API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "Sleutel ID" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Sleutel geheim" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Geen transactie gevonden die overeenkomt met referentie %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Betaalprovider" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Betalingstransactie" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Betalingsverwerking mislukt" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Sleutel ID Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Sleutel geheim Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Webhook geheim Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay gaf ons de volgende informatie: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Gegevens ontvangen met ongeldige status: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Gegevens ontvangen met ontbrekend entiteitsid." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Gegevens ontvangen met ontbrekende referentie." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Gegevens ontvangen met ontbrekende status." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Onvolledige terugbetalingsgegevens ontvangen." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "TODO: verwijderen in master" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" +"De sleutel die uitsluitend wordt gebruikt om het account bij Razorpay te " +"identificeren." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "Het telefoonnummer is ongeldig." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Het telefoonnummer ontbreekt." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "De technische code van deze betaalprovider." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "De transactie is niet gekoppeld aan een token." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"De door Razorpay behandelde transacties kunnen niet handmatig ongedaan " +"worden gemaakt vanuit Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Webhook geheim" diff --git a/i18n/payment_razorpay.pot b/i18n/payment_razorpay.pot new file mode 100644 index 0000000..8f94795 --- /dev/null +++ b/i18n/payment_razorpay.pot @@ -0,0 +1,182 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-12-22 15:54+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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/pl.po b/i18n/pl.po new file mode 100644 index 0000000..d7943bb --- /dev/null +++ b/i18n/pl.po @@ -0,0 +1,192 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Anita Kosobucka, 2024 +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "Wystąpił błąd podczas przetwarzania płatności. Spróbuj ponownie." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kod" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Nie można nawiązać połączenia z interfejsem API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Nie znaleziono transakcji pasującej do referencji %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Dostawca Płatności" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transakcja płatności" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Przetwarzanie płatności nie powiodło się" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Kod techniczny tego dostawcy usług płatniczych." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "Transakcja nie jest powiązana z tokenem." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/pt.po b/i18n/pt.po new file mode 100644 index 0000000..5973aa4 --- /dev/null +++ b/i18n/pt.po @@ -0,0 +1,191 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Código" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transação de Pagamento" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po new file mode 100644 index 0000000..07def6d --- /dev/null +++ b/i18n/pt_BR.po @@ -0,0 +1,197 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Maitê Dietze, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Maitê Dietze, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +"Habilitar pagamentos recorrentes no Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"Houve um erro durante o processamento do seu pagamento. Tente novamente." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Código" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Não foi possível estabelecer a conexão com a API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "ID da chave" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Segredo da chave" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Nenhuma transação encontrada com a referência %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Provedor de serviços de pagamento" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transação de pagamento" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Falha no processamento do pagamento" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "ID da chave do Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Segredo da chave do Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Segredo do webhook do Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "O Razorpay nos forneceu as seguintes informações: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Dados recebidos com status inválido: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Dados recebidos com ID de entidade ausente." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Dados recebidos com referência ausente." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Dados recebidos com status ausente." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Recebeu dados de reembolso incompletos." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "TODO: remover no mestre" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "A chave usada exclusivamente para identificar a conta no Razorpay." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "O número de telefone é inválido." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "O número de telefone está faltando." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "O código técnico deste provedor de pagamento." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "A transação não está vinculada a um token." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"As transações processadas pelo Razorpay não podem ser anuladas manualmente " +"no Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Segredo do webhook" diff --git a/i18n/ru.po b/i18n/ru.po new file mode 100644 index 0000000..70515ec --- /dev/null +++ b/i18n/ru.po @@ -0,0 +1,194 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Martin Trigaux, 2023 +# ILMIR , 2024 +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2024\n" +"Language-Team: Russian (https://app.transifex.com/odoo/teams/41243/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ru\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" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" Включите повторяющиеся платежи на Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"Во время обработки вашего платежа произошла ошибка. Пожалуйста, попробуйте " +"еще раз." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Код" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Не удалось установить соединение с API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "Идентификатор ключа" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Секрет ключа API" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Не найдено ни одной транзакции, соответствующей ссылке %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Поставщик платежей" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "платеж" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Обработка платежа не удалась" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Идентификатор ключа Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Секрет ключа Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Razorpay Webhook Secret" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay предоставил нам следующую информацию: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Получены данные со статусом недействительный: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Получены данные с отсутствующим идентификатором сущности." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Получены данные с отсутствующей ссылкой." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Получены данные со статусом Отсутствует." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Получение неполных данных о возмещении." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "Ключ, используемый исключительно для идентификации счета в Razorpay." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "Номер телефона недействителен." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Номер телефона отсутствует." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Технический код данного провайдера платежей." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "Транзакция не привязана к токену." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"Транзакции, обработанные Razorpay, не могут быть вручную аннулированы из " +"Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Секрет вебхука" diff --git a/i18n/sk.po b/i18n/sk.po new file mode 100644 index 0000000..812012b --- /dev/null +++ b/i18n/sk.po @@ -0,0 +1,191 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2023\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kód" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Platobná transakcia" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/sl.po b/i18n/sl.po new file mode 100644 index 0000000..96b606e --- /dev/null +++ b/i18n/sl.po @@ -0,0 +1,192 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Tomaž Jug , 2023 +# Martin Trigaux, 2023 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Martin Trigaux, 2023\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Oznaka" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Ponudnik plačil" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Plačilna transakcija" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/sr.po b/i18n/sr.po new file mode 100644 index 0000000..fb2c59c --- /dev/null +++ b/i18n/sr.po @@ -0,0 +1,188 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Martin Trigaux, 2023 +# Dragan Vukosavljevic , 2023 +# コフスタジオ, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: コフスタジオ, 2024\n" +"Language-Team: Serbian (https://app.transifex.com/odoo/teams/41243/sr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sr\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kod" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Could not establish the connection to the API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "No transaction found matching reference %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Provajder plaćanja" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Transakcija plaćanja" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "The technical code of this payment provider." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "The transaction is not linked to a token." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/sv.po b/i18n/sv.po new file mode 100644 index 0000000..88b0dc1 --- /dev/null +++ b/i18n/sv.po @@ -0,0 +1,194 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Martin Trigaux, 2023 +# Kim Asplund , 2023 +# Anders Wallenquist , 2023 +# Lasse L, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Lasse L, 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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kod" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Det gick inte att upprätta anslutningen till API:et." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Ingen transaktion hittades som matchar referensen %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Betalningsleverantör" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Betalningstransaktion" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Den tekniska koden för denna betalningsleverantör." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "Transaktionen är inte kopplad till en token." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/th.po b/i18n/th.po new file mode 100644 index 0000000..e0c2f1f --- /dev/null +++ b/i18n/th.po @@ -0,0 +1,195 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2023 +# Rasareeyar Lappiam, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Rasareeyar Lappiam, 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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" เปิดใช้งานการชำระเงินที่เกิดขึ้นประจำบน Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"เกิดข้อผิดพลาดระหว่างการประมวลผลการชำระเงินของคุณ กรุณาลองใหม่อีกครั้ง" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "โค้ด" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "ไม่สามารถสร้างการเชื่อมต่อกับ API ได้" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "คีย์ไอดี" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "คีย์ลับ" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "ไม่พบธุรกรรมที่ตรงกับการอ้างอิง %s" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "ผู้ให้บริการชำระเงิน" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "ธุรกรรมสำหรับการชำระเงิน" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "การประมวลผลการชำระเงินล้มเหลว" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Razorpay คีย์ไอดี" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Razorpay คีย์ลับ" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Razorpay เว็บฮุคลับ" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay ให้ข้อมูลต่อไปนี้กับเรา: '%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "ได้รับข้อมูลที่มีสถานะไม่ถูกต้อง: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "ได้รับข้อมูลโดยไม่มีไอดีเอนทิตี" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "ได้รับข้อมูลโดยไม่มีการอ้างอิง" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "ได้รับข้อมูลสถานะขาดหาย" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "ได้รับข้อมูลการคืนเงินไม่ครบถ้วน" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "สิ่งที่ต้องทำ: ลบในต้นแบบ" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "คีย์ที่ใช้ในการระบุบัญชีกับ Razorpay เท่านั้น" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "หมายเลขโทรศัพท์ไม่ถูกต้อง" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "หมายเลขโทรศัพท์ขาดหาย" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "รหัสทางเทคนิคของผู้ให้บริการชำระเงินรายนี้" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "ธุรกรรมไม่ได้เชื่อมโยงกับโทเค็น" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "ธุรกรรมที่ประมวลผลโดย Razorpay ไม่สามารถยกเลิกจาก Odoo ได้ด้วยตนเอง" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "เว็บฮุคลับ" diff --git a/i18n/tr.po b/i18n/tr.po new file mode 100644 index 0000000..6a08e72 --- /dev/null +++ b/i18n/tr.po @@ -0,0 +1,195 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Murat Kaplan , 2023 +# Ediz Duman , 2023 +# Martin Trigaux, 2023 +# Ertuğrul Güreş , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"Ödemenizin işlenmesi sırasında bir hata oluştu. Lütfen tekrar deneyin." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Kod" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "API bağlantısı kurulamadı." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Referans %s eşleşen bir işlem bulunamadı." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Ödeme Sağlayıcı" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Ödeme İşlemi" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "İşlem bir belirteçle bağlantılı değildir." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "" diff --git a/i18n/uk.po b/i18n/uk.po new file mode 100644 index 0000000..de16638 --- /dev/null +++ b/i18n/uk.po @@ -0,0 +1,194 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Alina Lisnenko , 2023 +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "Виникла помилка під час оброблення вашого платежу. Спробуйте ще раз." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Код" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "Не вдалося встановити з’єднання з API." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "Id ключа" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Секретний ключ" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "Не знайдено жодної транзакції, що відповідає референсу %s." + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Провайдер платежу" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Платіжна операція" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Id ключа Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Секретний ключ Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Секрет Webhook Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Отримані дані з недійсним статусом: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Отримано дані з відсутнім id об’єкта." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Дані отримані без референса." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Отримані дані з відсутнім статусом." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Отримано неповні дані про відшкодування." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "" +"Ключ, який використовується виключно для ідентифікації облікового запису в " +"Razorpay." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Відсутній номер телефону." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "Технічний код цього провайдера платежу." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "Транзакція не зв'язана з токеном." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "Транзакції, оброблені Razorpay, не можна вручну анулювати в Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Секрет Webhook" diff --git a/i18n/vi.po b/i18n/vi.po new file mode 100644 index 0000000..663e8ce --- /dev/null +++ b/i18n/vi.po @@ -0,0 +1,196 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Thi Huong Nguyen, 2024 +# Wil Odoo, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Wil Odoo, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "" +"Đã xảy ra lỗi trong quá trình xử lý khoản thanh toán của bạn. Vui lòng thử " +"lại." + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "Mã" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "ID mã khoá" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "Mã khoá bí mật" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +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_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "Nhà cung cấp dịch vụ thanh toán" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "Giao dịch thanh toán" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "Xử lý thanh toán không thành công" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Razorpay ID mã khoá" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Mã khoá bí mật Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Mật khẩu Webhook Razorpay" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "Dữ liệu đã nhận với trạng thái không hợp lệ: %s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "Dữ liệu đã nhận bị thiếu ID thực thể." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "Dữ liệu đã nhận bị thiếu mã." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "Dữ liệu đã nhận bị thiếu trạng thái." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "Dữ liệu hoàn tiền không đầy đủ đã nhận." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.redirect_form +msgid "TODO: remove in master" +msgstr "" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "Mã khoá chỉ được sử dụng để xác định tài khoản với Razorpay." + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "Số điện thoại bị thiếu." + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +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_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "" +"Không thể vô hiệu hóa thủ công các giao dịch được xử lý bởi Razorpay khỏi " +"Odoo." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Mật khẩu Webhook" diff --git a/i18n/zh_CN.po b/i18n/zh_CN.po new file mode 100644 index 0000000..0019710 --- /dev/null +++ b/i18n/zh_CN.po @@ -0,0 +1,191 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2024 +# Wil Odoo, 2024 +# Chloe Wang, 2024 +# 湘子 南 <1360857908@qq.com>, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: 湘子 南 <1360857908@qq.com>, 2024\n" +"Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" 在 Razorpay 启用循环支付" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "在处理您的付款过程中发生了一个错误。请再试一次。" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "代码" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "无法建立与API的连接。" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "密钥 ID" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "密钥" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "没有发现与参考文献%s相匹配的交易。" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "支付提供商" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "支付交易" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "付款处理失败" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Razorpay 密钥 ID" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Razorpay 密钥" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Razorpay Webhook 密钥" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay 给出了以下信息:'%s'" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "接收到的数据状态无效:%s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "收到的数据缺少实体 ID。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "收到的数据缺少参考编号。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "收到的数据中缺少状态。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "收到不完整的退款数据。" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "用于识别 Razorpay 账户的唯一密钥。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "电话号码无效。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "电话号码遗失。" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "该支付提供商的技术代码。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "该交易没有与令牌挂钩。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "由 Razorpay 处理的交易无法在 ERP 中手动取消." + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "Webhook 密钥" diff --git a/i18n/zh_TW.po b/i18n/zh_TW.po new file mode 100644 index 0000000..fc536cf --- /dev/null +++ b/i18n/zh_TW.po @@ -0,0 +1,189 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * payment_razorpay +# +# Translators: +# Wil Odoo, 2024 +# Tony Ng, 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-22 15:54+0000\n" +"PO-Revision-Date: 2023-10-26 23:09+0000\n" +"Last-Translator: Tony Ng, 2024\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_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "" +"\n" +" Enable recurring payments on Razorpay" +msgstr "" +"\n" +" 在 Razorpay 上啟用經常付款" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "" +"An error occurred during the processing of your payment. Please try again." +msgstr "處理付款過程中發生錯誤,請再試一次。" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__code +msgid "Code" +msgstr "程式碼" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Could not establish the connection to the API." +msgstr "無法建立與 API 的連線。" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Id" +msgstr "密鑰識別碼" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Key Secret" +msgstr "密鑰秘密" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "No transaction found matching reference %s." +msgstr "沒有找到匹配參考 %s 的交易。" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_provider +msgid "Payment Provider" +msgstr "支付提供商" + +#. module: payment_razorpay +#: model:ir.model,name:payment_razorpay.model_payment_transaction +msgid "Payment Transaction" +msgstr "付款交易" + +#. module: payment_razorpay +#. odoo-javascript +#: code:addons/payment_razorpay/static/src/js/payment_form.js:0 +#, python-format +msgid "Payment processing failed" +msgstr "付款處理失敗" + +#. module: payment_razorpay +#: model:ir.model.fields.selection,name:payment_razorpay.selection__payment_provider__code__razorpay +msgid "Razorpay" +msgstr "Razorpay" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "Razorpay Key Id" +msgstr "Razorpay 密鑰識別碼" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_key_secret +msgid "Razorpay Key Secret" +msgstr "Razorpay 密鑰秘密" + +#. module: payment_razorpay +#: model:ir.model.fields,field_description:payment_razorpay.field_payment_provider__razorpay_webhook_secret +msgid "Razorpay Webhook Secret" +msgstr "Razorpay 網絡鈎子秘密" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_provider.py:0 +#, python-format +msgid "Razorpay gave us the following information: '%s'" +msgstr "Razorpay 提供以下資訊:%s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with invalid status: %s" +msgstr "收到數據的狀態無效:%s" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing entity id." +msgstr "收到的數據缺漏實體識別碼。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing reference." +msgstr "收到的數據缺漏參考編號。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received data with missing status." +msgstr "收到的數據缺漏狀態。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Received incomplete refund data." +msgstr "收到不完整的退款數據。" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__razorpay_key_id +msgid "The key solely used to identify the account with Razorpay." +msgstr "用於識別Razorpay賬戶的唯一密鑰。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is invalid." +msgstr "電話號碼無效。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The phone number is missing." +msgstr "電話號碼缺漏。" + +#. module: payment_razorpay +#: model:ir.model.fields,help:payment_razorpay.field_payment_provider__code +msgid "The technical code of this payment provider." +msgstr "此付款服務商的技術代碼。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "The transaction is not linked to a token." +msgstr "交易未有連結至代碼。" + +#. module: payment_razorpay +#. odoo-python +#: code:addons/payment_razorpay/models/payment_transaction.py:0 +#, python-format +msgid "Transactions processed by Razorpay can't be manually voided from Odoo." +msgstr "由 Razorpay 處理的交易無法在 Odoo 中手動取消。" + +#. module: payment_razorpay +#: model_terms:ir.ui.view,arch_db:payment_razorpay.payment_provider_form_razorpay +msgid "Webhook Secret" +msgstr "網絡鈎子秘密" diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000..08dfb8a --- /dev/null +++ b/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/models/payment_provider.py b/models/payment_provider.py new file mode 100644 index 0000000..120a2cd --- /dev/null +++ b/models/payment_provider.py @@ -0,0 +1,141 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import hashlib +import hmac +import logging +import pprint + +import requests +from werkzeug.urls import url_join + +from odoo import _, fields, models +from odoo.exceptions import ValidationError + +from odoo.addons.payment_razorpay import const + + +_logger = logging.getLogger(__name__) + + +class PaymentProvider(models.Model): + _inherit = 'payment.provider' + + code = fields.Selection( + selection_add=[('razorpay', "Razorpay")], ondelete={'razorpay': 'set default'} + ) + razorpay_key_id = fields.Char( + string="Razorpay Key Id", + help="The key solely used to identify the account with Razorpay.", + required_if_provider='razorpay', + ) + razorpay_key_secret = fields.Char( + string="Razorpay Key Secret", + required_if_provider='razorpay', + groups='base.group_system', + ) + razorpay_webhook_secret = fields.Char( + string="Razorpay Webhook Secret", + required_if_provider='razorpay', + groups='base.group_system', + ) + + #=== 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 == 'razorpay').update({ + 'support_manual_capture': 'full_only', + 'support_refund': 'partial', + 'support_tokenization': True, + }) + + # === BUSINESS METHODS ===# + + def _get_supported_currencies(self): + """ Override of `payment` to return the supported currencies. """ + supported_currencies = super()._get_supported_currencies() + if self.code == 'razorpay': + supported_currencies = supported_currencies.filtered( + lambda c: c.name in const.SUPPORTED_CURRENCIES + ) + return supported_currencies + + def _razorpay_make_request(self, endpoint, payload=None, method='POST'): + """ Make a request to Razorpay 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. + :return The JSON-formatted content of the response. + :rtype: dict + :raise ValidationError: If an HTTP error occurs. + """ + self.ensure_one() + + url = url_join('https://api.razorpay.com/v1/', endpoint) + auth = (self.razorpay_key_id, self.razorpay_key_secret) + try: + if method == 'GET': + response = requests.get(url, params=payload, auth=auth, timeout=10) + else: + response = requests.post(url, json=payload, auth=auth, timeout=10) + try: + response.raise_for_status() + except requests.exceptions.HTTPError: + _logger.exception( + "Invalid API request at %s with data:\n%s", url, pprint.pformat(payload), + ) + raise ValidationError("Razorpay: " + _( + "Razorpay gave us the following information: '%s'", + response.json().get('error', {}).get('description') + )) + except (requests.exceptions.ConnectionError, requests.exceptions.Timeout): + _logger.exception("Unable to reach endpoint at %s", url) + raise ValidationError( + "Razorpay: " + _("Could not establish the connection to the API.") + ) + return response.json() + + def _razorpay_calculate_signature(self, data, is_redirect=True): + """ Compute the signature for the request's data according to the Razorpay documentation. + + See https://razorpay.com/docs/webhooks/validate-test#validate-webhooks and + https://razorpay.com/docs/payments/payment-gateway/web-integration/hosted/build-integration. + + :param dict|bytes data: The data to sign. + :param bool is_redirect: Whether the data should be treated as redirect data or as coming + from a webhook notification. + :return: The calculated signature. + :rtype: str + """ + if is_redirect: + secret = self.razorpay_key_secret + signing_string = f'{data["razorpay_order_id"]}|{data["razorpay_payment_id"]}' + return hmac.new( + secret.encode(), msg=signing_string.encode(), digestmod=hashlib.sha256 + ).hexdigest() + else: # Notification data. + secret = self.razorpay_webhook_secret + return hmac.new(secret.encode(), msg=data, digestmod=hashlib.sha256).hexdigest() + + 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 != 'razorpay': + return default_codes + return const.DEFAULT_PAYMENT_METHODS_CODES + + def _get_validation_amount(self): + """ Override of `payment` to return the amount for Razorpay validation operations. + + :return: The validation amount. + :rtype: float + """ + res = super()._get_validation_amount() + if self.code != 'razorpay': + return res + + return 1.0 diff --git a/models/payment_transaction.py b/models/payment_transaction.py new file mode 100644 index 0000000..97cc27c --- /dev/null +++ b/models/payment_transaction.py @@ -0,0 +1,464 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import logging +import pprint +import time +from datetime import datetime + +from dateutil.relativedelta import relativedelta + +from odoo import _, api, models +from odoo.exceptions import UserError, ValidationError + +from odoo.addons.payment import utils as payment_utils +from odoo.addons.payment_razorpay import const + + +_logger = logging.getLogger(__name__) + + +class PaymentTransaction(models.Model): + _inherit = 'payment.transaction' + + def _get_specific_processing_values(self, processing_values): + """ Override of `payment` to return razorpay-specific processing values. + + Note: self.ensure_one() from `_get_processing_values` + + :param dict processing_values: The generic and specific processing values of the + transaction. + :return: The provider-specific processing values. + :rtype: dict + """ + res = super()._get_specific_processing_values(processing_values) + if self.provider_code != 'razorpay': + return res + + customer_id = self._razorpay_create_customer()['id'] + order_id = self._razorpay_create_order(customer_id)['id'] + return { + 'razorpay_key_id': self.provider_id.razorpay_key_id, + 'razorpay_customer_id': customer_id, + 'is_tokenize_request': self.tokenize, + 'razorpay_order_id': order_id, + } + + def _razorpay_create_customer(self): + """ Create and return a Customer object. + + :return: The created Customer. + :rtype: dict + """ + payload = { + 'name': self.partner_name, + 'email': self.partner_email, + 'contact': self._validate_phone_number(self.partner_phone), + 'fail_existing': '0', # Don't throw an error if the customer already exists. + } + _logger.info( + "Sending '/customers' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(payload) + ) + customer_data = self.provider_id._razorpay_make_request('customers', payload=payload) + _logger.info( + "Response of '/customers' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(customer_data) + ) + return customer_data + + @api.model + def _validate_phone_number(self, phone): + """ Validate and format the phone number. + + :param str phone: The phone number to validate. + :return str: The formatted phone number. + :raise ValidationError: If the phone number is missing or incorrect. + """ + if not phone: + raise ValidationError("Razorpay: " + _("The phone number is missing.")) + + try: + phone = self._phone_format( + number=phone, country=self.partner_country_id, raise_exception=True + ) + except Exception: + raise ValidationError("Razorpay: " + _("The phone number is invalid.")) + return phone + + def _razorpay_create_order(self, customer_id=None): + """ Create and return an Order object to initiate the payment. + + :param str customer_id: The ID of the Customer object to assign to the Order for + non-subsequent payments. + :return: The created Order. + :rtype: dict + """ + payload = self._razorpay_prepare_order_payload(customer_id=customer_id) + _logger.info( + "Sending '/orders' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(payload) + ) + order_data = self.provider_id._razorpay_make_request('orders', payload=payload) + _logger.info( + "Response of '/orders' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(order_data) + ) + return order_data + + def _razorpay_prepare_order_payload(self, customer_id=None): + """ Prepare the payload for the order request based on the transaction values. + + :param str customer_id: The ID of the Customer object to assign to the Order for + non-subsequent payments. + :return: The request payload. + :rtype: dict + """ + converted_amount = payment_utils.to_minor_currency_units(self.amount, self.currency_id) + pm_code = (self.payment_method_id.primary_payment_method_id or self.payment_method_id).code + payload = { + 'amount': converted_amount, + 'currency': self.currency_id.name, + 'method': pm_code, + } + if self.operation in ['online_direct', 'validation']: + payload['customer_id'] = customer_id # Required for only non-subsequent payments. + if self.tokenize: + payload['token'] = { + 'max_amount': payment_utils.to_minor_currency_units( + self._razorpay_get_mandate_max_amount(), self.currency_id + ), + 'expire_at': time.mktime( + (datetime.today() + relativedelta(years=10)).timetuple() + ), # Don't expire the token before at least 10 years. + 'frequency': 'as_presented', + } + else: # 'online_token', 'offline' + # Required for only subsequent payments. + payload['payment_capture'] = not self.provider_id.capture_manually + if self.provider_id.capture_manually: # The related payment must be only authorized. + payload.update({ + 'payment': { + 'capture': 'manual', + 'capture_options': { + 'manual_expiry_period': 7200, # The default value for this required option. + 'refund_speed': 'normal', # The default value for this required option. + } + }, + }) + return payload + + def _razorpay_get_mandate_max_amount(self): + """ Return the eMandate's maximum amount to define. + + :return: The eMandate's maximum amount. + :rtype: int + """ + pm_code = ( + self.payment_method_id.primary_payment_method_id or self.payment_method_id + ).code + pm_max_amount = const.MANDATE_MAX_AMOUNT.get(pm_code, 100000) + mandate_values = self._get_mandate_values() # The linked document's values. + if 'amount' in mandate_values and 'MRR' in mandate_values: + max_amount = min( + pm_max_amount, max(mandate_values['amount'] * 1.5, mandate_values['MRR'] * 5) + ) + else: + max_amount = pm_max_amount + return max_amount + + def _send_payment_request(self): + """ Override of `payment` to send a payment request to Razorpay. + + 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 != 'razorpay': + return + + if not self.token_id: + raise UserError("Razorpay: " + _("The transaction is not linked to a token.")) + + try: + order_data = self._razorpay_create_order() + phone = self._validate_phone_number(self.partner_phone) + customer_id, token_id = self.token_id.provider_ref.split(',') + payload = { + 'email': self.partner_email, + 'contact': phone, + 'amount': order_data['amount'], + 'currency': self.currency_id.name, + 'order_id': order_data['id'], + 'customer_id': customer_id, + 'token': token_id, + 'description': self.reference, + 'recurring': '1', + } + _logger.info( + "Sending '/payments/create/recurring' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(payload) + ) + recurring_payment_data = self.provider_id._razorpay_make_request( + 'payments/create/recurring', payload=payload + ) + _logger.info( + "Response of '/payments/create/recurring' request for transaction with reference " + "%s:\n%s", self.reference, pprint.pformat(recurring_payment_data) + ) + self._handle_notification_data('razorpay', recurring_payment_data) + except ValidationError as e: + if self.operation == 'offline': + self._set_error(str(e)) + else: + raise + + def _send_refund_request(self, amount_to_refund=None): + """ Override of `payment` to send a refund request to Razorpay. + + Note: self.ensure_one() + + :param float amount_to_refund: The amount to refund. + :return: The refund transaction created to process the refund request. + :rtype: recordset of `payment.transaction` + """ + refund_tx = super()._send_refund_request(amount_to_refund=amount_to_refund) + if self.provider_code != 'razorpay': + return refund_tx + + # Make the refund request to Razorpay. + converted_amount = payment_utils.to_minor_currency_units( + -refund_tx.amount, refund_tx.currency_id + ) # The amount is negative for refund transactions. + payload = { + 'amount': converted_amount, + 'notes': { + 'reference': refund_tx.reference, # Allow retrieving the ref. from webhook data. + }, + } + _logger.info( + "Payload of '/payments//refund' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(payload) + ) + response_content = refund_tx.provider_id._razorpay_make_request( + f'payments/{self.provider_reference}/refund', payload=payload + ) + _logger.info( + "Response of '/payments//refund' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(response_content) + ) + response_content.update(entity_type='refund') + refund_tx._handle_notification_data('razorpay', response_content) + + return refund_tx + + def _send_capture_request(self, amount_to_capture=None): + """ Override of `payment` to send a capture request to Razorpay. """ + child_capture_tx = super()._send_capture_request(amount_to_capture=amount_to_capture) + if self.provider_code != 'razorpay': + return child_capture_tx + + converted_amount = payment_utils.to_minor_currency_units(self.amount, self.currency_id) + payload = {'amount': converted_amount, 'currency': self.currency_id.name} + _logger.info( + "Payload of '/payments//capture' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(payload) + ) + response_content = self.provider_id._razorpay_make_request( + f'payments/{self.provider_reference}/capture', payload=payload + ) + _logger.info( + "Response of '/payments//capture' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(response_content) + ) + + # Handle the capture request response. + self._handle_notification_data('razorpay', response_content) + + return child_capture_tx + + def _send_void_request(self, amount_to_void=None): + """ Override of `payment` to explain that it is impossible to void a Razorpay transaction. + """ + child_void_tx = super()._send_void_request(amount_to_void=amount_to_void) + if self.provider_code != 'razorpay': + return child_void_tx + + raise UserError(_("Transactions processed by Razorpay can't be manually voided from Odoo.")) + + def _get_tx_from_notification_data(self, provider_code, notification_data): + """ Override of `payment` to find the transaction based on razorpay data. + + :param str provider_code: The code of the provider that handled the transaction + :param dict notification_data: The normalized notification data sent by the provider + :return: The transaction if found + :rtype: recordset of `payment.transaction` + :raise: ValidationError if the data match no transaction + """ + tx = super()._get_tx_from_notification_data(provider_code, notification_data) + if provider_code != 'razorpay' or len(tx) == 1: + return tx + + entity_type = notification_data.get('entity_type', 'payment') + if entity_type == 'payment': + reference = notification_data.get('description') + if not reference: + raise ValidationError("Razorpay: " + _("Received data with missing reference.")) + tx = self.search([('reference', '=', reference), ('provider_code', '=', 'razorpay')]) + else: # 'refund' + reference = notification_data.get('notes', {}).get('reference') + if reference: # The refund was initiated from Odoo. + tx = self.search([('reference', '=', reference), ('provider_code', '=', 'razorpay')]) + else: # The refund was initiated from Razorpay. + # Find the source transaction based on its provider reference. + source_tx = self.search([ + ('provider_reference', '=', notification_data['payment_id']), + ('provider_code', '=', 'razorpay'), + ]) + if source_tx: + # Manually create a refund transaction with a new reference. + tx = self._razorpay_create_refund_tx_from_notification_data( + source_tx, notification_data + ) + else: # The refund was initiated for an unknown source transaction. + pass # Don't do anything with the refund notification. + if not tx: + raise ValidationError( + "Razorpay: " + _("No transaction found matching reference %s.", reference) + ) + + return tx + + def _razorpay_create_refund_tx_from_notification_data(self, source_tx, notification_data): + """ Create a refund transaction based on Razorpay data. + + :param recordset source_tx: The source transaction for which a refund is initiated, as a + `payment.transaction` recordset. + :param dict notification_data: The notification data sent by the provider. + :return: The newly created refund transaction. + :rtype: recordset of `payment.transaction` + :raise ValidationError: If inconsistent data were received. + """ + refund_provider_reference = notification_data.get('id') + amount_to_refund = notification_data.get('amount') + if not refund_provider_reference or not amount_to_refund: + raise ValidationError("Razorpay: " + _("Received incomplete refund data.")) + + converted_amount = payment_utils.to_major_currency_units( + amount_to_refund, source_tx.currency_id + ) + return source_tx._create_child_transaction( + converted_amount, is_refund=True, provider_reference=refund_provider_reference + ) + + def _process_notification_data(self, notification_data): + """ Override of `payment` to process the transaction based on Razorpay data. + + Note: self.ensure_one() + + :param dict notification_data: The notification data sent by the provider + :return: None + """ + super()._process_notification_data(notification_data) + if self.provider_code != 'razorpay': + return + + if 'id' in notification_data: # We have the full entity data (S2S request or webhook). + entity_data = notification_data + else: # The payment data are not complete (redirect from checkout). + # Fetch the full payment data. + entity_data = self.provider_id._razorpay_make_request( + f'payments/{notification_data["razorpay_payment_id"]}', method='GET' + ) + _logger.info( + "Response of '/payments' request for transaction with reference %s:\n%s", + self.reference, pprint.pformat(entity_data) + ) + + # Update the provider reference. + entity_id = entity_data.get('id') + if not entity_id: + raise ValidationError("Razorpay: " + _("Received data with missing entity id.")) + self.provider_reference = entity_id + + # Update the payment method. + payment_method_type = entity_data.get('method', '') + if payment_method_type == 'card': + payment_method_type = entity_data.get('card', {}).get('network').lower() + payment_method = self.env['payment.method']._get_from_code(payment_method_type) + self.payment_method_id = payment_method or self.payment_method_id + + # Update the payment state. + entity_status = entity_data.get('status') + if not entity_status: + raise ValidationError("Razorpay: " + _("Received data with missing status.")) + + if entity_status in const.PAYMENT_STATUS_MAPPING['pending']: + self._set_pending() + elif entity_status in const.PAYMENT_STATUS_MAPPING['authorized']: + if self.provider_id.capture_manually: + self._set_authorized() + elif entity_status in const.PAYMENT_STATUS_MAPPING['done']: + if self.tokenize: + self._razorpay_tokenize_from_notification_data(notification_data) + self._set_done() + + # Immediately post-process the transaction if it is a refund, as the post-processing + # will not be triggered by a customer browsing the transaction from the portal. + if self.operation == 'refund': + self.env.ref('payment.cron_post_process_payment_tx')._trigger() + elif entity_status in const.PAYMENT_STATUS_MAPPING['error']: + _logger.warning( + "The transaction with reference %s underwent an error. Reason: %s", + self.reference, entity_data.get('error_description') + ) + self._set_error( + _("An error occurred during the processing of your payment. Please try again.") + ) + else: # Classify unsupported payment status as the `error` tx state. + _logger.warning( + "Received data for transaction with reference %s with invalid payment status: %s", + self.reference, entity_status + ) + self._set_error( + "Razorpay: " + _("Received data with invalid status: %s", entity_status) + ) + + def _razorpay_tokenize_from_notification_data(self, notification_data): + """ Create a new token based on the notification data. + + :param dict notification_data: The notification data built with Razorpay objects. + See `_process_notification_data`. + :return: None + """ + pm_code = (self.payment_method_id.primary_payment_method_id or self.payment_method_id).code + if pm_code == 'card': + details = notification_data.get('card', {}).get('last4') + elif pm_code == 'upi': + temp_vpa = notification_data.get('vpa') + details = temp_vpa[temp_vpa.find('@') - 1:] + else: + details = pm_code + + token = self.env['payment.token'].create({ + 'provider_id': self.provider_id.id, + 'payment_method_id': self.payment_method_id.id, + 'payment_details': details, + 'partner_id': self.partner_id.id, + # Razorpay requires both the customer ID and the token ID which are extracted from here. + 'provider_ref': f'{notification_data["customer_id"]},{notification_data["token_id"]}', + }) + 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/static/description/icon.png b/static/description/icon.png new file mode 100644 index 0000000..8ba957d Binary files /dev/null and b/static/description/icon.png differ diff --git a/static/description/icon.svg b/static/description/icon.svg new file mode 100644 index 0000000..9955636 --- /dev/null +++ b/static/description/icon.svg @@ -0,0 +1 @@ + diff --git a/static/src/js/payment_form.js b/static/src/js/payment_form.js new file mode 100644 index 0000000..c09d2ad --- /dev/null +++ b/static/src/js/payment_form.js @@ -0,0 +1,84 @@ +/** @odoo-module **/ +/* global Razorpay */ + +import { _t } from "@web/core/l10n/translation"; +import { loadJS } from "@web/core/assets"; +import paymentForm from '@payment/js/payment_form'; + +paymentForm.include({ + + // #=== DOM MANIPULATION ===# + + /** + * Update the payment context to set the flow to 'direct'. + * + * @override method from @payment/js/payment_form + * @private + * @param {number} providerId - The id of the selected payment option's provider. + * @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 {string} flow - The online payment flow of the selected payment option. + * @return {void} + */ + async _prepareInlineForm(providerId, providerCode, paymentOptionId, paymentMethodCode, flow) { + if (providerCode !== 'razorpay') { + this._super(...arguments); + return; + } + + if (flow === 'token') { + return; // No need to update the flow for tokens. + } + + // Overwrite the flow of the select payment method. + this._setPaymentFlow('direct'); + }, + + // #=== PAYMENT FLOW ===# + + async _processDirectFlow(providerCode, paymentOptionId, paymentMethodCode, processingValues) { + if (providerCode !== 'razorpay') { + this._super(...arguments); + return; + } + const razorpayOptions = this._prepareRazorpayOptions(processingValues); + await loadJS('https://checkout.razorpay.com/v1/checkout.js'); + const RazorpayJS = Razorpay(razorpayOptions); + RazorpayJS.open(); + RazorpayJS.on('payment.failed', response => { + this._displayErrorDialog(_t("Payment processing failed"), response.error.description); + }); + }, + + /** + * Prepare the options to init the RazorPay SDK Object. + * + * @param {object} processingValues - The processing values. + * @return {object} + */ + _prepareRazorpayOptions(processingValues) { + return Object.assign({}, processingValues, { + 'key': processingValues['razorpay_key_id'], + 'order_id': processingValues['razorpay_order_id'], + 'customer_id': processingValues['razorpay_customer_id'], + 'description': processingValues['reference'], + 'recurring': processingValues['is_tokenize_request'] ? '1': '0', + 'handler': response => { + if ( + response['razorpay_payment_id'] + && response['razorpay_order_id'] + && response['razorpay_signature'] + ) { // The payment reached a final state; redirect to the status page. + window.location = '/payment/status'; + } + }, + 'modal': { + 'ondismiss': () => { + window.location.reload(); + } + }, + }); + }, + +}); diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..4a36db0 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,6 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import common +from . import test_payment_provider +from . import test_payment_transaction +from . import test_processing_flows diff --git a/tests/common.py b/tests/common.py new file mode 100644 index 0000000..4be7dcb --- /dev/null +++ b/tests/common.py @@ -0,0 +1,54 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.addons.payment.tests.common import PaymentCommon +from odoo.fields import Command + + +class RazorpayCommon(PaymentCommon): + + @classmethod + def setUpClass(cls): + super().setUpClass() + + cls.provider = cls._prepare_provider('razorpay', update_values={ + 'razorpay_key_id': 'rzp_123', + 'razorpay_key_secret': 'Y63AyP9eL91', + 'razorpay_webhook_secret': 'coincoin_motherducker', + 'payment_method_ids': [Command.set([cls.env.ref('payment.payment_method_card').id])], + }) + + cls.razorpay_customer_id = 'cust_123' + cls.razorpay_token_id = 'token_404' + + cls.payment_id = 'pay_123' + cls.refund_id = 'rfd_456' + cls.order_id = 'order_789' + cls.redirect_notification_data = { + 'razorpay_payment_id': cls.payment_id, + 'razorpay_order_id': cls.order_id, + 'razorpay_signature': 'dummy', + } + cls.payment_method_id = cls.provider.payment_method_ids[:1].id + cls.payment_data = { + 'id': cls.payment_id, + 'description': cls.reference, + 'status': 'captured', + } + cls.tokenize_payment_data = { + **cls.payment_data, + 'customer_id': cls.razorpay_customer_id, + 'token_id': cls.razorpay_token_id, + } + cls.refund_data = { + 'id': cls.refund_id, + 'payment_id': cls.payment_id, + 'amount': cls.amount, + } + cls.webhook_notification_data = { + 'event': 'payment.captured', + 'payload': { + 'payment': { + 'entity': cls.payment_data, + }, + }, + } diff --git a/tests/test_payment_provider.py b/tests/test_payment_provider.py new file mode 100644 index 0000000..92d30da --- /dev/null +++ b/tests/test_payment_provider.py @@ -0,0 +1,26 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests import tagged + +from odoo.addons.payment_razorpay.tests.common import RazorpayCommon + + +@tagged('post_install', '-at_install') +class TestPaymentProvider(RazorpayCommon): + + def test_incompatible_with_unsupported_currencies(self): + """ Test that Razorpay providers are filtered out from compatible providers when the + currency is not supported. """ + compatible_providers = self.env['payment.provider']._get_compatible_providers( + self.company_id, self.partner.id, self.amount, currency_id=self.env.ref('base.AFN').id + ) + self.assertNotIn(self.provider, compatible_providers) + + def test_signature_calculation_for_redirect_data(self): + """ Test that the calculated signature matches the expected signature for redirect data. """ + calculated_signature = self.provider._razorpay_calculate_signature( + self.redirect_notification_data, is_redirect=True + ) + self.assertEqual( + calculated_signature, '437b72e4e87362a39951b44487cf698410b074afdbed19ec44fffd32d2f863f3' + ) diff --git a/tests/test_payment_transaction.py b/tests/test_payment_transaction.py new file mode 100644 index 0000000..de38282 --- /dev/null +++ b/tests/test_payment_transaction.py @@ -0,0 +1,118 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import time + +from datetime import datetime +from dateutil.relativedelta import relativedelta + +from unittest.mock import patch + +from odoo.exceptions import UserError +from odoo.tests import tagged + +from odoo.addons.payment import utils as payment_utils +from odoo.addons.payment_razorpay.tests.common import RazorpayCommon + + +@tagged('post_install', '-at_install') +class TestPaymentTransaction(RazorpayCommon): + + def test_no_item_missing_from_order_request_payload(self): + """ Test that the request values are conform to the transaction fields. """ + tx = self._create_transaction('redirect', operation='online_direct', payment_method_id=self.payment_method_id) + request_payload = tx._razorpay_prepare_order_payload(customer_id=self.razorpay_customer_id) + self.maxDiff = 10000 # Allow comparing large dicts. + converted_amount = payment_utils.to_minor_currency_units(tx.amount, tx.currency_id) + self.assertDictEqual(request_payload, { + 'amount': converted_amount, + 'currency': tx.currency_id.name, + 'customer_id': self.razorpay_customer_id, + 'method': 'card', + }) + + def test_void_is_not_supported(self): + """ Test that trying to void an authorized transaction raises an error. """ + tx = self._create_transaction('redirect', state='authorized') + self.assertRaises(UserError, func=tx._send_void_request) + + def test_get_tx_from_notification_data_returns_refund_tx(self): + """ Test that the refund transaction is returned if it exists when processing refund + notification data. """ + refund_tx = self._create_transaction('redirect') + returned_tx = self.env['payment.transaction']._get_tx_from_notification_data( + 'razorpay', dict(self.refund_data, **{ + 'entity_type': 'refund', + 'notes': { + 'reference': refund_tx.reference, + }, + }) + ) + self.assertEqual(returned_tx, refund_tx) + + def test_get_tx_from_notification_data_creates_refund_tx_when_missing(self): + """ Test that a refund transaction is created when processing refund notification data + without reference. """ + source_tx = self._create_transaction( + 'redirect', state='done', provider_reference=self.payment_id + ) + refund_tx = self.env['payment.transaction']._get_tx_from_notification_data( + 'razorpay', dict(self.refund_data, entity_type='refund') + ) + self.assertTrue( + refund_tx, + msg="If no refund tx is found with the refund data, a refund tx should be created.", + ) + self.assertNotEqual(refund_tx, source_tx) + self.assertEqual(refund_tx.source_transaction_id, source_tx) + + def test_processing_notification_data_confirms_transaction(self): + """ Test that the transaction state is set to 'done' when the notification data indicate a + successful payment. """ + tx = self._create_transaction('redirect') + with patch( + 'odoo.addons.payment_razorpay.models.payment_provider.PaymentProvider' + '._razorpay_make_request', return_value=self.payment_data + ): + tx._process_notification_data(self.payment_data) + self.assertEqual(tx.state, 'done') + + def test_order_request_payload_for_tokenize_tx(self): + """ Test that order payload for tokenize tx is proper. """ + tx = self._create_transaction('redirect', operation='online_direct', tokenize=True, payment_method_id=self.payment_method_id) + self.assertDictEqual(tx._get_specific_rendering_values(None), {}, "Should return empty dict of rendering values for tokenize transaction") + + request_payload = tx._razorpay_prepare_order_payload(customer_id=self.razorpay_customer_id) + converted_amount = payment_utils.to_minor_currency_units(tx.amount, tx.currency_id) + token_expiry_date = datetime.today() + relativedelta(years=10) + token_expiry_timeslamp = time.mktime(token_expiry_date.timetuple()) + self.assertDictEqual(request_payload, { + 'token': { + "expire_at": token_expiry_timeslamp, + "frequency": "as_presented", + 'max_amount': 100000000, + }, + 'amount': converted_amount, + 'currency': tx.currency_id.name, + 'customer_id': self.razorpay_customer_id, + 'method': 'card', + + }) + + def test_processing_notification_data_confirms_tokenize_transaction(self): + """ Test that the transaction state is set to 'done' when the notification data indicate a + successful payment. """ + tx = self._create_transaction('redirect', tokenize=True, payment_method_id=self.payment_method_id) + tx._process_notification_data(self.tokenize_payment_data) + self.assertEqual(tx.state, 'done') + + def test_token_creation_for_tokenize_transaction(self): + """ Test that the token is create on confirmation of tokenize transaction """ + tx = self._create_transaction('redirect', tokenize=True, payment_method_id=self.payment_method_id) + tx._process_notification_data(self.tokenize_payment_data) + token = tx.token_id + self.assertTrue(token, "Should create token for tokenize transction") + self.assertFalse(tx.tokenize, "Trasection should be non tokenize after token creation") + self.assertEqual( + token.provider_ref, f"{self.tokenize_payment_data['customer_id']},{self.tokenize_payment_data['token_id']}", + "Should set proper values for provider_ref to get customer_id and token_id from that field" + ) diff --git a/tests/test_processing_flows.py b/tests/test_processing_flows.py new file mode 100644 index 0000000..e84ea55 --- /dev/null +++ b/tests/test_processing_flows.py @@ -0,0 +1,107 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +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_razorpay.controllers.main import RazorpayController +from odoo.addons.payment_razorpay.tests.common import RazorpayCommon + + +@tagged('post_install', '-at_install') +class TestProcessingFlows(RazorpayCommon, PaymentHttpCommon): + + @mute_logger('odoo.addons.payment_razorpay.controllers.main') + def test_webhook_notification_triggers_processing(self): + """ Test that receiving a valid webhook notification triggers the processing of the + notification data. """ + self._create_transaction('direct') + url = self._build_url(RazorpayController._webhook_url) + with patch( + 'odoo.addons.payment_razorpay.controllers.main.RazorpayController.' + '_verify_notification_signature' + ), patch( + 'odoo.addons.payment.models.payment_transaction.PaymentTransaction' + '._handle_notification_data' + ) as handle_notification_data_mock: + self._make_json_request(url, data=self.webhook_notification_data) + self.assertEqual(handle_notification_data_mock.call_count, 1) + + @mute_logger('odoo.addons.payment_razorpay.controllers.main') + def test_webhook_notification_triggers_processing_for_tokenize_transaction(self): + """ Test that receiving a valid webhook notification triggers the processing of the + notification data for tokenize transaction. """ + self._create_transaction('redirect', tokenize=True, payment_method_id=self.payment_method_id) + url = self._build_url(RazorpayController._webhook_url) + with patch( + 'odoo.addons.payment_razorpay.controllers.main.RazorpayController.' + '_verify_notification_signature' + ), patch( + 'odoo.addons.payment.models.payment_transaction.PaymentTransaction' + '._handle_notification_data' + ) as handle_notification_data_mock: + self._make_json_request(url, data=self.webhook_notification_data) + self.assertEqual(handle_notification_data_mock.call_count, 1) + + @mute_logger('odoo.addons.payment_razorpay.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(RazorpayController._webhook_url) + with patch( + 'odoo.addons.payment_razorpay.controllers.main.RazorpayController' + '._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.webhook_notification_data) + self.assertEqual(signature_check_mock.call_count, 1) + + def test_accept_webhook_notification_with_valid_signature(self): + """ Test the verification of a webhook notification with a valid signature. """ + tx = self._create_transaction('redirect') + with patch( + 'odoo.addons.payment_razorpay.models.payment_provider.PaymentProvider' + '._razorpay_calculate_signature', return_value='valid_signature' + ): + self._assert_does_not_raise( + Forbidden, + RazorpayController._verify_notification_signature, + self.webhook_notification_data, + 'valid_signature', + tx, + is_redirect=False, + ) + + @mute_logger('odoo.addons.payment_razorpay.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, + RazorpayController._verify_notification_signature, + self.webhook_notification_data, + None, + tx, + ) + + @mute_logger('odoo.addons.payment_razorpay.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') + with patch( + 'odoo.addons.payment_razorpay.models.payment_provider.PaymentProvider' + '._razorpay_calculate_signature', return_value='valid_signature' + ): + self.assertRaises( + Forbidden, + RazorpayController._verify_notification_signature, + self.webhook_notification_data, + 'bad_signature', + tx, + ) diff --git a/views/payment_provider_views.xml b/views/payment_provider_views.xml new file mode 100644 index 0000000..225840c --- /dev/null +++ b/views/payment_provider_views.xml @@ -0,0 +1,40 @@ + + + + + Razorpay Provider Form + payment.provider + + + + + + + + + + + + + + + + diff --git a/views/payment_razorpay_templates.xml b/views/payment_razorpay_templates.xml new file mode 100644 index 0000000..9b2d530 --- /dev/null +++ b/views/payment_razorpay_templates.xml @@ -0,0 +1,8 @@ + + + + + +