Начальное наполнение

This commit is contained in:
parent c5059080a9
commit 1a8adf9b9b
61 changed files with 6202 additions and 0 deletions

4
__init__.py Normal file

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import controllers
from . import models

29
__manifest__.py Normal file

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
{
'name': "Website Sale Product Configurator",
'summary': "Bridge module for website_sale / sale_product_configurator",
'description': """
Bridge module to make the website e-commerce compatible with the product configurator
""",
'category': 'Hidden',
'depends': ['website_sale', 'sale_product_configurator'],
'auto_install': True,
'data': [
'views/templates.xml',
],
'demo': [
'data/demo.xml',
],
'assets': {
'web.assets_frontend': [
('before', 'website_sale/static/src/js/website_sale.js', 'website_sale_product_configurator/static/src/js/sale_product_configurator_modal.js'),
'website_sale/static/src/scss/product_configurator.scss',
'website_sale_product_configurator/static/src/scss/website_sale_options.scss',
'website_sale_product_configurator/static/src/js/website_sale_options.js',
],
'web.assets_tests': [
'website_sale_product_configurator/static/tests/**/*',
],
},
'license': 'LGPL-3',
}

4
controllers/__init__.py Normal file

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import main
from . import website_sale

71
controllers/main.py Normal file

@ -0,0 +1,71 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.http import Controller, request, route
class WebsiteSaleProductConfiguratorController(Controller):
@route(
'/sale_product_configurator/show_advanced_configurator',
type='json', auth='public', methods=['POST'], website=True,
)
def show_advanced_configurator(
self, product_id, variant_values, add_qty=1, force_dialog=False, **kw,
):
product = request.env['product.product'].browse(int(product_id))
product_template = product.product_tmpl_id
combination = request.env['product.template.attribute.value'].browse(variant_values)
has_optional_products = product.optional_product_ids.filtered(
lambda p: p._is_add_to_cart_possible(combination)
and (not request.website.prevent_zero_price_sale or p._get_contextual_price())
)
already_configured = bool(combination)
if not force_dialog and not has_optional_products and (
product.product_variant_count <= 1 or already_configured
):
# The modal is not shown if there are no optional products and
# the main product either has no variants or is already configured
return False
add_qty = float(add_qty)
combination_info = product_template._get_combination_info(
combination=combination,
product_id=product.id,
add_qty=add_qty,
)
return request.env['ir.ui.view']._render_template(
'website_sale_product_configurator.optional_products_modal',
{
'product': product,
'product_template': product_template,
'combination': combination,
'combination_info': combination_info,
'add_qty': add_qty,
'parent_name': product.name,
'variant_values': variant_values,
'already_configured': already_configured,
'mode': kw.get('mode', 'add'),
'product_custom_attribute_values': kw.get('product_custom_attribute_values', None),
'no_attribute': kw.get('no_attribute', False),
'custom_attribute': kw.get('custom_attribute', False),
}
)
@route(
'/sale_product_configurator/optional_product_items',
type='json', auth='public', methods=['POST'], website=True,
)
def optional_product_items(self, product_id, add_qty=1, **kw):
product = request.env['product.product'].browse(int(product_id))
return request.env['ir.ui.view']._render_template(
'website_sale_product_configurator.optional_product_items',
{
'product': product,
'parent_name': product.name,
'parent_combination': product.product_template_attribute_value_ids,
'add_qty': float(add_qty) or 1.0,
}
)

@ -0,0 +1,85 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import json
from odoo.http import request, route
from odoo.addons.website_sale.controllers import main
class WebsiteSale(main.WebsiteSale):
def _prepare_product_values(self, product, category, search, **kwargs):
values = super()._prepare_product_values(product, category, search, **kwargs)
values['optional_product_ids'] = [p.with_context(active_id=p.id) for p in product.optional_product_ids]
return values
@route(
'/shop/cart/update_option',
type='json',
auth='public',
methods=['POST'],
website=True,
multilang=False,
)
def cart_options_update_json(self, product_and_options, lang=None, **kwargs):
"""This route is called when submitting the optional product modal.
The product without parent is the main product, the other are options.
Options need to be linked to their parents with a unique ID.
The main product is the first product in the list and the options
need to be right after their parent.
product_and_options {
'product_id',
'product_template_id',
'quantity',
'parent_unique_id',
'unique_id',
'product_custom_attribute_values',
'no_variant_attribute_values'
}
"""
if lang:
request.website = request.website.with_context(lang=lang)
order = request.website.sale_get_order(force_create=True)
if order.state != 'draft':
request.session['sale_order_id'] = None
order = request.website.sale_get_order(force_create=True)
product_and_options = json.loads(product_and_options)
if product_and_options:
# The main product is the first, optional products are the rest
main_product = product_and_options[0]
values = order._cart_update(
product_id=main_product['product_id'],
add_qty=main_product['quantity'],
product_custom_attribute_values=main_product['product_custom_attribute_values'],
no_variant_attribute_values=main_product['no_variant_attribute_values'],
**kwargs
)
line_ids = [values['line_id']]
if values['line_id']:
# Link option with its parent iff line has been created.
option_parent = {main_product['unique_id']: values['line_id']}
for option in product_and_options[1:]:
parent_unique_id = option['parent_unique_id']
option_values = order._cart_update(
product_id=option['product_id'],
set_qty=option['quantity'],
linked_line_id=option_parent[parent_unique_id],
product_custom_attribute_values=option['product_custom_attribute_values'],
no_variant_attribute_values=option['no_variant_attribute_values'],
**kwargs
)
option_parent[option['unique_id']] = option_values['line_id']
line_ids.append(option_values['line_id'])
values['notification_info'] = self._get_cart_notification_information(order, line_ids)
values['cart_quantity'] = order.cart_quantity
request.session['website_sale_cart_quantity'] = order.cart_quantity
return values

10
data/demo.xml Normal file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="sale_product_configurator.product_product_1_product_template" model="product.template">
<field name="website_sequence">9980</field>
<field name="is_published" eval="True"/>
</record>
<record id="product.product_product_4_product_template" model="product.template">
<field name="optional_product_ids" eval="[(6,0,[ref('product.product_product_11_product_template'), ref('website_sale.product_product_1_product_template')])]"/>
</record>
</odoo>

114
i18n/ar.po Normal file

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 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: Wil Odoo, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
"<i class=\"fa fa-shopping-cart add-optionnal-item\"/> إضافة إلى عربة التسوق "
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">السعر</span> "
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">المنتج</span> "
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>الإجمالي:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "إجراء الإضافة إلى عربة التسوق "
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "إضافة واحدة"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "إضافة إلى عربة التسوق "
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "الخيارات المتاحة:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "متابعة التسوق"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "اترك القرار للمستخدم (حوار) "
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "الخيار غير متاح"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "متابعة عملية الشراء"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "صورة المنتج"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "الكمية"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "إزالة واحد "
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "أمر البيع"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "الموقع الإلكتروني"

118
i18n/bg.po Normal file

@ -0,0 +1,118 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Anton Vassilev, 2023
# Camille Dantinne <cmd@odoo.com>, 2023
# Rosen Vladimirov <vladimirov.rosen@gmail.com>, 2023
# Martin Trigaux, 2023
# Igor Sheludko <igor.sheludko@gmail.com>, 2023
# Maria Boyadjieva <marabo2000@gmail.com>, 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: Maria Boyadjieva <marabo2000@gmail.com>, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Добави в количката"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Общо:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Добави в количката"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Продължете да пазарувате"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Продължете към плащане"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Изображение на продукта"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Количество"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Поръчка"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Уебсайт"

121
i18n/ca.po Normal file

@ -0,0 +1,121 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# marcescu, 2023
# Ivan Espinola, 2023
# Carles Antoli <carlesantoli@hotmail.com>, 2023
# Quim - eccit <quim@eccit.com>, 2023
# Sandra Franch <sandra.franch@upc.edu>, 2023
# Arnau Ros, 2023
# Óscar Fonseca <tecnico@pyming.com>, 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: 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
"<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Afegir a la cistella"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Preu</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Producte</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Total:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Afegeix a l'acció Cart"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Afegir-ne un"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Afegir a la cistella"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Opcions disponibles:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Continuar comprant"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Deixa que l'usuari decideixi (diàleg)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Opció no disponible"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Vés a la caixa"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Imatge de Producte"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Quantitat"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Eliminar un"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Comanda"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Lloc web"

116
i18n/cs.po Normal file

@ -0,0 +1,116 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Jiří Podhorecký, 2023
# Wil Odoo, 2023
# Jakub Smolka, 2023
# Vojtech Smolka, 2024
#
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: Vojtech Smolka, 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Přidat do košíku"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Cena</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Produkt</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Celkem:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Přidat do košíku"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Přidat jeden"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Přidat do košíku"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Dostupné možnosti:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Pokračovat v nákupu"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Možnost není k dispozici"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Pokračujte k pokladně"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Produktový obrázek"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Množství"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Odebrat jeden"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Prodejní objednávka"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Webová stránka"

115
i18n/da.po Normal file

@ -0,0 +1,115 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# lhmflexerp <lhm@flexerp.dk>, 2023
# Martin Trigaux, 2023
# Sanne Kristensen <sanne@vkdata.dk>, 2024
#
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: Sanne Kristensen <sanne@vkdata.dk>, 2024\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Tilføj til kurv"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Pris</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Produkt</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Total:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Tilføj til kurv handling"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Tilføj en"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Tilføj til kurv"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Tilgængelige muligheder:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Fortsæt med at handle"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Lad brugeren bestemme (dialog)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Valgmulighed ikke tilgængelig"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Fortsæt til checkout"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Produktbillede"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Antal"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Fjern én"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Salgsordre"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Hjemmeside"

114
i18n/de.po Normal file

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 2023
# Larissa Manderfeld, 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: Larissa Manderfeld, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/>In den Warenkorb"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Preis</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Produkt</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Gesamt:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Aktion „In den Warenkorb“"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "1 hinzufügen"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "In den Warenkorb"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Verfügbare Optionen:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Weiter einkaufen"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Den Benutzer entscheiden lassen (Dialog)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Option nicht verfügbar"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Zur Kasse"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Produktbild"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Menge"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "1 entfernen"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Verkaufsauftrag"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Website"

114
i18n/es.po Normal file

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 2023
# Larissa Manderfeld, 2024
#
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: 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Agregar al carrito"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Precio</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Producto</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Total:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Agregar al carrito"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Agregue uno"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Agregar al carrito"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Opciones disponibles: "
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Siga comprando"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Dejar que el usuario decida (diálogo)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Opción no disponible"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Proceder a la compra"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Imagen del producto"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Cantidad"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Quitar uno"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Orden de venta"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Sitio web"

114
i18n/es_419.po Normal file

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 2023
# Fernanda Alvarez, 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: Fernanda Alvarez, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Agregar al carrito"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Precio</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Producto</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Total:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Agregar al carrito"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Agregar uno"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Agregar al carrito"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Opciones disponibles: "
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Continuar comprando"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Permitir que el usuario decida (diálogo)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Opción no disponible"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Proceder al pago"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Imagen del producto"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Cantidad"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Eliminar uno"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Orden de venta"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Sitio web"

118
i18n/et.po Normal file

@ -0,0 +1,118 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Leaanika Randmets, 2023
# Marek Pontus, 2023
# Egon Raamat <egon@avalah.ee>, 2023
# Anna, 2023
# Algo Kärp <algokarp@gmail.com>, 2023
# Eneli Õigus <enelioigus@gmail.com>, 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: Eneli Õigus <enelioigus@gmail.com>, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Lisa ostukorvi"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Hind</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Toode</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Kokku:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Lisa ostukorvi nupu toiming"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Lisage üks"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Lisa ostukorvi"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Lisavalikud:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Jätka ostlemist"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Lase kasutajal ise otsustada (dialoog)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Valik pole saadaval"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Mine ostukorvi"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Toote pilt"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Kogus"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Eemaldage üks"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Müügitellimus"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Veebileht"

116
i18n/fa.po Normal file

@ -0,0 +1,116 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Mohsen Mohammadi <iammohsen.123@gmail.com>, 2023
# Hamed Mohammadi <hamed@dehongi.com>, 2023
# Martin Trigaux, 2023
# Hanna Kheradroosta, 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: Hanna Kheradroosta, 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> افزودن به سبد"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>جمع کل:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "افزودن یکی"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "افزودن به سبد"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "گزینه های موجود:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "ادامه خرید"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "پیشنهاد در دسترس نیست"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "تصویر محصول"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "تعداد"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "حذف یکی"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "سفارش فروش"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "تارنما"

120
i18n/fi.po Normal file

@ -0,0 +1,120 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Mikko Salmela <salmemik@gmail.com>, 2023
# Svante Suominen <svante.suominen@web-veistamo.fi>, 2023
# Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 2023
# Tuomo Aura <tuomo.aura@web-veistamo.fi>, 2023
# Martin Trigaux, 2023
# Tuomas Lyyra <tuomas.lyyra@legenda.fi>, 2023
# Kari Lindgren <kari.lindgren@emsystems.fi>, 2023
# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 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: Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Lisää tilaukselle"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Hinta</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Tuote</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Yhteensä:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Lisää ostoskoriin Toiminta"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Lisää yksi"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Lisää ostoskoriin"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Valittavissa olevat vaihtoehdot: "
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Palaa kauppaan"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Anna käyttäjän päättää (dialogi)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Vaihtoehtoa ei ole saatavana"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Jatka tilaamaan"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Tuotekuva"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Määrä"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Poista yksi"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Myyntitilaus"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Verkkosivu"

114
i18n/fr.po Normal file

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 2023
# Jolien De Paepe, 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: Jolien De Paepe, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Ajouter au panier"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Prix</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Produit</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Total :</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Action ajouter au panier"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Ajouter"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Ajouter au panier"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Options disponibles :"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Continuer les achats"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Laisser l'utilisateur décider (dialogue)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Option non disponible"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Finaliser les achats"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Image du produit"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Quantité"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Supprimer"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Bon de commande"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Site Web"

116
i18n/he.po Normal file

@ -0,0 +1,116 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Lilach Gilliam <lilach.gilliam@gmail.com>, 2023
# NoaFarkash, 2023
# Yihya Hugirat <hugirat@gmail.com>, 2023
# ZVI BLONDER <ZVIBLONDER@gmail.com>, 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: ZVI BLONDER <ZVIBLONDER@gmail.com>, 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> הוסף לעגלה"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">מחיר</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">מוצר</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>סה\"כ:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "הוסף אחד"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "הוסף לעגלה"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "אפשרויות זמינות:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "המשך בקנייה"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "אפשר למשתמש להחליט (דיאלוג)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "האפשרות אינה זמינה"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "התקדם לתשלום"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "תמונת מוצר"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "כמות"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "הסר אחד"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "הזמנת לקוח"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "אתר אינטרנט"

126
i18n/hr.po Normal file

@ -0,0 +1,126 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Ivana Šimek <ivanasimek@gmail.com>, 2022
# Martin Trigaux, 2022
# Vladimir Olujić <olujic.vladimir@storm.hr>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~15.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:57+0000\n"
"Last-Translator: Vladimir Olujić <olujic.vladimir@storm.hr>, 2022\n"
"Language-Team: Croatian (https://app.transifex.com/odoo/teams/41243/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Quantity</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Dodaj u košaricu"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Prodajni nalog"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This combination does not exist."
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This product has no valid combination."
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Web stranica"

119
i18n/hu.po Normal file

@ -0,0 +1,119 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Kovács Tibor <kovika@gmail.com>, 2023
# Szabolcs Rádi, 2023
# Istvan <leki69@gmail.com>, 2023
# krnkris, 2023
# Ákos Nagy <akos.nagy@oregional.hu>, 2023
# Gergő Kertész <gergo.kertesz@maxflow.hu>, 2023
# Tamás Németh <ntomasz81@gmail.com>, 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: Tamás Németh <ntomasz81@gmail.com>, 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Kosárba tesz"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Összesen:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Hozzáadás"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Kosárhoz ad"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Elérhető opciók:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Vásárlás folytatása"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Az opció nem elérhető"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Továbblépés a véglegesítéshez"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Termék képe"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Mennyiség"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Eltávolítás"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Megrendelések"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Honlap"

114
i18n/id.po Normal file

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 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: Wil Odoo, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
"<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Tambahkan ke keranjang"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Harga</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Produk</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Total:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Tindakan Tambah Ke Keranjang"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Tambahkan satu"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Tambahkan ke keranjang"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Opsi yang Tersedia:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Lanjutkan Belanja"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Biarkan user menentukan (dialog)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Opsi tidak tersedia"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Lanjutkan ke Checkout"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Gambar Produk"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Kuantitas"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Hapus satu"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Order Penjualan"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Website"

115
i18n/it.po Normal file

@ -0,0 +1,115 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 2023
# Marianna Ciofani, 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: Marianna Ciofani, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
"<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Aggiungi al carrello"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Prezzo</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Prodotto</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Totale:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Azione aggiungi al carrello"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Aggiungi unità"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Aggiungi al carrello"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Opzioni disponibili:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Continua gli acquisti"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Lascia decidere l'utente (Finestra di dialogo)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Opzione non disponibile"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Procedi al pagamento"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Immagine prodotto"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Quantità"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Rimuovi unità"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Ordine di vendita"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Sito web"

114
i18n/ja.po Normal file

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 2023
# Ryoko Tsuda <ryoko@quartile.co>, 2024
#
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: Ryoko Tsuda <ryoko@quartile.co>, 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> カートに入れる"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">価格</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">プロダクト</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>合計:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "カートに入れるアクション"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "一つを追加"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "カートに入れる"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "利用可能なオプション:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "買い物を続ける"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "ユーザが決める (ダイアログ)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "オプションは利用できません"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "チェックアウト"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "製品画像"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "数量"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "一つを削除"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "販売オーダ"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "ウェブサイト"

113
i18n/ko.po Normal file

@ -0,0 +1,113 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 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: Wil Odoo, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> 장바구니에 담기"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">가격</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">품목</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>합계 :</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "장바구니 추가 작업"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "하나 추가하기"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "장바구니에 담기"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "사용 가능한 선택 사항 :"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "쇼핑 계속하기"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "사용자가 결정하도록 허용(대화 상자)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "사용할 수 없는 선택 사항"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "결제 진행"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "품목 이미지"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "수량"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "하나만 제거하기"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "판매 주문"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "웹사이트"

120
i18n/lb.po Normal file

@ -0,0 +1,120 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~12.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2019-08-26 09:16+0000\n"
"Language-Team: Luxembourgish (https://www.transifex.com/odoo/teams/41243/lb/)\n"
"Language: lb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Quantity</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This combination does not exist."
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This product has no valid combination."
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr ""

115
i18n/lt.po Normal file

@ -0,0 +1,115 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Antanas Muliuolis <an.muliuolis@gmail.com>, 2023
# Martin Trigaux, 2023
# Linas Versada <linaskrisiukenas@gmail.com>, 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 <linaskrisiukenas@gmail.com>, 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/>Pridėti į krepšelį"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Suma:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Pridėti vieną"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Pridėti į krepšelį"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Galimi pasirinkimai:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Tęsti apsipirkimą"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Pasirinkimas negalimas"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Tęsti į apmokėjimą"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Produkto paveikslėlis"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Kiekis"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Pašalinti vieną"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Pardavimo užsakymas"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Svetainė"

116
i18n/lv.po Normal file

@ -0,0 +1,116 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Will Sensors, 2023
# Arnis Putniņš <arnis@allegro.lv>, 2023
# Martin Trigaux, 2023
# Armīns Jeltajevs <armins.jeltajevs@gmail.com>, 2024
#
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: Armīns Jeltajevs <armins.jeltajevs@gmail.com>, 2024\n"
"Language-Team: Latvian (https://app.transifex.com/odoo/teams/41243/lv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Kopā:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Pievienot grozam"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Produkta attēls"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Daudzums"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Pasūtījums"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Mājas lapa"

126
i18n/mn.po Normal file

@ -0,0 +1,126 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# nurbakhit nurka <nurbakhit@bumanit.mn>, 2022
# Baskhuu Lodoikhuu <baskhuujacara@gmail.com>, 2022
# Martin Trigaux, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~15.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:57+0000\n"
"Last-Translator: Martin Trigaux, 2022\n"
"Language-Team: Mongolian (https://app.transifex.com/odoo/teams/41243/mn/)\n"
"Language: mn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Quantity</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Сагсанд нэмэх"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Худалдан авалтаа үргэлжлүүлэх"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Худалдан авалтаа дуусгах"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Борлуулалтын захиалга"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This combination does not exist."
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This product has no valid combination."
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Вэбсайт"

126
i18n/nb.po Normal file

@ -0,0 +1,126 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Martin Trigaux, 2022
# Marius Stedjan <marius@stedjan.com>, 2022
# Henning Fyllingsnes, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~15.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:57+0000\n"
"Last-Translator: Henning Fyllingsnes, 2023\n"
"Language-Team: Norwegian Bokmål (https://app.transifex.com/odoo/teams/41243/nb/)\n"
"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Quantity</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Legg i handlekurv funksjon"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Legg i handlekurv"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Fortsett å handle"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Fortsett til utsjekk"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Salgsordre"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This combination does not exist."
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This product has no valid combination."
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Nettsted"

115
i18n/nl.po Normal file

@ -0,0 +1,115 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 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: Wil Odoo, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
"<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Toevoegen aan "
"winkelmandje"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Prijs</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Product</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Totaal:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Aan winkelmandje toevoegen actie"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Voeg één toe"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Toevoegen aan winkelmandje"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Beschikbare opties:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Verder gaan met winkelen"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Laat de gebruiker beslissen (dialoog)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Optie niet beschikbaar"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Ga naar afrekenen"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Productafbeelding"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Hoeveelheid"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Verwijder één"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Verkooporder"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Website"

113
i18n/pl.po Normal file

@ -0,0 +1,113 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 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: Wil Odoo, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/>Dodaj do koszyka"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Cena</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Produkt</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Suma:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Akcja dodaj do koszyka"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Dodaj jeden"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Dodaj do koszyka"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Dostępne Opcje:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Kontynuuj zakupy"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Pozwól zdecydować użytkownikowi (dialog)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Opcja niedostępna"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Kontynuuj aby sprawdzić"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Obraz produktu"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Ilość"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Usuń jeden"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Zamówienie sprzedaży"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Strona internetowa"

116
i18n/pt.po Normal file

@ -0,0 +1,116 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Reinaldo Ramos <reinaldo.ramos@arxi.pt>, 2023
# a75f12d3d37ea5bf159c4b3e85eb30e7_0fa6927, 2023
# Wil Odoo, 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: 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
"<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Adicionar ao carrinho"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Preço</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Total:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Adicionar um"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Continuar a Comprar"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Imagem do Artigo"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Quantidade"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Remover um"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Ordem de Vendas"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Website"

116
i18n/pt_BR.po Normal file

@ -0,0 +1,116 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 2023
# Maitê Dietze, 2023
# Layna Nascimento, 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: Layna Nascimento, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
"<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Adicionar no carrinho"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Preço</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Produto</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Total:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Ação de adicionar ao carrinho"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Adicionar um"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Adicionar ao carrinho"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Opções disponíveis:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Continuar as compras"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Deixar o usuário decidir (diálogo)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Opção não disponível"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Checkout"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Imagem do produto"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Quantidade"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Remover um"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Pedido de venda"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Site"

126
i18n/ro.po Normal file

@ -0,0 +1,126 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Dorin Hongu <dhongu@gmail.com>, 2022
# Martin Trigaux, 2022
# Cozmin Candea <office@terrabit.ro>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~15.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:57+0000\n"
"Last-Translator: Cozmin Candea <office@terrabit.ro>, 2023\n"
"Language-Team: Romanian (https://app.transifex.com/odoo/teams/41243/ro/)\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Quantity</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Acțiune de adăugare în coș"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Adaugă în coș"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Continuați cumpărăturile"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Continuă către plată"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Comandă de vânzare"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This combination does not exist."
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure
msgid "This product has no valid combination."
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Pagină web"

116
i18n/ru.po Normal file

@ -0,0 +1,116 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Martin Trigaux, 2023
# Ivan Kropotkin <yelizariev@itpp.dev>, 2023
# Константин Коровин <korovin74@gmail.com>, 2023
# Wil Odoo, 2024
#
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: 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Добавить в корзину"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Цена</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Продукт</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Общая:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Действие “В корзину”"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Добавить один"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Добавить в корзину"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "\\0"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Продолжить покупки"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Пусть пользователь сам решает (диалог)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Опция недоступна"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Перейти к оформлению заказа"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Изображение товара"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Количество"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Удалить один"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Заказ на продажу"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Сайт"

113
i18n/sk.po Normal file

@ -0,0 +1,113 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 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: 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/>Vlož do košíka"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Celkom:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Pridaj jeden"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Pridať do košíka"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Dostupné možnosti:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Pokračovať v nákupe"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Možnosť nie je k dispozícii"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Pokračujte k pokladni"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Obrázok produktu"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Množstvo"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Odstráň jednu"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Objednávka "
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Webstránka"

118
i18n/sl.po Normal file

@ -0,0 +1,118 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Jasmina Macur <jasmina@hbs.si>, 2023
# Nejc G <nejc@luxim.si>, 2023
# Tadej Lupšina <tadej@hbs.si>, 2023
# matjaz k <matjaz@mentis.si>, 2023
# Tomaž Jug <tomaz@editor.si>, 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: 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Dodaj v košarico"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Cena</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Izdelek</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Skupaj:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Akcija dodajanja v košarico"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Dodajte ga"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Dodaj v voziček"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Možnosti:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Nadaljuj z nakupovanjem"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Naj se uporabnik odloči (pojavno okno)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Možnost ni na voljo"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Zaključi nakup"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Slika izdelka"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Količina"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Odstrani ga"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Prodajni nalog"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Spletna stran"

115
i18n/sr.po Normal file

@ -0,0 +1,115 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Milan Bojovic <mbojovic@outlook.com>, 2023
# Dragan Vukosavljevic <dragan.vukosavljevic@gmail.com>, 2023
# コフスタジオ, 2024
#
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: コフスタジオ, 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Dodaj u korpu"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Price</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Product</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Ukupno:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Dodaj u korpu akcija"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Dodaj jedan"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Dodaj u korpu"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Available Options:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Nastavite sa kupovinom"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Dozvoli korisniku da odluči (dijalog)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Option not available"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Nastavite sa poručivanjem"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Slika proizvoda"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Količina"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Ukloni jedan"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Porudžbenica"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Web stranica"

118
i18n/sv.po Normal file

@ -0,0 +1,118 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Kim Asplund <kim.asplund@gmail.com>, 2023
# Anders Wallenquist <anders.wallenquist@vertel.se>, 2023
# Lasse L, 2023
# Chrille Hedberg <hedberg.chrille@gmail.com>, 2023
# Martin Trigaux, 2023
# Claes-Johan Dahlin, 2024
#
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: Claes-Johan Dahlin, 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Lägg i varukorgen"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Totalt:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Lägg till i varukorgen Händelse"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Lägg till en"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Lägg i varukorgen"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Tillgängliga alternativ:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Fortsätt handla"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Alternativ inte tillgängligt"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Fortsätt till betalning"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Produkt Bild"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Antal"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Ta bort en"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Order"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Webbplats"

114
i18n/th.po Normal file

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 2023
# Rasareeyar Lappiam, 2024
#
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: 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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> เพิ่มในตะกร้า"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">ราคา</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">สินค้า</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>ทั้งหมด:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "การดำเนินการเพิ่มลงตะกร้า"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "เพิ่มหนึ่ง"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "เพิ่มในตะกร้า"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "ตัวเลือกที่มีอยู่:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "ช้อปปิ้งต่อ"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "ให้ผู้ใช้ตัดสินใจ (โต้ตอบ)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "ไม่มีตัวเลือก"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "ดำเนินการชำระเงิน"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "รูปภาพสินค้า"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "ปริมาณ"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "นำออกหนึ่ง"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "คำสั่งขาย"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "เว็บไซต์"

120
i18n/tr.po Normal file

@ -0,0 +1,120 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Mehmet Demirel <mdemirell@gmail.com>, 2023
# Halil, 2023
# Ugur Yilmaz <ugurlu2001@hotmail.com>, 2023
# Tugay Hatıl <tugayh@projetgrup.com>, 2023
# abc Def <hdogan1974@gmail.com>, 2023
# Ediz Duman <neps1192@gmail.com>, 2023
# Martin Trigaux, 2023
# Murat Kaplan <muratk@projetgrup.com>, 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: Murat Kaplan <muratk@projetgrup.com>, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Sepete ekle"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Fiyat</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Ürün</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Toplam:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Sepete Ekle Eylemi"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Ekle"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Sepete Ekle"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Mevcut Seçenekler:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Alışverişi sürdür"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Kullanıcının karar vermesine izin verin (iletişim kutusu)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Seçenek mevcut değil"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Kasa ödemesini Takip et"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Ürün Görseli"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Miktar"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Birini kaldır"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Satış Siparişi"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Websitesi"

115
i18n/uk.po Normal file

@ -0,0 +1,115 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Martin Trigaux, 2023
# Alina Lisnenko <alina.lisnenko@erp.co.ua>, 2023
# Wil Odoo, 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: Wil Odoo, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Додати до кошика"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Ціна</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Товар</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Всього:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Дія додати в кошик"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Додати один"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Додати до кошика"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Доступні функції:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Продовжити покупки"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Дозвольте користувачу обирати (діалог)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Функція не доступна"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Перейти до замовлення"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Зображення товару"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Кількість"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Вилучити один"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Замовлення на продаж"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Веб-сайт"

113
i18n/vi.po Normal file

@ -0,0 +1,113 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 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: Wil Odoo, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/>Thêm vào giỏ hàng"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">Giá</span> "
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">Sản phẩm</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>Tổng:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "Hành động Thêm vào giỏ hàng"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "Thêm"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "Thêm vào giỏ hàng"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "Tuỳ chọn khả dụng:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "Tiếp tục mua hàng"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "Để người dùng quyết định (hộp thoại)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "Tùy chọn không khả dụng"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "Tiến hành thanh toán"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "Hình ảnh sản phẩm"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "Số lượng"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "Xóa một"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "Đơn bán hàng"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "Trang web"

@ -0,0 +1,109 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
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 21:56+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr ""
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr ""
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr ""

114
i18n/zh_CN.po Normal file

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 2023
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 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: 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/>添加到购物车"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">单价</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">产品</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>总计:</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "添加到购物车动作"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "添加一行"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "加入购物车"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "有效选项:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "继续购物"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "让用户决定(对话框)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "选项无效"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "结算"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "产品图像"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "数量"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "移除一行"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "销售订单"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "网站"

113
i18n/zh_TW.po Normal file

@ -0,0 +1,113 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_product_configurator
#
# Translators:
# Wil Odoo, 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: Wil Odoo, 2023\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: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> Add to cart"
msgstr "<i class=\"fa fa-shopping-cart add-optionnal-item\"/> 加入購物車"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Price</span>"
msgstr "<span class=\"label\">價格</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<span class=\"label\">Product</span>"
msgstr "<span class=\"label\">產品</span>"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "<strong>Total:</strong>"
msgstr "<strong>總計</strong>"
#. module: website_sale_product_configurator
#: model:ir.model.fields,field_description:website_sale_product_configurator.field_website__add_to_cart_action
msgid "Add To Cart Action"
msgstr "「加入購物車」操作"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Add one"
msgstr "添加一行"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Add to cart"
msgstr "加入購物車"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Available Options:"
msgstr "可用選項:"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Continue Shopping"
msgstr "繼續購物"
#. module: website_sale_product_configurator
#: model:ir.model.fields.selection,name:website_sale_product_configurator.selection__website__add_to_cart_action__force_dialog
msgid "Let the user decide (dialog)"
msgstr "讓用戶決定(對話框)"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Option not available"
msgstr "選項不可用"
#. module: website_sale_product_configurator
#. odoo-javascript
#: code:addons/website_sale_product_configurator/static/src/js/website_sale_options.js:0
#, python-format
msgid "Proceed to Checkout"
msgstr "前往結賬"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.optional_product_items
msgid "Product Image"
msgstr "產品圖片"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.configure_optional_products
msgid "Quantity"
msgstr "數量"
#. module: website_sale_product_configurator
#: model_terms:ir.ui.view,arch_db:website_sale_product_configurator.product_quantity_config
msgid "Remove one"
msgstr "刪除一行"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_sale_order
msgid "Sales Order"
msgstr "銷售訂單"
#. module: website_sale_product_configurator
#: model:ir.model,name:website_sale_product_configurator.model_website
msgid "Website"
msgstr "網站"

4
models/__init__.py Normal file

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import sale_order
from . import website

25
models/sale_order.py Normal file

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
class SaleOrder(models.Model):
_inherit = "sale.order"
def _cart_find_product_line(
self, product_id=None, line_id=None,
linked_line_id=False, optional_product_ids=None, **kwargs
):
lines = super()._cart_find_product_line(product_id, line_id, **kwargs)
if line_id: # in this case we get the exact line we want, so filtering below would be wrong
return lines
lines = lines.filtered(lambda line: line.linked_line_id.id == linked_line_id)
if optional_product_ids:
# only match the lines with the same chosen optional products on the existing lines
lines = lines.filtered(lambda line: optional_product_ids == set(line.option_line_ids.product_id.id))
else:
lines = lines.filtered(lambda line: not line.option_line_ids)
return lines

12
models/website.py Normal file

@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class Website(models.Model):
_inherit = 'website'
add_to_cart_action = fields.Selection(
selection_add=[('force_dialog', "Let the user decide (dialog)")],
ondelete={'force_dialog': 'set default'})

@ -0,0 +1,540 @@
/** @odoo-module */
import Dialog from '@web/legacy/js/core/dialog';
import VariantMixin from '@website_sale/js/sale_variant_mixin';
import { uniqueId } from '@web/core/utils/functions';
import { jsonrpc } from '@web/core/network/rpc_service';
export const OptionalProductsModal = Dialog.extend(VariantMixin, {
events: Object.assign({}, Dialog.prototype.events, VariantMixin.events, {
'click a.js_add, a.js_remove': '_onAddOrRemoveOption',
'click button.js_add_cart_json': 'onClickAddCartJSON',
'change .in_cart input.js_quantity': '_onChangeQuantity',
'change .js_raw_price': '_computePriceTotal'
}),
/**
* Initializes the optional products modal
*
* @override
* @param {$.Element} parent The parent container
* @param {Object} params
* @param {integer} params.pricelistId
* @param {boolean} params.isWebsite If we're on a web shop page, we need some
* custom behavior
* @param {string} params.okButtonText The text to apply on the "ok" button, typically
* "Add" for the sale order and "Proceed to checkout" on the web shop
* @param {string} params.cancelButtonText same as "params.okButtonText" but
* for the cancel button
* @param {integer} params.previousModalHeight used to configure a min height on the modal-content.
* This parameter is provided by the product configurator to "cover" its modal by making
* this one big enough. This way the user can't see multiple buttons (which can be confusing).
* @param {Object} params.rootProduct The root product of the optional products window
* @param {integer} params.rootProduct.product_id
* @param {integer} params.rootProduct.quantity
* @param {Array} params.rootProduct.variant_values
* @param {Array} params.rootProduct.product_custom_attribute_values
* @param {Array} params.rootProduct.no_variant_attribute_values
*/
init: function (parent, params) {
var self = this;
var options = Object.assign({
size: 'large',
buttons: [{
text: params.okButtonText,
click: this._onConfirmButtonClick,
// the o_sale_product_configurator_edit class is used for tours.
classes: 'btn-primary o_sale_product_configurator_edit'
}, {
text: params.cancelButtonText,
click: this._onCancelButtonClick
}],
technical: !params.isWebsite,
}, params || {});
this._super(parent, options);
this.isWebsite = params.isWebsite;
this.forceDialog = params.forceDialog;
this.dialogClass = 'oe_advanced_configurator_modal' + (params.isWebsite ? ' oe_website_sale' : '');
this.context = params.context;
this.rootProduct = params.rootProduct;
this.container = parent;
this.pricelistId = params.pricelistId;
this.previousModalHeight = params.previousModalHeight;
this.mode = params.mode;
this.dialogClass = 'oe_advanced_configurator_modal';
this._productImageField = 'image_128';
this._opened.then(function () {
if (self.previousModalHeight) {
self.$el.closest('.modal-content').css('min-height', self.previousModalHeight + 'px');
}
});
this.rpc = this.bindService("rpc");
},
/**
* @override
*/
willStart: function () {
var self = this;
var getModalContent = jsonrpc("/sale_product_configurator/show_advanced_configurator", {
mode: self.mode,
product_id: self.rootProduct.product_id,
variant_values: self.rootProduct.variant_values,
product_custom_attribute_values: self.rootProduct.product_custom_attribute_values,
pricelist_id: self.pricelistId || false,
add_qty: self.rootProduct.quantity,
force_dialog: self.forceDialog,
no_attribute: self.rootProduct.no_variant_attribute_values,
custom_attribute: self.rootProduct.product_custom_attribute_values,
context: Object.assign({'quantity': self.rootProduct.quantity}, this.context),
})
.then(function (modalContent) {
if (modalContent) {
var $modalContent = $(modalContent);
$modalContent = self._postProcessContent($modalContent);
self.$content = $modalContent;
} else {
self.trigger('options_empty');
self.preventOpening = true;
}
});
var parentInit = self._super.apply(self, arguments);
return Promise.all([getModalContent, parentInit]);
},
/**
* This is overridden to append the modal to the provided container (see init("parent")).
* We need this to have the modal contained in the web shop product form.
* The additional products data will then be contained in the form and sent on submit.
*
* @override
*/
open: function (options) {
$('.tooltip').remove(); // remove open tooltip if any to prevent them staying when modal is opened
var self = this;
this.appendTo($('<div/>')).then(function () {
if (!self.preventOpening) {
self.$modal.find(".modal-body").replaceWith(self.$el);
self.$modal.attr('open', true);
self.$modal.appendTo(self.container);
const modal = new Modal(self.$modal[0], {
focus: true,
});
modal.show();
self._openedResolver();
}
});
if (options && options.shouldFocusButtons) {
self._onFocusControlButton();
}
return self;
},
/**
* Will update quantity input to synchronize with previous window
*
* @override
*/
start: function () {
var def = this._super.apply(this, arguments);
var self = this;
this.$el.find('input[name="add_qty"]').val(this.rootProduct.quantity);
// set a unique id to each row for options hierarchy
var $products = this.$el.find('tr.js_product').toArray();
$products.forEach((el) => {
var $el = $(el);
var uniqueId = self._getUniqueId(el);
var productId = parseInt($el.find('input.product_id').val(), 10);
if (productId === self.rootProduct.product_id) {
self.rootProduct.unique_id = uniqueId;
} else {
el.dataset.parentUniqueId = self.rootProduct.unique_id;
}
});
return def.then(function () {
// This has to be triggered to compute the "out of stock" feature
self._opened.then(function () {
self.triggerVariantChange(self.$el);
});
});
},
//--------------------------------------------------------------------------
// Public
//--------------------------------------------------------------------------
/**
* Returns the list of selected products.
* The root product is added on top of the list.
*
* @returns {Array} products
* {integer} product_id
* {integer} quantity
* {Array} product_custom_variant_values
* {Array} no_variant_attribute_values
* @public
*/
getAndCreateSelectedProducts: async function () {
var self = this;
const products = [];
let productCustomVariantValues;
let noVariantAttributeValues;
for (const product of self.$modal.find('.js_product.in_cart')) {
var $item = $(product);
var quantity = parseFloat($item.find('input[name="add_qty"]').val().replace(',', '.') || 1);
var parentUniqueId = product.dataset.parentUniqueId;
var uniqueId = product.dataset.uniqueId;
productCustomVariantValues = $item.find('.custom-attribute-info').data("attribute-value") || self.getCustomVariantValues($item);
noVariantAttributeValues = $item.find('.no-attribute-info').data("attribute-value") || self.getNoVariantAttributeValues($item);
const productID = await self.selectOrCreateProduct(
$item,
parseInt($item.find('input.product_id').val(), 10),
parseInt($item.find('input.product_template_id').val(), 10),
true
);
products.push({
'product_id': productID,
'product_template_id': parseInt($item.find('input.product_template_id').val(), 10),
'quantity': quantity,
'parent_unique_id': parentUniqueId,
'unique_id': uniqueId,
'product_custom_attribute_values': productCustomVariantValues,
'no_variant_attribute_values': noVariantAttributeValues
});
}
return products;
},
// ------------------------------------------
// Private
// ------------------------------------------
/**
* Adds the product image and updates the product description
* based on attribute values that are either "no variant" or "custom".
*
* @private
*/
_postProcessContent: function ($modalContent) {
var productId = this.rootProduct.product_id;
$modalContent
.find('img:first')
.attr("src", "/web/image/product.product/" + productId + "/image_128");
if (this.rootProduct &&
(this.rootProduct.product_custom_attribute_values ||
this.rootProduct.no_variant_attribute_values)) {
var $productDescription = $modalContent
.find('.main_product')
.find('td.td-product_name div.text-muted.small > div:first');
var $updatedDescription = $('<div/>');
$updatedDescription.append($('<p>', {
text: $productDescription.text()
}));
$.each(this.rootProduct.product_custom_attribute_values, function () {
if (this.custom_value) {
const $customInput = $modalContent
.find(".main_product [data-is_custom='True']")
.closest(`[data-value_id='${this.custom_product_template_attribute_value_id.res_id}']`);
$customInput.attr('previous_custom_value', this.custom_value);
VariantMixin.handleCustomValues($customInput);
}
});
$.each(this.rootProduct.no_variant_attribute_values, function () {
if (this.is_custom !== 'True') {
var $currentDescription = $updatedDescription.find(`div[name=ptal-${this.id}]`);
if ($currentDescription?.length > 0) { // one row per multicheckbox
$currentDescription.text($currentDescription.text() + ', ' + this.attribute_value_name);
} else {
$updatedDescription.append($('<div>', {
text: this.attribute_name + ': ' + this.attribute_value_name,
name: `ptal-${this.id}`,
}));
}
}
});
$productDescription.replaceWith($updatedDescription);
}
return $modalContent;
},
/**
* @private
*/
_onConfirmButtonClick: function () {
this.trigger('confirm');
this.close();
},
/**
* @private
*/
_onCancelButtonClick: function () {
this.trigger('back');
this.close();
},
/**
* Will add/remove the option, that includes:
* - Moving it to the correct DOM section
* and possibly under its parent product
* - Hiding attribute values selection and showing the quantity
* - Creating the product if it's in "dynamic" mode (see product_attribute.create_variant)
* - Updating the description based on custom/no_create attribute values
* - Removing optional products if parent product is removed
* - Computing the total price
*
* @private
* @param {MouseEvent} ev
*/
_onAddOrRemoveOption: function (ev) {
ev.preventDefault();
var self = this;
var $target = $(ev.currentTarget);
var $modal = $target.parents('.oe_advanced_configurator_modal');
var $parent = $target.parents('.js_product:first');
$parent.find("a.js_add, span.js_remove").toggleClass('d-none');
$parent.find(".js_remove");
var productTemplateId = $parent.find(".product_template_id").val();
if ($target.hasClass('js_add')) {
self._onAddOption($modal, $parent, productTemplateId);
} else {
self._onRemoveOption($modal, $parent);
}
self._computePriceTotal();
},
/**
* @private
* @see _onAddOrRemoveOption
* @param {$.Element} $modal
* @param {$.Element} $parent
* @param {integer} productTemplateId
*/
_onAddOption: function ($modal, $parent, productTemplateId) {
var self = this;
var $selectOptionsText = $modal.find('.o_select_options');
var parentUniqueId = $parent[0].dataset.parentUniqueId;
var $optionParent = $modal.find('tr.js_product[data-unique-id="' + parentUniqueId + '"]');
// remove attribute values selection and update + show quantity input
$parent.find('.td-product_name').removeAttr("colspan");
$parent.find('.td-qty').removeClass('d-none');
var productCustomVariantValues = self.getCustomVariantValues($parent);
var noVariantAttributeValues = self.getNoVariantAttributeValues($parent);
if (productCustomVariantValues || noVariantAttributeValues) {
var $productDescription = $parent
.find('td.td-product_name div.float-start');
var $customAttributeValuesDescription = $('<div>', {
class: 'custom_attribute_values_description text-muted small'
});
if (productCustomVariantValues.length !== 0 || noVariantAttributeValues.length !== 0) {
$customAttributeValuesDescription.append($('<br/>'));
}
$.each(productCustomVariantValues, function (){
$customAttributeValuesDescription.append($('<div>', {
text: this.attribute_value_name + ': ' + this.custom_value
}));
});
$.each(noVariantAttributeValues, function (){
if (this.is_custom !== 'True'){
var $currentDescription = $customAttributeValuesDescription.find(`div[name=ptal-${this.id}]`);
if ($currentDescription?.length > 0) { // one row per multicheckbox
$currentDescription.text($currentDescription.text() + ', ' + this.attribute_value_name);
} else {
$customAttributeValuesDescription.append($('<div>', {
text: this.attribute_name + ': ' + this.attribute_value_name,
name: `ptal-${this.id}`,
}));
}
}
});
$productDescription.append($customAttributeValuesDescription);
}
// place it after its parent and its parent options
var $tmpOptionParent = $optionParent;
while ($tmpOptionParent.length) {
$optionParent = $tmpOptionParent;
$tmpOptionParent = $modal.find('tr.js_product.in_cart[data-parent-unique-id="' + $optionParent[0].dataset.uniqueId + '"]').last();
}
$optionParent.after($parent);
$parent.addClass('in_cart');
this.selectOrCreateProduct(
$parent,
$parent.find('.product_id').val(),
productTemplateId,
true
).then(function (productId) {
$parent.find('.product_id').val(productId);
jsonrpc("/sale_product_configurator/optional_product_items", {
'product_id': productId,
'pricelist_id': self.pricelistId || false,
}).then(function (addedItem) {
var $addedItem = $(addedItem);
$modal.find('tr:last').after($addedItem);
self.$el.find('input[name="add_qty"]').trigger('change');
self.triggerVariantChange($addedItem);
// add a unique id to the new products
var parentUniqueId = $parent[0].dataset.uniqueId;
var parentQty = $parent.find('input[name="add_qty"]').val();
$addedItem.filter('.js_product').each(function () {
var $el = $(this);
var uniqueId = self._getUniqueId(this);
this.dataset.uniqueId = uniqueId;
this.dataset.parentUniqueId = parentUniqueId;
$el.find('input[name="add_qty"]').val(parentQty);
});
if ($selectOptionsText.nextAll('.js_product').length === 0) {
// no more optional products to select -> hide the header
$selectOptionsText.hide();
}
});
});
},
/**
* @private
* @see _onAddOrRemoveOption
* @param {$.Element} $modal
* @param {$.Element} $parent
*/
_onRemoveOption: function ($modal, $parent) {
// restore attribute values selection
var uniqueId = $parent[0].dataset.parentUniqueId;
var qty = $modal.find('tr.js_product.in_cart[data-unique-id="' + uniqueId + '"]').find('input[name="add_qty"]').val();
$parent.removeClass('in_cart');
$parent.find('.td-product_name').attr("colspan", 2);
$parent.find('.td-qty').addClass('d-none');
$parent.find('input[name="add_qty"]').val(qty);
$parent.find('.custom_attribute_values_description').remove();
$modal.find('.o_select_options').show();
var productUniqueId = $parent[0].dataset.uniqueId;
this._removeOptionOption($modal, productUniqueId);
$modal.find('tr:last').after($parent);
},
/**
* If the removed product had optional products, remove them as well
*
* @private
* @param {$.Element} $modal
* @param {integer} optionUniqueId The removed optional product id
*/
_removeOptionOption: function ($modal, optionUniqueId) {
var self = this;
$modal.find('tr.js_product[data-parent-unique-id="' + optionUniqueId + '"]').each(function () {
var uniqueId = this.dataset.uniqueId;
$(this).remove();
self._removeOptionOption($modal, uniqueId);
});
},
/**
* @override
*/
_onChangeCombination: function (ev, $parent, combination) {
$parent
.find('.td-product_name .product-name')
.first()
.text(combination.display_name);
VariantMixin._onChangeCombination.apply(this, arguments);
this._computePriceTotal();
},
/**
* Update price total when the quantity of a product is changed
*
* @private
* @param {MouseEvent} ev
*/
_onChangeQuantity: function (ev) {
var $product = $(ev.target.closest('tr.js_product'));
var qty = parseFloat($(ev.currentTarget).val());
var uniqueId = $product[0].dataset.uniqueId;
this.$el.find('tr.js_product:not(.in_cart)[data-parent-unique-id="' + uniqueId + '"] input[name="add_qty"]').each(function () {
$(this).val(qty);
});
if (this._triggerPriceUpdateOnChangeQuantity()) {
this.onChangeAddQuantity(ev);
}
if ($product.hasClass('main_product')) {
this.rootProduct.quantity = qty;
}
this.trigger('update_quantity', this.rootProduct.quantity);
this._computePriceTotal();
},
/**
* When a product is added or when the quantity is changed,
* we need to refresh the total price row
*/
_computePriceTotal: function () {
if (this.$modal.find('.js_price_total').length) {
var price = 0;
this.$modal.find('.js_product.in_cart').each(function () {
var quantity = parseFloat($(this).find('input[name="add_qty"]').first().val().replace(',', '.') || 1);
price += parseFloat($(this).find('.js_raw_price').html()) * quantity;
});
this.$modal.find('.js_price_total .oe_currency_value').text(
this._priceToStr(parseFloat(price))
);
}
},
/**
* Extension point for website_sale
*
* @private
*/
_triggerPriceUpdateOnChangeQuantity: function () {
return !this.isWebsite;
},
/**
* Returns a unique id for `$el`.
*
* @private
* @param {Element} el
* @returns {integer}
*/
_getUniqueId: function (el) {
if (!el.dataset.uniqueId) {
el.dataset.uniqueId = parseInt(uniqueId(), 10);
}
return el.dataset.uniqueId;
},
});

@ -0,0 +1,124 @@
/** @odoo-module **/
import publicWidget from "@web/legacy/js/public/public_widget";
import wSaleUtils from "@website_sale/js/website_sale_utils";
import { OptionalProductsModal } from "@website_sale_product_configurator/js/sale_product_configurator_modal";
import "@website_sale/js/website_sale";
import { _t } from "@web/core/l10n/translation";
publicWidget.registry.WebsiteSale.include({
//--------------------------------------------------------------------------
// Private
//--------------------------------------------------------------------------
_onProductReady: function () {
if (this.isBuyNow) {
return this._submitForm();
}
this.optionalProductsModal = new OptionalProductsModal(this.$form, {
rootProduct: this.rootProduct,
isWebsite: true,
okButtonText: _t('Proceed to Checkout'),
cancelButtonText: _t('Continue Shopping'),
title: _t('Add to cart'),
context: this._getContext(),
forceDialog: this.forceDialog,
}).open();
this.optionalProductsModal.on('options_empty', null, this._submitForm.bind(this));
this.optionalProductsModal.on('update_quantity', null, this._onOptionsUpdateQuantity.bind(this));
this.optionalProductsModal.on('confirm', null, this._onModalSubmit.bind(this, true));
this.optionalProductsModal.on('back', null, this._onModalSubmit.bind(this, false));
return this.optionalProductsModal.opened();
},
/**
* Overridden to resolve _opened promise on modal
* when stayOnPageOption is activated.
*
* @override
*/
_submitForm() {
var ret = this._super(...arguments);
if (this.optionalProductsModal && this.stayOnPageOption) {
ret.then(()=>{
this.optionalProductsModal._openedResolver()
});
}
return ret;
},
/**
* Update web shop base form quantity
* when quantity is updated in the optional products window
*
* @private
* @param {integer} quantity
*/
_onOptionsUpdateQuantity: function (quantity) {
var $qtyInput = this.$form
.find('.js_main_product input[name="add_qty"]')
.first();
if ($qtyInput.length) {
$qtyInput.val(quantity).trigger('change');
} else {
// This handles the case when the "Select Quantity" customize show
// is disabled, and therefore the above selector does not find an
// element.
// To avoid duplicating all RPC, only trigger the variant change if
// it is not already done from the above trigger.
this.optionalProductsModal.triggerVariantChange(this.optionalProductsModal.$el);
}
},
/**
* Submits the form with additional parameters
* - lang
* - product_custom_attribute_values: The products custom variant values
*
* @private
* @param {Boolean} goToShop Triggers a page refresh to the url "shop/cart"
*/
_onModalSubmit: function (goToShop) {
const mainProduct = this.$('.js_product.in_cart.main_product').children('.product_id');
const productTrackingInfo = mainProduct.data('product-tracking-info');
if (productTrackingInfo) {
const currency = productTrackingInfo['currency'];
const productsTrackingInfo = [];
this.$('.js_product.in_cart').each((i, el) => {
productsTrackingInfo.push({
'item_id': el.getElementsByClassName('product_id')[0].value,
'item_name': el.getElementsByClassName('product_display_name')[0].textContent,
'quantity': el.getElementsByClassName('js_quantity')[0].value,
'currency': currency,
'price': el.getElementsByClassName('oe_price')[0].getElementsByClassName('oe_currency_value')[0].textContent,
});
});
if (productsTrackingInfo) {
this.$el.trigger('add_to_cart_event', productsTrackingInfo);
}
}
const callService = this.call.bind(this)
this.optionalProductsModal.getAndCreateSelectedProducts()
.then((products) => {
const productAndOptions = JSON.stringify(products);
this.rpc('/shop/cart/update_option', {
product_and_options: productAndOptions,
...this._getOptionalCombinationInfoParam(),
}).then(function (values) {
if (goToShop) {
window.location.pathname = "/shop/cart";
} else {
wSaleUtils.updateCartNavBar(values);
wSaleUtils.showCartNotification(callService, values.notification_info);
}
}).then(() => {
this._getCombinationInfo($.Event('click', {target: $("#add_to_cart")}));
});
});
},
});
export default publicWidget.registry.WebsiteSaleOptions;

@ -0,0 +1,15 @@
.css_not_available.js_product {
.product_price {
display: none !important;
}
}
div#modal_optional_products table tr td {
border: 0;
}
@include media-breakpoint-down(md) {
div#modal_optional_products .td-qty {
display: none;
}
}

@ -0,0 +1,20 @@
/** @odoo-module **/
/**
* Add custom steps to handle the optional products modal introduced
* by the product configurator module.
*/
import { registry } from "@web/core/registry";
import { patch } from "@web/core/utils/patch";
import "@website_sale/../tests/tours/website_sale_buy";
patch(registry.category("web_tour.tours").get("shop_buy_product"), {
steps() {
const originalSteps = super.steps();
const addCartStepIndex = originalSteps.findIndex((step) => step.id === "add_cart_step");
originalSteps.splice(addCartStepIndex + 1, 1, {
content: "click in modal on 'Proceed to checkout' button",
trigger: 'button:contains("Proceed to Checkout")',
});
return originalSteps;
},
});

@ -0,0 +1,19 @@
/** @odoo-module **/
import { registry } from "@web/core/registry";
registry.category("web_tour.tours").add('website_sale_product_configurator_optional_products_tour', {
test: true,
steps: () => [{
name: 'Click Aluminium Option',
trigger: 'ul.js_add_cart_variants span:contains("Aluminium")',
extra_trigger: 'ul.js_add_cart_variants span:contains("Aluminium") ~ span.badge:contains("50.40")',
}, {
name: 'Add to cart',
trigger: '#add_to_cart',
}, {
name: 'Check that modal was opened with the correct variant price',
trigger: 'main.oe_advanced_configurator_modal',
extra_trigger: 'main.oe_advanced_configurator_modal span:contains("800.40")',
run: () => {},
}]});

@ -0,0 +1,57 @@
/** @odoo-module **/
import { registry } from "@web/core/registry";
var optionVariantImage;
registry.category("web_tour.tours").add("a_shop_custom_attribute_value", {
url: "/shop?search=Customizable Desk",
test: true,
steps: () => [{
content: "click on Customizable Desk",
trigger: '.oe_product_cart a:contains("Customizable Desk (TEST)")',
}, {
trigger: 'a.js_add_cart_json:has(i.fa-plus)',
run: 'click',
}, {
trigger: 'span.oe_currency_value:contains(750)',
run: function (){}, // check
}, {
id: 'add_cart_step',
trigger: 'a:contains(Add to cart)',
run: 'click',
}, {
trigger: '.oe_advanced_configurator_modal .js_product:eq(1) div:contains("Conference Chair (TEST) (Steel)")',
run: function () {
optionVariantImage = $('.oe_advanced_configurator_modal .js_product:eq(1) img.variant_image').attr('src');
}
}, {
trigger: '.oe_advanced_configurator_modal .js_product:eq(1) input[data-value_name="Aluminium"]',
}, {
trigger: '.oe_advanced_configurator_modal .js_product:eq(1) div:contains("Conference Chair (TEST) (Aluminium)")',
run: function () {
var newVariantImage = $('.oe_advanced_configurator_modal .js_product:eq(1) img.variant_image').attr('src');
if (newVariantImage !== optionVariantImage) {
$('<p>').text('image variant option src changed').insertAfter('.oe_advanced_configurator_modal .js_product:eq(1) .product-name');
}
}
}, {
extra_trigger: '.oe_advanced_configurator_modal .js_product:eq(1) div:contains("image variant option src changed")',
trigger: '.oe_advanced_configurator_modal .js_product:eq(1) input[data-value_name="Steel"]',
}, {
trigger: '.oe_price span:contains(22.90)',
run: function (){}, // check
}, {
trigger: '.oe_advanced_configurator_modal .js_product:has(strong:contains(Conference Chair)) .js_add',
extra_trigger: '.oe_advanced_configurator_modal .js_product:has(strong:contains(Conference Chair))',
run: 'click'
}, {
trigger: '.oe_advanced_configurator_modal .js_product:has(strong:contains(Chair floor protection)) .js_add',
extra_trigger: '.oe_advanced_configurator_modal .js_product:has(strong:contains(Chair floor protection))',
run: 'click'
}, {
trigger: 'span:contains(1,557.00)',
run: function (){}, // check
}, {
trigger: 'button:has(span:contains(Proceed to Checkout))',
run: 'click',
}]});

@ -0,0 +1,65 @@
/** @odoo-module **/
import { registry } from "@web/core/registry";
// This tour relies on a data created from the python test.
registry.category("web_tour.tours").add('tour_variants_modal_window', {
test: true,
url: '/shop?search=Short (TEST)',
steps: () => [
{
content: "Select the Short (TEST) product",
trigger: '.oe_product_cart a:containsExact("Short (TEST)")',
},
{
content: "Click on the always variant",
trigger: 'input[data-attribute_name="Always attribute size"][data-value_name="M always"]',
},
{
content: "Click on the dynamic variant",
trigger: 'input[data-attribute_name="Dynamic attribute size"][data-value_name="M dynamic"]',
},
{
content: "Click on the never variant",
trigger: 'input[data-attribute_name="Never attribute size"][data-value_name="M never"]',
},
{
content: "Click on the never custom variant",
trigger: 'input[data-attribute_name="Never attribute size custom"][data-value_name="Yes never custom"]',
},
{
trigger: 'input.variant_custom_value',
run: 'text TEST',
},
{
content: "Click add to cart",
trigger: '#add_to_cart',
},
{
content: "Go through the modal window of the product configurator",
extra_trigger: '.oe_advanced_configurator_modal',
trigger: 'button span:contains(Proceed to Checkout)',
run: 'click'
},
{
content: "Check the product is in the cart",
trigger: 'div>a>h6:contains(Short (TEST))',
},
{
content: "Check always variant",
trigger: 'div>a>h6:contains(M always)',
},
{
content: "Check dynamic variant",
trigger: 'div>a>h6:contains(M dynamic)',
},
{
content: "Check never variant",
trigger: 'div.text-muted>span:contains(Never attribute size: M never)',
},
{
content: "Check never custom variant",
trigger: 'div.text-muted>span:contains(Never attribute size custom: Yes never custom: TEST)',
isCheck: true,
}
]});

5
tests/__init__.py Normal file

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import test_customize
from . import test_website_sale_configurator

15
tests/test_customize.py Normal file

@ -0,0 +1,15 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests.common import HttpCase
from odoo.addons.sale_product_configurator.tests.common import TestProductConfiguratorCommon
from odoo.tests import tagged
@tagged('post_install', '-at_install')
class TestUi(HttpCase, TestProductConfiguratorCommon):
def test_01_admin_shop_custom_attribute_value_tour(self):
# Ensure that no pricelist is available during the test.
# This ensures that tours which triggers on the amounts will run properly.
self.env['product.pricelist'].search([]).action_archive()
self.start_tour("/", 'a_shop_custom_attribute_value', login="admin")

@ -0,0 +1,148 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests import tagged
from odoo.addons.sale_product_configurator.tests.common import TestProductConfiguratorCommon
from odoo.addons.base.tests.common import HttpCaseWithUserPortal, HttpCaseWithUserDemo
@tagged('post_install', '-at_install')
class TestWebsiteSaleProductConfigurator(TestProductConfiguratorCommon, HttpCaseWithUserPortal, HttpCaseWithUserDemo):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.product_product_custo_desk.write({
'optional_product_ids': [(4, cls.product_product_conf_chair.id)],
'website_published': True,
})
cls.product_product_conf_chair.website_published = True
ptav_ids = cls.product_product_custo_desk.attribute_line_ids.product_template_value_ids
ptav_ids.filtered(lambda ptav: ptav.name == 'Aluminium').price_extra = 50.4
def test_01_product_configurator_variant_price(self):
product = self.product_product_conf_chair.with_user(self.user_portal)
ptav_ids = self.product_product_custo_desk.attribute_line_ids.product_template_value_ids
parent_combination = ptav_ids.filtered(lambda ptav: ptav.name in ('Aluminium', 'White'))
self.assertEqual(product._is_add_to_cart_possible(parent_combination), True)
# This is a regression test. The product configurator menu is proposed
# whenever a product has optional products. However, as the end user
# already picked a variant, the variant configuration menu is omitted
# in this case. However, we still want to make sure that the correct
# variant attributes are taken into account when calculating the price.
url = self.product_product_custo_desk.website_url
# Ensure that no pricelist is available during the test.
# This ensures that tours with triggers on the amounts will run properly.
self.env['product.pricelist'].search([]).action_archive()
self.start_tour(url, 'website_sale_product_configurator_optional_products_tour', login='portal')
def test_02_variants_modal_window(self):
"""
The objective is to verify that the data concerning the variants are well transmitted
even when passing through a modal window (product configurator).
We create a product with the different attributes and we will modify them.
If the information is not correctly transmitted,
the default values of the variants will be used (the first one).
"""
always_attribute, dynamic_attribute, never_attribute, never_attribute_custom = self.env['product.attribute'].create([
{
'name': 'Always attribute size',
'display_type': 'radio',
'create_variant': 'always'
},
{
'name': 'Dynamic attribute size',
'display_type': 'radio',
'create_variant': 'dynamic'
},
{
'name': 'Never attribute size',
'display_type': 'radio',
'create_variant': 'no_variant'
},
{
'name': 'Never attribute size custom',
'display_type': 'radio',
'create_variant': 'no_variant'
}
])
always_S, always_M, dynamic_S, dynamic_M, never_S, never_M, never_custom_no, never_custom_yes = self.env['product.attribute.value'].create([
{
'name': 'S always',
'attribute_id': always_attribute.id,
},
{
'name': 'M always',
'attribute_id': always_attribute.id,
},
{
'name': 'S dynamic',
'attribute_id': dynamic_attribute.id,
},
{
'name': 'M dynamic',
'attribute_id': dynamic_attribute.id,
},
{
'name': 'S never',
'attribute_id': never_attribute.id,
},
{
'name': 'M never',
'attribute_id': never_attribute.id,
},
{
'name': 'No never custom',
'attribute_id': never_attribute_custom.id,
},
{
'name': 'Yes never custom',
'attribute_id': never_attribute_custom.id,
'is_custom': True,
}
])
product_short = self.env['product.template'].create({
'name': 'Short (TEST)',
'website_published': True,
})
self.env['product.template.attribute.line'].create([
{
'product_tmpl_id': product_short.id,
'attribute_id': always_attribute.id,
'value_ids': [(4, always_S.id), (4, always_M.id)],
},
{
'product_tmpl_id': product_short.id,
'attribute_id': dynamic_attribute.id,
'value_ids': [(4, dynamic_S.id), (4, dynamic_M.id)],
},
{
'product_tmpl_id': product_short.id,
'attribute_id': never_attribute.id,
'value_ids': [(4, never_S.id), (4, never_M.id)],
},
{
'product_tmpl_id': product_short.id,
'attribute_id': never_attribute_custom.id,
'value_ids': [(4, never_custom_no.id), (4, never_custom_yes.id)],
},
])
# Add an optional product to trigger the modal window
optional_product = self.env['product.template'].create({
'name': 'Optional product (TEST)',
'website_published': True,
})
product_short.optional_product_ids = [(4, optional_product.id)]
old_sale_order = self.env['sale.order'].search([])
self.start_tour("/", 'tour_variants_modal_window', login="demo")
# Check the name of the created sale order line
new_sale_order = self.env['sale.order'].search([]) - old_sale_order
new_order_line = new_sale_order.order_line
self.assertEqual(new_order_line.name, 'Short (TEST) (M always, M dynamic)\n\nNever attribute size: M never\nNever attribute size custom: Yes never custom: TEST')

172
views/templates.xml Normal file

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="optional_products_modal" name="Optional Products">
<main class="modal-body">
<t t-call="website_sale_product_configurator.configure_optional_products" />
</main>
</template>
<template id="product_quantity_config">
<div t-if="is_view_active('website_sale.product_quantity')"
class="css_quantity input-group">
<button t-attf-href="#" class="btn btn-primary float_left js_add_cart_json d-none d-md-inline-block" aria-label="Remove one" title="Remove one">
<i class="fa fa-minus"></i>
</button>
<input type="text"
class="js_quantity form-control quantity text-center"
style="max-width: 4rem"
data-min="1"
name="add_qty"
t-att-value="add_qty or 1"/>
<button t-attf-href="#" class="btn btn-primary float_left js_add_cart_json d-none d-md-inline-block" aria-label="Add one" title="Add one">
<i class="fa fa-plus"></i>
</button>
</div>
<input t-else="" type="hidden" class="d-none js_quantity form-control quantity" name="add_qty" t-att-value="add_qty or 1"/>
</template>
<!-- modal: full table, currenclty selected products at top -->
<template id="configure_optional_products">
<table class="table table-striped table-sm">
<thead>
<tr>
<th class="td-img">
<span class="label">Product</span>
</th>
<th>
<span class="label"></span>
</th>
<th class="text-center td-qty">
<span t-if="is_view_active('website_sale.product_quantity')"
class="label">
Quantity
</span>
</th>
<th class="text-center td-price">
<span class="label">Price</span>
</th>
</tr>
</thead>
<tbody>
<tr class="js_product in_cart main_product">
<input type="hidden" class="product_template_id" t-att-value="product_template.id"/>
<input type="hidden"
class="product_id"
t-att-value="product.id"
t-att-data-product-tracking-info="'product_tracking_info' in combination_info and json.dumps(combination_info['product_tracking_info'])"/>
<td class="td-img">
<img class="product_detail_img" t-if="product" t-att-src="'/web/image/product.product/%s/image_128' % product_id" alt="Product Image"/>
<img class="product_detail_img" t-else="" t-att-src="'/web/image/product.template/%s/image_128' % product_template_id" alt="Product Image"/>
</td>
<td class="td-product_name">
<strong class="product-name product_display_name" t-out="combination_info['display_name']"/>
<div class="text-muted small">
<div t-field="product.description_sale"/>
<div class="js_attributes"/>
<div t-if="product_custom_attribute_values">
<t t-foreach="product_custom_attribute_values" t-as="custom_value">
<span t-esc="custom_value.get('attribute_value_name', None)"/>: <span t-esc="custom_value['custom_value']"/>
<input type="hidden" class="variant_custom_value"
t-att-data-custom_product_template_attribute_value_id="custom_value['custom_product_template_attribute_value_id']"
t-att-data-attribute_value_name="custom_value.get('attribute_value_name', None)"
t-att-value="custom_value['custom_value']"/>
</t>
</div>
</div>
<div>
<t t-if="product and not combination">
<t t-set="combination" t-value="product_template._get_first_possible_combination()"/>
</t>
<t t-if="combination and not already_configured" t-call="website_sale.variants">
<t t-set="ul_class" t-valuef="flex-column" />
<t t-set="product" t-value="product_template"/>
</t>
<t t-else="">
<ul class="d-none js_add_cart_variants mb-0" t-att-data-attribute_exclusions="{'exclusions: []'}"/>
<div class="d-none oe_unchanged_value_ids" t-att-data-unchanged_value_ids="variant_values" ></div>
<!-- Keep the information to use it later (when leaving the modal window) -->
<div class="d-none no-attribute-info" t-att-data-attribute-value="json.dumps(no_attribute)"></div>
<div class="d-none custom-attribute-info" t-att-data-attribute-value="json.dumps(custom_attribute)"></div>
</t>
</div>
</td>
<td class="text-center td-qty">
<t t-call="website_sale_product_configurator.product_quantity_config"/>
</td>
<td class="text-center td-price" name="price">
<div t-attf-class="text-danger oe_default_price oe_striked_price {{'' if combination_info['has_discounted_price'] else 'd-none'}}"
t-out="combination_info['list_price']"
t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<span class="oe_price product_id" style="white-space: nowrap;"
t-att-data-product-id="product.id"
t-out="combination_info['price']"
t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<span class="js_raw_price d-none" t-out="product._get_contextual_price()"/>
<p class="css_not_available_msg alert alert-warning">Option not available</p>
</td>
</tr>
<tr class="o_total_row">
<td colspan="4" class="text-end">
<strong>Total:</strong>
<span class="js_price_total fw-bold" style="white-space: nowrap;"
t-att-data-product-id="product.id"
t-out="combination_info['price'] * (add_qty or 1)"
t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
</td>
</tr>
<t t-if="product.optional_product_ids and mode != 'edit'">
<tr class="o_select_options"><td colspan="4"><h4>Available Options:</h4></td></tr>
<t t-call="website_sale_product_configurator.optional_product_items">
<t t-set="parent_combination" t-value="combination"/>
</t>
</t>
</tbody>
</table>
</template>
<!-- modal: optional products -->
<template id="optional_product_items">
<t t-foreach="product.optional_product_ids" t-as="product">
<t t-if="product._is_add_to_cart_possible(parent_combination)">
<t t-set="combination" t-value="product._get_first_possible_combination(parent_combination)"/>
<t t-set="combination_info" t-value="product._get_combination_info(combination, add_qty=add_qty)"/>
<t t-set="product_variant" t-value="product.env['product.product'].browse(combination_info['product_id'])"/>
<tr class="js_product" t-if="not combination_info.get('prevent_zero_price_sale', False)">
<td class="td-img">
<input type="hidden" class="product_template_id" t-att-value="product.id"/>
<input type="hidden" class="product_id" t-attf-name="optional-product-#{product.id}" t-att-value="product_variant.id"/>
<img t-if="product_variant" t-att-src="'/web/image/product.product/%s/image_128' % product_variant.id" class="variant_image" alt="Product Image"/>
<img t-else="" t-att-src="'/web/image/product.template/%s/image_128' % product.id" class="variant_image" alt="Product Image"/>
</td>
<td class='td-product_name' colspan="2">
<div class="mb-3">
<strong class="product-name product_display_name" t-out="combination_info['display_name']"/>
<div class="text-muted small" t-field="product.description_sale"/>
</div>
<t t-call="website_sale.variants"/>
</td>
<td class="text-center td-qty d-none">
<t t-call='website_sale_product_configurator.product_quantity_config' />
</td>
<td class="text-center td-price">
<div t-attf-class="text-danger oe_default_price oe_optional oe_striked_price {{'' if combination_info['has_discounted_price'] else 'd-none'}}"
t-out="combination_info['list_price']"
t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<div class="oe_price" style="white-space: nowrap;"
t-out="combination_info['price']"
t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<span class="js_raw_price d-none" t-out="combination_info['price']" />
<p class="css_not_available_msg alert alert-warning">Option not available</p>
<a role="button" href="#" class="js_add btn btn-primary btn-sm"><i class="fa fa-shopping-cart add-optionnal-item"></i> Add to cart</a>
<span class="js_remove d-none">
<a role="button" href="#" class="js_remove"><i class="fa fa-trash-o remove-optionnal-item"></i></a>
</span>
</td>
</tr>
</t>
</t>
</template>
</odoo>