initial commit

This commit is contained in:
Данил Воробьев 2024-05-03 12:34:42 +00:00
commit 9341a5d690
74 changed files with 12496 additions and 0 deletions

4
__init__.py Normal file
View File

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

33
__manifest__.py Normal file
View File

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Tours',
'category': 'Hidden',
'description': """
Odoo Web tours.
========================
""",
'version': '0.1',
'depends': ['web'],
'data': [
'security/ir.model.access.csv',
'security/ir.rule.csv',
'views/tour_views.xml'
],
'assets': {
'web.assets_backend': [
'web_tour/static/src/**/*',
],
'web.assets_frontend': [
'web_tour/static/src/tour_pointer/**/*',
'web_tour/static/src/tour_service/**/*',
],
'web.qunit_suite_tests': [
'web_tour/static/tests/**/*',
],
},
'auto_install': True,
'license': 'LGPL-3',
}

Binary file not shown.

187
i18n/ar.po Normal file
View File

@ -0,0 +1,187 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>عمل رائع!</b> لقد تخطيت كافة مراحل هذه الجولة.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "اضغط على <i>أيقونة الصفحة الرئيسية</i> للتنقل بين التطبيقات. "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "إغلاق"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "يستهلك بواسطة"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "تعطيل الجولات "
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "اسم العرض "
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "مسار HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "المُعرف"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "القائمة"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "الاسم"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "جولات التمهيد "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "فتح القائمة "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "المسار "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "قم بالتمرير لأسفل للوصول إلى الخطوة التالية. "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "قم بالتمرير لأعلى للوصول إلى الخطوة التالية. "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "تسلسل "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "بدء"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "بدء الجولة "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "بدء جولة"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "اختبار"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "جولة تجريبية "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "الجولات التجريبية "
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "نصيحة "
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "إسم الجولة"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "الجولات "

178
i18n/az.po Normal file
View File

@ -0,0 +1,178 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Jumshud Sultanov <cumshud@gmail.com>, 2022
# erpgo translator <jumshud@erpgo.az>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~14.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:56+0000\n"
"Last-Translator: erpgo translator <jumshud@erpgo.az>, 2022\n"
"Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n"
"Language: az\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>Yaxşı iş!</b> Bu turun bütün addımlarını keçdiniz.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Tərəfindən istehlak olunur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Ekran Adı"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP Marşrutizasiyası"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menyu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Ad"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Yol"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Ardıcıllıq"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Başlayın"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Tura Başlayın"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Turun adı"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Turlar"

194
i18n/bg.po Normal file
View File

@ -0,0 +1,194 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# KeyVillage, 2023
# aleksandar ivanov, 2023
# Albena Mincheva <albena_vicheva@abv.bg>, 2023
# Martin Trigaux, 2023
# Maria Boyadjieva <marabo2000@gmail.com>, 2023
# Rosen Vladimirov <vladimirov.rosen@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: Rosen Vladimirov <vladimirov.rosen@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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Добра работа!</b>Преминахте през всички стъпки на това "
"обучение.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Затвори"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Консумиран от"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Деактивирайте обиколките"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Име за Показване"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Меню"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Име"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Път"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Последователност"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Стартирайте"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Започни обиколка"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Започнете обиколка"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Тест"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Съвет"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Име на обиколка"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Tours"

178
i18n/bs.po Normal file
View File

@ -0,0 +1,178 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Martin Trigaux, 2018
# Boško Stojaković <bluesoft83@gmail.com>, 2018
# Bole <bole@dajmi5.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2018-09-21 13:18+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>, 2018\n"
"Language-Team: Bosnian (https://www.transifex.com/odoo/teams/41243/bs/)\n"
"Language: bs\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Meni"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Naziv:"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Putanja"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Bakšiš"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Vodiči"

195
i18n/ca.po Normal file
View File

@ -0,0 +1,195 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# AncesLatino2004, 2023
# Arnau Ros, 2023
# Óscar Fonseca <tecnico@pyming.com>, 2023
# marcescu, 2023
# Quim - eccit <quim@eccit.com>, 2023
# Lluís Dalmau <lluis.dalmau@guifi.net>, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Bon treball!</b> Has fet tots els passos d'aquest "
"recorregut.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Feu clic a <i>Icona de l'usuari</i> per navegar per les aplicacions."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Tancar"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Consumit per"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Inhabilita les visites"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nom mostrat"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Enrutament HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menú"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nom"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Visites d'enboarding"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Obriu el menú del bugger."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Ruta"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Seqüència"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Inicia"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Inicia el recorregut"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Començar recorregut"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Prova la visita"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Proves de visites"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Propina"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nom del recorregut"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Recorreguts"

190
i18n/cs.po Normal file
View File

@ -0,0 +1,190 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Ivana Bartonkova, 2023
# Wil Odoo, 2023
# Jakub Smolka, 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: Jakub Smolka, 2023\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Dobrá práce!</b> Prošli jste všemi kroky této prohlídky.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Zavřít"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Vypnout tutoriály"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Zobrazovací název"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP Routing"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Název"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Tutoriály"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Cesta"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sekvence"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Začít"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Začít tutoriál"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Začít tutoriál"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Testovací tutoriál"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Testovací tutoriály"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tip"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Tutoriály"

189
i18n/da.po Normal file
View File

@ -0,0 +1,189 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# 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: 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Godt arbejde!</b>Du gennemgik alle trin i denne "
"rundvisning.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Klik på <i>Hjem ikonet</i> for at navigere på tværs af applikationer."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Luk"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Forbrugt af"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Deaktiver rundvisninger"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Vis navn"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP Routing"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Navn"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Åben bugger menu."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Sti"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sekvens"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Start"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Start rundtur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Start tur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Test rundvisning"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tip"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Navn på rundtur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Rundture"

191
i18n/de.po Normal file
View File

@ -0,0 +1,191 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Gut gemacht!</b> Sie haben alle Schritte dieser Tour "
"absolviert.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
"Klicken Sie auf das <i>Startsymbol</i>, um durch die Apps zu navigieren."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Schließen"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Verbraucht von"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Tour deaktivieren"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Anzeigename"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP-Routing"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menü"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Name"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Einführungstouren"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Fehlermenü öffnen."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Pfad"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Nach unten scrollen, um zum nächsten Schritt zu gelangen."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Nach oben scrollen, um zum nächsten Schritt zu gelangen."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sequenz"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Start"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Tour starten"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Tour starten"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Testtour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Testtouren"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tipp"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Tourname"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Touren"

178
i18n/el.po Normal file
View File

@ -0,0 +1,178 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Martin Trigaux, 2018
# Kostas Goutoudis <goutoudis@gmail.com>, 2018
# George Tarasidis <george_tarasidis@yahoo.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2018-09-21 13:18+0000\n"
"Last-Translator: George Tarasidis <george_tarasidis@yahoo.com>, 2018\n"
"Language-Team: Greek (https://www.transifex.com/odoo/teams/41243/el/)\n"
"Language: el\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Αναλώθηκαν από"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Απενεργοποίηση Περιηγήσεων"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Εμφάνιση Ονόματος"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "Κωδικός"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Μενού"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Περιγραφή"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Διαδρομή"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Έναρξη Περιήγησης"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Φιλοδώρημα"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Περιγραφή Περιηγήσης"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Περιηγήσεις"

193
i18n/es.po Normal file
View File

@ -0,0 +1,193 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Wil Odoo, 2023
# Lucia Pacheco, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>¡Bien hecho!</b> Terminó todos los pasos de este "
"recorrido.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
"Haga clic en el <i>icono de inicio</i> para navegar a través de las "
"aplicaciones."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Cerrar"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Consumido por"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Desactivar recorridos"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nombre mostrado"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Enrutamiento HTTP "
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menú"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nombre"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Recorridos de incorporación"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Abrir el menú bugger."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Ruta"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Baje para continuar con el siguiente paso."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Suba para continuar con el siguiente paso."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Secuencia"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Iniciar"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Comenzar recorrido"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Comenzar recorrido"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Recorrido de prueba"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Visitas de prueba"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Consejo"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nombre del recorrido"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Recorridos"

193
i18n/es_419.po Normal file
View File

@ -0,0 +1,193 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Wil Odoo, 2023
# Iran Villalobos López, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>¡Bien hecho!</b> Terminó todos los pasos de este "
"recorrido.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
"Haga clic en el <i>icono de inicio</i> para navegar a través de las "
"aplicaciones."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Cerrar"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Consumido por"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Desactivar recorridos"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nombre en pantalla"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Enrutamiento HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menú"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nombre"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Recorridos de integración"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Abrir el menú de desarrollador."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Ruta"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Baje para continuar con el siguiente paso."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Suba para continuar con el siguiente paso."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Secuencia"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Iniciar"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Comenzar recorrido"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Comenzar recorrido"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Prueba"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Recorrido de prueba"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Recorridos de prueba"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Consejo"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nombre del recorrido"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Recorridos"

196
i18n/et.po Normal file
View File

@ -0,0 +1,196 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Andre Roomet <andreroomet@gmail.com>, 2023
# Piia Paurson <piia@avalah.ee>, 2023
# Arma Gedonsky <armagedonsky@hot.ee>, 2023
# Rivo Zängov <eraser@eraser.ee>, 2023
# Leaanika Randmets, 2023
# Martin Trigaux, 2023
# Maidu Targama <m.targama@gmail.com>, 2023
# Anna, 2023
# Triine Aavik <triine@avalah.ee>, 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: Triine Aavik <triine@avalah.ee>, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Tubli!</b> Käisid läbi kõik selle teekonna etapid.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Klõpsake <i>Kodu ikoonil</i> rakendustes navigeerimiseks "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Sulge"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Tarbitud"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Keela tuurid"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Kuvatav nimi"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP Routing"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menüü"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nimi"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Sisseelamis tuurid"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Ava veamenüü."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Asukoht"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Jada"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Alusta"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Alusta tuuri"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Alusta tuuri"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Test tuur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Testi tuuri"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Jootraha"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Tuuri nimi"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Tuurid"

192
i18n/fa.po Normal file
View File

@ -0,0 +1,192 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Yousef Shadmanesh <y.shadmanesh@gmail.com>, 2023
# Hamid Darabi, 2023
# Martin Trigaux, 2023
# Hamed Mohammadi <hamed@dehongi.com>, 2023
# Hanna Kheradroosta, 2023
# mehdi samadi <mehsamadi@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: mehdi samadi <mehsamadi@gmail.com>, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>بسیار عالی!</b> شما تمام این تور را مرور کردید.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "بر روی <i>آیکون خانه</i> کلیک کنید تا بین برنامه های بگردید."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "بستن"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "دیده شده توسط"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "غیر فعال کردن تورها"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "نام نمایش داده شده"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "مسیریابی HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "شناسه"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "منو"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "نام"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "مسیر"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "دنباله"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "شروع"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "شروع تور"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "تست"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "نکته"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "نام تور"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "تورها"

197
i18n/fi.po Normal file
View File

@ -0,0 +1,197 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Kari Lindgren <kari.lindgren@emsystems.fi>, 2023
# Veikko Väätäjä <veikko.vaataja@gmail.com>, 2023
# Martin Trigaux, 2023
# Tuomo Aura <tuomo.aura@web-veistamo.fi>, 2023
# Eino Mäkitalo <eino.makitalo@netitbe.fi>, 2023
# Svante Suominen <svante.suominen@web-veistamo.fi>, 2023
# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2023
# Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 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: Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Hyvin tehty!</b> Kävit läpi kaikki tämän esittelykierroksen "
"vaiheet.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
"Voit siirtyä sovellusten välillä napsauttamalla <i>Koti-kuvaketta</i>."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Sulje"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Kuluttaa"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Poista esittelykiertueet käytöstä"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Näyttönimi"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP-reititys"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Valikko"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nimi"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Esittelykierros"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Avaa debuggaus-valikko."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Polku"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Järjestys"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Aloita"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Aloita esittelykierros"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Aloita esittelykierros"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Testi"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Koe-esittely"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Koe-esittelyt"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Vinkki"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Esittelykiertueen nimi"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Esittelykiertueet"

192
i18n/fr.po Normal file
View File

@ -0,0 +1,192 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Bien joué !</b> Vous venez de terminer toutes les étapes de cette"
" visite.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
"Cliquez sur <i>l'icône d'accueil</i> pour naviguer d'une application à "
"l'autre."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Fermer"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Consommé par"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Désactiver les visites"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nom d'affichage"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Routage HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nom"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Parcours d'intégration"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Ouvrir le menu développeur."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Chemin"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Faites défiler jusqu'à la prochaine étape."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Faites défiler vers le haut jusqu'à la prochaine étape."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Séquence"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Lancer"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Démarrer la visite"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Démarrer la visite"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Tester"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Visite d'essai"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Visites d'essai"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Conseil"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nom de la visite"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Visites"

177
i18n/gu.po Normal file
View File

@ -0,0 +1,177 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Qaidjohar Barbhaya, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~14.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:56+0000\n"
"Last-Translator: Qaidjohar Barbhaya, 2023\n"
"Language-Team: Gujarati (https://app.transifex.com/odoo/teams/41243/gu/)\n"
"Language: gu\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Display Name"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "મેનૂ"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Name"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sequence"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr ""

192
i18n/he.po Normal file
View File

@ -0,0 +1,192 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Sagi Ahiel, 2023
# Lilach Gilliam <lilach.gilliam@gmail.com>, 2023
# Martin Trigaux, 2023
# Yihya Hugirat <hugirat@gmail.com>, 2023
# ZVI BLONDER <ZVIBLONDER@gmail.com>, 2023
# ExcaliberX <excaliberx@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: ExcaliberX <excaliberx@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=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>עבודה טובה!</b> עברת את כל השלבים של המדריך.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "לחץ על <i>סמל הבית</i> כדי לנווט בין יישומים."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "סגור"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "בשימוש על ידי"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "השבת סיורים"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "שם לתצוגה"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "ניתוב HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "מזהה"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "תפריט"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "שם"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "נתיב"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "רצף"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "התחל"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "התחל סיור"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "התחל סיור"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "בדוק"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "עצה"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "שם סיור"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "סיורים"

182
i18n/hr.po Normal file
View File

@ -0,0 +1,182 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Ivica Dimjašević <ivica.dimjasevic@storm.hr>, 2022
# Vojislav Opačić <vojislav.opacic@gmail.com>, 2022
# Đurđica Žarković <durdica.zarkovic@storm.hr>, 2022
# Vladimir Olujić <olujic.vladimir@storm.hr>, 2022
# Martin Trigaux, 2022
# Karolina Tonković <karolina.tonkovic@storm.hr>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~14.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:56+0000\n"
"Last-Translator: Karolina Tonković <karolina.tonkovic@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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Koristili"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Naziv"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP usmjeravanje"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Izbornik"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Naziv"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Putanja"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sekvenca"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Start"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Savjet"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr ""

192
i18n/hu.po Normal file
View File

@ -0,0 +1,192 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Gergő Kertész <gergo.kertesz@maxflow.hu>, 2023
# Tamás Dombos, 2023
# Martin Trigaux, 2023
# Ákos Nagy <akos.nagy@oregional.hu>, 2023
# gezza <geza.nagy@oregional.hu>, 2023
# krnkris, 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: krnkris, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Bezárás"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Által felhasznált"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Megjelenített név"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP irányítás"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "Azonosító"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menü"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Név"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Útvonal"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sorszám"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Indítás"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Bejárás elindítása"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Tesztelés"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tipp"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Bejárás neve"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Bejárások"

183
i18n/hy.po Normal file
View File

@ -0,0 +1,183 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
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"
"Language-Team: Armenian (https://app.transifex.com/odoo/teams/41243/hy/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: hy\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr ""
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr ""

189
i18n/id.po Normal file
View File

@ -0,0 +1,189 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Wil Odoo, 2023
# Abe Manyo, 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: Abe Manyo, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Selamat!</b> Anda telah melalui semua langkah tur ini.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Klik pada <i>ikon Home</i> untuk navigasi di seluruh aplikasi."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Tutup"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Dikonsumsi oleh"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Nonaktifkan Tur"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nama Tampilan"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP routing"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nama"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Tur Onboarding"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Buka menu bugger."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Jalan"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Scroll ke bawah untuk mencapai langkah berikutnya."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Scroll ke atas untuk mencapai langkah berikutnya."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Urutan"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Mulai"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Mulai Tur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Mulai tur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Tes"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Tes tur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Mengetes tur"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tip"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nama tur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Tur"

183
i18n/is.po Normal file
View File

@ -0,0 +1,183 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
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"
"Language-Team: Icelandic (https://app.transifex.com/odoo/teams/41243/is/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: is\n"
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr ""
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr ""

189
i18n/it.po Normal file
View File

@ -0,0 +1,189 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Bel lavoro!</b> Hai completato tutte le fasi del tour.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Fare clic sull'<i>icona Home</i> per navigare tra le applicazioni."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Chiudi"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Completato da"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Disattiva tour"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Instradamento HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menù"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nome"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Tour di Onboarding"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Apri il menu sviluppatore."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Percorso"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Scorri verso il basso per raggiungere la fase successiva."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Scorri verso l'alto per raggiungere la fase successiva."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sequenza"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Avvio"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Inizia tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Inizia Tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Prova"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Tour di prova"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Tour di prova"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Consiglio"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nome tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Tour"

188
i18n/ja.po Normal file
View File

@ -0,0 +1,188 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Wil Odoo, 2023
# Junko Augias, 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: Junko Augias, 2023\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>Good job!</b> あなたはこのツアーのすべてのステップを通過しました。</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "<i>ホームアイコン</i>をクリックしてアプリを横断してナビゲートします。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "閉じる"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "使用履歴"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "ツアーを無効化"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "表示名"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTPルーティング"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "メニュー"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "名称"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "オンボーディングツアー"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "オンボーディングメニュー"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "パス"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "スクロールダウンして次のステップに進みます。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "スクロールアップして次のステップに進みます。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "シーケンス"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "開始"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "ツアーを開始"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "ツアー開始"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "インポートテスト"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "ツアーをテスト"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "ツアーをテスト中"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "チップ"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "ツアー名"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "ツアー"

176
i18n/km.po Normal file
View File

@ -0,0 +1,176 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Sengtha Chay <sengtha@gmail.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2018-09-21 13:18+0000\n"
"Last-Translator: Sengtha Chay <sengtha@gmail.com>, 2018\n"
"Language-Team: Khmer (https://www.transifex.com/odoo/teams/41243/km/)\n"
"Language: km\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "ឈ្មោះសំរាប់បង្ហាញ"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "ឈ្មោះ"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr ""

188
i18n/ko.po Normal file
View File

@ -0,0 +1,188 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Wil Odoo, 2023
# Daye Jeong, 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: Daye Jeong, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>잘하셨습니다!</b>이번 여정의 모든 단계를 완료하였습니다.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "<i>홈 아이콘</i>을 클릭하여 앱을 탐색합니다."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "닫기"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "다음에 의해 소비됨"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "둘러보기 비활성화"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "표시명"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP 라우팅"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "메뉴"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "이름"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "온보딩 둘러보기"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "햄버거 버튼 메뉴 열기."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "경로"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "아래로 스크롤하여 다음 단계로 이동하세요."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "위로 스크롤하여 다음 단계로 이동합니다."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "순서"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "시작"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "둘러보기 시작"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "둘러보기 시작"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "테스트"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "둘러보기 테스트"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "둘러보기 테스트 중"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "팁"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "둘러보기 이름"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "둘러보기"

173
i18n/lb.po Normal file
View File

@ -0,0 +1,173 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2019-08-26 09:15+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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr ""
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr ""

194
i18n/lt.po Normal file
View File

@ -0,0 +1,194 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Arminas Grigonis <arminas@versada.lt>, 2023
# Ramunė ViaLaurea <ramune.vialaurea@gmail.com>, 2023
# Anatolij, 2023
# Audrius Palenskis <audrius.palenskis@gmail.com>, 2023
# Martin Trigaux, 2023
# Šarūnas Ažna <sarunas.azna@gmail.com>, 2023
# Linas Versada <linaskrisiukenas@gmail.com>, 2023
# Silvija Butko <silvija.butko@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: Silvija Butko <silvija.butko@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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Norėdami naviguoti tarp programų, paspauskite <i>namų piktogramą</i>."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Uždaryti"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Sunaudojo"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Išjungti turus"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Rodomas pavadinimas"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP nukreipimas"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Meniu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Vardas, Pavardė"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Kelias"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Seka"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Pradėti"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Pradėti turą"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Testas"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Arbatpinigiai"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Turo pavadinimas"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Turai"

191
i18n/lv.po Normal file
View File

@ -0,0 +1,191 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Arnis Putniņš <arnis@allegro.lv>, 2023
# Martin Trigaux, 2023
# Anzelika Adejanova, 2023
# Armīns Jeltajevs <armins.jeltajevs@gmail.com>, 2023
# ievaputnina <ievai.putninai@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: ievaputnina <ievai.putninai@gmail.com>, 2023\n"
"Language-Team: Latvian (https://app.transifex.com/odoo/teams/41243/lv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Aizvērt"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Attēlotais nosaukums"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP maršrutēšana"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Izvēlne"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nosaukums"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Ceļš"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sekvence"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Sākt"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Tests"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tējasnauda"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Tūres"

181
i18n/mn.po Normal file
View File

@ -0,0 +1,181 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Otgonbayar.A <gobi.mn@gmail.com>, 2022
# Батмөнх Ганбат <batmunkh2522@gmail.com>, 2022
# Martin Trigaux, 2022
# Baskhuu Lodoikhuu <baskhuujacara@gmail.com>, 2022
# hish, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~14.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:56+0000\n"
"Last-Translator: hish, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Хангагдсан"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Дэлгэрэнгүй нэр"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP Routing"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Цэс"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Нэр"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Зам"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Дугаарлалт"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Эхлэх"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Аялалыг эхлэх"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Тест"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Шан харамж"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Аялалын нэр"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Аялалууд"

180
i18n/nb.po Normal file
View File

@ -0,0 +1,180 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Henning Herfjord <henning@autobolig.no>, 2022
# Martin Trigaux, 2022
# Marius Stedjan <marius@stedjan.com>, 2022
# Jorunn D. Newth, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~14.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:56+0000\n"
"Last-Translator: Jorunn D. Newth, 2022\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Forbrukt av"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Slå av omvisninger"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Visningsnavn"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP-ruting"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Meny"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Navn"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Filbane"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sekvens"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Start"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Start omvisning"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Start guide"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tips"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Omvisningsnavn"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Omvisninger"

189
i18n/nl.po Normal file
View File

@ -0,0 +1,189 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Goed gedaan!</b> Je hebt alle stappen van deze rondleiding "
"doorlopen.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Klik op het <i>startpagina icoon</i> om doorheen apps te navigeren."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Afsluiten"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Verbruikt door"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Rondleidingen uitschakelen"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Schermnaam"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP routing"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Naam"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Onboarding tours"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Open het bugger-menu."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Pad"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Naar beneden scrollen om naar de volgende stap te gaan."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Naar boven scrollen om naar de volgende stap te gaan."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Reeks"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Start"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Rondleidingen starten"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Rondleiding starten"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Test rondleiding"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Testing rondleidingen"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tip"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Naam rondleiding"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Rondleidingen"

189
i18n/pl.po Normal file
View File

@ -0,0 +1,189 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Dobra robota!</b> Przeszedłeś przez wszystkie etapy tej "
"wycieczki.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Kliknij na <i>ikonę Domu</i>, aby nawigować pomiędzy aplikacjami."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Zamknij"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Zużyte przez"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Wyłącz wycieczki"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nazwa wyświetlana"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Wytyczanie HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nazwa"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Przewodniki wdrożeniowe"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Otwórz menu błędów."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Ścieżka"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sekwencja"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Uruchom"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Rozpocznij wycieczkę"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Rozpocznij wycieczkę"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Przetestuj wycieczkę"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Przetestuj przewodnik"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Wskazówka"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nazwa wycieczki"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Samouczki"

187
i18n/pt.po Normal file
View File

@ -0,0 +1,187 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Fechar"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Consumido por"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nome"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Rotas HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nome"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Caminho"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sequência"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Início"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Iniciar Guia"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Iniciar Visita Guiada"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Teste"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Gorjeta"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nome do guia "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Tours"

191
i18n/pt_BR.po Normal file
View File

@ -0,0 +1,191 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Muito bem!</b> Você passou por todas as etapas desta "
"tour.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Clique no <i>ícone Início</i> para navegar pelos aplicativos."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Encerrar"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Consumido por"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Desabilitar tours"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nome exibido"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Roteamento HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nome"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Tours de integração"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Abra o menu do bugger."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Caminho"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Role para baixo para ir à próxima etapa."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Role para cima para ir à próxima etapa."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sequência"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Iniciar"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Iniciar tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Iniciar tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Teste"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Tour de teste"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Tours de teste"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Dica"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nome do tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Tours"

180
i18n/ro.po Normal file
View File

@ -0,0 +1,180 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# sharkutz <sharkutz4life@yahoo.com>, 2022
# Martin Trigaux, 2022
# Dorin Hongu <dhongu@gmail.com>, 2022
# Hongu Cosmin <cosmin513@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~14.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2022-09-22 05:56+0000\n"
"Last-Translator: Hongu Cosmin <cosmin513@gmail.com>, 2022\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>Bună treabă!</b>Ați parcurs toate etapele acestui tur.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Nume afișat"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Rutare HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Meniu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Nume"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Cale"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Secvență"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Start"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Începte tur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Tur de test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Sfat"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Nume tur"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Ture"

194
i18n/ru.po Normal file
View File

@ -0,0 +1,194 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Vasiliy Korobatov <korobatov@gmail.com>, 2023
# Martin Trigaux, 2023
# Sergey Vilizhanin, 2023
# Alena Vlasova, 2023
# Collex100, 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Отличная работа!</b> Вы прошли все этапы этого тура.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
"Нажмите на <i>значок \"Домой\"</i>, чтобы перемещаться между приложениями."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Закрыть"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Потребляется"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Отключить туры"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Отображаемое имя"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Маршрутизация HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Меню"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Имя"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Выездные туры"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Откройте меню бугер."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Путь"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Прокрутите вниз, чтобы перейти к следующему шагу."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Прокрутите вверх, чтобы перейти к следующему шагу."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Последовательность"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Начало"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Начать презентацию"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Начало экскурсии"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Тест"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Тестовый тур"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Тестовые туры"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Подсказки"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Название тура"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Туры"

189
i18n/sk.po Normal file
View File

@ -0,0 +1,189 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Dobrá práca!</b> Prešli ste všetkými krokmi tejto "
"prehliadky.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Klikni na <i>domovskú ikonu</i> pre navigáciu medzi aplikáciami."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Zatvoriť"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Spotrebované "
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Vypnúť prehliadky"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Zobrazovaný názov"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP smerovanie"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Meno"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Cesta"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Postupnosť"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Štart"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Začať prehliadku"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Začať prehliadku"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tip"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Názov prehliadky"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Prehliadky"

193
i18n/sl.po Normal file
View File

@ -0,0 +1,193 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Matjaz Mozetic <m.mozetic@matmoz.si>, 2023
# matjaz k <matjaz@mentis.si>, 2023
# Tadej Lupšina <tadej@hbs.si>, 2023
# Martin Trigaux, 2023
# Jasmina Macur <jasmina@hbs.si>, 2023
# Grega Vavtar <grega@hbs.si>, 2024
# Katja Deržič, 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: Katja Deržič, 2024\n"
"Language-Team: Slovenian (https://app.transifex.com/odoo/teams/41243/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>Dobro opravljeno</b>Šli ste skozi vse korake</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Zaključi"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Porabil"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Onemogoči oglede"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP usmerjanje"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Meni"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Naziv"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Pot"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Za naslednji korak se pomaknite navzdol."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Za naslednji korak se pomaknite navzgor."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Zaporedje"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Prični"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Začni ogled"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Ime ogleda"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Ogledi"

191
i18n/sr.po Normal file
View File

@ -0,0 +1,191 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Martin Trigaux, 2023
# Dragan Vukosavljevic <dragan.vukosavljevic@gmail.com>, 2023
# Milan Bojovic <mbojovic@outlook.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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Dobar posao! </b>Prošli ste kroz sve korake ove ture.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Click on the <i>Home icon</i> to navigate across apps."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Zatvori"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Consumed by"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Disable Tours"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Naziv za prikaz"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP rutiranje"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Meni"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Naziv"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Onboarding tours"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Open bugger menu."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Putanja"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Niz"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Pokreni"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Start Tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Start tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Test tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Testing tours"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tip"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Tour name"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Ture"

177
i18n/sr@latin.po Normal file
View File

@ -0,0 +1,177 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Djordje Marjanovic <djordje_m@yahoo.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 13:50+0000\n"
"PO-Revision-Date: 2017-09-20 09:54+0000\n"
"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n"
"Language-Team: Serbian (Latin) (https://www.transifex.com/odoo/teams/41243/sr%40latin/)\n"
"Language: sr@latin\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid "<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Naziv za prikaz"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Meni"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Naziv"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr ""

194
i18n/sv.po Normal file
View File

@ -0,0 +1,194 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Jakob Krabbe <jakob.krabbe@vertel.se>, 2023
# Chrille Hedberg <hedberg.chrille@gmail.com>, 2023
# Kristoffer Grundström <lovaren@gmail.com>, 2023
# Martin Trigaux, 2023
# Anders Wallenquist <anders.wallenquist@vertel.se>, 2023
# Kim Asplund <kim.asplund@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: Kim Asplund <kim.asplund@gmail.com>, 2023\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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Bra jobbat!</b> Du gick igenom alla steg på den här "
"genomgången.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Klicka på <i>Hem ikonen</i> för att navigera mellan appar."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Stäng"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Förbrukad av"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Avbryt rundturen"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Visningsnamn"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP-rutt"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Meny"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Namn"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Onboarding genomgångar"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Öppna bugger-menyn."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Sökväg"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sekvens"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Start"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Starta rundturen"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Starta genomgången"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Testa"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Test genomgång"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Test genomgångar"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Dricks"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Genomgångsnamn"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Genomgångar"

188
i18n/th.po Normal file
View File

@ -0,0 +1,188 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>ยอดเยี่ยม!</b> คุณผ่านทุกขั้นตอนของทัวร์นี้แล้ว</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "คลิกที่ <i> ไอคอนโฮม </i> เพื่อไปยังแอปต่างๆ"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "ปิด"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "บริโภคโดย"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "ปิดการใช้งานทัวร์"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "แสดงชื่อ"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "การกำหนด HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ไอดี"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "เมนู"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "ชื่อ"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "ทัวร์การเริ่มงาน"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "เปิดเมนูบักเกอร์"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "เส้นทาง"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "เลื่อนลงเพื่อไปยังขั้นตอนถัดไป"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "เลื่อนขึ้นเพื่อไปยังขั้นตอนถัดไป"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "ลำดับ"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "เริ่ม"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "เริ่มทัวร์"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "เริ่มทัวร์"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "ทดสอบ"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "ทดสอบทัวร์"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "ทดสอบทัวร์"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "ทิป"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "ชื่อทัวร์"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "ทัวร์"

196
i18n/tr.po Normal file
View File

@ -0,0 +1,196 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# abc Def <hdogan1974@gmail.com>, 2023
# Umur Akın <umura@projetgrup.com>, 2023
# Martin Trigaux, 2023
# Murat Kaplan <muratk@projetgrup.com>, 2023
# Ayhan KIZILTAN <akiziltan76@hotmail.com>, 2023
# Ertuğrul Güreş <ertugrulg@projetgrup.com>, 2023
# Levent Karakaş <levent@mektup.at>, 2023
# Ediz Duman <neps1192@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: Ediz Duman <neps1192@gmail.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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Tebrikler!</b> Bu turun tüm adımlarını tamamladınız.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
"Ana sayfa simgesinin <i>Üzerine tıklayın</i> uygulamalar arasında gezinin."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Kapat"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Tarafından Tamamlandı"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Turları Kapat"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Görünüm Adı"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP Yönlendirme"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menü"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Adı"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Katılım turları"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Hata oluşturucu menüsünü açın."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Yol"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Sıralama"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Başla"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Turu Başlat"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Başlangıç turu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Test"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Test turu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Test turları"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "İpucu"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Tur Adı"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Turlar"

189
i18n/uk.po Normal file
View File

@ -0,0 +1,189 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>Молодці!</b> Ви пройшли усі кроки цього туру.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
"Натисніть на <i>іконку Домашньої сторінки</i> для навігації між додатками."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Закрити"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Завершив"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Вимкнути тури"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Назва для відображення"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Маршрутизація HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Меню"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Ім'я"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Ознайомчий тур"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Відкрийте бургер-меню."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Шлях"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Послідовність"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Початок"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Почати тур"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Розпочати тур"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Тест"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Тестовий тур"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Тестові тури"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Підказка"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Назва туру"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Тури"

190
i18n/vi.po Normal file
View File

@ -0,0 +1,190 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Wil Odoo, 2023
# Thi Huong Nguyen, 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: Thi Huong Nguyen, 2024\n"
"Language-Team: Vietnamese (https://app.transifex.com/odoo/teams/41243/vi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: vi\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
"<strong><b>Làm tốt lắm!</b> Bạn đã thực hiện tất cả các bước của chuyến "
"hướng dẫn này.</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "Click on the <i>Home icon</i> to navigate across apps."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "Đóng"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "Consumed by"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "Disable Tours"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "Tên hiển thị"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "Định tuyến HTTP"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "Menu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "Tên"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "Tour hướng dẫn"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "Open bugger menu."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "Đường dẫn"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "Cuộn xuống để đến bước tiếp theo."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "Cuộn lên để đến bước tiếp theo."
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "Trình tự"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "Bắt đầu"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "Start Tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "Start tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "Kiểm thử"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "Test tour"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "Tour kiểm thử"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "Tiền tip"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "Tour name"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "Du lịch"

183
i18n/web_tour.pot Normal file
View File

@ -0,0 +1,183 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr ""
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr ""
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr ""
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr ""
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr ""

188
i18n/zh_CN.po Normal file
View File

@ -0,0 +1,188 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# 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: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>干得好!</b>您完成了所有步骤。</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "点击 <i>首页</i> 导航可在功能应用间跳转。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "关闭 "
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "消耗于"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "禁用游览"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "显示名称"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP 路由"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "ID"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "菜单"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "名称"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "引导旅游"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "打开调试菜单。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "路径"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "向下滚动,进入下一步骤。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "向上滚动,进入下一步骤。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "序列"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "开始"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "开始游览"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "开始游览"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "测试"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "测试之旅"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "测试之旅"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "提示"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "游览名称"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "游览"

188
i18n/zh_TW.po Normal file
View File

@ -0,0 +1,188 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_tour
#
# Translators:
# Wil Odoo, 2023
# Tony Ng, 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: Tony Ng, 2024\n"
"Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_service.js:0
#, python-format
msgid ""
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
msgstr "<strong><b>做得好!</b>您已完成本次導覽的所有步驟。</strong>"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Click on the <i>Home icon</i> to navigate across apps."
msgstr "按一下 <i> 首頁圖示 </i> 可跨應用程式導航。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Close"
msgstr "關閉"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__user_id
msgid "Consumed by"
msgstr "消耗由"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Disable Tours"
msgstr "停用導覽"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__display_name
msgid "Display Name"
msgstr "顯示名稱"
#. module: web_tour
#: model:ir.model,name:web_tour.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP 路由"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__id
msgid "ID"
msgstr "識別號"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_list
msgid "Menu"
msgstr "功能表"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Name"
msgstr "名稱"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Onboarding tours"
msgstr "入職導覽"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_utils.js:0
#, python-format
msgid "Open bugger menu."
msgstr "打開 bugger 選單"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Path"
msgstr "路徑"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll down to reach the next step."
msgstr "向下捲動,以進入下一步驟。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/tour_service/tour_pointer_state.js:0
#, python-format
msgid "Scroll up to reach the next step."
msgstr "向上捲動,以進入下一步驟。"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Sequence"
msgstr "序列號"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start"
msgstr "開始"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/debug_manager.js:0
#, python-format
msgid "Start Tour"
msgstr "開始導覽"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Start tour"
msgstr "開始導覽"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test"
msgstr "測試"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Test tour"
msgstr "測試導覽"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.xml:0
#, python-format
msgid "Testing tours"
msgstr "測試導覽"
#. module: web_tour
#: model_terms:ir.ui.view,arch_db:web_tour.edit_tour_search
msgid "Tip"
msgstr "小費"
#. module: web_tour
#: model:ir.model.fields,field_description:web_tour.field_web_tour_tour__name
msgid "Tour name"
msgstr "導覽名稱"
#. module: web_tour
#. odoo-javascript
#: code:addons/web_tour/static/src/debug/tour_dialog_component.js:0
#: model:ir.actions.act_window,name:web_tour.edit_tour_action
#: model:ir.model,name:web_tour.model_web_tour_tour
#: model:ir.ui.menu,name:web_tour.menu_tour_action
#, python-format
msgid "Tours"
msgstr "遊覽"

5
models/__init__.py Normal file
View File

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

16
models/ir_http.py Normal file
View File

@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
class Http(models.AbstractModel):
_inherit = 'ir.http'
def session_info(self):
result = super().session_info()
if result['is_admin']:
demo_modules_count = self.env['ir.module.module'].sudo().search_count([('demo', '=', True)])
result['web_tours'] = self.env['web_tour.tour'].get_consumed_tours()
result['tour_disable'] = demo_modules_count > 0
return result

30
models/tour.py Normal file
View File

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class Tour(models.Model):
_name = "web_tour.tour"
_description = "Tours"
_log_access = False
name = fields.Char(string="Tour name", required=True)
user_id = fields.Many2one('res.users', string='Consumed by')
@api.model
def consume(self, tour_names):
""" Sets given tours as consumed, meaning that
these tours won't be active anymore for that user """
if not self.env.user.has_group('base.group_user'):
# Only internal users can use this method.
# TODO master: update ir.model.access records instead of using sudo()
return
for name in tour_names:
self.sudo().create({'name': name, 'user_id': self.env.uid})
@api.model
def get_consumed_tours(self):
""" Returns the list of consumed tours for the current user """
return [t.name for t in self.search([('user_id', '=', self.env.uid)])]

View File

@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_web_tour_tour_admin,access_web_tour_tour_admin,model_web_tour_tour,base.group_system,1,0,1,0
access_web_tour_tour,access_web_tour_tour,model_web_tour_tour,base.group_user,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_web_tour_tour_admin access_web_tour_tour_admin model_web_tour_tour base.group_system 1 0 1 0
3 access_web_tour_tour access_web_tour_tour model_web_tour_tour base.group_user 1 0 0 0

2
security/ir.rule.csv Normal file
View File

@ -0,0 +1,2 @@
"id","model_id/id","name","active","perm_create","perm_unlink","perm_read","perm_write","domain_force"
"own_tours","model_web_tour_tour","own tours","True","True","True","True","True","[('user_id','=', user.id)]"
1 id model_id/id name active perm_create perm_unlink perm_read perm_write domain_force
2 own_tours model_web_tour_tour own tours True True True True True [('user_id','=', user.id)]

View File

@ -0,0 +1,49 @@
/** @odoo-module **/
import { _t } from "@web/core/l10n/translation";
import { browser } from "@web/core/browser/browser";
import { registry } from "@web/core/registry";
import ToursDialog from "@web_tour/debug/tour_dialog_component";
import { tourState } from "../tour_service/tour_state";
export function disableTours({ env }) {
if (!env.services.user.isSystem) {
return null;
}
const activeTourNames = tourState.getActiveTourNames();
if (activeTourNames.length === 0) {
return null;
}
return {
type: "item",
description: _t("Disable Tours"),
callback: async () => {
await env.services.orm.call("web_tour.tour", "consume", [activeTourNames]);
for (const tourName of activeTourNames) {
tourState.clear(tourName);
}
browser.location.reload();
},
sequence: 50,
};
}
export function startTour({ env }) {
if (!env.services.user.isSystem) {
return null;
}
return {
type: "item",
description: _t("Start Tour"),
callback: async () => {
env.services.dialog.add(ToursDialog);
},
sequence: 60,
};
}
registry
.category("debug")
.category("default")
.add("web_tour.startTour", startTour)
.add("web_tour.disableTours", disableTours);

View File

@ -0,0 +1,43 @@
/** @odoo-module **/
import { useService } from "@web/core/utils/hooks";
import { Dialog } from "@web/core/dialog/dialog";
import { _t } from "@web/core/l10n/translation";
import { Component } from "@odoo/owl";
export default class ToursDialog extends Component {
setup() {
this.title = _t("Tours");
this.tourService = useService("tour_service");
this.onboardingTours = this.tourService.getSortedTours().filter(tour => !tour.test);
this.testingTours = this.tourService.getSortedTours().filter(tour => tour.test);
}
//--------------------------------------------------------------------------
// Handlers
//--------------------------------------------------------------------------
/**
* Resets the given tour to its initial step, in onboarding mode.
*
* @private
* @param {MouseEvent} ev
*/
_onStartTour(ev) {
this.tourService.startTour(ev.target.dataset.name, { mode: 'manual' });
this.props.close();
}
/**
* Starts the given tour in test mode.
*
* @private
* @param {MouseEvent} ev
*/
_onTestTour(ev) {
this.tourService.startTour(ev.target.dataset.name, { mode: 'auto', stepDelay: 500, showPointerDuration: 250 });
this.props.close();
}
}
ToursDialog.template = "web_tour.ToursDialog";
ToursDialog.components = { Dialog };

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="web_tour.ToursDialog">
<Dialog title="title">
<t t-call="web_tour.ToursDialog.Table">
<t t-set="caption">Onboarding tours</t>
<t t-set="tours" t-value="onboardingTours"/>
</t>
<t t-if="testingTours.length" t-call="web_tour.ToursDialog.Table">
<t t-set="caption">Testing tours</t>
<t t-set="tours" t-value="testingTours"/>
</t>
<t t-set-slot="footer">
<button class="btn btn-primary o-default-button" t-on-click="() => props.close()">Close</button>
</t>
</Dialog>
</t>
<t t-name="web_tour.ToursDialog.Table">
<div class="table-responsive">
<table class="table table-sm table-striped">
<caption style="caption-side: top; font-size: 14px">
<t t-esc="caption"/>
</caption>
<thead>
<tr>
<th>Sequence</th>
<th width="50%">Name</th>
<th width="50%">Path</th>
<th>Start</th>
<th>Test</th>
</tr>
</thead>
<tbody>
<tr t-foreach="tours" t-as="tour" t-key="tour.name">
<td><t t-esc="tour.sequence"/></td>
<td><t t-esc="tour.name"/></td>
<td><t t-esc="tour.url"/></td>
<td>
<button type="button"
class="btn btn-primary fa fa-play o_start_tour"
t-on-click.prevent="_onStartTour"
t-att-data-name="tour.name"
aria-label="Start tour"
title="Start tour"/>
</td>
<td>
<button type="button"
class="btn btn-primary fa fa-cogs o_test_tour"
t-on-click.prevent="_onTestTour"
t-att-data-name="tour.name"
aria-label="Test tour"
title="Test tour"/>
</td>
</tr>
</tbody>
</table>
</div>
</t>
</templates>

View File

@ -0,0 +1,151 @@
/** @odoo-module **/
import { Component, useEffect, useRef } from "@odoo/owl";
import { usePosition } from "@web/core/position_hook";
/**
* @typedef {import("../tour_service/tour_pointer_state").TourPointerState} TourPointerState
*
* @typedef TourPointerProps
* @property {TourPointerState} pointerState
* @property {boolean} bounce
*/
/** @extends {Component<TourPointerProps, any>} */
export class TourPointer extends Component {
static props = {
pointerState: {
type: Object,
shape: {
anchor: { type: HTMLElement, optional: true },
content: { type: String, optional: true },
isOpen: { type: Boolean, optional: true },
isVisible: { type: Boolean, optional: true },
onClick: { type: [Function, { value: null }], optional: true },
onMouseEnter: { type: [Function, { value: null }], optional: true },
onMouseLeave: { type: [Function, { value: null }], optional: true },
position: {
type: [
{ value: "left" },
{ value: "right" },
{ value: "top" },
{ value: "bottom" },
],
optional: true,
},
rev: { type: Number, optional: true },
},
},
bounce: { type: Boolean, optional: true },
};
static defaultProps = {
bounce: true,
};
static template = "web_tour.TourPointer";
static width = 28; // in pixels
static height = 28; // in pixels
setup() {
const positionOptions = {
margin: 6,
onPositioned: (pointer, position) => {
const popperRect = pointer.getBoundingClientRect();
const { top, left, direction } = position;
if (direction === "top") {
// position from the bottom instead of the top as it is needed
// to ensure the expand animation is properly done
pointer.style.bottom = `${window.innerHeight - top - popperRect.height}px`;
pointer.style.removeProperty("top");
} else if (direction === "left") {
// position from the right instead of the left as it is needed
// to ensure the expand animation is properly done
pointer.style.right = `${window.innerWidth - left - popperRect.width}px`;
pointer.style.removeProperty("left");
}
},
};
Object.defineProperty(positionOptions, "position", { get: () => this.position, enumerable: true });
const position = usePosition("pointer", () => this.props.pointerState.anchor, positionOptions);
const rootRef = useRef("pointer");
/** @type {DOMREct | null} */
let dimensions = null;
let lastMeasuredContent = null;
let lastOpenState = this.isOpen;
let lastAnchor;
let [anchorX, anchorY] = [0, 0];
useEffect(() => {
const { el: pointer } = rootRef;
if (pointer) {
const hasContentChanged = lastMeasuredContent !== this.content;
const hasOpenStateChanged = lastOpenState !== this.isOpen;
lastOpenState = this.isOpen;
// Content changed: we must re-measure the dimensions of the text.
if (hasContentChanged) {
lastMeasuredContent = this.content;
pointer.style.removeProperty("width");
pointer.style.removeProperty("height");
dimensions = pointer.getBoundingClientRect();
}
// If the content or the "is open" state changed: we must apply
// new width and height properties
if (hasContentChanged || hasOpenStateChanged) {
const [width, height] = this.isOpen
? [dimensions.width, dimensions.height]
: [this.constructor.width, this.constructor.height];
if (this.isOpen) {
pointer.style.removeProperty("transition");
} else {
// No transition if switching from open to closed
pointer.style.setProperty("transition", "none");
}
pointer.style.setProperty("width", `${width}px`);
pointer.style.setProperty("height", `${height}px`);
}
if (!this.isOpen) {
const { anchor } = this.props.pointerState;
if (anchor === lastAnchor) {
const { x, y, width } = anchor.getBoundingClientRect();
const [lastAnchorX, lastAnchorY] = [anchorX, anchorY];
[anchorX, anchorY] = [x, y];
// Let's just say that the anchor is static if it moved less than 1px.
const delta = Math.sqrt(
Math.pow(x - lastAnchorX, 2) + Math.pow(y - lastAnchorY, 2)
);
if (delta < 1) {
position.lock();
return;
}
const wouldOverflow = window.innerWidth - x - width / 2 < dimensions?.width;
pointer.classList.toggle("o_expand_left", wouldOverflow);
}
lastAnchor = anchor;
pointer.style.bottom = "";
pointer.style.right = "";
position.unlock();
}
} else {
lastMeasuredContent = null;
lastOpenState = false;
lastAnchor = null;
dimensions = null;
}
});
}
get content() {
return this.props.pointerState.content || "";
}
get isOpen() {
return this.props.pointerState.isOpen;
}
get position() {
return this.props.pointerState.position || "top";
}
}

View File

@ -0,0 +1,232 @@
$o-tour-pointer-width: 28px;
$o-tour-pointer-height: 38px;
$o-tour-pointer-border-width: 3px;
$o-tour-pointer-arrow-size: 12px;
$o-tour-pointer-duration-in: 200ms;
$o-tour-pointer-size-duration-in: floor($o-tour-pointer-duration-in * 3 / 4);
$o-tour-pointer-size-delay-in: $o-tour-pointer-duration-in - $o-tour-pointer-size-duration-in;
@keyframes o-tour-pointer-bounce-horizontal {
from {
transform: translateX(calc(var(--TourPointer__bounce-offset) * -1));
}
to {
transform: translateX(var(--TourPointer__bounce-offset));
}
}
@keyframes o-tour-pointer-bounce-vertical {
from {
transform: translateY(calc(var(--TourPointer__bounce-offset) * -1));
}
to {
transform: translateY(var(--TourPointer__bounce-offset));
}
}
@keyframes o-tour-pointer-fade-in {
from {
opacity: 0;
}
}
@keyframes o-tour-pointer-info-expand {
from {
width: 0;
height: 0;
}
}
.o_tour_pointer {
--TourPointer__anchor-space: 0;
--TourPointer__bounce-offset: 3px;
--TourPointer__offset: 8px;
--TourPointer__scale: 1.12;
--TourPointer__color: #{$o-enterprise-color};
--TourPointer__color-accent: #{lighten($o-enterprise-color, 7%)};
--TourPointer__border-width: 1px;
--TourPointer__border-color-rgb: 255, 255, 255;
--TourPointer__border-color: rgba(var(--TourPointer__border-color-rgb), 1);
--TourPointer__arrow-size: 1rem;
--TourPointer__animation-duration: 500ms;
--TourPointer__expand-duration: 200ms;
--TourPointer__text-color: black;
--TourPointer__reveal-animation: o-tour-pointer-fade-in 400ms ease;
--TourPointer__translate-x: 0;
--TourPointer__translate-y: 0;
z-index: $zindex-tooltip;
max-width: 270px;
border: var(--TourPointer__border-width) solid transparent;
transform: translate(var(--TourPointer__translate-x), var(--TourPointer__translate-y));
transition: width var(--TourPointer__expand-duration),
height var(--TourPointer__expand-duration);
&.o_bouncing {
&.o_left,
&.o_right {
animation: o-tour-pointer-bounce-horizontal var(--TourPointer__animation-duration)
ease-in infinite alternate,
var(--TourPointer__reveal-animation);
}
&.o_top,
&.o_bottom {
animation: o-tour-pointer-bounce-vertical var(--TourPointer__animation-duration) ease-in
infinite alternate,
var(--TourPointer__reveal-animation);
}
}
.o_tour_pointer_tip {
width: var(--TourPointer__width);
height: var(--TourPointer__height);
border: var(--TourPointer__border-width) solid white;
border-radius: 0 50% 50% 50%;
background-image: radial-gradient(
var(--TourPointer__color-accent),
var(--TourPointer__color)
);
box-shadow: 0 0 40px 2px rgba(var(--TourPointer__border-color-rgb), 0.5);
}
.o_tour_pointer_content {
background-color: $light;
color: transparent;
transition: color 0s ease var(--TourPointer__expand-duration);
// Force style so that it does not depend on where the tooltip is attached
line-height: $line-height-base;
@include font-size($font-size-base);
font-family: $font-family-sans-serif;
font-weight: normal;
.o_skip_tour {
display: inline-block;
margin-top: 4px;
color: gray;
cursor: pointer;
&:hover {
color: darken(gray, 20%);
}
}
p:last-child {
margin-bottom: 0;
}
}
&.o_left .o_tour_pointer_tip {
transform: rotate(90deg) translateY(var(--TourPointer__offset))
scaleY(var(--TourPointer__scale)) rotate(45deg);
}
&.o_right .o_tour_pointer_tip {
transform: rotate(270deg) translateY(var(--TourPointer__offset))
scaleY(var(--TourPointer__scale)) rotate(45deg);
}
&.o_top .o_tour_pointer_tip {
transform: rotate(180deg) translateY(var(--TourPointer__offset))
scaleY(var(--TourPointer__scale)) rotate(45deg);
}
&.o_bottom .o_tour_pointer_tip {
transform: rotate(0deg) translateY(var(--TourPointer__offset))
scaleY(var(--TourPointer__scale)) rotate(45deg);
}
&.o_open {
border-color: #{$o-gray-400};
background-color: #{$o-gray-300};
animation: var(--TourPointer__reveal-animation);
.o_tour_pointer_tip {
width: var(--TourPointer__arrow-size);
height: var(--TourPointer__arrow-size);
border-color: #{$o-gray-400};
border-radius: 0;
background: $light;
box-shadow: none;
}
.o_tour_pointer_content {
color: $o-black;
}
&.o_left {
--TourPointer__translate-x: calc(var(--TourPointer__arrow-size) / -2);
.o_tour_pointer_tip {
transform: translateX(-50%) rotate(45deg);
/*rtl:begin:ignore*/
right: calc(var(--TourPointer__arrow-size) * -1);
top: calc(var(--TourPointer__arrow-size) / 2);
/*rtl:end:ignore*/
}
}
&.o_right {
--TourPointer__translate-x: calc(var(--TourPointer__arrow-size) / 2);
.o_tour_pointer_tip {
transform: translateX(50%) rotate(45deg);
/*rtl:begin:ignore*/
left: calc(var(--TourPointer__arrow-size) * -1);
top: calc(var(--TourPointer__arrow-size) / 2);
/*rtl:end:ignore*/
}
}
&.o_top {
--TourPointer__translate-y: calc(var(--TourPointer__arrow-size) / -2);
.o_tour_pointer_tip {
transform: translateY(-50%) rotate(45deg);
/*rtl:begin:ignore*/
bottom: calc(var(--TourPointer__arrow-size) * -1);
left: calc(var(--TourPointer__arrow-size) / 2);
/*rtl:end:ignore*/
}
}
&.o_bottom {
--TourPointer__translate-y: calc(var(--TourPointer__arrow-size) / 2);
.o_tour_pointer_tip {
transform: translateY(50%) rotate(45deg);
/*rtl:begin:ignore*/
top: calc(var(--TourPointer__arrow-size) * -1);
left: calc(var(--TourPointer__arrow-size) / 2);
/*rtl:end:ignore*/
}
}
// Exception for when the info bubble would overflow to the right:
// we offset the content to the left
&.o_expand_left {
&.o_top,
&.o_bottom {
--TourPointer__translate-x: calc(
var(--TourPointer__width) + var(--TourPointer__border-width) - 100%
);
.o_tour_pointer_tip {
/*rtl:begin:ignore*/
left: initial;
right: calc(var(--TourPointer__arrow-size) / 2);
/*rtl:end:ignore*/
}
}
}
}
}
@media print {
.o_tour_pointer {
display: none !important;
}
}

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="web_tour.TourPointer">
<div
t-if="props.pointerState.isVisible"
t-ref="pointer"
t-attf-class="
o_tour_pointer
o_{{ position }}
{{ isOpen ? 'o_open' : (props.bounce ? 'o_bouncing' : '') }}
{{ props.pointerState.onClick ? 'cursor-pointer' : '' }}
"
t-attf-style="
--TourPointer__width: {{ constructor.width }}px;
--TourPointer__height: {{ constructor.height }}px;
"
t-on-mouseenter="props.pointerState.onMouseEnter or (() => {})"
t-on-mouseleave="props.pointerState.onMouseLeave or (() => {})"
t-on-click="props.pointerState.onClick or (() => {})"
>
<div class="o_tour_pointer_tip position-absolute" />
<div
class="o_tour_pointer_content rounded overflow-hidden px-3 py-2 w-100 h-100 position-relative"
t-att-class="{ invisible: content and !isOpen }"
>
<t t-out="content" />
</div>
</div>
</t>
</templates>

View File

@ -0,0 +1,432 @@
/** @odoo-module **/
import { browser } from "@web/core/browser/browser";
import { debounce } from "@web/core/utils/timing";
import { isVisible } from "@web/core/utils/ui";
import { tourState } from "./tour_state";
import {
callWithUnloadCheck,
getConsumeEventType,
getFirstVisibleElement,
getJQueryElementFromSelector,
getScrollParent,
RunningTourActionHelper,
} from "./tour_utils";
/**
* @typedef {import("@web/core/macro").MacroDescriptor} MacroDescriptor
*
* @typedef {import("../tour_service/tour_pointer_state").TourPointerState} TourPointerState
*
* @typedef {import("./tour_service").TourStep} TourStep
*
* @typedef {(stepIndex: number, step: TourStep, options: TourCompilerOptions) => MacroDescriptor[]} TourStepCompiler
*
* @typedef TourCompilerOptions
* @property {Tour} tour
* @property {number} stepDelay
* @property {keepWatchBrowser} boolean
* @property {showPointerDuration} number
* @property {*} pointer - used for controlling the pointer of the tour
*/
/**
* @param {string} selector - any valid jquery selector
* @param {boolean} inModal
* @param {string|undefined} shadowDOM - selector of the shadow root host
* @returns {Element | undefined}
*/
function findTrigger(selector, inModal, shadowDOM) {
const $target = $(shadowDOM ? document.querySelector(shadowDOM)?.shadowRoot : document);
const $visibleModal = $target.find(".modal:visible").last();
let $el;
if (inModal !== false && $visibleModal.length) {
$el = $visibleModal.find(selector);
} else {
$el = getJQueryElementFromSelector(selector, $target);
}
return getFirstVisibleElement($el).get(0);
}
/**
* @param {string|undefined} shadowDOM - selector of the shadow root host
*/
function findExtraTrigger(selector, shadowDOM) {
const $target = $(shadowDOM ? document.querySelector(shadowDOM)?.shadowRoot : document);
const $el = getJQueryElementFromSelector(selector, $target);
return getFirstVisibleElement($el).get(0);
}
function findStepTriggers(step) {
const triggerEl = findTrigger(step.trigger, step.in_modal, step.shadow_dom);
const altEl = findTrigger(step.alt_trigger, step.in_modal, step.shadow_dom);
const skipEl = findTrigger(step.skip_trigger, step.in_modal, step.shadow_dom);
// `extraTriggerOkay` should be true when `step.extra_trigger` is undefined.
// No need for it to be in the modal.
const extraTriggerOkay = step.extra_trigger
? findExtraTrigger(step.extra_trigger, step.shadow_dom)
: true;
return { triggerEl, altEl, extraTriggerOkay, skipEl };
}
/**
* @param {TourStep} step
*/
function describeStep(step) {
return step.content ? `${step.content} (trigger: ${step.trigger})` : step.trigger;
}
/**
* @param {TourStep} step
*/
function describeFailedStepSimple(step, tour) {
return `Tour ${tour.name} failed at step ${describeStep(step)}`;
}
/**
* @param {TourStep} step
* @param {Tour} tour
*/
function describeFailedStepDetailed(step, tour) {
const offset = 3;
const stepIndex = tour.steps.findIndex((s) => s === step);
const start = stepIndex - offset >= 0 ? stepIndex - offset : 0;
const end =
stepIndex + offset + 1 <= tour.steps.length ? stepIndex + offset + 1 : tour.steps.length;
let result = "";
for (let i = start; i < end; i++) {
const highlight = i === stepIndex;
const stepString = JSON.stringify(
tour.steps[i],
(_key, value) => {
if (typeof value === "function") {
return "[function]";
} else {
return value;
}
},
2
);
result += `\n${highlight ? "----- FAILING STEP -----\n" : ""}${stepString},${
highlight ? "\n-----------------------" : ""
}`;
}
return `${describeFailedStepSimple(step, tour)}\n\n${result.trim()}`;
}
/**
* Returns the element that will be used in listening to the `consumeEvent`.
* @param {HTMLElement} el
* @param {string} consumeEvent
*/
function getAnchorEl(el, consumeEvent) {
if (consumeEvent === "drag") {
// jQuery-ui draggable triggers 'drag' events on the .ui-draggable element,
// but the tip is attached to the .ui-draggable-handle element which may
// be one of its children (or the element itself)
return el.closest(".ui-draggable, .o_draggable");
}
if (consumeEvent === "input" && !["textarea", "input"].includes(el.tagName.toLowerCase())) {
return el.closest("[contenteditable='true']");
}
if (consumeEvent === "sort") {
// when an element is dragged inside a sortable container (with classname
// 'ui-sortable'), jQuery triggers the 'sort' event on the container
return el.closest(".ui-sortable, .o_sortable");
}
return el;
}
/**
* IMPROVEMENT: Consider transitioning (moving) elements?
* @param {Element} el
* @param {TourStep} step
*/
function canContinue(el, step) {
const rootNode = el.getRootNode();
const isInDoc =
rootNode instanceof ShadowRoot
? el.ownerDocument.contains(rootNode.host)
: el.ownerDocument.contains(el);
const isElement = el instanceof el.ownerDocument.defaultView.Element || el instanceof Element;
const isBlocked = document.body.classList.contains("o_ui_blocked") || document.querySelector(".o_blockUI");
return (
isInDoc &&
isElement &&
!isBlocked &&
(!step.allowInvisible ? isVisible(el) : true) &&
(!el.disabled || step.isCheck)
);
}
/**
* @param {Object} params
* @param {HTMLElement} params.anchorEl
* @param {string} params.consumeEvent
* @param {() => void} params.onMouseEnter
* @param {() => void} params.onMouseLeave
* @param {(ev: Event) => any} params.onScroll
* @param {(ev: Event) => any} params.onConsume
*/
function setupListeners({
anchorEl,
consumeEvent,
onMouseEnter,
onMouseLeave,
onScroll,
onConsume,
}) {
anchorEl.addEventListener(consumeEvent, onConsume);
anchorEl.addEventListener("mouseenter", onMouseEnter);
anchorEl.addEventListener("mouseleave", onMouseLeave);
const cleanups = [
() => {
anchorEl.removeEventListener(consumeEvent, onConsume);
anchorEl.removeEventListener("mouseenter", onMouseEnter);
anchorEl.removeEventListener("mouseleave", onMouseLeave);
},
];
const scrollEl = getScrollParent(anchorEl);
if (scrollEl) {
const debouncedOnScroll = debounce(onScroll, 50);
scrollEl.addEventListener("scroll", debouncedOnScroll);
cleanups.push(() => scrollEl.removeEventListener("scroll", debouncedOnScroll));
}
return () => {
while (cleanups.length) {
cleanups.pop()();
}
};
}
/** @type {TourStepCompiler} */
export function compileStepManual(stepIndex, step, options) {
const { tour, pointer, onStepConsummed } = options;
let proceedWith = null;
let removeListeners = () => {};
return [
{
action: () => console.log(step.trigger),
},
{
trigger: () => {
removeListeners();
if (proceedWith) {
return proceedWith;
}
const { triggerEl, altEl, extraTriggerOkay, skipEl } = findStepTriggers(step);
if (skipEl) {
return skipEl;
}
const stepEl = extraTriggerOkay && (triggerEl || altEl);
if (stepEl && canContinue(stepEl, step)) {
const consumeEvent = step.consumeEvent || getConsumeEventType(stepEl, step.run);
const anchorEl = getAnchorEl(stepEl, consumeEvent);
const debouncedToggleOpen = debounce(pointer.showContent, 50, true);
const updatePointer = () => {
pointer.setState({
onMouseEnter: () => debouncedToggleOpen(true),
onMouseLeave: () => debouncedToggleOpen(false),
});
pointer.pointTo(anchorEl, step);
};
removeListeners = setupListeners({
anchorEl,
consumeEvent,
onMouseEnter: () => pointer.showContent(true),
onMouseLeave: () => pointer.showContent(false),
onScroll: updatePointer,
onConsume: () => {
proceedWith = stepEl;
pointer.hide();
},
});
updatePointer();
} else {
pointer.hide();
}
},
action: () => {
tourState.set(tour.name, "currentIndex", stepIndex + 1);
pointer.hide();
proceedWith = null;
onStepConsummed(tour, step);
},
},
];
}
let tourTimeout;
/** @type {TourStepCompiler} */
export function compileStepAuto(stepIndex, step, options) {
const { tour, pointer, stepDelay, keepWatchBrowser, showPointerDuration, onStepConsummed } = options;
let skipAction = false;
return [
{
action: async () => {
// This delay is important for making the current set of tour tests pass.
// IMPROVEMENT: Find a way to remove this delay.
await new Promise(resolve => requestAnimationFrame(resolve))
},
},
{
action: async () => {
skipAction = false;
console.log(`Tour ${tour.name} on step: '${describeStep(step)}'`);
if (!keepWatchBrowser) {
browser.clearTimeout(tourTimeout);
tourTimeout = browser.setTimeout(() => {
// The logged text shows the relative position of the failed step.
// Useful for finding the failed step.
console.warn(describeFailedStepDetailed(step, tour));
// console.error notifies the test runner that the tour failed.
console.error(describeFailedStepSimple(step, tour));
}, (step.timeout || 10000) + stepDelay);
}
await new Promise((resolve) => browser.setTimeout(resolve, stepDelay));
},
},
{
trigger: () => {
const { triggerEl, altEl, extraTriggerOkay, skipEl } = findStepTriggers(step);
let stepEl = extraTriggerOkay && (triggerEl || altEl);
if (skipEl) {
skipAction = true;
stepEl = skipEl;
}
if (!stepEl) {
return false;
}
return canContinue(stepEl, step) && stepEl;
},
action: async (stepEl) => {
tourState.set(tour.name, "currentIndex", stepIndex + 1);
if (skipAction) {
return;
}
const consumeEvent = step.consumeEvent || getConsumeEventType(stepEl, step.run);
// When in auto mode, we are not waiting for an event to be consumed, so the
// anchor is just the step element.
const $anchorEl = $(stepEl);
if (showPointerDuration > 0) {
// Useful in watch mode.
pointer.pointTo($anchorEl.get(0), step);
await new Promise((r) => browser.setTimeout(r, showPointerDuration));
pointer.hide();
}
// TODO: Delegate the following routine to the `ACTION_HELPERS` in the macro module.
const actionHelper = new RunningTourActionHelper({
consume_event: consumeEvent,
$anchor: $anchorEl,
});
let result;
if (typeof step.run === "function") {
const willUnload = await callWithUnloadCheck(() =>
// `this.$anchor` is expected in many `step.run`.
step.run.call({ $anchor: $anchorEl }, actionHelper)
);
result = willUnload && "will unload";
} else if (step.run !== undefined) {
const m = step.run.match(/^([a-zA-Z0-9_]+) *(?:\(? *(.+?) *\)?)?$/);
actionHelper[m[1]](m[2]);
} else if (!step.isCheck) {
if (stepIndex === tour.steps.length - 1) {
console.warn('Tour %s: ignoring action (auto) of last step', tour.name);
} else {
actionHelper.auto();
}
}
return result;
},
},
{
action: () => {
onStepConsummed(tour, step);
},
},
];
}
/**
* @param {import("./tour_service").Tour} tour
* @param {object} options
* @param {TourStep[]} options.filteredSteps
* @param {TourStepCompiler} options.stepCompiler
* @param {*} options.pointer
* @param {number} options.stepDelay
* @param {boolean} options.keepWatchBrowser
* @param {number} options.showPointerDuration
* @param {number} options.checkDelay
* @param {(import("./tour_service").Tour) => void} options.onTourEnd
*/
export function compileTourToMacro(tour, options) {
const {
filteredSteps,
stepCompiler,
pointer,
stepDelay,
keepWatchBrowser,
showPointerDuration,
checkDelay,
onStepConsummed,
onTourEnd,
} = options;
const currentStepIndex = tourState.get(tour.name, "currentIndex");
return {
...tour,
checkDelay,
steps: filteredSteps
.reduce((newSteps, step, i) => {
if (i < currentStepIndex) {
// Don't include steps before the current index because they're already done.
return newSteps;
} else {
return [
...newSteps,
...stepCompiler(i, step, {
tour,
pointer,
stepDelay,
keepWatchBrowser,
showPointerDuration,
onStepConsummed,
}),
];
}
}, [])
.concat([
{
action() {
tourState.clear(tour.name);
onTourEnd(tour);
clearTimeout(tourTimeout);
},
},
]),
};
}

View File

@ -0,0 +1,181 @@
/** @odoo-module **/
import { reactive } from "@odoo/owl";
import { _t } from "@web/core/l10n/translation";
import { TourPointer } from "@web_tour/tour_pointer/tour_pointer";
import { getScrollParent } from "./tour_utils";
/**
* @typedef {import("@web/core/position_hook").Direction} Direction
*
* @typedef {"in" | "out-below" | "out-above" | "unknown"} IntersectionPosition
*
* @typedef {ReturnType<createPointerState>["methods"]} TourPointerMethods
*
* @typedef TourPointerState
* @property {HTMLElement} [anchor]
* @property {string} [content]
* @property {boolean} [isOpen]
* @property {() => {}} [onClick]
* @property {() => {}} [onMouseEnter]
* @property {() => {}} [onMouseLeave]
* @property {boolean} isVisible
* @property {Direction} position
* @property {number} rev
*
* @typedef {import("./tour_service").TourStep} TourStep
*/
class Intersection {
constructor() {
/** @type {Element | null} */
this.currentTarget = null;
this.rootBounds = null;
/** @type {IntersectionPosition} */
this._targetPosition = "unknown";
this._observer = new IntersectionObserver((observations) =>
this._handleObservations(observations)
);
}
/** @type {IntersectionObserverCallback} */
_handleObservations(observations) {
if (observations.length < 1) {
return;
}
const observation = observations[observations.length - 1];
this.rootBounds = observation.rootBounds;
if (this.rootBounds && this.currentTarget) {
if (observation.isIntersecting) {
this._targetPosition = "in";
} else {
const targetBounds = this.currentTarget.getBoundingClientRect();
if (targetBounds.bottom < this.rootBounds.height / 2) {
this._targetPosition = "out-above";
} else if (targetBounds.top > this.rootBounds.height / 2) {
this._targetPosition = "out-below";
}
}
} else {
this._targetPosition = "unknown";
}
}
get targetPosition() {
if (!this.rootBounds) {
return this.currentTarget ? "in" : "unknown";
} else {
return this._targetPosition;
}
}
/**
* @param {Element} newTarget
*/
setTarget(newTarget) {
if (this.currentTarget !== newTarget) {
if (this.currentTarget) {
this._observer.unobserve(this.currentTarget);
}
if (newTarget) {
this._observer.observe(newTarget);
}
this.currentTarget = newTarget;
}
}
stop() {
this._observer.disconnect();
}
}
export function createPointerState() {
/**
* @param {Partial<TourPointerState>} newState
*/
const setState = (newState) => {
Object.assign(state, newState);
};
/**
* @param {TourStep} step
* @param {HTMLElement} [anchor]
*/
const pointTo = (anchor, step) => {
intersection.setTarget(anchor);
if (anchor) {
let { position, content } = step;
switch (intersection.targetPosition) {
case "unknown": {
// Do nothing for unknown target position.
break;
}
case "in": {
if (document.body.contains(floatingAnchor)) {
floatingAnchor.remove();
}
setState({ anchor, content, onClick: null, position, isVisible: true });
break;
}
default: {
const onClick = () => {
anchor.scrollIntoView({ behavior: "smooth", block: "nearest" });
hide();
};
const scrollParent = getScrollParent(anchor);
if (!scrollParent) {
setState({ anchor, content, onClick: null, position, isVisible: true });
return;
}
const { x, y, width, height } = scrollParent.getBoundingClientRect();
floatingAnchor.style.left = `${x + width / 2}px`;
if (intersection.targetPosition === "out-below") {
position = "top";
content = _t("Scroll down to reach the next step.");
floatingAnchor.style.top = `${y + height - TourPointer.height}px`;
} else if (intersection.targetPosition === "out-above") {
position = "bottom";
content = _t("Scroll up to reach the next step.");
floatingAnchor.style.top = `${y + TourPointer.height}px`;
}
if (!document.contains(floatingAnchor)) {
document.body.appendChild(floatingAnchor);
}
setState({
anchor: floatingAnchor,
content,
onClick,
position,
isVisible: true,
});
}
}
} else {
hide();
}
};
function hide() {
setState({ content: "", isVisible: false, isOpen: false });
}
function showContent(isOpen) {
setState({ isOpen });
}
function destroy() {
intersection.stop();
if (document.body.contains(floatingAnchor)) {
floatingAnchor.remove();
}
}
/** @type {TourPointerState} */
const state = reactive({});
const intersection = new Intersection();
const floatingAnchor = document.createElement("div");
floatingAnchor.className = "position-fixed";
return { state, methods: { setState, showContent, pointTo, hide, destroy } };
}

View File

@ -0,0 +1,412 @@
/** @odoo-module **/
import { EventBus, markup, whenReady, reactive } from "@odoo/owl";
import { browser } from "@web/core/browser/browser";
import { _t } from "@web/core/l10n/translation";
import { MacroEngine } from "@web/core/macro";
import { registry } from "@web/core/registry";
import { config as transitionConfig } from "@web/core/transition";
import { session } from "@web/session";
import { TourPointer } from "../tour_pointer/tour_pointer";
import { compileStepAuto, compileStepManual, compileTourToMacro } from "./tour_compilers";
import { createPointerState } from "./tour_pointer_state";
import { tourState } from "./tour_state";
import { callWithUnloadCheck } from "./tour_utils";
/**
* @typedef {string} JQuerySelector
* @typedef {import("./tour_utils").RunCommand} RunCommand
*
* @typedef Tour
* @property {string} url
* @property {string} name
* @property {() => TourStep[]} steps
* @property {boolean} [rainbowMan]
* @property {number} [sequence]
* @property {boolean} [test]
* @property {Promise<any>} [wait_for]
* @property {string} [saveAs]
* @property {string} [fadeout]
* @property {number} [checkDelay]
* @property {string|undefined} [shadow_dom]
*
* @typedef TourStep
* @property {string} [id]
* @property {JQuerySelector} trigger
* @property {JQuerySelector} [extra_trigger]
* @property {JQuerySelector} [alt_trigger]
* @property {JQuerySelector} [skip_trigger]
* @property {string} [content]
* @property {"top" | "botton" | "left" | "right"} [position]
* @property {"community" | "enterprise"} [edition]
* @property {RunCommand} [run]
* @property {boolean} [auto]
* @property {boolean} [in_modal]
* @property {number} [width]
* @property {number} [timeout]
* @property {boolean} [consumeVisibleOnly]
* @property {boolean} [noPrepend]
* @property {string} [consumeEvent]
* @property {boolean} [mobile]
* @property {string} [title]
* @property {string|false|undefined} [shadow_dom]
*
* @typedef {"manual" | "auto"} TourMode
*/
export const tourService = {
// localization dependency to make sure translations used by tours are loaded
dependencies: ["orm", "effect", "ui", "overlay", "localization"],
start: async (_env, { orm, effect, ui, overlay }) => {
await whenReady();
const toursEnabled = "tour_disable" in session && !session.tour_disable;
const consumedTours = new Set(session.web_tours);
/** @type {{ [k: string]: Tour }} */
const tours = {};
const tourRegistry = registry.category("web_tour.tours");
function register(name, tour) {
name = tour.saveAs || name;
const wait_for = tour.wait_for || Promise.resolve();
let steps;
tours[name] = {
wait_for,
name,
get steps() {
if (typeof tour.steps !== "function") {
throw new Error(`tour.steps has to be a function that returns TourStep[]`);
}
if (!steps) {
steps = tour.steps().map((step) => {
step.shadow_dom = step.shadow_dom ?? tour.shadow_dom;
return step;
});
}
return steps;
},
shadow_dom: tour.shadow_dom,
url: tour.url,
rainbowMan: tour.rainbowMan === undefined ? true : !!tour.rainbowMan,
rainbowManMessage: tour.rainbowManMessage,
fadeout: tour.fadeout || "medium",
sequence: tour.sequence || 1000,
test: tour.test,
checkDelay: tour.checkDelay,
};
wait_for.then(() => {
if (
!tour.test &&
toursEnabled &&
!consumedTours.has(name) &&
!tourState.getActiveTourNames().includes(name)
) {
startTour(name, { mode: "manual", redirect: false });
}
});
}
for (const [name, tour] of tourRegistry.getEntries()) {
register(name, tour);
}
tourRegistry.addEventListener("UPDATE", ({ detail: { key, value } }) => {
if (tourRegistry.contains(key)) {
register(key, value);
if (
tourState.getActiveTourNames().includes(key) &&
// Don't resume onboarding tours when tours are disabled
(toursEnabled || tourState.get(key, "mode") === "auto")
) {
resumeTour(key);
}
} else {
delete tours[value];
}
});
const bus = new EventBus();
const macroEngine = new MacroEngine({ target: document });
const pointers = reactive({});
/** @type {Set<string>} */
const runningTours = new Set();
// FIXME: this is a hack for stable: whenever the macros advance, for each call to pointTo,
// we push a function that will do the pointing as well as the tour name. Then after
// a microtask tick, when all pointTo calls have been made by the macro system, we can sort
// these by tour priority/sequence and only call the one with the highest priority so we
// show the correct pointer.
const possiblePointTos = [];
function createPointer(tourName, config) {
const { state: pointerState, methods } = createPointerState();
let remove;
return {
start() {
pointers[tourName] = {
methods,
id: tourName,
component: TourPointer,
props: { pointerState, ...config },
};
remove = overlay.add(pointers[tourName].component, pointers[tourName].props);
},
stop() {
remove?.();
delete pointers[tourName];
methods.destroy();
},
...methods,
async pointTo(anchor, step) {
possiblePointTos.push([tourName, () => methods.pointTo(anchor, step)]);
await Promise.resolve();
// only done once per macro advance
if (!possiblePointTos.length) {
return;
}
const toursByPriority = Object.fromEntries(
getSortedTours().map((t, i) => [t.name, i])
);
const sortedPointTos = possiblePointTos
.slice(0)
.sort(([a], [b]) => toursByPriority[a] - toursByPriority[b]);
possiblePointTos.splice(0); // reset for the next macro advance
const active = sortedPointTos[0];
const [activeId, enablePointer] = active || [];
for (const { id, methods } of Object.values(pointers)) {
if (id === activeId) {
enablePointer();
} else {
methods.hide();
}
}
},
};
}
/**
* @param {TourStep} step
* @param {TourMode} mode
*/
function shouldOmit(step, mode) {
const isDefined = (key, obj) => key in obj && obj[key] !== undefined;
const getEdition = () =>
(session.server_version_info || []).at(-1) === "e" ? "enterprise" : "community";
const correctEdition = isDefined("edition", step)
? step.edition === getEdition()
: true;
const correctDevice = isDefined("mobile", step) ? step.mobile === ui.isSmall : true;
return (
!correctEdition ||
!correctDevice ||
// `step.auto = true` means omitting a step in a manual tour.
(mode === "manual" && step.auto)
);
}
/**
* @param {Tour} tour
* @param {ReturnType<typeof createPointer>} pointer
* @param {Object} options
* @param {TourMode} options.mode
* @param {number} options.stepDelay
* @param {boolean} options.keepWatchBrowser - do not close watch browser when the tour failed
* @param {number} options.showPointerDuration
* - Useful when watching auto tour.
* - Show the pointer for some duration before performing calling the run method.
*/
function convertToMacro(
tour,
pointer,
{ mode, stepDelay, keepWatchBrowser, showPointerDuration }
) {
// IMPROVEMENTS: Custom step compiler. Will probably require decoupling from `mode`.
const stepCompiler = mode === "auto" ? compileStepAuto : compileStepManual;
const checkDelay = mode === "auto" ? tour.checkDelay : 100;
const filteredSteps = tour.steps.filter((step) => !shouldOmit(step, mode));
return compileTourToMacro(tour, {
filteredSteps,
stepCompiler,
pointer,
stepDelay,
keepWatchBrowser,
showPointerDuration,
checkDelay,
onStepConsummed(tour, step) {
bus.trigger("STEP-CONSUMMED", { tour, step });
},
onTourEnd({ name, rainbowManMessage, fadeout }) {
if (mode === "auto") {
transitionConfig.disabled = false;
}
let message;
if (typeof rainbowManMessage === "function") {
message = rainbowManMessage({
isTourConsumed: (name) => consumedTours.has(name),
});
} else if (typeof rainbowManMessage === "string") {
message = rainbowManMessage;
} else {
message = markup(
_t(
"<strong><b>Good job!</b> You went through all steps of this tour.</strong>"
)
);
}
effect.add({ type: "rainbow_man", message, fadeout });
if (mode === "manual") {
consumedTours.add(name);
orm.call("web_tour.tour", "consume", [[name]]);
}
pointer.stop();
// Used to signal the python test runner that the tour finished without error.
browser.console.log("test successful");
runningTours.delete(name);
},
});
}
/**
* Wait for the shadow hosts matching the given selectors to
* appear in the DOM then, register the underlying shadow roots
* to the macro engine observer in order to listen to the
* changes in the shadow DOM.
*
* @param {Set<string>} shadowHostSelectors
*/
function observeShadows(shadowHostSelectors) {
const observer = new MutationObserver(() => {
const shadowRoots = [];
for (const selector of shadowHostSelectors) {
const shadowHost = document.querySelector(selector);
if (shadowHost) {
shadowRoots.push(shadowHost.shadowRoot);
shadowHostSelectors.delete(selector);
}
}
for (const shadowRoot of shadowRoots) {
macroEngine.observer.observe(shadowRoot, macroEngine.observerOptions);
}
if (shadowHostSelectors.size === 0) {
observer.disconnect();
}
});
observer.observe(macroEngine.target, { childList: true, subtree: true });
}
/**
* Register shadow roots that must be observed by the tour to
* the macro engine.
*
* @param {Tour} tour
*/
function setupShadowObservers(tour) {
const shadowDOMs = new Set(
tour.steps.filter((step) => step.shadow_dom).map((step) => step.shadow_dom)
);
if (shadowDOMs.size > 0) {
observeShadows(shadowDOMs);
}
}
/**
* Disable transition before starting an "auto" tour.
* @param {Macro} macro
* @param {'auto' | 'manual'} mode
*/
function activateMacro(macro, mode) {
if (mode === "auto") {
transitionConfig.disabled = true;
}
macroEngine.activate(macro, mode === "auto");
}
function startTour(tourName, options = {}) {
if (runningTours.has(tourName) && options.mode === "manual") {
return;
}
runningTours.add(tourName);
const defaultOptions = {
stepDelay: 0,
keepWatchBrowser: false,
mode: "auto",
startUrl: "",
showPointerDuration: 0,
redirect: true,
};
options = Object.assign(defaultOptions, options);
const tour = tours[tourName];
if (!tour) {
throw new Error(`Tour '${tourName}' is not found.`);
}
tourState.set(tourName, "currentIndex", 0);
tourState.set(tourName, "stepDelay", options.stepDelay);
tourState.set(tourName, "keepWatchBrowser", options.keepWatchBrowser);
tourState.set(tourName, "showPointerDuration", options.showPointerDuration);
tourState.set(tourName, "mode", options.mode);
tourState.set(tourName, "sequence", tour.sequence);
const pointer = createPointer(tourName, {
bounce: !(options.mode === "auto" && options.keepWatchBrowser),
});
const macro = convertToMacro(tour, pointer, options);
const willUnload = callWithUnloadCheck(() => {
if (tour.url && tour.url !== options.startUrl && options.redirect) {
window.location.href = window.location.origin + tour.url;
}
});
if (!willUnload) {
setupShadowObservers(tour);
pointer.start();
activateMacro(macro, options.mode);
}
}
function resumeTour(tourName) {
if (runningTours.has(tourName)) {
return;
}
runningTours.add(tourName);
const tour = tours[tourName];
const stepDelay = tourState.get(tourName, "stepDelay");
const keepWatchBrowser = tourState.get(tourName, "keepWatchBrowser");
const showPointerDuration = tourState.get(tourName, "showPointerDuration");
const mode = tourState.get(tourName, "mode");
const pointer = createPointer(tourName, {
bounce: !(mode === "auto" && keepWatchBrowser),
});
const macro = convertToMacro(tour, pointer, {
mode,
stepDelay,
keepWatchBrowser,
showPointerDuration,
});
setupShadowObservers(tour);
pointer.start();
activateMacro(macro, mode);
}
function getSortedTours() {
return Object.values(tours).sort((t1, t2) => {
return t1.sequence - t2.sequence || (t1.name < t2.name ? -1 : 1);
});
}
if (!window.frameElement) {
// Resume running tours.
for (const tourName of tourState.getActiveTourNames()) {
if (tourName in tours) {
resumeTour(tourName);
}
}
}
odoo.startTour = startTour;
odoo.isTourReady = (tourName) => tours[tourName].wait_for.then(() => true);
return {
bus,
startTour,
getSortedTours,
};
},
};
registry.category("services").add("tour_service", tourService);

View File

@ -0,0 +1,85 @@
/** @odoo-module **/
import { browser } from "@web/core/browser/browser";
const BOOLEAN = {
toLocalStorage: (val) => (val ? "1" : "0"),
fromLocalStorage: (val) => (val === "1" ? true : false),
};
const INTEGER = {
toLocalStorage: (val) => val.toString(),
fromLocalStorage: (val) => parseInt(val, 10),
};
const STRING = {
toLocalStorage: (x) => x,
fromLocalStorage: (x) => x,
};
const ALLOWED_KEYS = {
// Don't close the 'watch' browser when the tour failed.
keepWatchBrowser: BOOLEAN,
// Duration at which the pointer is shown in auto mode.
showPointerDuration: INTEGER,
// Index of the current step.
currentIndex: INTEGER,
// Global step delay that is specified before starting the tour.
stepDelay: INTEGER,
// 'auto' | 'manual' - important that it's persisted because it's only specified during start of tour.
mode: STRING,
// Used to order the tours.
sequence: INTEGER,
};
function getPrefixedName(tourName, key) {
return `tour__${tourName}__${key}`;
}
function destructurePrefixedName(prefixedName) {
const match = prefixedName.match(/tour__([.\w]+)__([\w]+)/);
return match ? [match[1], match[2]] : null;
}
/**
* Wrapper around localStorage for persistence of the running tours.
* Useful for resuming running tours when the page refreshed.
*/
export const tourState = {
get(tourName, key) {
if (!(key in ALLOWED_KEYS)) {
throw new Error(`Invalid key: '${key}' (tourName = '${tourName}')`);
}
const prefixedName = getPrefixedName(tourName, key);
const savedValue = browser.localStorage.getItem(prefixedName);
return ALLOWED_KEYS[key].fromLocalStorage(savedValue);
},
set(tourName, key, value) {
if (!(key in ALLOWED_KEYS)) {
throw new Error(`Invalid key: '${key}' (tourName = '${tourName}')`);
}
const prefixedName = getPrefixedName(tourName, key);
browser.localStorage.setItem(prefixedName, ALLOWED_KEYS[key].toLocalStorage(value));
},
clear(tourName) {
for (const key in ALLOWED_KEYS) {
const prefixedName = getPrefixedName(tourName, key);
browser.localStorage.removeItem(prefixedName);
}
},
getActiveTourNames() {
const tourNames = new Set();
for (const key of Object.keys(browser.localStorage)) {
const [tourName] = destructurePrefixedName(key) || [false];
if (tourName) {
tourNames.add(tourName);
}
}
return [...tourNames].sort((a, b) => this.get(a, "sequence") - this.get(b, "sequence"));
},
};

View File

@ -0,0 +1,654 @@
/** @odoo-module **/
import { markup } from "@odoo/owl";
import { _t } from "@web/core/l10n/translation";
import { utils } from "@web/core/ui/ui_service";
import { _legacyIsVisible } from "@web/core/utils/ui";
/**
* @typedef {string | (actions: RunningTourActionHelper) => void | Promise<void>} RunCommand
*/
export class TourError extends Error {
constructor(message, ...args) {
super(message, ...args);
this.message = `(TourError) ${message}`;
}
}
/**
* Calls the given `func` then returns/resolves to `true`
* if it will result to unloading of the page.
* @param {(...args: any[]) => void} func
* @param {any[]} args
* @returns {boolean | Promise<boolean>}
*/
export function callWithUnloadCheck(func, ...args) {
let willUnload = false;
const beforeunload = () => (willUnload = true);
window.addEventListener("beforeunload", beforeunload);
const result = func(...args);
if (result instanceof Promise) {
return result.then(() => {
window.removeEventListener("beforeunload", beforeunload);
return willUnload;
});
} else {
window.removeEventListener("beforeunload", beforeunload);
return willUnload;
}
}
export function getFirstVisibleElement($elements) {
for (var i = 0; i < $elements.length; i++) {
var $i = $elements.eq(i);
if (_legacyIsVisible($i[0])) {
return $i;
}
}
return $();
}
/**
* @param {JQuery|undefined} target
*/
export function getJQueryElementFromSelector(selector, $target) {
$target = $target || $(document);
const iframeSplit = typeof selector === "string" && selector.match(/(.*\biframe[^ ]*)(.*)/);
if (iframeSplit && iframeSplit[2]) {
var $iframe = $target.find(`${iframeSplit[1]}:not(.o_ignore_in_tour)`);
if ($iframe.is('[is-ready="false"]')) {
return $();
}
var $el = $iframe.contents().find(iframeSplit[2]);
$el.iframeContainer = $iframe[0];
return $el;
} else if (typeof selector === "string") {
return $target.find(selector);
} else {
return $(selector);
}
}
/**
* @param {HTMLElement} [element]
* @param {RunCommand} [runCommand]
* @returns {string}
*/
export function getConsumeEventType(element, runCommand) {
if (!element) {
return "click";
}
const { classList, tagName, type } = element;
const tag = tagName.toLowerCase();
// Many2one
if (classList.contains("o_field_many2one")) {
return "autocompleteselect";
}
// Inputs and textareas
if (
tag === "textarea" ||
(tag === "input" &&
(!type ||
["email", "number", "password", "search", "tel", "text", "url"].includes(type)))
) {
if (
utils.isSmall() &&
element.closest(".o_field_widget")?.matches(".o_field_many2one, .o_field_many2many")
) {
return "click";
}
return "input";
}
// jQuery draggable
if (classList.contains("ui-draggable-handle")) {
return "mousedown";
}
// Drag & drop run command
if (typeof runCommand === "string" && /^drag_and_drop/.test(runCommand)) {
// this is a heuristic: the element has to be dragged and dropped but it
// doesn't have class 'ui-draggable-handle', so we check if it has an
// ui-sortable parent, and if so, we conclude that its event type is 'sort'
if (element.closest(".ui-sortable")) {
return "sort";
}
if (
(/^drag_and_drop_native/.test(runCommand) && classList.contains("o_draggable")) ||
element.closest(".o_draggable")
) {
return "pointerdown";
}
}
// Default: click
return "click";
}
/**
* ! This function is a copy-paste of its namesake in web/static/tests/helpers/utils.js
* TODO: Unify utils for tests and tours since they're doing the exact same thing
* @param {Node} n1
* @param {Node} n2
* @returns {Node[]}
*/
export function getDifferentParents(n1, n2) {
const parents = [n2];
while (parents[0].parentNode) {
const parent = parents[0].parentNode;
if (parent.contains(n1)) {
break;
}
parents.unshift(parent);
}
return parents;
}
/**
* @param {HTMLElement} element
* @returns {HTMLElement | null}
*/
export function getScrollParent(element) {
if (!element) {
return null;
}
if (element.scrollHeight > element.clientHeight) {
return element;
} else {
return getScrollParent(element.parentNode);
}
}
/**
* @param {HTMLElement} el
* @param {string} type
* @param {boolean} canBubbleAndBeCanceled
* @param {PointerEventInit} [additionalParams]
*/
export const triggerPointerEvent = (el, type, canBubbleAndBeCanceled, additionalParams) => {
const eventInit = {
bubbles: canBubbleAndBeCanceled,
cancelable: canBubbleAndBeCanceled,
view: window,
...additionalParams,
};
el.dispatchEvent(new PointerEvent(type, eventInit));
if (type.startsWith("pointer")) {
el.dispatchEvent(new MouseEvent(type.replace("pointer", "mouse"), eventInit));
}
};
export class RunningTourActionHelper {
constructor(tip_widget) {
this.tip_widget = tip_widget;
}
click(element) {
this._click(this._get_action_values(element));
}
dblclick(element) {
this._click(this._get_action_values(element), 2);
}
tripleclick(element) {
this._click(this._get_action_values(element), 3);
}
clicknoleave(element) {
this._click(this._get_action_values(element), 1, false);
}
text(text, element) {
this._text(this._get_action_values(element), text);
}
remove_text(text, element) {
this._text(this._get_action_values(element), "\n");
}
text_blur(text, element) {
this._text_blur(this._get_action_values(element), text);
}
range(text, element) {
this._range(this._get_action_values(element), text);
}
drag_and_drop(to, element) {
this._drag_and_drop_jquery(this._get_action_values(element), to);
}
drag_and_drop_native(toSel, element) {
const to = getJQueryElementFromSelector(toSel)[0];
this._drag_and_drop(this._get_action_values(element).$element[0], to);
}
keydown(keyCodes, element) {
this._keydown(this._get_action_values(element), keyCodes.split(/[,\s]+/));
}
auto(element) {
var values = this._get_action_values(element);
if (values.consume_event === "input") {
this._text(values);
} else {
this._click(values);
}
}
_get_action_values(element) {
var $e = getJQueryElementFromSelector(element);
var $element = element ? getFirstVisibleElement($e) : this.tip_widget.$anchor;
if ($element.length === 0) {
$element = $e.first();
}
var consume_event = element
? getConsumeEventType($element[0])
: this.tip_widget.consume_event;
return {
$element: $element,
consume_event: consume_event,
};
}
_click(values, nb, leave) {
const target = values.$element[0];
triggerPointerEvent(target, "pointerover", true);
triggerPointerEvent(target, "pointerenter", false);
triggerPointerEvent(target, "pointermove", true);
for (let i = 1; i <= (nb || 1); i++) {
triggerPointerEvent(target, "pointerdown", true);
triggerPointerEvent(target, "pointerup", true);
triggerPointerEvent(target, "click", true, { detail: i });
if (i % 2 === 0) {
triggerPointerEvent(target, "dblclick", true);
}
}
if (leave !== false) {
triggerPointerEvent(target, "pointerout", true);
triggerPointerEvent(target, "pointerleave", false);
}
}
_text(values, text) {
this._click(values);
text = text || "Test";
if (values.consume_event === "input") {
values.$element
.trigger({ type: "keydown", key: text[text.length - 1] })
.val(text)
.trigger({ type: "keyup", key: text[text.length - 1] });
values.$element[0].dispatchEvent(
new InputEvent("input", {
bubbles: true,
})
);
} else if (values.$element.is("select")) {
var $options = values.$element.find("option");
$options.prop("selected", false).removeProp("selected");
var $selectedOption = $options.filter(function () {
return $(this).val() === text;
});
if ($selectedOption.length === 0) {
$selectedOption = $options.filter(function () {
return $(this).text().trim() === text;
});
}
const regex = /option\s+([0-9]+)/;
if ($selectedOption.length === 0 && regex.test(text)) {
// Extract position as 1-based, as the nth selectors.
const position = parseInt(regex.exec(text)[1]);
$selectedOption = $options.eq(position - 1); // eq is 0-based.
}
$selectedOption.prop("selected", true);
this._click(values);
// For situations where an `oninput` is defined.
values.$element.trigger("input");
} else {
values.$element.focusIn();
values.$element.trigger($.Event("keydown", { key: "_" }));
values.$element.text(text).trigger("input");
values.$element.focusInEnd();
values.$element.trigger($.Event("keyup", { key: "_" }));
}
values.$element[0].dispatchEvent(new Event("change", { bubbles: true, cancelable: false }));
}
_text_blur(values, text) {
this._text(values, text);
values.$element.trigger("focusout");
values.$element.trigger("blur");
}
_range(values, text) {
values.$element[0].value = text;
values.$element[0].dispatchEvent(new Event('change', { bubbles: true, cancelable: false }));
}
_calculateCenter($el, selector) {
const center = $el.offset();
if (selector && selector.indexOf("iframe") !== -1) {
const iFrameOffset = $("iframe").offset();
center.left += iFrameOffset.left;
center.top += iFrameOffset.top;
}
center.left += $el.outerWidth() / 2;
center.top += $el.outerHeight() / 2;
return center;
}
_drag_and_drop_jquery(values, to) {
var $to;
const elementCenter = this._calculateCenter(values.$element);
if (to) {
$to = getJQueryElementFromSelector(to);
} else {
$to = $(document.body);
}
values.$element.trigger($.Event("mouseenter"));
// Make the web_studio tour test happy. My guess is that 50%+ of the length of the dragged element
// must be situated to the right of the $to element.
values.$element.trigger(
$.Event("mousedown", {
which: 1,
pageX: elementCenter.left + 1,
pageY: elementCenter.top,
})
);
// Some tests depends on elements present only when the element to drag
// start to move while some other tests break while moving.
if (!$to.length) {
values.$element.trigger(
$.Event("mousemove", {
which: 1,
pageX: elementCenter.left + 1,
pageY: elementCenter.top,
})
);
$to = getJQueryElementFromSelector(to);
}
let toCenter = this._calculateCenter($to, to);
values.$element.trigger(
$.Event("mousemove", { which: 1, pageX: toCenter.left, pageY: toCenter.top })
);
// Recalculate the center as the mousemove might have made the element bigger.
toCenter = this._calculateCenter($to, to);
values.$element.trigger(
$.Event("mouseup", { which: 1, pageX: toCenter.left, pageY: toCenter.top })
);
}
/**
* ! This function is a reduced version of "drag" in web/static/tests/helpers/utils.js
* TODO: Unify utils for tests and tours since they're doing the exact same thing
* @param {HTMLElement} source
* @param {HTMLElement} target
*/
_drag_and_drop(source, target) {
const sourceRect = source.getBoundingClientRect();
const sourcePosition = {
clientX: sourceRect.x + sourceRect.width / 2,
clientY: sourceRect.y + sourceRect.height / 2,
};
const targetRect = target.getBoundingClientRect();
const targetPosition = {
clientX: targetRect.x + targetRect.width / 2,
clientY: targetRect.y + targetRect.height / 2,
};
triggerPointerEvent(source, "pointerdown", true, sourcePosition);
triggerPointerEvent(source, "pointermove", true, targetPosition);
for (const parent of getDifferentParents(source, target)) {
triggerPointerEvent(parent, "pointerenter", false, targetPosition);
}
triggerPointerEvent(target, "pointerup", true, targetPosition);
}
_keydown(values, keyCodes) {
while (keyCodes.length) {
const eventOptions = {};
const keyCode = keyCodes.shift();
let insertedText = null;
if (isNaN(keyCode)) {
eventOptions.key = keyCode;
} else {
const code = parseInt(keyCode, 10);
if (
code === 32 || // spacebar
(code > 47 && code < 58) || // number keys
(code > 64 && code < 91) || // letter keys
(code > 95 && code < 112) || // numpad keys
(code > 185 && code < 193) || // ;=,-./` (in order)
(code > 218 && code < 223) // [\]' (in order))
) {
insertedText = String.fromCharCode(code);
}
}
values.$element.trigger(Object.assign({ type: "keydown" }, eventOptions));
if (insertedText) {
document.execCommand("insertText", 0, insertedText);
}
values.$element.trigger(Object.assign({ type: "keyup" }, eventOptions));
}
}
}
export const stepUtils = {
_getHelpMessage(functionName, ...args) {
return `Generated by function tour utils ${functionName}(${args.join(", ")})`;
},
addDebugHelp(helpMessage, step) {
if (typeof step.debugHelp === "string") {
step.debugHelp = step.debugHelp + "\n" + helpMessage;
} else {
step.debugHelp = helpMessage;
}
return step;
},
editionEnterpriseModifier(step) {
step.edition = "enterprise";
return step;
},
mobileModifier(step) {
step.mobile = true;
return step;
},
showAppsMenuItem() {
return {
edition: "community",
trigger: ".o_navbar_apps_menu button",
auto: true,
position: "bottom",
};
},
toggleHomeMenu() {
return {
edition: "enterprise",
trigger: ".o_main_navbar .o_menu_toggle",
content: markup(_t("Click on the <i>Home icon</i> to navigate across apps.")),
position: "bottom",
};
},
autoExpandMoreButtons(extra_trigger) {
return {
trigger: ".o-form-buttonbox",
extra_trigger: extra_trigger,
auto: true,
run: (actions) => {
const $more = $(".o-form-buttonbox .o_button_more");
if ($more.length) {
actions.click($more);
}
},
};
},
goBackBreadcrumbsMobile(description, ...extraTrigger) {
return extraTrigger.map((element) => ({
mobile: true,
trigger: ".o_back_button",
extra_trigger: element,
content: description,
position: "bottom",
debugHelp: this._getHelpMessage(
"goBackBreadcrumbsMobile",
description,
...extraTrigger
),
}));
},
goToAppSteps(dataMenuXmlid, description) {
return [
this.showAppsMenuItem(),
{
trigger: `.o_app[data-menu-xmlid="${dataMenuXmlid}"]`,
content: description,
position: "right",
edition: "community",
},
{
trigger: `.o_app[data-menu-xmlid="${dataMenuXmlid}"]`,
content: description,
position: "bottom",
edition: "enterprise",
},
].map((step) =>
this.addDebugHelp(this._getHelpMessage("goToApp", dataMenuXmlid, description), step)
);
},
openBurgerMenu(extraTrigger) {
return {
mobile: true,
trigger: ".o_mobile_menu_toggle",
extra_trigger: extraTrigger,
content: _t("Open bugger menu."),
position: "bottom",
debugHelp: this._getHelpMessage("openBurgerMenu", extraTrigger),
};
},
statusbarButtonsSteps(innerTextButton, description, extraTrigger) {
return [
{
mobile: true,
auto: true,
trigger: ".o_statusbar_buttons",
extra_trigger: extraTrigger,
run: (actions) => {
const $action = $(".o_statusbar_buttons .btn.dropdown-toggle:contains(Action)");
if ($action.length) {
actions.click($action);
}
},
},
{
trigger: `.o_statusbar_buttons button:enabled:contains('${innerTextButton}')`,
content: description,
position: "bottom",
},
].map((step) =>
this.addDebugHelp(
this._getHelpMessage(
"statusbarButtonsSteps",
innerTextButton,
description,
extraTrigger
),
step
)
);
},
simulateEnterKeyboardInSearchModal() {
return {
mobile: true,
trigger: ".o_searchview_input",
extra_trigger: ".modal:not(.o_inactive_modal) .dropdown-menu.o_searchview_autocomplete",
position: "bottom",
run: (action) => {
const keyEventEnter = new KeyboardEvent("keydown", {
bubbles: true,
cancelable: true,
key: "Enter",
code: "Enter",
});
action.tip_widget.$anchor[0].dispatchEvent(keyEventEnter);
},
debugHelp: this._getHelpMessage("simulateEnterKeyboardInSearchModal"),
};
},
mobileKanbanSearchMany2X(modalTitle, valueSearched) {
return [
{
mobile: true,
trigger: `.o_control_panel_navigation .btn .fa-search`,
position: "bottom",
},
{
mobile: true,
trigger: ".o_searchview_input",
extra_trigger: `.modal:not(.o_inactive_modal) .modal-title:contains('${modalTitle}')`,
position: "bottom",
run: `text ${valueSearched}`,
},
this.simulateEnterKeyboardInSearchModal(),
{
mobile: true,
trigger: `.o_kanban_record .o_kanban_record_title :contains('${valueSearched}')`,
position: "bottom",
},
].map((step) =>
this.addDebugHelp(
this._getHelpMessage("mobileKanbanSearchMany2X", modalTitle, valueSearched),
step
)
);
},
/**
* Utility steps to save a form and wait for the save to complete
*
* @param {object} [options]
* @param {string} [options.content]
* @param {string} [options.extra_trigger] additional save-condition selector
*/
saveForm(options = {}) {
return [
{
content: options.content || "save form",
trigger: ".o_form_button_save",
extra_trigger: options.extra_trigger,
run: "click",
auto: true,
},
{
content: "wait for save completion",
trigger: ".o_form_readonly, .o_form_saved",
run() {},
auto: true,
},
];
},
/**
* Utility steps to cancel a form creation or edition.
*
* Supports creation/edition from either a form or a list view (so checks
* for both states).
*/
discardForm(options = {}) {
return [
{
content: options.content || "exit the form",
trigger: ".o_form_button_cancel",
extra_trigger: options.extra_trigger,
run: "click",
auto: true,
},
{
content: "wait for cancellation to complete",
trigger:
".o_view_controller.o_list_view, .o_form_view > div > div > .o_form_readonly, .o_form_view > div > div > .o_form_saved",
run() {},
auto: true,
},
];
},
};

View File

@ -0,0 +1,87 @@
/** @odoo-module **/
import { disableTours } from "@web_tour/debug/debug_manager";
import { hotkeyService } from "@web/core/hotkeys/hotkey_service";
import { ormService } from "@web/core/orm_service";
import { registry } from "@web/core/registry";
import { uiService } from "@web/core/ui/ui_service";
import { browser } from "@web/core/browser/browser";
import { click, getFixture, mount, patchWithCleanup } from "@web/../tests/helpers/utils";
import { makeTestEnv } from "@web/../tests/helpers/mock_env";
import { makeFakeLocalizationService, fakeCommandService } from "@web/../tests/helpers/mock_services";
import { DebugMenuParent } from "@web/../tests/core/debug/debug_manager_tests";
const debugRegistry = registry.category("debug");
let target;
QUnit.module("Tours", (hooks) => {
QUnit.module("DebugManager");
hooks.beforeEach(async () => {
target = getFixture();
registry
.category("services")
.add("hotkey", hotkeyService)
.add("ui", uiService)
.add("orm", ormService)
.add("localization", makeFakeLocalizationService())
.add("command", fakeCommandService);
});
QUnit.test("can disable tours", async (assert) => {
debugRegistry.category("default").add("disableTours", disableTours);
const fakeLocalStorage = {
tour__sampletour1__currentIndex: "0",
tour__sampletour1__stepDelay: "0",
tour__sampletour1__keepWatchBrowser: "0",
tour__sampletour1__showPointerDuration: "0",
tour__sampletour1__mode: "manual",
tour__sampletour2__currentIndex: "0",
tour__sampletour2__stepDelay: "0",
tour__sampletour2__keepWatchBrowser: "0",
tour__sampletour2__showPointerDuration: "0",
tour__sampletour2__mode: "manual",
};
Object.defineProperties(fakeLocalStorage, {
getItem: {
value(key) {
return fakeLocalStorage[key];
},
enumerable: false,
},
removeItem: {
value(key) {
delete fakeLocalStorage[key];
},
enumerable: false,
},
});
patchWithCleanup(browser, { localStorage: fakeLocalStorage });
const mockRPC = async (_route, args) => {
if (args.method === "check_access_rights") {
return Promise.resolve(true);
}
if (args.method === "consume") {
assert.step("consume");
assert.deepEqual(args.args[0], ["sampletour1", "sampletour2"]);
return Promise.resolve(true);
}
};
const env = await makeTestEnv({ mockRPC });
await mount(DebugMenuParent, target, { env });
await click(target.querySelector("button.dropdown-toggle"));
assert.containsOnce(target, ".dropdown-item");
await click(target.querySelector(".dropdown-item"));
assert.verifySteps(["consume"]);
});
});

View File

@ -0,0 +1,742 @@
/** @odoo-module **/
import { browser } from "@web/core/browser/browser";
import { MacroEngine } from "@web/core/macro";
import { registry } from "@web/core/registry";
import { tourService } from "@web_tour/tour_service/tour_service";
import { rpcService } from "@web/core/network/rpc_service";
import { userService } from "@web/core/user_service";
import { ormService } from "@web/core/orm_service";
import { notificationService } from "@web/core/notifications/notification_service";
import { effectService } from "@web/core/effects/effect_service";
import { registerCleanup } from "@web/../tests/helpers/cleanup";
import {
getFixture,
mount,
mockTimeout,
editInput,
click,
triggerEvent,
nextTick,
patchWithCleanup,
} from "@web/../tests/helpers/utils";
import { makeTestEnv } from "@web/../tests/helpers/mock_env";
import { Component, useState, xml } from "@odoo/owl";
import { session } from "@web/session";
let target, mock;
QUnit.module("Tour service", (hooks) => {
QUnit.module("tour_service");
let tourRegistry;
class Counter extends Component {
static template = xml/*html*/ `
<div class="counter">
<div class="interval">
<input type="number" t-model.number="state.interval" />
</div>
<div class="counter">
<span class="value" t-esc="state.value" />
<button class="inc" t-on-click="onIncrement">+</button>
</div>
</div>
`;
setup() {
this.state = useState({ interval: 1, value: 0 });
}
onIncrement() {
this.state.value += this.state.interval;
}
}
hooks.beforeEach(() => {
target = getFixture();
mock = mockTimeout();
tourRegistry = registry.category("web_tour.tours");
delete registry.subRegistries["web_tour.tours"];
let macroEngines = [];
patchWithCleanup(MacroEngine.prototype, {
start() {
super.start(...arguments);
macroEngines.push(this);
},
});
registerCleanup(() => {
macroEngines.forEach((e) => e.stop());
macroEngines = [];
});
registry
.category("services")
.add("rpc", rpcService)
.add("user", userService)
.add("orm", ormService)
.add("notification", notificationService)
.add("effect", effectService)
.add("tour_service", tourService);
patchWithCleanup(browser.console, {
// prevent form logging "tour successful" which would end the qunit suite test
log: () => {},
});
});
hooks.afterEach(() => {
registry.subRegistries["web_tour.tours"] = tourRegistry;
});
QUnit.test("Tours sequence", async function (assert) {
registry
.category("web_tour.tours")
.add("Tour 1", {
sequence: 10,
steps: () => [{ trigger: ".anchor" }],
})
.add("Tour 2", { steps: () => [{ trigger: ".anchor" }] })
.add("Tour 3", {
sequence: 5,
steps: () => [{ trigger: ".anchor", content: "Oui" }],
});
const env = await makeTestEnv({});
const sortedTours = env.services.tour_service.getSortedTours();
assert.strictEqual(sortedTours[0].name, "Tour 3");
});
QUnit.test("override existing tour by using saveAs", async function (assert) {
registry
.category("web_tour.tours")
.add("Tour 1", {
steps: () => [{ trigger: "#1" }],
saveAs: "homepage",
})
.add("Tour 2", {
steps: () => [{ trigger: "#2" }],
saveAs: "homepage",
});
const env = await makeTestEnv({});
const sortedTours = env.services.tour_service.getSortedTours();
assert.strictEqual(sortedTours.length, 1);
assert.deepEqual(sortedTours[0].steps, [{ shadow_dom: undefined, trigger: "#2" }]);
assert.deepEqual(sortedTours[0].name, "homepage");
});
QUnit.test("points to next step", async function (assert) {
registry.category("web_tour.tours").add("tour1", {
sequence: 10,
steps: () => [
{
trigger: "button.inc",
},
],
});
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer, Counter };
static template = xml/*html*/ `
<t>
<Counter />
<OverlayContainer t-props="props.overlayContainerProps" />
</t>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
env.services.tour_service.startTour("tour1", { mode: "manual" });
await mock.advanceTime(800);
assert.containsOnce(document.body, ".o_tour_pointer");
await click(target, "button.inc");
assert.containsNone(document.body, ".o_tour_pointer");
assert.strictEqual(target.querySelector("span.value").textContent, "1");
});
QUnit.test("next step with new anchor at same position", async (assert) => {
registry.category("web_tour.tours").add("tour1", {
sequence: 10,
steps: () => [{ trigger: "button.foo" }, { trigger: "button.bar" }],
});
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Dummy extends Component {
state = useState({ bool: true });
static template = xml/*html*/ `
<button class="foo w-100" t-if="state.bool" t-on-click="() => { state.bool = false; }">Foo</button>
<button class="bar w-100" t-if="!state.bool">Bar</button>
`;
}
class Root extends Component {
static components = { OverlayContainer, Dummy };
static template = xml/*html*/ `
<t>
<Dummy />
<OverlayContainer t-props="props.overlayContainerProps" />
</t>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
env.services.tour_service.startTour("tour1", { mode: "manual" });
await mock.advanceTime(100);
assert.containsOnce(document.body, ".o_tour_pointer");
// check position of the pointer relative to the foo button
let pointerRect = document.body.querySelector(".o_tour_pointer").getBoundingClientRect();
let buttonRect = document.body.querySelector("button.foo").getBoundingClientRect();
const leftValue1 = pointerRect.left - buttonRect.left;
const bottomValue1 = pointerRect.bottom - buttonRect.bottom;
assert.ok(leftValue1 !== 0);
assert.ok(bottomValue1 !== 0);
await click(target, "button.foo");
await mock.advanceTime(100);
assert.containsOnce(document.body, ".o_tour_pointer");
// check position of the pointer relative to the bar button
pointerRect = document.body.querySelector(".o_tour_pointer").getBoundingClientRect();
buttonRect = document.body.querySelector("button.bar").getBoundingClientRect();
const leftValue2 = pointerRect.left - buttonRect.left;
const bottomValue2 = pointerRect.bottom - buttonRect.bottom;
assert.strictEqual(bottomValue1, bottomValue2);
assert.strictEqual(leftValue1, leftValue2);
});
QUnit.test("scroller pointer to reach next step", async function (assert) {
patchWithCleanup(Element.prototype, {
scrollIntoView(options) {
super.scrollIntoView({ ...options, behavior: "instant" });
},
});
// The fixture should be shown for this test
target.style.position = "fixed";
target.style.top = "200px";
target.style.left = "50px";
registry.category("web_tour.tours").add("tour1", {
sequence: 10,
steps: () => [{ trigger: "button.inc", content: "Click to increment" }],
});
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer, Counter };
static template = xml/*html*/ `
<div class="scrollable-parent" style="overflow-y: scroll; height: 150px;">
<div class="top-filler" style="height: 300px" />
<Counter />
<OverlayContainer t-props="props.overlayContainerProps" />
<div class="bottom-filler" style="height: 300px" />
</div>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
env.services.tour_service.startTour("tour1", { mode: "manual" });
await mock.advanceTime(100); // awaits the macro engine
// Even if this seems weird, it should show the initial pointer.
// This is due to the fact the intersection observer has just been started and
// the pointer did not have the observations yet when the pointTo method was called.
// This is a bit tricky to change for now because the synchronism of the pointTo method
// is what permits to avoid multiple pointer to be shown at the same time
assert.containsOnce(document.body, ".o_tour_pointer");
assert.equal(
document.body.querySelector(".o_tour_pointer").textContent,
"Click to increment"
);
await mock.advanceTime(100); // awaits for the macro engine next check cycle
// now the scroller pointer should be shown
assert.containsOnce(document.body, ".o_tour_pointer");
assert.equal(
document.body.querySelector(".o_tour_pointer").textContent,
"Scroll down to reach the next step."
);
// awaiting the click here permits to the intersection observer to update
await click(document.body, ".o_tour_pointer");
assert.containsNone(document.body, ".o_tour_pointer");
await mock.advanceTime(100); // awaits for the macro engine next check cycle
assert.containsOnce(document.body, ".o_tour_pointer");
assert.equal(
document.body.querySelector(".o_tour_pointer").textContent,
"Click to increment"
);
document.querySelector(".scrollable-parent").scrollTop = 1000;
await nextTick(); // awaits the intersection observer to update after the scroll
await mock.advanceTime(100); // awaits for the macro engine next check cycle
assert.containsOnce(document.body, ".o_tour_pointer");
assert.equal(
document.body.querySelector(".o_tour_pointer").textContent,
"Scroll up to reach the next step."
);
// awaiting the click here permits to the intersection observer to update
await click(document.body, ".o_tour_pointer");
assert.containsNone(document.body, ".o_tour_pointer");
await mock.advanceTime(100); // awaits for the macro engine next check cycle
assert.containsOnce(document.body, ".o_tour_pointer");
assert.equal(
document.body.querySelector(".o_tour_pointer").textContent,
"Click to increment"
);
});
QUnit.test("scrolling to next step should update the pointer's height", async (assert) => {
patchWithCleanup(Element.prototype, {
scrollIntoView(options) {
super.scrollIntoView({ ...options, behavior: "instant" });
},
});
// The fixture should be shown for this test
target.style.position = "fixed";
target.style.top = "200px";
target.style.left = "50px";
const stepContent = "Click this pretty button to increment this magnificent counter !";
registry.category("web_tour.tours").add("tour1", {
sequence: 10,
steps: () => [
{
trigger: "button.inc",
content: stepContent,
},
],
});
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer, Counter };
static template = xml/*html*/ `
<div class="scrollable-parent" style="overflow-y: scroll; height: 150px;">
<Counter />
<div class="bottom-filler" style="height: 300px" />
</div>
<OverlayContainer t-props="props.overlayContainerProps" />
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
env.services.tour_service.startTour("tour1", { mode: "manual" });
await mock.advanceTime(100); // awaits the macro engine
assert.containsOnce(document.body, ".o_tour_pointer");
assert.equal(document.body.querySelector(".o_tour_pointer").textContent, stepContent);
const pointer = document.body.querySelector(".o_tour_pointer");
assert.doesNotHaveClass(pointer, "o_open");
assert.strictEqual(pointer.style.height, "28px");
assert.strictEqual(pointer.style.width, "28px");
await triggerEvent(document.body, ".o_tour_pointer", "mouseenter");
await mock.advanceTime(100); // awaits for the macro engine next check cycle
assert.hasClass(pointer, "o_open");
const firstOpenHeight = pointer.style.height;
const firstOpenWidth = pointer.style.width;
await triggerEvent(document.body, ".o_tour_pointer", "mouseleave");
await mock.advanceTime(100); // awaits for the macro engine next check cycle
assert.doesNotHaveClass(pointer, "o_open");
document.querySelector(".scrollable-parent").scrollTop = 1000;
await nextTick(); // awaits the intersection observer to update after the scroll
await mock.advanceTime(100); // awaits for the macro engine next check cycle
// now the scroller pointer should be shown
assert.containsOnce(document.body, ".o_tour_pointer");
assert.equal(
document.body.querySelector(".o_tour_pointer").textContent,
"Scroll up to reach the next step."
);
document.querySelector(".scrollable-parent").scrollTop = 0;
await nextTick(); // awaits the intersection observer to update after the scroll
await mock.advanceTime(100); // awaits for the macro engine next check cycle
// now the true step pointer should be shown again
assert.containsOnce(document.body, ".o_tour_pointer");
assert.equal(document.body.querySelector(".o_tour_pointer").textContent, stepContent);
await triggerEvent(document.body, ".o_tour_pointer", "mouseenter");
await mock.advanceTime(100); // awaits for the macro engine next check cycle
assert.hasClass(pointer, "o_open");
const secondOpenHeight = pointer.style.height;
const secondOpenWidth = pointer.style.width;
assert.strictEqual(firstOpenHeight, secondOpenHeight);
assert.strictEqual(firstOpenWidth, secondOpenWidth);
});
QUnit.test("perform edit on next step", async function (assert) {
registry.category("web_tour.tours").add("tour1", {
sequence: 10,
steps: () => [
{
trigger: ".interval input",
},
{
trigger: "button.inc",
},
],
});
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer, Counter };
static template = xml/*html*/ `
<t>
<Counter />
<OverlayContainer t-props="props.overlayContainerProps" />
</t>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
env.services.tour_service.startTour("tour1", { mode: "manual" });
await mock.advanceTime(750);
assert.containsOnce(document.body, ".o_tour_pointer");
await editInput(target, ".interval input", "5");
assert.containsNone(document.body, ".o_tour_pointer");
await mock.advanceTime(750);
assert.containsOnce(document.body, ".o_tour_pointer");
await click(target, "button.inc");
assert.strictEqual(target.querySelector(".counter .value").textContent, "5");
});
QUnit.test("trigger an event when a step is consummed", async function (assert) {
registry.category("web_tour.tours").add("tour1", {
sequence: 10,
steps: () => [{ trigger: ".interval input" }],
});
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer, Counter };
static template = xml/*html*/ `
<t>
<Counter />
<OverlayContainer t-props="props.overlayContainerProps" />
</t>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
env.services.tour_service.startTour("tour1", { mode: "manual" });
env.services.tour_service.bus.addEventListener("STEP-CONSUMMED", ({ detail }) => {
assert.step(`Tour ${detail.tour.name}, step ${detail.step.trigger}`);
});
await mock.advanceTime(750);
await editInput(target, ".interval input", "5");
await mock.advanceTime(750);
assert.verifySteps(["Tour tour1, step .interval input"]);
});
QUnit.test("should show only 1 pointer at a time", async function (assert) {
const storage = new Map();
patchWithCleanup(browser.localStorage, {
getItem: (key) => storage.get(key),
setItem: (key, value) => storage.set(key, value),
removeItem: (key) => storage.delete(key),
tour__tour1__sequence: 0,
tour__tour2__sequence: 0,
});
registry.category("web_tour.tours").add("tour1", {
sequence: 10,
steps: () => [
{
trigger: ".interval input",
},
],
});
registry.category("web_tour.tours").add("tour2", {
sequence: 10,
steps: () => [
{
trigger: "button.inc",
},
],
});
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer, Counter };
static template = xml/*html*/ `
<t>
<Counter />
<OverlayContainer t-props="props.overlayContainerProps" />
</t>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
env.services.tour_service.startTour("tour1", { mode: "manual" });
env.services.tour_service.startTour("tour2", { mode: "manual" });
await mock.advanceTime(750);
assert.containsOnce(document.body, ".o_tour_pointer");
await editInput(target, ".interval input", "5");
assert.containsNone(document.body, ".o_tour_pointer");
await mock.advanceTime(750);
assert.containsOnce(document.body, ".o_tour_pointer");
});
QUnit.test("hovering to the anchor element should show the content", async function (assert) {
registry.category("web_tour.tours").add("tour1", {
sequence: 10,
steps: () => [
{
content: "content",
trigger: "button.inc",
},
],
});
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer, Counter };
static template = xml/*html*/ `
<t>
<Counter />
<OverlayContainer t-props="props.overlayContainerProps" />
</t>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
env.services.tour_service.startTour("tour1", { mode: "manual" });
await mock.advanceTime(750);
assert.containsOnce(target, ".o_tour_pointer");
triggerEvent(target, "button.inc", "mouseenter");
await nextTick();
assert.containsOnce(target, ".o_tour_pointer_content:not(.invisible)");
assert.strictEqual(
target.querySelector(".o_tour_pointer_content:not(.invisible)").textContent,
"content"
);
triggerEvent(target, "button.inc", "mouseleave");
await nextTick();
assert.containsOnce(target, ".o_tour_pointer_content.invisible");
});
QUnit.test(
"registering non-test tour after service is started auto-starts the tour",
async function (assert) {
patchWithCleanup(session, { tour_disable: false });
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer, Counter };
static template = xml/*html*/ `
<t>
<Counter />
<OverlayContainer t-props="props.overlayContainerProps" />
</t>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
assert.containsNone(target, ".o_tour_pointer");
registry.category("web_tour.tours").add("tour1", {
steps: () => [
{
content: "content",
trigger: "button.inc",
},
],
});
await mock.advanceTime(750);
await nextTick();
assert.containsOnce(target, ".o_tour_pointer");
}
);
QUnit.test(
"registering test tour after service is started doesn't auto-start the tour",
async function (assert) {
patchWithCleanup(session, { tour_disable: false });
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer, Counter };
static template = xml/*html*/ `
<t>
<Counter />
<OverlayContainer t-props="props.overlayContainerProps" />
</t>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
assert.containsNone(target, ".o_tour_pointer");
registry.category("web_tour.tours").add("tour1", {
test: true,
steps: () => [
{
content: "content",
trigger: "button.inc",
},
],
});
await mock.advanceTime(750);
await nextTick();
assert.containsNone(target, ".o_tour_pointer");
}
);
QUnit.test("a failing tour logs the step that failed", async function (assert) {
patchWithCleanup(browser.console, {
log: (s) => assert.step(`log: ${s}`),
warn: (s) => assert.step(`warn: ${s}`),
error: (s) => assert.step(`error: ${s}`),
});
const env = await makeTestEnv({});
const { Component: OverlayContainer, props: overlayContainerProps } = registry
.category("main_components")
.get("OverlayContainer");
class Root extends Component {
static components = { OverlayContainer };
static template = xml/*html*/ `
<t>
<button class="button0">Button 0</button>
<button class="button1">Button 1</button>
<button class="button2">Button 2</button>
<button class="button3">Button 3</button>
<button class="button4">Button 4</button>
<button class="button5">Button 5</button>
<button class="button6">Button 6</button>
<button class="button7">Button 7</button>
<OverlayContainer t-props="props.overlayContainerProps" />
</t>
`;
}
await mount(Root, target, { env, props: { overlayContainerProps } });
registry.category("web_tour.tours").add("tour1", {
test: true,
steps: () => [
{
content: "content",
trigger: ".button0",
},
{
content: "content",
trigger: ".button1",
},
{
content: "content",
trigger: ".button2",
},
{
content: "content",
trigger: ".button3",
},
{
content: "content",
trigger: ".wrong_selector",
},
{
content: "content",
trigger: ".button4",
},
{
content: "content",
trigger: ".button5",
},
{
content: "content",
trigger: ".button6",
},
{
content: "content",
trigger: ".button7",
},
],
});
env.services.tour_service.startTour("tour1", { mode: "auto" });
await mock.advanceTime(750);
assert.verifySteps(["log: Tour tour1 on step: 'content (trigger: .button0)'"]);
await mock.advanceTime(750);
assert.verifySteps(["log: Tour tour1 on step: 'content (trigger: .button1)'"]);
await mock.advanceTime(750);
assert.verifySteps(["log: Tour tour1 on step: 'content (trigger: .button2)'"]);
await mock.advanceTime(750);
assert.verifySteps(["log: Tour tour1 on step: 'content (trigger: .button3)'"]);
await mock.advanceTime(750);
assert.verifySteps(["log: Tour tour1 on step: 'content (trigger: .wrong_selector)'"]);
await mock.advanceTime(10000);
const expectedWarning = `warn: Tour tour1 failed at step content (trigger: .wrong_selector)
{
"content": "content",
"trigger": ".button1"
},
{
"content": "content",
"trigger": ".button2"
},
{
"content": "content",
"trigger": ".button3"
},
----- FAILING STEP -----
{
"content": "content",
"trigger": ".wrong_selector"
},
-----------------------
{
"content": "content",
"trigger": ".button4"
},
{
"content": "content",
"trigger": ".button5"
},
{
"content": "content",
"trigger": ".button6"
},`;
const expectedError = "error: Tour tour1 failed at step content (trigger: .wrong_selector)";
assert.verifySteps([expectedWarning, expectedError]);
});
});

46
views/tour_views.xml Normal file
View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="edit_tour_form" model="ir.ui.view">
<field name="model">web_tour.tour</field>
<field name="arch" type="xml">
<form create="0" edit="0">
<sheet>
<group>
<group>
<field name="name"/>
</group>
<group>
<field name="user_id"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="edit_tour_list" model="ir.ui.view">
<field name="model">web_tour.tour</field>
<field name="arch" type="xml">
<tree string="Menu" create="0" edit="0">
<field name="name"/>
<field name="user_id"/>
</tree>
</field>
</record>
<record id="edit_tour_search" model="ir.ui.view">
<field name="name">tour.search</field>
<field name="model">web_tour.tour</field>
<field name="arch" type="xml">
<search string="Tip">
<field name="name"/>
</search>
</field>
</record>
<record id="edit_tour_action" model="ir.actions.act_window">
<field name="name">Tours</field>
<field name="res_model">web_tour.tour</field>
<field name="view_id" ref="edit_tour_list"/>
<field name="search_view_id" ref="edit_tour_search"/>
</record>
<menuitem action="edit_tour_action" id="menu_tour_action" parent="base.next_id_2" sequence="5"/>
</odoo>