O9: mc_education_theme - per-company branding, the closing beat

Serves O9's acceptance test directly: swap to the second demo school
by switching the active company. Every branding field this module
configures - logo, primary/secondary colour, name, currency (on the
brand-new company only, see below), address - already exists on stock
res.company; this module adds zero new model fields, only demo data
and one view override. Two full companies exist because
shared/DEMO_SCRIPT.md names both by design: St. Aloysius Public
School (Coimbatore, the rebranded default company) and Waterloo
Heights Academy (Ontario, a fresh second company).

Removed the one concrete, spec-named piece of visible Odoo branding:
portal.portal_record_sidebar's "Powered by Odoo" logo, which renders
on every portal document page including the fee invoices
mc_education_portal links to - inherited the template and dropped
that div. Verified by actually rendering the template
(ir.qweb._render) and asserting the string is gone, not just that the
xpath applied without error.

Vendored OCA web_responsive per CLAUDE.md sec 2 ("pin every
third-party addon to a commit SHA, never a branch") - pinned to
b96307a8953f3bae075b8f7d94f40f00c2e63d1f on OCA/web's 19.0 branch.
Correcting my own third_party/README.md from O0 while doing this:
`git subtree add` on the whole OCA/web repo pulls every addon in that
monorepo (23MB+) for the sake of one - updated the instructions there
to fetch the pinned commit and extract just the one addon's directory
instead. Verified installable standalone against the live container
before vendoring it into the suite.

Real finding from testing the full 9-module suite installed together,
not this module in isolation: mc_education_fees's chart-of-accounts
setup (via `account`) posts journal items for the main company before
this module's demo data runs, and account.company.write() hard-blocks
a currency change once journal items exist - correctly so, you cannot
retroactively change a currency after transactions are posted in it.
Company currency belongs at true initial setup, before any financial
module has run, never as a later "apply a theme" change; dropped the
currency_id change on the rebranded main company accordingly (the
brand-new second company has no such history, so its currency is set
safely at creation). This is exactly why this session tests each
module against a real container, then the whole suite together before
calling anything done - this specific bug only exists when multiple
modules' demo data compose, and was invisible testing this module
alone.

Full-suite verification: all 9 mc_education_* modules plus
web_responsive installed together in one database, 81 tests across 8
of the 9 modules (mc_education_admission has none - a known gap, it
was verified by hand via curl/shell against the live container
instead, see its own commit), 0 failed, 0 errors.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
metatroncubeswdev 2026-09-11 14:24:05 -04:00
parent 8c8c79aa64
commit 736c0e8c10
121 changed files with 10416 additions and 5 deletions

View File

@ -0,0 +1,4 @@
# No models: every branding field this module configures (res.company
# logo/name/primary_color/secondary_color/currency, res.partner address)
# already exists in stock Odoo. This module is data (demo/) and one view
# override (views/), nothing more.

View File

@ -0,0 +1,23 @@
{
"name": "School ERP - Theme",
"version": "19.0.1.0.0",
"category": "Education",
"summary": "Per-company branding; hides Odoo/ERPNext branding the demo audience would see.",
"author": "Metatroncube Software Solutions LLP",
"license": "Other proprietary",
# portal is a real, necessary dependency this module's own spec line
# ("Depends: mc_education_base") missed: hiding the "Powered by Odoo"
# text (views/portal_branding_templates.xml) means inheriting
# portal.portal_record_sidebar, which requires the portal module to
# be loaded. Flagging per CLAUDE.md's closing instruction rather than
# silently working around it.
"depends": ["mc_education_base", "portal"],
"data": [
"views/portal_branding_templates.xml",
],
"demo": [
"demo/mc_theme_demo.xml",
],
"installable": True,
"application": False,
}

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- The closing beat (O9 acceptance): swap to the second demo school
in under five minutes. Every field touched here is stock
res.company - logo, primary/secondary colour, name, address - so
the "swap" is just switching the active company in Odoo's own
company selector; nothing about this module invents new
branding plumbing. Two full schools already exist because
shared/DEMO_SCRIPT.md names both by design ("St. Aloysius Public
School, Coimbatore" and "Waterloo Heights Academy, Ontario" -
same data shape, different names/currency/board).
base.main_company's currency is deliberately NOT changed here.
Found by testing the full 9-module suite installed together,
not this module alone: mc_education_fees's chart-of-accounts
setup (via its `account` dependency) posts journal items for
the main company before mc_education_theme's demo data runs,
and account.company.write() hard-blocks a currency change once
journal items exist ("You cannot change the currency of the
company since some journal items already exist") - correctly
so, retroactively changing a currency after transactions are
posted would be wrong. This is a real constraint on company
setup generally, not a demo-data quirk: currency belongs at
true initial company setup, before any financial module has
run, never as a later "apply a theme" change. The brand-new
second company below has no such history, so its currency is
set safely at creation. -->
<record id="base.main_company" model="res.company">
<field name="name">St. Aloysius Public School</field>
<field name="country_id" ref="base.in"/>
<field name="city">Coimbatore</field>
<field name="primary_color">#1B3A5C</field>
<field name="secondary_color">#D4A017</field>
<field name="logo" type="base64" file="mc_education_theme/static/demo/logo_st_aloysius.png"/>
</record>
<record id="demo_company_waterloo_heights" model="res.company">
<field name="name">Waterloo Heights Academy</field>
<field name="currency_id" ref="base.CAD"/>
<field name="country_id" ref="base.ca"/>
<field name="city">Waterloo</field>
<field name="primary_color">#1E5C3A</field>
<field name="secondary_color">#C0C0C0</field>
<field name="logo" type="base64" file="mc_education_theme/static/demo/logo_waterloo_heights.png"/>
</record>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

View File

@ -0,0 +1 @@
from . import test_theme

View File

@ -0,0 +1,32 @@
from odoo.tests.common import TransactionCase
class TestTheme(TransactionCase):
def test_two_branded_companies_exist(self):
main = self.env.ref("base.main_company")
self.assertEqual(main.name, "St. Aloysius Public School")
# No currency assertion here on purpose: base.main_company's
# currency is deliberately left untouched by this module (see the
# comment in demo/mc_theme_demo.xml) - changing it would fail
# once any financial module has posted journal items for this
# company, which a combined install of the full suite does
# before this module's demo data runs.
self.assertTrue(main.logo)
waterloo = self.env.ref("mc_education_theme.demo_company_waterloo_heights")
self.assertEqual(waterloo.name, "Waterloo Heights Academy")
self.assertEqual(waterloo.currency_id, self.env.ref("base.CAD"))
self.assertTrue(waterloo.logo)
# The "swap" is switching companies - each must actually be
# distinct, not the same record twice under different refs.
self.assertNotEqual(main.id, waterloo.id)
def test_portal_sidebar_has_no_odoo_branding(self):
html = str(self.env["ir.qweb"]._render("portal.portal_record_sidebar", {
"classes": "", "title": False, "entries": False,
}))
self.assertNotIn("Powered by", html)
self.assertNotIn("odoo.com", html)
self.assertNotIn("Odoo Logo", html)

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- shared/DEMO_SCRIPT.md, "What must NOT appear in the demo": "The
ERPNext or Odoo brand name visible to the audience at any
point." Every fee invoice a guardian opens in the portal
(mc_education_portal's fees page links straight to the stock
/my/invoices/<id> page) renders through this exact sidebar
template, "Powered by Odoo" logo included, unless removed. -->
<template id="portal_record_sidebar_no_odoo_branding"
inherit_id="portal.portal_record_sidebar">
<xpath expr="//div[hasclass('d-none') and hasclass('d-lg-block') and hasclass('text-center')]"
position="replace"/>
</template>
</odoo>

22
third_party/README.md vendored
View File

@ -3,13 +3,25 @@
OCA addons vendored into this repo, each pinned to a commit SHA — never a branch. A moving
branch inside a pinned image breaks the build later with no obvious cause (CLAUDE.md §2).
Nothing is vendored yet. The first entry will be OCA `web_responsive` (see O9,
`mc_education_theme`) — the stock Community backend needs it and Studio is out of scope.
## Vendored
When adding an addon:
| Addon | Source | Pinned SHA | Why |
|-------|--------|-----------|-----|
| `web_responsive` | [OCA/web](https://github.com/OCA/web), branch `19.0` | `b96307a8953f3bae075b8f7d94f40f00c2e63d1f` | O9 (`mc_education_theme`): the stock Community backend menu/breadcrumb UI is desktop-only otherwise, and Studio (which some paid alternatives lean on for a responsive backend) is Enterprise and out of scope per CLAUDE.md §1. |
## Adding an addon
`OCA/web` (and most OCA repos) are monorepos with dozens of unrelated addons — `git subtree
add` on the whole repo pulls all of them (23MB+ for one addon's sake). Instead, extract just the
addon you need at the pinned commit:
```bash
git subtree add --prefix=third_party/<addon_name> <oca_repo_url> <commit_sha> --squash
git clone --no-checkout --depth 1 <oca_repo_url> /tmp/oca-scratch
cd /tmp/oca-scratch
git fetch --depth 1 origin <commit_sha>
git checkout FETCH_HEAD -- <addon_name>
cp -r <addon_name>/. <repo_root>/third_party/<addon_name>/
```
Record the SHA and the reason it was pinned in this file.
Record the addon, source repo/branch, pinned SHA, and the reason it was pinned in the table
above, in the same commit as the vendored files.

222
third_party/web_responsive/README.rst vendored Normal file
View File

@ -0,0 +1,222 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association
==============
Web Responsive
==============
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:cdfbec36e2e1aa83b9b44b34c64aa769b2d50867da82f88fc5c817fa641c2f9c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
:target: https://github.com/OCA/web/tree/19.0/web_responsive
:alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/web-19-0/web-19-0-web_responsive
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=19.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module adds responsiveness to web backend.
**Features for all devices**:
- Redirect to the dashboard after logging in. Users will only be
redirected to the home page after login if they have enabled the
'Redirect to Home' option in their profile settings.
|image|
- New navigation with the fullscreen app menu
|image1|
- Quick menu search inside the app menu
|image2|
- Sticky header & footer in list view
|image3|
- Sticky statusbar in form view
|image4|
- Bigger checkboxes in list view
|image5|
**Features for mobile**: \* View type picker dropdown displays
comfortably
- Control panel buttons use icons to save space.
|image6|
- Followers and send button is displayed on mobile. Avatar is hidden.
|image7|
- Big inputs on form in edit mode
**Features for desktop computers**:
- Keyboard shortcuts for easier navigation, **using \`Alt + Shift +
[NUM]\`** combination instead of just Alt + [NUM] to avoid conflict
with Firefox Tab switching. Standard Odoo keyboard hotkeys changed to
be more intuitive or accessible by fingers of one hand. F.x. Alt + S
for Save
|image8|
- Autofocus on search menu box when opening the app menu
|image9|
- When the chatter is on the side part, the document viewer fills that
part for side-by-side reading instead of full screen. You can still
put it on full width preview clicking on the new maximize button.
|image10|
- When the user chooses to send a public message the color of the
composer is different from the one when the message is an internal
log.
|image11|
.. |image| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/redirecthome.gif
.. |image1| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/appmenu.gif
.. |image2| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/appsearch.gif
.. |image3| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/listview.gif
.. |image4| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/formview.gif
.. |image5| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/listview.gif
.. |image6| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/form_buttons.gif
.. |image7| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/chatter.png
.. |image8| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/shortcuts.gif
.. |image9| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/appsearch.gif
.. |image10| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/document_viewer.gif
.. |image11| image:: https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/chatter-colors.png
**Table of contents**
.. contents::
:local:
Usage
=====
The following keyboard shortcuts are implemented:
- Navigate app search results - Arrow keys
- Choose app result - ``Enter``
- ``Esc`` to close app drawer
Known issues / Roadmap
======================
- App navigation with keyboard.
- Handle long titles on forms in a better way
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_responsive%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
-------
* LasLabs
* Tecnativa
* ITerra
* Onestein
Contributors
------------
- Dave Lasley <dave@laslabs.com>
- Jairo Llopis <jairo.llopis@tecnativa.com>
- `Onestein <https://www.onestein.nl>`__:
- Dennis Sluijk <d.sluijk@onestein.nl>
- Anjeel Haria
- Sergio Teruel <sergio.teruel@tecnativa.com>
- Alexandre Díaz <dev@redneboa.es>
- Mathias Markl <mathias.markl@mukit.at>
- Iván Todorovich <ivan.todorovich@gmail.com>
- Sergey Shebanin <sergey@shebanin.ru>
- David Vidal <david.vidal@tecnativa.com>
- Taras Shabaranskyi <shabaranskij@gmail.com>
- Angel Patel <patelangel1414@gmail.com>
- Mohamed Alkobrosli <malkobrosly@kencove.com>
- `Heliconia Solutions Pvt. Ltd. <https://www.heliconia.io>`__
- Bhavesh Heliconia
- `IKU Solutions <https://www.iku.solutions>`__
- Yan Chirino <yan.chirino@iku.solutions>
Maintainers
-----------
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
.. |maintainer-Tardo| image:: https://github.com/Tardo.png?size=40px
:target: https://github.com/Tardo
:alt: Tardo
.. |maintainer-SplashS| image:: https://github.com/SplashS.png?size=40px
:target: https://github.com/SplashS
:alt: SplashS
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-Tardo| |maintainer-SplashS|
This module is part of the `OCA/web <https://github.com/OCA/web/tree/19.0/web_responsive>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -0,0 +1,4 @@
# Copyright 2023 Taras Shabaranskyi
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
from . import models

View File

@ -0,0 +1,66 @@
# Copyright 2016-2017 LasLabs Inc.
# Copyright 2017-2018 Tecnativa - Jairo Llopis
# Copyright 2018-2019 Tecnativa - Alexandre Díaz
# Copyright 2021 ITerra - Sergey Shebanin
# Copyright 2023 Onestein - Anjeel Haria
# Copyright 2023 Taras Shabaranskyi
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
{
"name": "Web Responsive",
"summary": "Responsive web client, community-supported",
"version": "19.0.1.1.0",
"category": "Website",
"website": "https://github.com/OCA/web",
"author": "LasLabs, Tecnativa, ITerra, Onestein, Odoo Community Association (OCA)",
"license": "LGPL-3",
"installable": True,
"depends": ["web", "web_tour", "mail"],
"development_status": "Production/Stable",
"maintainers": ["Tardo", "SplashS"],
"excludes": ["web_enterprise"],
"data": [
"views/res_users_views.xml",
],
"assets": {
"web._assets_primary_variables": {
"/web_responsive/static/src/legacy/scss/form_variable.scss",
"/web_responsive/static/src/legacy/scss/primary_variable.scss",
},
"web.assets_backend": [
"web_responsive/static/src/lib/fuse/fuse.basic.min.js",
"/web_responsive/static/src/legacy/scss/web_responsive.scss",
"/web_responsive/static/src/legacy/scss/big_boxes.scss",
"/web_responsive/static/src/legacy/scss/list_sticky_header.scss",
"/web_responsive/static/src/legacy/js/web_responsive.esm.js",
"/web_responsive/static/src/legacy/xml/form_buttons.xml",
"/web_responsive/static/src/legacy/xml/custom_favorite_item.xml",
"/web_responsive/static/src/components/apps_menu_tools.esm.js",
"/web_responsive/static/src/components/apps_menu/*",
"/web_responsive/static/src/components/apps_menu_item/*",
"/web_responsive/static/src/components/menu_canonical_searchbar/*",
"/web_responsive/static/src/components/menu_odoo_searchbar/*",
"/web_responsive/static/src/components/menu_fuse_searchbar/*",
"/web_responsive/static/src/components/menu_searchbar/*",
"/web_responsive/static/src/components/hotkey/*",
"/web_responsive/static/src/components/file_viewer/*",
"/web_responsive/static/src/components/chatter/*",
"/web_responsive/static/src/components/control_panel/*",
"/web_responsive/static/src/components/command_palette/*",
"/web_responsive/static/src/views/form/*",
# Don't include dark mode files in light mode
("remove", "web_responsive/static/src/**/*.dark.scss"),
],
"web.assets_web_dark": [
"web_responsive/static/src/**/*.dark.scss",
],
"web.assets_clickbot": [
"/web_responsive/static/src/clickbot/clickbot.esm.js",
],
"web.qunit_suite_tests": [
"/web_responsive/static/tests/apps_menu_tests.esm.js",
"/web_responsive/static/tests/apps_menu_search_tests.esm.js",
],
},
"sequence": 1,
}

250
third_party/web_responsive/i18n/ar.po vendored Normal file
View File

@ -0,0 +1,250 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-11-07 15:08+0000\n"
"Last-Translator: Waleed Mohsen <Mohsen.Waleed@gmail.com>\n"
"Language-Team: none\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \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 ? 4 : 5;\n"
"X-Generator: Weblate 3.10\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "تجاهل"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "تكبير"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "تصغير"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "حفظ"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "بحث في القوائم..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Create"
#~ msgstr "إنشاء"
#~ msgid "Chatter Position"
#~ msgstr "موقع الدردشة"
#, python-format
#~ msgid "Edit"
#~ msgstr "تعديل"
#~ msgid "Normal"
#~ msgstr "عادي"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "اجراءات سريعة"
#~ msgid "Sided"
#~ msgstr "جانبي"
#~ msgid "Users"
#~ msgstr "المستخدمون"
#~ msgid "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgstr "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgid "Close"
#~ msgstr "إغلاق"
#~ msgid ""
#~ "btn btn-secondary o_mail_discuss_button_multi_user_channel d-md-block d-"
#~ "none"
#~ msgstr ""
#~ "btn btn-secondary o_mail_discuss_button_multi_user_channel d-md-block d-"
#~ "none"
#~ msgid "false"
#~ msgstr "false"
#~ msgid ""
#~ "modal o_modal_fullscreen o_document_viewer o_responsive_document_viewer"
#~ msgstr ""
#~ "modal o_modal_fullscreen o_document_viewer o_responsive_document_viewer"

234
third_party/web_responsive/i18n/ca.po vendored Normal file
View File

@ -0,0 +1,234 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-02-02 22:13+0000\n"
"Last-Translator: eduardgm <eduard.garcia@qubiq.es>\n"
"Language-Team: none\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Descartar"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Maximitzar"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Minimitzar"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Guardar"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Cercar menús..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Create"
#~ msgstr "Crear"
#~ msgid "Chatter Position"
#~ msgstr "Posició del chatter"
#, python-format
#~ msgid "Edit"
#~ msgstr "Editar"
#~ msgid "Normal"
#~ msgstr "Normal"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Accions ràpides"
#~ msgid "Sided"
#~ msgstr "Lateral"
#~ msgid "Users"
#~ msgstr "Usuaris"
#~ msgid "Close"
#~ msgstr "Tancar"
#~ msgid "false"
#~ msgstr "fals"

231
third_party/web_responsive/i18n/da.po vendored Normal file
View File

@ -0,0 +1,231 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2018-09-02 05:11+0000\n"
"Last-Translator: Hans Henrik Gabelgaard <hhg@gabelgaard.org>\n"
"Language-Team: none\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.1.1\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#~ msgid "Chatter Position"
#~ msgstr "Log position"
#~ msgid "Sided"
#~ msgstr "Side"
#~ msgid "Users"
#~ msgstr "Brugere"
#~ msgid "<span class=\"sr-only\">Toggle App Drawer</span>"
#~ msgstr "<span class=\"sr-only\">Skift App skuffe</span>"
#~ msgid "<span class=\"sr-only\">Toggle Navigation</span>"
#~ msgstr "<span class=\"sr-only\">Skift navigation</span>"
#~ msgid "Apps"
#~ msgstr "Applikationer"
#~ msgid "More"
#~ msgstr "Mere"
#~ msgid "More <b class=\"caret\"/>"
#~ msgstr "Mere <b class=\"caret\"/>"
#~ msgid "Task"
#~ msgstr "Opgave"

278
third_party/web_responsive/i18n/de.po vendored Normal file
View File

@ -0,0 +1,278 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
# Translators:
# Niki Waibel <niki.waibel@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-03 01:37+0000\n"
"PO-Revision-Date: 2023-06-20 11:09+0000\n"
"Last-Translator: Nils Coenen <nils.coenen@nico-solutions.de>\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Verwerfen"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr "Home-Menü"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr "Protokollnotiz"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "maximieren"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "minimieren"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr "Neu"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Speichern"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Such-Menüs..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr "Nachricht senden"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Activities"
#~ msgstr "Aktivitäten"
#, python-format
#~ msgid "All"
#~ msgstr "Alles"
#, python-format
#~ msgid "Attachment counter loading..."
#~ msgstr "Anhangszähler wird geladen..."
#, python-format
#~ msgid "Attachments"
#~ msgstr "Anhänge"
#, python-format
#~ msgid "CLEAR"
#~ msgstr "LÖSCHEN"
#, python-format
#~ msgid "SEE RESULT"
#~ msgstr "SIEHE ERGEBNIS"
#, python-format
#~ msgid "Search..."
#~ msgstr "Suche..."
#, python-format
#~ msgid "View switcher"
#~ msgstr "Ansichtsumschalter"
#, python-format
#~ msgid "Create"
#~ msgstr "Erstellen"
#~ msgid "Chatter Position"
#~ msgstr "Chatter-Position"
#, python-format
#~ msgid "Edit"
#~ msgstr "Ändern"
#~ msgid "Normal"
#~ msgstr "normal"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Schnell-Aktion"
#~ msgid "Sided"
#~ msgstr "Seitlich"
#~ msgid "Users"
#~ msgstr "Benutzer"
#~ msgid "Close"
#~ msgstr "Schließen"
#~ msgid "<span class=\"sr-only\">Toggle App Drawer</span>"
#~ msgstr "<span class=\"sr-only\">App Ordner umschalten</span>"
#~ msgid "<span class=\"sr-only\">Toggle Navigation</span>"
#~ msgstr "<span class=\"sr-only\">Navigation umschalten</span>"
#~ msgid "Apps"
#~ msgstr "Apps"
#~ msgid "More <b class=\"caret\"/>"
#~ msgstr "Mehr <b class=\"caret\"/>"

291
third_party/web_responsive/i18n/es.po vendored Normal file
View File

@ -0,0 +1,291 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
# Translators:
# Pedro M. Baeza <pedro.baeza@gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-10 10:49+0000\n"
"PO-Revision-Date: 2025-05-15 16:03+0000\n"
"Last-Translator: \"Leonardo J. Caballero G.\" <leonardocaballero@gmail.com>\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr "Acción"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr "Icono de la Aplicación"
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr "Preferencias del Menú Aplicaciones"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr "Menú Aplicaciones Tipo de Búsqueda"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr "Tema del Menú de Aplicaciones"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr "Canónico"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr "Paleta de Comandos"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr "Comunidad"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Descartar"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr "Salida"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr "Fusible"
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr "Enrutamiento HTTP"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr "Menú de Inicio"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr "Nota de registro"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Maximizar"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr "Leche"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Minimizar"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr "Nuevo"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr "Nada que mostrar"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr "Redirigir al inicio"
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr "Redirigir al panel después de iniciar sesión"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Guardar"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr "Tipo de Búsqueda"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr "Tipo de Búsqueda Ayuda"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Buscar menús..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr "Enviar mensaje"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr "Tema"
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr "Usuario"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr "se utiliza un nuevo algoritmo de búsqueda"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr "la herramienta de búsqueda estándar de odoo"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr "utiliza un algoritmo estándar"
#, python-format
#~ msgid "Activities"
#~ msgstr "Actividades"
#, python-format
#~ msgid "All"
#~ msgstr "Todos"
#, python-format
#~ msgid "Attachment counter loading..."
#~ msgstr "Carga del contador de archivos adjuntos..."
#, python-format
#~ msgid "Attachments"
#~ msgstr "Archivos adjuntos"
#, python-format
#~ msgid "CLEAR"
#~ msgstr "LIMPIAR"
#, python-format
#~ msgid "FILTER"
#~ msgstr "FILTRAR"
#, python-format
#~ msgid "SEE RESULT"
#~ msgstr "VER RESULTADO"
#, python-format
#~ msgid "Search..."
#~ msgstr "Búsqueda..."
#, python-format
#~ msgid "View switcher"
#~ msgstr "Vista del conmutador"
#, python-format
#~ msgid "Create"
#~ msgstr "Crear"
#~ msgid "Chatter Position"
#~ msgstr "Posición del chatter"
#, python-format
#~ msgid "Edit"
#~ msgstr "Editar"
#~ msgid "Normal"
#~ msgstr "Normal"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Acciones rápidas"
#~ msgid "Sided"
#~ msgstr "Lateral"
#~ msgid "Users"
#~ msgstr "Usuarios"
#~ msgid "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgstr "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgid "Close"
#~ msgstr "Cerrar"
#~ msgid "Shift"
#~ msgstr "Turno"
#~ msgid ""
#~ "btn btn-secondary o_mail_discuss_button_multi_user_channel d-md-block d-"
#~ "none"
#~ msgstr ""
#~ "btn btn-secondary o_mail_discuss_button_multi_user_channel d-md-block d-"
#~ "none"
#~ msgid "false"
#~ msgstr "falso"
#~ msgid ""
#~ "modal o_modal_fullscreen o_document_viewer o_responsive_document_viewer"
#~ msgstr ""
#~ "modal o_modal_fullscreen o_document_viewer o_responsive_document_viewer"

183
third_party/web_responsive/i18n/es_VE.po vendored Normal file
View File

@ -0,0 +1,183 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: es_VE\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_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
msgid "Discard"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
msgid "Maximize"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
msgid "Minimize"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
msgid "Save"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
msgid "Search menus..."
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""

290
third_party/web_responsive/i18n/fr.po vendored Normal file
View File

@ -0,0 +1,290 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-05-07 12:58+0000\n"
"Last-Translator: timbreckx <thomas.imbreckx@imio.be>\n"
"Language-Team: none\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.10.4\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr "Action"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Annuler"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr "Menu daccueil"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr "Enregistrer une note"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Maximiser"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Minimiser"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Enregistrer"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Rechercher dans les menus..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr "Envoyer un message"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Activities"
#~ msgstr "Activités"
#, python-format
#~ msgid "All"
#~ msgstr "Tout"
#, python-format
#~ msgid "Attachment counter loading..."
#~ msgstr "Chargement du compteur de pièces jointes..."
#, python-format
#~ msgid "Attachments"
#~ msgstr "Pièces Jointes"
#, python-format
#~ msgid "CLEAR"
#~ msgstr "NETTOYER"
#, python-format
#~ msgid "FILTER"
#~ msgstr "FILTRER"
#, python-format
#~ msgid "SEE RESULT"
#~ msgstr "VOIR RÉSULTAT"
#, python-format
#~ msgid "Search..."
#~ msgstr "Rechercher…"
#, python-format
#~ msgid "View switcher"
#~ msgstr "Bascule de vue"
#, python-format
#~ msgid "Create"
#~ msgstr "Créer"
#~ msgid "Chatter Position"
#~ msgstr "Position de la messagerie"
#, python-format
#~ msgid "Clear"
#~ msgstr "Nettoyer"
#, python-format
#~ msgid "Edit"
#~ msgstr "Editer"
#~ msgid "Normal"
#~ msgstr "Normal"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Actions rapides"
#~ msgid "Sided"
#~ msgstr "À coté"
#, python-format
#~ msgid "Today"
#~ msgstr "Aujourdhui"
#, python-format
#~ msgid "Undefined"
#~ msgstr "Non défini"
#~ msgid "Users"
#~ msgstr "Utilisateurs"
#, python-format
#~ msgid "props.withAccessKey ? 'x' : false"
#~ msgstr "props.withAccessKey ? 'x' : false"
#, python-format
#~ msgid "props.withAccessKey ? 'z' : false"
#~ msgstr "props.withAccessKey ? 'z' : false"
#~ msgid "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgstr "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgid "Close"
#~ msgstr "Fermer"

185
third_party/web_responsive/i18n/fr_BE.po vendored Normal file
View File

@ -0,0 +1,185 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-05-07 15:23+0000\n"
"Last-Translator: timbreckx <thomas.imbreckx@imio.be>\n"
"Language-Team: none\n"
"Language: fr_BE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.10.4\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
msgid "App Icon"
msgstr "Icône d'application"
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr "Préférences du menu d'applications"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr "Type de recherche du menu d'applications"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr "Thème du menu d'applications"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr "Canonique"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr "Palette de commandes"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr "Communauté"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
msgid "Discard"
msgstr "Ignorer"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
msgid "Exit"
msgstr "Quitter"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr "Fusionner"
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr "Routage HTTP"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
msgid "Home Menu"
msgstr "Menu d'accueil"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
msgid "Maximize"
msgstr "Maximiser"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
msgid "Minimize"
msgstr "Minimiser"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
msgid "New"
msgstr "Nouveau"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
msgid "Nothing to show"
msgstr "Rien à afficher"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr "Rediriger vers la page d'accueil"
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr "Rediriger vers le tableau de bord après l'authentification"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
msgid "Save"
msgstr "Enregistrer"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr "Type de recherche"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
msgid "Search menus..."
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
msgid "Send message"
msgstr "Envoyer un message"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr "Thème"
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr "Utilisateur"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr "un nouvel algorithme de recherche est utilisé"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr "l'outil de recherche standard d'odoo"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr "utilise un algorithme standard"

228
third_party/web_responsive/i18n/fr_FR.po vendored Normal file
View File

@ -0,0 +1,228 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-04-11 18:46+0000\n"
"Last-Translator: Yves Le Doeuff <yld@alliasys.fr>\n"
"Language-Team: none\n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Annuler"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Maximiser"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Minimiser"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Sauvegarder"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Rechercher dans les menus..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Create"
#~ msgstr "Créer"
#~ msgid "Chatter Position"
#~ msgstr "Position du Chatter"
#, python-format
#~ msgid "Edit"
#~ msgstr "Editer"
#~ msgid "Normal"
#~ msgstr "Normal"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Actions rapides"
#~ msgid "Sided"
#~ msgstr "À coté"
#~ msgid "Users"
#~ msgstr "Utilisateurs"

256
third_party/web_responsive/i18n/hr.po vendored Normal file
View File

@ -0,0 +1,256 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
# Translators:
# Bole <bole@dajmi5.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-28 18:03+0000\n"
"PO-Revision-Date: 2023-04-03 13:22+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/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"
"X-Generator: Weblate 4.14.1\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Odustani"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr "Glavni izbornik"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr "Zabilježi napomenu"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Maksimiziraj"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Minimiziraj"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr "Novi"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Spremi"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Pretraži izbornike..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr "Pošalji poruku"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Activities"
#~ msgstr "Aktivnosti"
#, python-format
#~ msgid "All"
#~ msgstr "Sve"
#, python-format
#~ msgid "Attachment counter loading..."
#~ msgstr "Učitavam brojač priloga..."
#, python-format
#~ msgid "Attachments"
#~ msgstr "Prilozi"
#, python-format
#~ msgid "CLEAR"
#~ msgstr "OČISTI"
#, python-format
#~ msgid "FILTER"
#~ msgstr "TRAŽI"
#, python-format
#~ msgid "SEE RESULT"
#~ msgstr "VIDI REZULTAT"
#, python-format
#~ msgid "Search..."
#~ msgstr "Pretraži..."
#, python-format
#~ msgid "View switcher"
#~ msgstr "Izmjena pogleda"
#~ msgid "<span class=\"sr-only\">Toggle App Drawer</span>"
#~ msgstr "<span class=\"sr-only\">Izmjeni izbornik aplikacije</span>"
#~ msgid "<span class=\"sr-only\">Toggle Navigation</span>"
#~ msgstr "<span class=\"sr-only\">Izmjeni navigaciju</span>"
#~ msgid "Apps"
#~ msgstr "Apikacije"
#~ msgid "More <b class=\"caret\"/>"
#~ msgstr "Više <b class=\"caret\"/>"

204
third_party/web_responsive/i18n/it.po vendored Normal file
View File

@ -0,0 +1,204 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-07-18 06:35+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6.2\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr "Azione"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr "Icona app"
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr "Preferenze menu app"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr "Tipo ricerca menu app"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr "Tema menu app"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr "Canonico"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr "Tavolozza controllo"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr "Comunità"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Abbandona"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr "Uscita"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr "Fondi"
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr "Instradamento HTTP"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr "Menu home"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr "Registra nota"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Massimizza"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr "Latte"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Minimizza"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr "Nuovo"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr "Nulla da visualizzare"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr "Inoltra alla home"
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr "Inoltra al cruscotto dopo l'accesso"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Salva"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr "Tipo ricerca"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr "Aiuto tipo ricerca"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Menù ricerca..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr "Invia messaggio"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr "Tema"
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr "Utente"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr "è stato utilizzato un nuovo algoritmo di ricerca"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr "lo strumento di ricerca standard Odoo"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr "usa un algoritmo standard"

242
third_party/web_responsive/i18n/nl.po vendored Normal file
View File

@ -0,0 +1,242 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-05-17 20:47+0000\n"
"Last-Translator: Bosd <c5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me>\n"
"Language-Team: none\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Negeren"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Maximaliseren"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Minimaliseren"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Opslaan"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Zoek menu's..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Create"
#~ msgstr "Aanmaken"
#~ msgid "Chatter Position"
#~ msgstr "Chatter Positie"
#, python-format
#~ msgid "Edit"
#~ msgstr "Bewerken"
#~ msgid "Normal"
#~ msgstr "Normaal"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Snelle Acties"
#~ msgid "Sided"
#~ msgstr "Aan de zijkant"
#~ msgid "Users"
#~ msgstr "Gebruikers"
#~ msgid "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgstr "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgid "Close"
#~ msgstr "Sluit"
#, fuzzy
#~ msgid "Shift"
#~ msgstr "Shift"
#, fuzzy
#~ msgid "false"
#~ msgstr "false"

268
third_party/web_responsive/i18n/pl.po vendored Normal file
View File

@ -0,0 +1,268 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-08-08 23:07+0000\n"
"Last-Translator: Jacek Michalski <michalski.jck@gmail.com>\n"
"Language-Team: none\n"
"Language: pl\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%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Odrzuć"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Zmaksymalizuj"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Zminimalizuj"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Zapisz"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Przeszukaj menu..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "All"
#~ msgstr "Wszystkie"
#, python-format
#~ msgid "CLEAR"
#~ msgstr "WYCZYŚĆ"
#, python-format
#~ msgid "FILTER"
#~ msgstr "FILTRUJ"
#, python-format
#~ msgid "SEE RESULT"
#~ msgstr "ZOBACZ WYNIK"
#, python-format
#~ msgid "Search..."
#~ msgstr "Szukaj..."
#, python-format
#~ msgid "View switcher"
#~ msgstr "Przełącznik widoku"
#, python-format
#~ msgid "Create"
#~ msgstr "Utwórz"
#~ msgid "Chatter Position"
#~ msgstr "Pozycja Czatu"
#, python-format
#~ msgid "Clear"
#~ msgstr "Wyczyść"
#, python-format
#~ msgid "Edit"
#~ msgstr "Edytuj"
#~ msgid "Normal"
#~ msgstr "Normalna"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Szybkie akcje"
#~ msgid "Sided"
#~ msgstr "Z boku"
#, python-format
#~ msgid "Today"
#~ msgstr "Dzisiaj"
#, python-format
#~ msgid "Undefined"
#~ msgstr "Niezdefiniowane"
#~ msgid "Users"
#~ msgstr "Użytkownicy"
#~ msgid "fade"
#~ msgstr "wygasanie"

228
third_party/web_responsive/i18n/pt.po vendored Normal file
View File

@ -0,0 +1,228 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2019-08-12 11:44+0000\n"
"Last-Translator: Pedro Castro Silva <pedrocs@exo.pt>\n"
"Language-Team: none\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.7.1\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Descartar"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Gravar"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Procurar menus..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Create"
#~ msgstr "Criar"
#~ msgid "Chatter Position"
#~ msgstr "Posição do Chatter"
#, python-format
#~ msgid "Edit"
#~ msgstr "Editar"
#~ msgid "Normal"
#~ msgstr "Normal"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Ações rápidas"
#~ msgid "Sided"
#~ msgstr "Lateralizado"
#~ msgid "Users"
#~ msgstr "Utilizadores"

297
third_party/web_responsive/i18n/pt_BR.po vendored Normal file
View File

@ -0,0 +1,297 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
# Translators:
# Rodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatic4@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-22 08:27+0000\n"
"PO-Revision-Date: 2023-10-28 16:10+0000\n"
"Last-Translator: Adriano Prado <adrianojprado@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/"
"teams/23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Descartar"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr "Menu Inicial"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr "Nota de Registro"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Maximizar"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Minimizar"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr "Novo"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Salvar"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Pesquisar menus..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr "Enviar menssagem"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Activities"
#~ msgstr "Atividades"
#, python-format
#~ msgid "All"
#~ msgstr "Tudo"
#, python-format
#~ msgid "Attachment counter loading..."
#~ msgstr "Carregando do contador de anexos..."
#, python-format
#~ msgid "Attachments"
#~ msgstr "Anexos"
#, python-format
#~ msgid "CLEAR"
#~ msgstr "LIMPAR"
#, python-format
#~ msgid "FILTER"
#~ msgstr "FILTRAR"
#, python-format
#~ msgid "SEE RESULT"
#~ msgstr "VER RESULTADO"
#, python-format
#~ msgid "Search..."
#~ msgstr "Procurar..."
#, python-format
#~ msgid "View switcher"
#~ msgstr "Ver alternador"
#, python-format
#~ msgid "Create"
#~ msgstr "Criar"
#~ msgid "Chatter Position"
#~ msgstr "Posição do Chatter"
#, python-format
#~ msgid "Edit"
#~ msgstr "Editar"
#~ msgid "Normal"
#~ msgstr "Normal"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Ações rápidas"
#~ msgid "Sided"
#~ msgstr "Frente e verso"
#~ msgid "Users"
#~ msgstr "Usuários"
#~ msgid "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgstr "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgid "Close"
#~ msgstr "Fechar"
#~ msgid "false"
#~ msgstr "falso"
#~ msgid ""
#~ "modal o_modal_fullscreen o_document_viewer o_responsive_document_viewer"
#~ msgstr ""
#~ "modal o_modal_fullscreen o_document_viewer o_responsive_document_viewer"
#~ msgid "<span class=\"sr-only\">Toggle App Drawer</span>"
#~ msgstr "<span class=\"sr-only\">Aplicativo Desenhador Alternativo</span>"
#~ msgid "<span class=\"sr-only\">Toggle Navigation</span>"
#~ msgstr "<span class=\"sr-only\">Navegação Alternativa</span>"
#~ msgid "Apps"
#~ msgstr "Aplicativos"
#~ msgid "HTTP routing"
#~ msgstr "roteamento HTTP"
#~ msgid "More <b class=\"caret\"/>"
#~ msgstr "Mais <b class=\"caret\"/>"

264
third_party/web_responsive/i18n/ru.po vendored Normal file
View File

@ -0,0 +1,264 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-03-31 16:36+0000\n"
"Last-Translator: SplashS <sergey@shebanin.ru>\n"
"Language-Team: none\n"
"Language: ru\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"
"X-Generator: Weblate 4.3.2\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Отменить"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Увеличить"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Уменьшить"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Сохранить"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Поиск по меню..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "All"
#~ msgstr "Все"
#, python-format
#~ msgid "CLEAR"
#~ msgstr "Очистить"
#, python-format
#~ msgid "FILTER"
#~ msgstr "Фильтр"
#, python-format
#~ msgid "SEE RESULT"
#~ msgstr "Применить"
#, python-format
#~ msgid "Search..."
#~ msgstr "Поиск..."
#, python-format
#~ msgid "View switcher"
#~ msgstr "Сменить вид"
#, python-format
#~ msgid "Create"
#~ msgstr "Создать"
#~ msgid "Chatter Position"
#~ msgstr "Расположение Чата"
#, python-format
#~ msgid "Edit"
#~ msgstr "Править"
#~ msgid "Normal"
#~ msgstr "Снизу"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "Действия"
#~ msgid "Sided"
#~ msgstr "Справа"
#, python-format
#~ msgid "Today"
#~ msgstr "Сегодня"
#, python-format
#~ msgid "Undefined"
#~ msgstr "Не определено"
#~ msgid "Users"
#~ msgstr "Пользователи"
#~ msgid "Display Name"
#~ msgstr "Видимое имя"

232
third_party/web_responsive/i18n/tr.po vendored Normal file
View File

@ -0,0 +1,232 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-09-15 16:42+0000\n"
"Last-Translator: Betül Öğmen <betulo@eska.biz>\n"
"Language-Team: none\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr "Eylem"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr "Uygulama simgesi"
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr "Uygulamalar Menüsü Tercihleri"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr "Uygulamalar Menüsü Arama Türü"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr "Uygulamalar Menü Teması"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr "Komut Paleti"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr "Topluluk"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "Vazgeç"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr "Çıkış"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr "Sigorta"
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr "HTTP Yönlendirme"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr "Ana Menü"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr "Not Ekle"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Büyütme"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr "Süt"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Küçültme"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr "Yeni"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr "Gösterilecek bir şey yok"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr "Ana Sayfaya Yönlendir"
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr "Oturum açtıktan sonra panoya yönlendir"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Kaydet"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr "Arama Türü"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr "Arama Türü Yardımı"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Arama menüleri..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr "Mesaj Gönder"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr "Tema"
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr "Kullanıcı"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr "yeni bir arama algoritması kullanılıyor"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr "standart odoo arama aracı"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr "standart bir algoritma kullanır"
#, python-format
#~ msgid "All"
#~ msgstr "Hepsi"
#, python-format
#~ msgid "CLEAR"
#~ msgstr "TEMİZLEME"
#, python-format
#~ msgid "FILTER"
#~ msgstr "FİLTRE"
#, python-format
#~ msgid "SEE RESULT"
#~ msgstr "SONUCU GÖR"
#, python-format
#~ msgid "Search..."
#~ msgstr "Arama..."
#, python-format
#~ msgid "View switcher"
#~ msgstr "Görüntü Değiştiriciyi"
#, python-format
#~ msgid "Create"
#~ msgstr "Oluşturma"

204
third_party/web_responsive/i18n/uk_UA.po vendored Normal file
View File

@ -0,0 +1,204 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0-20231123\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-25 15:27+0000\n"
"PO-Revision-Date: 2023-11-25 15:27+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr "Головне меню"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "Збільшити"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "Згорнути"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr "Новий"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr "Нема чого показати"
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "Зберегти"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "Пошук..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr "Надіслати повідомлення"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""

View File

@ -0,0 +1,194 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 19.0\n"
"Report-Msgid-Bugs-To: \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_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
msgid "Discard"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_ir_http__display_name
#: model:ir.model.fields,field_description:web_responsive.field_res_users__display_name
msgid "Display Name"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_ir_http__id
#: model:ir.model.fields,field_description:web_responsive.field_res_users__id
msgid "ID"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
msgid "Maximize"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
msgid "Minimize"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
msgid "Save"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
msgid "Search menus..."
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""

249
third_party/web_responsive/i18n/zh_CN.po vendored Normal file
View File

@ -0,0 +1,249 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_responsive
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-07-08 05:19+0000\n"
"Last-Translator: 黎伟杰 <674416404@qq.com>\n"
"Language-Team: none\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.10\n"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/views/form/status_bar_buttons.xml:0
#, python-format
msgid "Action"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "App Icon"
msgstr ""
#. module: web_responsive
#: model:ir.actions.act_window,name:web_responsive.res_users_view_form_apps_menu_preferences_action
msgid "Apps Menu Preferences"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_search_type
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Search Type"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__apps_menu_theme
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Apps Menu Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__canonical
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Canonical"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__command_palette
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Command Palette"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__community
msgid "Community"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Discard"
msgstr "丢弃"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/command_palette/main.xml:0
#, python-format
msgid "Exit"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_search_type__fuse
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Fuse"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_ir_http
msgid "HTTP Routing"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/apps_menu/apps_menu.xml:0
#, python-format
msgid "Home Menu"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Log note"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Maximize"
msgstr "最大化"
#. module: web_responsive
#: model:ir.model.fields.selection,name:web_responsive.selection__res_users__apps_menu_theme__milk
msgid "Milk"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/file_viewer/file_viewer.xml:0
#, python-format
msgid "Minimize"
msgstr "最小化"
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "New"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#, python-format
msgid "Nothing to show"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,field_description:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to Home"
msgstr ""
#. module: web_responsive
#: model:ir.model.fields,help:web_responsive.field_res_users__is_redirect_home
msgid "Redirect to dashboard after signing in"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/legacy/xml/form_buttons.xml:0
#, python-format
msgid "Save"
msgstr "保存"
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Search Type Help"
msgstr ""
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/menu_canonical_searchbar/searchbar.xml:0
#: code:addons/web_responsive/static/src/components/menu_odoo_searchbar/searchbar.xml:0
#, python-format
msgid "Search menus..."
msgstr "搜索菜单..."
#. module: web_responsive
#. odoo-javascript
#: code:addons/web_responsive/static/src/components/chatter/chatter.xml:0
#, python-format
msgid "Send message"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "Theme"
msgstr ""
#. module: web_responsive
#: model:ir.model,name:web_responsive.model_res_users
msgid "User"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "a new search algorithm is used"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "the standard odoo search tool"
msgstr ""
#. module: web_responsive
#: model_terms:ir.ui.view,arch_db:web_responsive.res_users_view_form_apps_menu_preferences
msgid "uses a standard algorithm"
msgstr ""
#, python-format
#~ msgid "Create"
#~ msgstr "创建"
#~ msgid "Chatter Position"
#~ msgstr "聊天位置"
#, python-format
#~ msgid "Edit"
#~ msgstr "编辑"
#~ msgid "Normal"
#~ msgstr "正常"
#, python-format
#~ msgid "Quick actions"
#~ msgstr "快捷方式"
#~ msgid "Sided"
#~ msgstr "侧面"
#~ msgid "Users"
#~ msgstr "用户"
#~ msgid "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgstr "#menu_id=#{app.menuID}&action_id=#{app.actionID}"
#~ msgid "Close"
#~ msgstr "关闭"
#~ msgid ""
#~ "btn btn-secondary o_mail_discuss_button_multi_user_channel d-md-block d-"
#~ "none"
#~ msgstr ""
#~ "btn btn-secondary o_mail_discuss_button_multi_user_channel d-md-block d-"
#~ "none"
#~ msgid "false"
#~ msgstr "false"
#~ msgid ""
#~ "modal o_modal_fullscreen o_document_viewer o_responsive_document_viewer"
#~ msgstr ""
#~ "modal o_modal_fullscreen o_document_viewer o_responsive_document_viewer"

View File

@ -0,0 +1,5 @@
# Copyright 2023 Taras Shabaranskyi
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
from . import res_users
from . import ir_http

View File

@ -0,0 +1,19 @@
# Copyright 2023 Taras Shabaranskyi
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
from odoo import models
class IrHttp(models.AbstractModel):
_inherit = "ir.http"
def session_info(self):
session = super().session_info()
user = self.env.user
return {
**session,
"apps_menu": {
"search_type": user.apps_menu_search_type,
"theme": user.apps_menu_theme,
},
}

View File

@ -0,0 +1,42 @@
# Copyright 2023 Taras Shabaranskyi
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
from odoo import api, fields, models
class ResUsers(models.Model):
_inherit = "res.users"
apps_menu_search_type = fields.Selection(
[
("canonical", "Canonical"),
("fuse", "Fuse"),
("command_palette", "Command Palette"),
],
default="canonical",
required=True,
)
apps_menu_theme = fields.Selection(
[
("milk", "Milk"),
("community", "Community"),
],
default="milk",
required=True,
)
is_redirect_home = fields.Boolean(
string="Redirect to Home",
help="Redirect to dashboard after signing in",
compute="_compute_redirect_home",
store=True,
readonly=False,
)
@api.depends("action_id")
def _compute_redirect_home(self):
"""
Set is_redirect_home to False
when action_id has a value.
:return:
"""
self.filtered("action_id").is_redirect_home = False

View File

@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@ -0,0 +1,30 @@
- Dave Lasley \<<dave@laslabs.com>\>
- Jairo Llopis \<<jairo.llopis@tecnativa.com>\>
- [Onestein](https://www.onestein.nl):
- Dennis Sluijk \<<d.sluijk@onestein.nl>\>
- Anjeel Haria
- Sergio Teruel \<<sergio.teruel@tecnativa.com>\>
- Alexandre Díaz \<<dev@redneboa.es>\>
- Mathias Markl \<<mathias.markl@mukit.at>\>
- Iván Todorovich \<<ivan.todorovich@gmail.com>\>
- Sergey Shebanin \<<sergey@shebanin.ru>\>
- David Vidal \<<david.vidal@tecnativa.com>\>
- Taras Shabaranskyi \<<shabaranskij@gmail.com>\>
- Angel Patel \<<patelangel1414@gmail.com>\>
- Mohamed Alkobrosli \<<malkobrosly@kencove.com>\>
- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io)
- Bhavesh Heliconia
- [IKU Solutions](https://www.iku.solutions)
- Yan Chirino \<<yan.chirino@iku.solutions>\>

View File

@ -0,0 +1,69 @@
This module adds responsiveness to web backend.
**Features for all devices**:
- Redirect to the dashboard after logging in.
Users will only be redirected to the home page after login
if they have enabled the 'Redirect to Home' option in
their profile settings.
![image](../static/img/redirecthome.gif)
- New navigation with the fullscreen app menu
![image](../static/img/appmenu.gif)
- Quick menu search inside the app menu
![image](../static/img/appsearch.gif)
- Sticky header & footer in list view
![image](../static/img/listview.gif)
- Sticky statusbar in form view
![image](../static/img/formview.gif)
- Bigger checkboxes in list view
![image](../static/img/listview.gif)
**Features for mobile**: \* View type picker dropdown displays
comfortably
- Control panel buttons use icons to save space.
![image](../static/img/form_buttons.gif)
- Followers and send button is displayed on mobile. Avatar is hidden.
![image](../static/img/chatter.png)
- Big inputs on form in edit mode
**Features for desktop computers**:
- Keyboard shortcuts for easier navigation, **using \`Alt + Shift +
\[NUM\]\`** combination instead of just Alt + \[NUM\] to avoid
conflict with Firefox Tab switching. Standard Odoo keyboard hotkeys
changed to be more intuitive or accessible by fingers of one hand.
F.x. Alt + S for Save
![image](../static/img/shortcuts.gif)
- Autofocus on search menu box when opening the app menu
![image](../static/img/appsearch.gif)
- When the chatter is on the side part, the document viewer fills that
part for side-by-side reading instead of full screen. You can still
put it on full width preview clicking on the new maximize button.
![image](../static/img/document_viewer.gif)
- When the user chooses to send a public message the color of the
composer is different from the one when the message is an internal
log.
![image](../static/img/chatter-colors.png)

View File

@ -0,0 +1,2 @@
- App navigation with keyboard.
- Handle long titles on forms in a better way

View File

@ -0,0 +1,5 @@
The following keyboard shortcuts are implemented:
- Navigate app search results - Arrow keys
- Choose app result - `Enter`
- `Esc` to close app drawer

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,533 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>README.rst</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document">
<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
</a>
<div class="section" id="web-responsive">
<h1>Web Responsive</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:cdfbec36e2e1aa83b9b44b34c64aa769b2d50867da82f88fc5c817fa641c2f9c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/license-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/web/tree/19.0/web_responsive"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/web-19-0/web-19-0-web_responsive"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/web&amp;target_branch=19.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module adds responsiveness to web backend.</p>
<p><strong>Features for all devices</strong>:</p>
<ul>
<li><p class="first">Redirect to the dashboard after logging in. Users will only be
redirected to the home page after login if they have enabled the
Redirect to Home option in their profile settings.</p>
<p><img alt="image" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/redirecthome.gif" /></p>
</li>
<li><p class="first">New navigation with the fullscreen app menu</p>
<p><img alt="image1" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/appmenu.gif" /></p>
</li>
<li><p class="first">Quick menu search inside the app menu</p>
<p><img alt="image2" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/appsearch.gif" /></p>
</li>
<li><p class="first">Sticky header &amp; footer in list view</p>
<p><img alt="image3" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/listview.gif" /></p>
</li>
<li><p class="first">Sticky statusbar in form view</p>
<p><img alt="image4" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/formview.gif" /></p>
</li>
<li><p class="first">Bigger checkboxes in list view</p>
<p><img alt="image5" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/listview.gif" /></p>
</li>
</ul>
<p><strong>Features for mobile</strong>: * View type picker dropdown displays
comfortably</p>
<ul>
<li><p class="first">Control panel buttons use icons to save space.</p>
<p><img alt="image6" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/form_buttons.gif" /></p>
</li>
<li><p class="first">Followers and send button is displayed on mobile. Avatar is hidden.</p>
<p><img alt="image7" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/chatter.png" /></p>
</li>
<li><p class="first">Big inputs on form in edit mode</p>
</li>
</ul>
<p><strong>Features for desktop computers</strong>:</p>
<ul>
<li><p class="first">Keyboard shortcuts for easier navigation, <strong>using `Alt + Shift +
[NUM]`</strong> combination instead of just Alt + [NUM] to avoid conflict
with Firefox Tab switching. Standard Odoo keyboard hotkeys changed to
be more intuitive or accessible by fingers of one hand. F.x. Alt + S
for Save</p>
<p><img alt="image8" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/shortcuts.gif" /></p>
</li>
<li><p class="first">Autofocus on search menu box when opening the app menu</p>
<p><img alt="image9" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/appsearch.gif" /></p>
</li>
<li><p class="first">When the chatter is on the side part, the document viewer fills that
part for side-by-side reading instead of full screen. You can still
put it on full width preview clicking on the new maximize button.</p>
<p><img alt="image10" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/document_viewer.gif" /></p>
</li>
<li><p class="first">When the user chooses to send a public message the color of the
composer is different from the one when the message is an internal
log.</p>
<p><img alt="image11" src="https://raw.githubusercontent.com/OCA/web/19.0/web_responsive/static/img/chatter-colors.png" /></p>
</li>
</ul>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#usage" id="toc-entry-1">Usage</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-2">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-5">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-6">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h2><a class="toc-backref" href="#toc-entry-1">Usage</a></h2>
<p>The following keyboard shortcuts are implemented:</p>
<ul class="simple">
<li>Navigate app search results - Arrow keys</li>
<li>Choose app result - <tt class="docutils literal">Enter</tt></li>
<li><tt class="docutils literal">Esc</tt> to close app drawer</li>
</ul>
</div>
<div class="section" id="known-issues-roadmap">
<h2><a class="toc-backref" href="#toc-entry-2">Known issues / Roadmap</a></h2>
<ul class="simple">
<li>App navigation with keyboard.</li>
<li>Handle long titles on forms in a better way</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h2><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h2>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_responsive%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h2><a class="toc-backref" href="#toc-entry-4">Credits</a></h2>
<div class="section" id="authors">
<h3><a class="toc-backref" href="#toc-entry-5">Authors</a></h3>
<ul class="simple">
<li>LasLabs</li>
<li>Tecnativa</li>
<li>ITerra</li>
<li>Onestein</li>
</ul>
</div>
<div class="section" id="contributors">
<h3><a class="toc-backref" href="#toc-entry-6">Contributors</a></h3>
<ul class="simple">
<li>Dave Lasley &lt;<a class="reference external" href="mailto:dave&#64;laslabs.com">dave&#64;laslabs.com</a>&gt;</li>
<li>Jairo Llopis &lt;<a class="reference external" href="mailto:jairo.llopis&#64;tecnativa.com">jairo.llopis&#64;tecnativa.com</a>&gt;</li>
<li><a class="reference external" href="https://www.onestein.nl">Onestein</a>:<ul>
<li>Dennis Sluijk &lt;<a class="reference external" href="mailto:d.sluijk&#64;onestein.nl">d.sluijk&#64;onestein.nl</a>&gt;</li>
<li>Anjeel Haria</li>
</ul>
</li>
<li>Sergio Teruel &lt;<a class="reference external" href="mailto:sergio.teruel&#64;tecnativa.com">sergio.teruel&#64;tecnativa.com</a>&gt;</li>
<li>Alexandre Díaz &lt;<a class="reference external" href="mailto:dev&#64;redneboa.es">dev&#64;redneboa.es</a>&gt;</li>
<li>Mathias Markl &lt;<a class="reference external" href="mailto:mathias.markl&#64;mukit.at">mathias.markl&#64;mukit.at</a>&gt;</li>
<li>Iván Todorovich &lt;<a class="reference external" href="mailto:ivan.todorovich&#64;gmail.com">ivan.todorovich&#64;gmail.com</a>&gt;</li>
<li>Sergey Shebanin &lt;<a class="reference external" href="mailto:sergey&#64;shebanin.ru">sergey&#64;shebanin.ru</a>&gt;</li>
<li>David Vidal &lt;<a class="reference external" href="mailto:david.vidal&#64;tecnativa.com">david.vidal&#64;tecnativa.com</a>&gt;</li>
<li>Taras Shabaranskyi &lt;<a class="reference external" href="mailto:shabaranskij&#64;gmail.com">shabaranskij&#64;gmail.com</a>&gt;</li>
<li>Angel Patel &lt;<a class="reference external" href="mailto:patelangel1414&#64;gmail.com">patelangel1414&#64;gmail.com</a>&gt;</li>
<li>Mohamed Alkobrosli &lt;<a class="reference external" href="mailto:malkobrosly&#64;kencove.com">malkobrosly&#64;kencove.com</a>&gt;</li>
<li><a class="reference external" href="https://www.heliconia.io">Heliconia Solutions Pvt. Ltd.</a><ul>
<li>Bhavesh Heliconia</li>
</ul>
</li>
<li><a class="reference external" href="https://www.iku.solutions">IKU Solutions</a><ul>
<li>Yan Chirino &lt;<a class="reference external" href="mailto:yan.chirino&#64;iku.solutions">yan.chirino&#64;iku.solutions</a>&gt;</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h3><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h3>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainers</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/Tardo"><img alt="Tardo" src="https://github.com/Tardo.png?size=40px" /></a> <a class="reference external image-reference" href="https://github.com/SplashS"><img alt="SplashS" src="https://github.com/SplashS.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/19.0/web_responsive">OCA/web</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

View File

@ -0,0 +1,45 @@
/* Copyright 2025 Tecnativa - Carlos Roca
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
const checkCalledFromClickEverywhere = function () {
// Simulate an error to have the stack trace to check if
// functions are thrown from clickEverywhere
const error = new Error();
const stack = error.stack || "";
// Check that the stack has clickEverywhere function
return stack.includes("clickEverywhere");
};
// We modified the behavior of querySelector and querySelectorAll so
// that when attempting to access .o-dropdown--menu .o_app
// or .o_navbar_apps_menu .dropdown-toggle, they are replaced with
// the correct selector and the click everywhere functionality
// continues to work.
// Note: This will only be loaded when the option to trigger clicks on
// all elements is selected.
const originalQuerySelector = document.querySelector;
document.querySelector = function (selector) {
if (checkCalledFromClickEverywhere()) {
if (selector === ".o-dropdown--menu .o_app") {
selector = ".o-app-menu-list .o_app";
} else if (selector === ".o_navbar_apps_menu .dropdown-toggle") {
selector = ".o_navbar_apps_menu .o_grid_apps_menu__button";
} else if (
selector.includes('.o-dropdown--menu .dropdown-item[data-menu-xmlid="')
) {
selector = selector.replace(
".o-dropdown--menu .dropdown-item",
".o-app-menu-list .o_app"
);
}
}
return originalQuerySelector.call(this, selector);
};
const originalQuerySelectorAll = document.querySelectorAll;
document.querySelectorAll = function (selector) {
if (checkCalledFromClickEverywhere()) {
if (selector === ".o-dropdown--menu .o_app") {
selector = ".o-app-menu-list .o_app";
}
}
return originalQuerySelectorAll.call(this, selector);
};

View File

@ -0,0 +1,67 @@
/* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
:root {
.o_grid_apps_menu[data-theme="milk"],
.o_grid_apps_menu[data-theme="community"] {
--app-menu-background: linear-gradient(
to bottom,
#{$o-gray-300},
#{desaturate(darken($o-gray-300, 5%), 15)}
);
--app-menu-text-color: #{$o-gray-900};
--app-menu-text-shadow: 1px 1px 1px #{rgba(black, 0.4)};
--app-menu-hover-background: #{rgba(white, 0.08)};
--apps-menu-scrollbar-background: #{$o-gray-400};
--apps-menu-empty-search-color: #{$o-gray-900};
}
}
.o_grid_apps_menu {
.o-app-menu-item {
&__icon {
background-color: $o-gray-400;
}
&__active {
background-color: $o-gray-900;
border-radius: 50%;
color: $o-gray-100;
text-shadow: none;
}
}
.search-container {
// Search box
.search-input {
background-color: $o-gray-300;
.search-icon {
color: $o-gray-900;
}
.form-control {
color: $o-gray-900;
&::placeholder {
color: $o-gray-700;
}
}
}
// Search results (canonical searchbar)
.search-item {
background-color: $o-gray-300;
&__name {
color: $o-gray-900;
text-shadow: none;
}
&.highlight,
&:hover {
background-color: $o-gray-400;
}
}
}
}

View File

@ -0,0 +1,202 @@
/* global document, location, window */
/* Copyright 2018 Tecnativa - Jairo Llopis
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Onestein - Anjeel Haria
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {Component, onWillStart, useState} from "@odoo/owl";
import {useBus, useService} from "@web/core/utils/hooks";
import {AppMenuItem} from "@web_responsive/components/apps_menu_item/apps_menu_item.esm";
import {AppsMenuSearchBar} from "@web_responsive/components/menu_searchbar/searchbar.esm";
import {NavBar} from "@web/webclient/navbar/navbar";
import {WebClient} from "@web/webclient/webclient";
import {browser} from "@web/core/browser/browser";
import {patch} from "@web/core/utils/patch";
import {router} from "@web/core/browser/router";
import {session} from "@web/session";
import {useHotkey} from "@web/core/hotkeys/hotkey_hook";
import {user} from "@web/core/user";
import {BurgerMenu} from "@web/webclient/burger_menu/burger_menu";
// Patch WebClient to show AppsMenu instead of default app
patch(WebClient.prototype, {
setup() {
super.setup();
useBus(this.env.bus, "APPS_MENU:STATE_CHANGED", ({detail: state}) => {
document.body.classList.toggle("o_apps_menu_opened", state);
});
this.user = user;
onWillStart(async () => {
const is_redirect_home = await this.orm.searchRead(
"res.users",
[["id", "=", this.user.userId]],
["is_redirect_home"]
);
user.updateContext({
is_redirect_to_home: is_redirect_home[0]?.is_redirect_home,
});
});
this.redirect = false;
},
_loadDefaultApp() {
if (user.context.is_redirect_to_home) {
this.env.bus.trigger("APPS_MENU:STATE_CHANGED", true);
} else {
super._loadDefaultApp();
}
},
});
export class AppsMenu extends Component {
setup() {
super.setup();
this.state = useState({open: false});
this.theme = session.apps_menu.theme || "milk";
this.menuService = useService("menu");
browser.localStorage.setItem("redirect_menuId", "");
if (user.context.is_redirect_to_home) {
this.router = router;
const menuId = Number(this.router.current.menu_id || 0);
this.state = useState({open: menuId === 0});
}
useBus(this.env.bus, "ACTION_MANAGER:UI-UPDATED", () => {
this.setOpenState(false);
});
this._setupKeyNavigation();
}
setOpenState(open_state) {
this.state.open = open_state;
this.env.bus.trigger("APPS_MENU:STATE_CHANGED", open_state);
}
/**
* Setup navigation among app menus
*/
_setupKeyNavigation() {
const repeatable = {
allowRepeat: true,
};
useHotkey(
"ArrowRight",
() => {
this._onWindowKeydown("next");
},
repeatable
);
useHotkey(
"ArrowLeft",
() => {
this._onWindowKeydown("prev");
},
repeatable
);
useHotkey(
"ArrowDown",
() => {
this._onWindowKeydown("next");
},
repeatable
);
useHotkey(
"ArrowUp",
() => {
this._onWindowKeydown("prev");
},
repeatable
);
useHotkey("Escape", () => {
this.env.bus.trigger("ACTION_MANAGER:UI-UPDATED");
});
}
_onWindowKeydown(direction) {
const focusableInputElements = document.querySelectorAll(".o-app-menu-item");
if (focusableInputElements.length) {
const focusable = [...focusableInputElements];
const index = focusable.indexOf(document.activeElement);
let nextIndex = 0;
if (direction === "prev" && index >= 0) {
if (index > 0) {
nextIndex = index - 1;
} else {
nextIndex = focusable.length - 1;
}
} else if (direction === "next") {
if (index + 1 < focusable.length) {
nextIndex = index + 1;
} else {
nextIndex = 0;
}
}
focusableInputElements[nextIndex].focus();
}
}
onMenuClick() {
if (!user.context.is_redirect_to_home) {
this.setOpenState(!this.state.open);
} else {
const redirect_menuId =
browser.localStorage.getItem("redirect_menuId") || "";
if (!redirect_menuId) {
this.setOpenState(true);
} else {
this.setOpenState(!this.state.open);
}
const {href, hash} = location;
const menuId = this.router.current.menu_id;
if (menuId && menuId !== redirect_menuId) {
browser.localStorage.setItem(
"redirect_menuId",
this.router.current.menu_id
);
}
if (href.includes(hash)) {
window.history.replaceState(null, "", href.replace(hash, ""));
}
}
}
}
// Add this patch after the WebClient patch
patch(NavBar.prototype, {
setup() {
super.setup();
useBus(this.env.bus, "APP_MENU:TOGGLE_SIDEBAR", () => {
this._openAppMenuSidebar();
});
},
openAppMenu() {
this.env.bus.trigger("APP_MENU:OPEN_APP_MENU");
this._closeAppMenuSidebar();
},
});
Object.assign(AppsMenu, {
template: "web_responsive.AppsMenu",
props: {
slots: {
type: Object,
optional: true,
},
},
});
Object.assign(NavBar.components, {AppsMenu, AppMenuItem, AppsMenuSearchBar});
// Add this patch after the WebClient patch
patch(BurgerMenu.prototype, {
setup() {
super.setup();
},
_openAppMenuSidebarMobile() {
this.env.bus.trigger("APP_MENU:TOGGLE_SIDEBAR");
},
});

View File

@ -0,0 +1,117 @@
/* Copyright 2018 Tecnativa - Jairo Llopis
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
:root {
.o_grid_apps_menu[data-theme="milk"] {
--app-menu-background:
url("../../img/home-menu-bg-overlay.svg"),
linear-gradient(
to bottom,
#{$app-menu-background-color},
#{desaturate(lighten($app-menu-background-color, 20%), 15)}
);
}
.o_grid_apps_menu[data-theme="community"] {
--app-menu-background:
url("../../img/home-menu-bg-overlay.svg"),
linear-gradient(
to bottom,
#{$o-brand-primary},
#{desaturate(lighten($o-brand-primary, 20%), 15)}
);
}
}
@mixin full-screen-dropdown {
border: none;
box-shadow: none;
height: 100%;
max-height: calc(var(--vh100, 100vh) - #{$o-navbar-height});
max-height: calc(100dvh - #{$o-navbar-height});
position: fixed;
margin: 0;
width: 100vw;
z-index: 1000;
left: 0 !important;
}
.o_apps_menu_opened .o_main_navbar {
.o_menu_brand,
.o_menu_sections {
display: none !important;
}
}
// hide and save odoo default QUnit tests
.o_navbar_apps_menu.hide .dropdown-toggle {
position: absolute !important;
z-index: -100 !important;
}
// Iconized full screen apps menu
.o_grid_apps_menu {
&__button {
background: unset;
border: unset;
outline: unset;
margin-right: 0.25rem;
min-height: $o-navbar-height;
height: $o-navbar-height;
width: $o-navbar-height;
color: $o-navbar-brand-color;
&:hover,
&:focus {
background: $o-navbar-entry-bg--hover;
}
}
.o-app-menu-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
width: 100%;
gap: 0.25rem;
@include media-breakpoint-up(sm) {
grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
}
}
}
.app-menu-container {
@include full-screen-dropdown();
overflow: auto;
background-clip: border-box;
padding: 1rem 0.5rem;
gap: 1rem;
background: var(--app-menu-background);
background-size: cover;
border-radius: 0;
// Display apps in a grid
align-content: flex-start;
display: flex !important;
z-index: 1024 !important;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
// Hide app icons when searching
.has-results ~ .o-app-menu-list {
display: none;
}
@include media-breakpoint-up(lg) {
padding: {
left: calc((100vw - 850px) / 2);
right: calc((100vw - 850px) / 2);
}
}
}
// Sidebar positioning
.o_app_menu_sidebar {
transform: translateX(-100%);
}

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2018 Tecnativa - Jairo Llopis
Copyright 2021 ITerra - Sergey Shebanin
Copyright 2023 Onestein - Anjeel Haria
Copyright 2023 Taras Shabaranskyi
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<templates>
<t t-inherit="web.NavBar.AppsMenu" t-inherit-mode="extension">
<!-- odoo 18 has created a left sidebar where the button of all apps
and the dropdown for the user where can logout
we had to disable the lef sidebar to keep our web_resposive toggle button working
and to keep the user dropdown in its original place -->
<xpath expr="//t[@t-if='this.ui.isSmall']" position="attributes">
<attribute name="t-if">false</attribute>
</xpath>
<!-- The kanban dropdown is replaced with the odoo default one
as the default one took physical place in the DOM -->
<xpath expr="//Dropdown" position="replace">
<t t-if="this.ui.isSmall">
<t t-call="web.NavBar.AppsMenu.Sidebar" />
</t>
<t t-else="" />
<AppsMenu>
<t t-set-slot="search_bar">
<AppsMenuSearchBar />
</t>
<AppMenuItem
t-foreach="apps"
t-as="app"
t-key="app.id"
app="app"
currentApp="currentApp"
href="getMenuItemHref(app)"
onClick="onNavBarDropdownItemSelection.bind(this)"
/>
</AppsMenu>
</xpath>
</t>
<!-- Apps menu -->
<t t-name="web_responsive.AppsMenu">
<div class="o_grid_apps_menu" t-att-data-theme="theme">
<button
class="o_grid_apps_menu__button"
title="Home Menu"
data-hotkey="h"
t-on-click.stop="onMenuClick"
>
<i class="oi oi-apps fs-4" />
</button>
<div t-if="state.open" class="app-menu-container">
<t t-slot="search_bar" />
<div class="o-app-menu-list">
<t t-slot="default" />
</div>
</div>
</div>
</t>
<!-- Apps Menu Sidebar -->
<t t-inherit="web.NavBar.AppsMenu.Sidebar" t-inherit-mode="extension">
<xpath expr="//i[hasclass('fa fa-bars')]" position="replace">
<!-- Remove the burger menu icon -->
</xpath>
<xpath expr="//div[hasclass('o_app_menu_sidebar')]" position="attributes">
<attribute
name="class"
>o_app_menu_sidebar position-fixed top-0 bottom-0 start-100 d-flex flex-column flex-nowrap</attribute>
</xpath>
</t>
<!-- Section Menu Items -->
<t t-inherit="web.SectionMenu" t-inherit-mode="extension">
<!-- Add cursor pointer to menu items -->
<xpath expr="//li[@t-on-click]" position="attributes">
<attribute name="class">cursor-pointer</attribute>
</xpath>
</t>
<!-- Burger Menu -->
<t t-inherit="web.BurgerMenu" t-inherit-mode="extension">
<xpath expr="//button[hasclass('o_mobile_menu_toggle')]" position="after">
<button
class="o_mobile_menu_toggle o_nav_entry o-no-caret d-md-none border-0 pe-3"
t-on-click.prevent="_openAppMenuSidebarMobile"
>
<i class="oi oi-panel-right" />
</button>
</xpath>
</t>
</templates>

View File

@ -0,0 +1,40 @@
/* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {Component, xml} from "@odoo/owl";
import {registry} from "@web/core/registry";
import {useService} from "@web/core/utils/hooks";
import {user} from "@web/core/user";
class AppsMenuPreferences extends Component {
static props = {};
setup() {
this.action = useService("action");
this.user = user;
}
async _onClick() {
const onClose = () => this.action.doAction("reload_context");
const action = await this.action.loadAction(
"web_responsive.res_users_view_form_apps_menu_preferences_action"
);
this.action.doAction({...action, res_id: this.user.userId}, {onClose}).then();
}
}
AppsMenuPreferences.template = xml`
<div class="o-dropdown dropdown o-dropdown--no-caret">
<button
role="button"
type="button"
title="App Menu Preferences"
class="dropdown-toggle o-dropdown--narrow"
t-on-click="_onClick">
<i class="fa fa-tint fa-lg px-1"/>
</button>
</div>
`;
registry
.category("systray")
.add("AppMenuTheme", {Component: AppsMenuPreferences}, {sequence: 100});

View File

@ -0,0 +1,52 @@
/* Copyright 2018 Tecnativa - Jairo Llopis
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Onestein - Anjeel Haria
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {Component, onWillUpdateProps} from "@odoo/owl";
import {getWebIconData} from "@web_responsive/components/apps_menu_tools.esm";
export class AppMenuItem extends Component {
setup() {
super.setup();
this.webIconData = getWebIconData(this.props.app);
onWillUpdateProps(this.onUpdateProps);
}
get isActive() {
const {currentApp} = this.props;
return currentApp && currentApp.id === this.props.app.id;
}
get className() {
const classItems = ["o-app-menu-item"];
if (this.isActive) {
classItems.push("active");
}
return classItems.join(" ");
}
onUpdateProps(nextProps) {
this.webIconData = getWebIconData(nextProps.app);
}
onClick() {
if (typeof this.props.onClick === "function") {
this.props.onClick(this.props.app);
}
}
}
Object.assign(AppMenuItem, {
template: "web_responsive.AppMenuItem",
props: {
app: Object,
href: String,
currentApp: {
type: Object,
optional: true,
},
onClick: Function,
},
});

View File

@ -0,0 +1,76 @@
/* Copyright 2018 Tecnativa - Jairo Llopis
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
:root {
.o_grid_apps_menu[data-theme="milk"] {
--app-menu-text-color: #{$app-menu-text-color};
--app-menu-text-shadow: 1px 1px 1px #{rgba($white, 0.4)};
--app-menu-hover-background: #{rgba(white, 0.4)};
}
.o_grid_apps_menu[data-theme="community"] {
--app-menu-text-color: white;
--app-menu-text-shadow: 1px 1px 1px #{rgba(black, 0.4)};
--app-menu-hover-background: #{rgba(white, 0.2)};
}
}
.o-app-menu-item {
display: flex;
flex-direction: column;
border-radius: 4px;
gap: 0.25rem;
transition:
ease box-shadow,
transform,
0.3s;
background: unset;
outline: unset;
border: unset;
padding: 0.75rem 0.5rem;
justify-content: flex-start;
align-items: center;
white-space: normal;
user-select: none;
height: -moz-available;
height: max-content;
&__name {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
font-size: 1em;
text-shadow: var(--app-menu-text-shadow);
color: var(--app-menu-text-color);
text-align: center;
}
&__icon {
height: auto;
max-width: 64px;
width: 64px;
aspect-ratio: 1;
padding: 10px;
background-color: white;
box-shadow: $app-menu-box-shadow;
}
&__active {
position: absolute;
bottom: 2px;
right: 2px;
text-shadow: 0 0 2px rgba(250, 250, 250, 0.6);
color: $app-menu-text-color;
}
&:focus,
&:hover {
transform: translateY(-4px);
box-shadow: 0 6px 12px -8px transparentize($app-menu-text-color, 0.6);
background-color: var(--app-menu-hover-background) !important;
backdrop-filter: blur(2px);
}
}

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2018 Tecnativa - Jairo Llopis
Copyright 2021 ITerra - Sergey Shebanin
Copyright 2023 Onestein - Anjeel Haria
Copyright 2023 Taras Shabaranskyi
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<templates>
<t t-name="web_responsive.AppMenuItem">
<a
t-att-class="className"
role="button"
t-att-data-menu-xmlid="props.app.xmlid"
t-att-href="props.href"
t-on-click="onClick"
draggable="false"
>
<div
class="position-relative o_app"
t-att-data-menu-xmlid="props.app.xmlid"
>
<img
class="o-app-menu-item__icon rounded-3"
draggable="false"
t-att-src="webIconData"
/>
<i t-if="isActive" class="fa fa-check-circle o-app-menu-item__active" />
</div>
<span class="o-app-menu-item__name" t-att-title="props.app.name">
<t t-out="props.app.name" />
</span>
</a>
</t>
</templates>

View File

@ -0,0 +1,80 @@
/* Copyright 2018 Tecnativa - Jairo Llopis
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Onestein - Anjeel Haria
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
export function getWebIconData(menu) {
const result = "/web_responsive/static/img/default_icon_app.png";
const webIcon = menu.webIcon;
if (webIcon && webIcon.split(",").length === 2) {
const path = webIcon.replace(",", "/");
return path.startsWith("/") ? path : "/" + path;
}
const iconData = menu.webIconData;
if (!menu.webIcon) {
return result;
}
const prefix = iconData.startsWith("P")
? "data:image/svg+xml;base64,"
: "data:image/png;base64,";
if (iconData.startsWith("data:image")) {
return iconData;
}
return prefix + iconData.replace(/\s/g, "");
}
/**
* @param {Object} menu
*/
export function updateMenuWebIconData(menu) {
menu.webIconData = menu.webIconData ? getWebIconData(menu) : "";
}
export function updateMenuDisplayName(menu) {
menu.displayName = menu.name.trim();
}
/**
* @param {Object} menu
* @returns {Boolean}
*/
export function isRootMenu(menu) {
return menu.actionID && menu.appID === menu.id;
}
/**
* @param {Object[]} memo
* @param {Object|null} parentMenu
* @param {Object} menu
* @returns {Object[]}
*/
export function collectSubMenuItems(memo, parentMenu, menu) {
const menuCopy = Object.assign({}, menu);
updateMenuDisplayName(menuCopy);
if (parentMenu) {
menuCopy.displayName = `${parentMenu.displayName} / ${menuCopy.displayName}`;
}
if (menuCopy.actionID && !isRootMenu(menuCopy)) {
memo.push(menuCopy);
}
for (const child of menuCopy.childrenTree || []) {
collectSubMenuItems(memo, menuCopy, child);
}
return memo;
}
/**
* @param {Object[]} memo
* @param {Object} menu
* @returns {Object}
*/
export function collectRootMenuItems(memo, menu) {
if (isRootMenu(menu)) {
const menuCopy = Object.assign({}, menu);
updateMenuWebIconData(menuCopy);
updateMenuDisplayName(menuCopy);
memo.push(menuCopy);
}
return memo;
}

View File

@ -0,0 +1,27 @@
/* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Onestein - Anjeel Haria
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {Chatter} from "@mail/chatter/web_portal/chatter";
import {patch} from "@web/core/utils/patch";
import {useEffect} from "@odoo/owl";
patch(Chatter.prototype, {
setup() {
super.setup();
useEffect(this._resetScrollToAttachmentsEffect.bind(this), () => [
this.state.isAttachmentBoxOpened,
]);
},
/**
* Prevent scrollIntoView error
* @param {Boolean} isAttachmentBoxOpened
* @private
*/
_resetScrollToAttachmentsEffect(isAttachmentBoxOpened) {
if (!isAttachmentBoxOpened) {
this.state.scrollToAttachments = 0;
}
},
});

View File

@ -0,0 +1,42 @@
/* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
.o-mail-Composer {
grid-template-areas:
"sidebar-header core-header"
"core-main core-main"
"sidebar-footer core-footer";
.o-mail-Composer-sidebarMain {
display: none;
}
@include media-breakpoint-up(sm) {
grid-template-areas:
"sidebar-header core-header"
"sidebar-main core-main"
"sidebar-footer core-footer";
.o-mail-Composer-sidebarMain {
display: block;
}
.o-mail-SuggestedRecipient {
margin-left: 42px;
}
}
}
.o-mail-Form-chatter {
.o-mail-SuggestedRecipient,
.o-mail-Chatter-recipientList {
margin-left: 0;
}
@include media-breakpoint-up(sm) {
.o-mail-SuggestedRecipient,
.o-mail-Chatter-recipientList {
margin-left: 42px;
}
}
}

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2023 Taras Shabaranskyi
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<templates>
<t
t-name="web_responsive.Chatter"
t-inherit="mail.Chatter"
t-inherit-mode="extension"
>
<xpath
expr="//button[hasclass('o-mail-Chatter-sendMessage')]"
position="replace"
>
<button
class="o-mail-Chatter-sendMessage btn text-nowrap me-1"
t-att-class="{
'btn-secondary': state.composerType !== 'message',
'btn-primary active': state.composerType === 'message',
'my-2': !props.compactHeight
}"
t-att-disabled="!state.thread.hasWriteAccess and !(state.thread.hasReadAccess and state.thread.canPostOnReadonly) and props.threadId"
data-hotkey="m"
t-on-click="() => this.toggleComposer('message')"
>
<i class="fa fa-envelope me-sm-1" />
<span class="d-none d-sm-inline">Send message</span>
</button>
</xpath>
<xpath expr="//button[hasclass('o-mail-Chatter-logNote')]" position="replace">
<button
class="o-mail-Chatter-logNote btn text-nowrap me-1"
t-att-class="{
'btn-primary active': state.composerType === 'note',
'btn-secondary': state.composerType !== 'note',
'my-2': !props.compactHeight
}"
t-att-disabled="!state.thread.hasWriteAccess and !(state.thread.hasReadAccess and state.thread.canPostOnReadonly) and props.threadId"
data-hotkey="shift+m"
t-on-click="() => this.toggleComposer('note')"
>
<i class="fa fa-sticky-note me-sm-1" />
<span class="d-none d-sm-inline">Log note</span>
</button>
</xpath>
<xpath
expr="//button[hasclass('o-mail-Chatter-activity')]/span"
position="before"
>
<i class="fa fa-clock-o me-sm-1" />
</xpath>
<xpath
expr="//button[hasclass('o-mail-Chatter-activity')]/span"
position="attributes"
>
<attribute name="class" add="d-none d-sm-inline" separator=" " />
</xpath>
<!-- remove extra padding between the activity separator and the search message -->
<xpath
expr="//span[hasclass('o-mail-Chatter-topbarGrow')]"
position="attributes"
>
<attribute name="class" remove="pe-2" add="px-0" separator=" " />
</xpath>
</t>
</templates>

View File

@ -0,0 +1,19 @@
import {CommandPalette} from "@web/core/commands/command_palette";
import {patch} from "@web/core/utils/patch";
import {useService} from "@web/core/utils/hooks";
import {useState} from "@odoo/owl";
export const unpatchCommandPalette = patch(CommandPalette.prototype, {
setup() {
super.setup();
this.ui = useState(useService("ui"));
},
get small() {
return this.ui.size < 2;
},
get contentClass() {
return `o_command_palette ${this.small ? "" : "mt-5"}`;
},
});

View File

@ -0,0 +1,28 @@
.o_command_palette {
.o_command_palette_exit {
display: none;
}
@include media-breakpoint-down(sm) {
.o_command_palette_root {
display: flex;
max-height: 100vh;
max-height: 100dvh;
flex-direction: column;
height: 100%;
justify-content: space-between;
}
.o_command_palette_exit {
display: block;
}
.o_command_palette_search {
flex-shrink: 0;
}
.o_command_palette_listbox {
max-height: unset;
}
.o_command_palette_footer {
flex-shrink: 0;
}
}
}

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" ?>
<templates>
<t
t-name="web_responsive.CommandPalette"
t-inherit="web.CommandPalette"
t-inherit-mode="extension"
>
<xpath expr="//Dialog" position="attributes">
<attribute name="contentClass">contentClass</attribute>
</xpath>
<xpath expr="//div[@t-ref='root']" position="attributes">
<attribute name="class">o_command_palette_root</attribute>
</xpath>
<xpath expr="//div[hasclass('o_command_palette_search')]" position="before">
<div class="o_command_palette_exit">
<button
type="button"
class="btn btn-secondary w-100"
t-on-click="props.close"
>Exit</button>
</div>
</xpath>
</t>
</templates>

View File

@ -0,0 +1,74 @@
/* global clearTimeout, setTimeout */
/* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {ControlPanel} from "@web/search/control_panel/control_panel";
import {browser} from "@web/core/browser/browser";
import {patch} from "@web/core/utils/patch";
export const STICKY_CLASS = "o_mobile_sticky";
/**
* @param {Number} delay
* @returns {{collect: function(Number, (function(Number, Number): void)): void}}
*/
export function minMaxCollector(delay = 100) {
const state = {
id: null,
items: [],
};
function min() {
return Math.min.apply(null, state.items);
}
function max() {
return Math.max.apply(null, state.items);
}
return {
collect(value, callback) {
clearTimeout(state.id);
state.items.push(value);
state.id = setTimeout(() => {
callback(min(), max());
state.items = [];
state.id = null;
}, delay);
},
};
}
export const unpatchControlPanel = patch(ControlPanel.prototype, {
scrollValueCollector: undefined,
/** @type {Number}*/
scrollHeaderGap: undefined,
setup() {
super.setup();
this.scrollValueCollector = minMaxCollector(100);
this.scrollHeaderGap = 2;
},
onScrollThrottled() {
if (this.isScrolling) {
return;
}
this.isScrolling = true;
browser.requestAnimationFrame(() => (this.isScrolling = false));
/** @type {HTMLElement}*/
const rootEl = this.root.el;
const scrollTop = this.getScrollingElement().scrollTop;
const activeAnimation = scrollTop > this.initialScrollTop;
rootEl.classList.toggle(STICKY_CLASS, activeAnimation);
this.scrollValueCollector.collect(scrollTop - this.oldScrollTop, (min, max) => {
const delta = min + max;
if (delta < -this.scrollHeaderGap || delta > this.scrollHeaderGap) {
rootEl.style.top = `${delta < 0 ? -rootEl.clientHeight : 0}px`;
}
});
this.oldScrollTop = scrollTop;
},
});

View File

@ -0,0 +1,74 @@
/* global document, window, requestAnimationFrame */
/* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Onestein - Anjeel Haria
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {onMounted, onWillStart, useExternalListener, useRef} from "@odoo/owl";
import {FileViewer} from "@web/core/file_viewer/file_viewer";
import {patch} from "@web/core/utils/patch";
const formChatterClassName = ".o-mail-Form-chatter";
const formViewSheetClassName = ".o_form_view_container .o_form_sheet_bg";
export function useFileViewerContainerSize(ref) {
function updateActualFormChatterSize() {
/** @type {HTMLDivElement}*/
const chatterElement = document.querySelector(formChatterClassName);
/** @type {HTMLDivElement}*/
const formSheetElement = document.querySelector(formViewSheetClassName);
if (chatterElement && formSheetElement && ref.el) {
/** @type {CSSStyleDeclaration}*/
const elStyle = ref.el.style;
const width = `${chatterElement.clientWidth}px`;
const height = `${chatterElement.clientHeight}px`;
const left = `${formSheetElement.clientWidth}px`;
elStyle.setProperty("--o-FileViewerContainer-width", width);
elStyle.setProperty("--o-FileViewerContainer-height", height);
elStyle.setProperty("--o-FileViewerContainer-left", left);
}
}
useExternalListener(window, "resize", () => {
requestAnimationFrame(updateActualFormChatterSize);
});
onMounted(() => {
requestAnimationFrame(updateActualFormChatterSize);
});
}
export const unpatchFileViewer = patch(FileViewer.prototype, {
setup() {
super.setup();
this.root = useRef("root");
Object.assign(this.state, {
allowMinimize: false,
maximized: true,
});
useFileViewerContainerSize(this.root);
onWillStart(this.setDefaultMaximizeState);
},
get rootClass() {
return {
modal: this.props.modal,
"o-FileViewerContainer__maximized": this.state.maximized,
"o-FileViewerContainer__minimized": !this.state.maximized,
};
},
setDefaultMaximizeState() {
this.state.allowMinimize = Boolean(
document.querySelector(`${formChatterClassName}.o-aside`)
);
this.state.maximized = !this.state.allowMinimize;
},
/**
* @param {Boolean} value
*/
setMaximized(value) {
this.state.maximized = value;
},
});

View File

@ -0,0 +1,58 @@
/* Copyright 2019 Tecnativa - Alexandre Díaz
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
.o-FileViewerContainer {
--o-FileViewerContainer-width: #{$o-mail-Chatter-minWidth};
--o-FileViewerContainer-height: var(--100vh, calc(100vh - #{$o-navbar-height}));
--o-FileViewerContainer-left: unset;
--o-FileViewerContainer-right: 0;
position: fixed;
right: 0;
z-index: $zindex-fixed;
&__maximized {
top: 0;
left: 0;
right: 0;
}
&__minimized {
width: 100%;
max-width: var(--o-FileViewerContainer-width, #{$o-mail-Chatter-minWidth});
height: var(--o-FileViewerContainer-height);
top: unset;
right: var(--o-FileViewerContainer-right, 0);
left: var(--o-FileViewerContainer-left, unset);
bottom: 0;
.o-FileViewer-main {
padding: $o-navbar-height 0 0 0;
}
.o-FileViewer-viewPdf {
width: 100% !important;
}
}
.o-FileViewer-navigation {
background-color: rgba(255, 255, 255, 0.2);
text-shadow: 0 0 rgba(30, 30, 30, 0.8);
box-shadow: 0 0 1px 0 rgba(30, 30, 30, 0.4);
transition:
background-color 0.2s,
box-shadow 0.2s;
&:hover {
background-color: rgba(255, 255, 255, 0.8);
text-shadow: 0 0 black;
box-shadow: 0 0 2px 0 rgba(30, 30, 30, 0.8);
}
}
}
.o_apps_menu_opened .o-FileViewerContainer {
display: none !important;
}

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2019 Tecnativa - Alexandre Díaz
Copyright 2021 Sergey Shebanin
Copyright 2023 Taras Shabaranskyi
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<template>
<t
t-name="web_responsive.FileViewer"
t-inherit="web.FileViewer"
t-inherit-mode="extension"
>
<xpath expr="div[hasclass('justify-content-center')]" position="attributes">
<attribute name="class" add="o-FileViewerContainer" separator=" " />
<attribute name="t-att-class">rootClass</attribute>
<attribute name="t-ref">root</attribute>
</xpath>
<xpath expr="//iframe[@t-ref='iframeViewerPdf']" position="attributes">
<attribute name="class" add="o-FileViewer-viewPdf" separator=" " />
</xpath>
<xpath expr="//div[@t-on-click.stop='close']" position="before">
<t t-if="state.allowMinimize">
<div
t-if="!state.maximized"
t-on-click="setMaximized.bind(this, true)"
class="o-FileViewer-headerButton d-flex align-items-center mb-0 px-3 h4 text-reset cursor-pointer"
role="button"
name="maximize"
title="Maximize"
aria-label="Maximize"
>
<i class="fa fa-fw fa-window-maximize" role="img" />
</div>
<div
t-if="state.maximized"
class="o-FileViewer-headerButton d-flex align-items-center mb-0 px-3 h4 text-reset cursor-pointer"
t-on-click="setMaximized.bind(this, false)"
role="button"
name="minimize"
title="Minimize"
aria-label="Minimize"
>
<i class="fa fa-fw fa-window-minimize" role="img" />
</div>
</t>
</xpath>
</t>
</template>

View File

@ -0,0 +1,24 @@
import {patch} from "@web/core/utils/patch";
import {AttachmentList} from "@mail/core/common/attachment_list";
patch(AttachmentList.prototype, {
setup() {
super.setup();
this._wr_isOpeningFileViewer = false;
},
onClickAttachment(attachment) {
// Prevent duplication for opening FileViewer within the same tick/frame
if (this._wr_isOpeningFileViewer) {
return;
}
this._wr_isOpeningFileViewer = true;
try {
super.onClickAttachment(attachment);
} finally {
setTimeout(() => {
this._wr_isOpeningFileViewer = false;
}, 0);
}
},
});

View File

@ -0,0 +1,12 @@
/* Copyright 2021 ITerra - Sergey Shebanin
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
// Shortcut table ui improvement
.o_shortcut_table {
width: 100%;
white-space: nowrap;
max-width: 400px;
td {
padding: 0 20px;
}
}

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Copyright 2021 ITerra - Sergey Shebanin
Copyright 2023 Taras Shabaranskyi
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
-->
<templates id="template" xml:space="preserve">
<t t-inherit="web.NavBar.SectionsMenu" t-inherit-mode="extension" owl="1">
<xpath
expr="//t[@t-foreach='sections']//t[@t-set='hotkey']"
position="attributes"
>
<attribute
name="t-value"
>'shift+' + ((section_index + 1) % 10).toString()</attribute>
</xpath>
<xpath
expr="//t[@t-if='currentAppSectionsExtra.length']//t[@t-set='hotkey']"
position="attributes"
>
<attribute
name="t-value"
>'shift+' + (sectionsVisibleCount + 1 % 10).toString()</attribute>
</xpath>
</t>
</templates>

View File

@ -0,0 +1,236 @@
/* global console */
/* Copyright 2018 Tecnativa - Jairo Llopis
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Onestein - Anjeel Haria
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {Component, onPatched, onWillPatch, useRef, useState} from "@odoo/owl";
import {
collectRootMenuItems,
collectSubMenuItems,
} from "@web_responsive/components/apps_menu_tools.esm";
import {useAutofocus, useService} from "@web/core/utils/hooks";
import {debounce} from "@web/core/utils/timing";
import {escapeRegExp} from "@web/core/utils/strings";
import {fuzzyLookup} from "@web/core/utils/search";
import {scrollTo} from "@web/core/utils/scrolling";
/**
* @extends Component
*/
export class AppsMenuCanonicalSearchBar extends Component {
setup() {
super.setup();
this.state = useState({
rootItems: [],
subItems: [],
offset: 0,
hasResults: false,
});
this.searchBarInput = useAutofocus({refName: "SearchBarInput"});
this._searchMenus = debounce(this._searchMenus, 200);
this.menuService = useService("menu");
this.searchItemsRef = useRef("searchItems");
this.rootMenuItems = this.getRootMenuItems();
this.subMenuItems = this.getSubMenuItems();
onWillPatch(this._computeResultOffset);
onPatched(this._scrollToHighlight);
}
/**
* @returns {String}
*/
get inputValue() {
const {el} = this.searchBarInput;
return el ? el.value : "";
}
/**
* @returns {Boolean}
*/
get hasItemsToDisplay() {
return this.totalItemsCount > 0;
}
/**
* @returns {Number}
*/
get totalItemsCount() {
const {rootItems, subItems} = this.state;
return rootItems.length + subItems.length;
}
/**
* @param {Number} index
* @param {Boolean} isSubMenu
* @returns {String}
*/
highlighted(index, isSubMenu = false) {
const {state} = this;
let _index = index;
if (isSubMenu) {
_index = state.rootItems.length + index;
}
return _index === state.offset ? "highlight" : "";
}
/**
* @returns {Object[]}
*/
getRootMenuItems() {
return this.menuService.getApps().reduce(collectRootMenuItems, []);
}
/**
* @returns {Object[]}
*/
getSubMenuItems() {
const response = [];
for (const menu of this.menuService.getApps()) {
const menuTree = this.menuService.getMenuAsTree(menu.id);
collectSubMenuItems(response, null, menuTree);
}
return response;
}
/**
* Search among available menu items, and render that search.
*/
_searchMenus() {
const {state} = this;
const query = this.inputValue;
state.hasResults = query !== "";
if (!state.hasResults) {
state.rootItems = [];
state.subItems = [];
return;
}
const searchField = (item) => item.displayName;
// Update search results paths
for (const root in this.rootMenuItems) {
// Root is an app
if (this.rootMenuItems[root]?.actionPath) {
this.rootMenuItems[root].path =
`/odoo/${this.rootMenuItems[root].actionPath}`;
}
// Root is a module
else {
this.rootMenuItems[root].path =
`/odoo/action-${this.rootMenuItems[root].actionID}`;
}
}
for (const item in this.subMenuItems) {
for (const root in this.rootMenuItems) {
if (this.subMenuItems[item].appID === this.rootMenuItems[root].appID) {
// Root is an app
if (this.rootMenuItems[root]?.actionPath) {
this.subMenuItems[item].path =
`/odoo/${this.rootMenuItems[root].actionPath}/action-${this.subMenuItems[item].actionID}`;
}
// Root is a module
else {
this.subMenuItems[item].path =
`/odoo/action-${this.subMenuItems[item].actionID}`;
}
}
}
}
state.rootItems = fuzzyLookup(query, this.rootMenuItems, searchField);
state.subItems = fuzzyLookup(query, this.subMenuItems, searchField);
}
_onKeyDown(ev) {
const code = ev.code;
if (code === "Escape") {
ev.stopPropagation();
ev.preventDefault();
if (this.inputValue) {
this.searchBarInput.el.value = "";
Object.assign(this.state, {rootItems: [], subItems: []});
this.state.hasResults = false;
} else {
this.env.bus.trigger("ACTION_MANAGER:UI-UPDATED");
}
} else if (code === "Tab") {
if (this.searchItemsRef.el) {
ev.preventDefault();
if (ev.shiftKey) {
this.state.offset--;
} else {
this.state.offset++;
}
}
} else if (code === "ArrowUp") {
if (this.searchItemsRef.el) {
ev.preventDefault();
this.state.offset--;
}
} else if (code === "ArrowDown") {
if (this.searchItemsRef.el) {
ev.preventDefault();
this.state.offset++;
}
} else if (code === "Enter") {
const element = this.searchItemsRef.el;
if (this.hasItemsToDisplay && element) {
ev.preventDefault();
this._selectHighlightedSearchItem(element);
}
} else if (code === "Home") {
this.state.offset = 0;
} else if (code === "End") {
this.state.offset = this.totalItemsCount - 1;
}
}
/**
* @param {HTMLElement} element
* @private
*/
_selectHighlightedSearchItem(element) {
const highlightedElement = element.querySelector(
".highlight > .search-item__link"
);
if (highlightedElement) {
highlightedElement.click();
} else {
console.warn("Highlighted search item is not found");
}
}
_splitName(name) {
if (!name) {
return [];
}
const value = this.inputValue;
const splitName = name.split(new RegExp(`(${escapeRegExp(value)})`, "ig"));
return value.length && splitName.length > 1 ? splitName : [name];
}
_scrollToHighlight() {
// Scroll to selected element on keyboard navigation
const element = this.searchItemsRef.el;
if (!(this.totalItemsCount && element)) {
return;
}
const activeElement = element.querySelector(".highlight");
if (activeElement) {
scrollTo(activeElement, element);
}
}
_computeResultOffset() {
// Allow looping on results
const {state} = this;
const total = this.totalItemsCount;
if (state.offset < 0) {
state.offset = total + state.offset;
} else if (state.offset >= total) {
state.offset -= total;
}
}
}
AppsMenuCanonicalSearchBar.props = {};
AppsMenuCanonicalSearchBar.template = "web_responsive.AppsMenuCanonicalSearchBar";

View File

@ -0,0 +1,112 @@
/* Copyright 2018 Tecnativa - Jairo Llopis
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
:root {
.o_grid_apps_menu[data-theme="milk"] {
--apps-menu-scrollbar-background: #{$o-brand-odoo};
--apps-menu-empty-search-color: $app-menu-text-color;
}
.o_grid_apps_menu[data-theme="community"] {
--apps-menu-scrollbar-background: white;
--apps-menu-empty-search-color: white;
}
}
.o_grid_apps_menu .search-container {
// Allow to scroll only on results, keeping static search box above
.search-list {
display: flex;
flex-direction: column;
gap: calc(0.25rem + 1px);
overflow: auto;
padding: 0.25rem 0;
margin: 0.25rem 0;
max-height: calc(100vh - #{$o-navbar-height} - 5.25rem);
max-height: calc(100dvh - #{$o-navbar-height} - 5.25rem);
max-width: calc(100vw - 1rem);
position: relative;
width: 100%;
height: 100%;
&::-webkit-scrollbar {
width: 10px;
}
&::-webkit-scrollbar-thumb {
background: var(--apps-menu-scrollbar-background);
border-radius: 6px;
}
@include media-breakpoint-down(md) {
&::-webkit-scrollbar {
width: 4px;
}
}
}
.search-item-divider {
margin: 0 4px;
hr {
margin: 0.5rem 0;
background-color: $o-brand-odoo;
}
}
.search-item {
display: block;
align-items: center;
background-position: left;
background-repeat: no-repeat;
background-size: contain;
white-space: normal;
font-weight: 100;
background-color: white;
box-shadow: $app-menu-box-shadow;
margin: 0 4px;
border-radius: 4px;
&__link {
display: flex;
gap: 0.5rem;
padding: 0.25rem 0.5rem;
align-items: center;
cursor: pointer;
}
&__name {
color: $app-menu-text-color;
text-shadow: 0 0 $app-menu-text-color;
}
&__image {
max-height: 40px;
max-width: 40px;
width: 40px;
object-fit: contain;
padding: 4px;
}
&.highlight,
&:hover {
background-color: $app-menu-item-highlight;
box-shadow: $app-menu-box-shadow-highlight;
font-weight: 300;
}
b {
font-weight: 700;
}
}
.empty-search-item {
display: inline-block;
width: 100%;
text-align: center;
padding: 0.25rem 0.5rem;
color: var(--apps-menu-empty-search-color);
}
}

View File

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2018 Tecnativa - Jairo Llopis
Copyright 2021 ITerra - Sergey Shebanin
Copyright 2023 Onestein - Anjeel Haria
Copyright 2023 Taras Shabaranskyi
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<templates>
<!-- Search bar -->
<t t-name="web_responsive.AppsMenuCanonicalSearchBar">
<div class="search-container" t-att-class="{'has-results': state.hasResults}">
<div class="search-input">
<i class="fa fa-search search-icon fs-4 my-auto d-none d-sm-flex" />
<input
type="search"
t-ref="SearchBarInput"
t-on-input="_searchMenus"
t-on-keydown="_onKeyDown"
autocomplete="off"
placeholder="Search menus..."
class="form-control"
/>
</div>
<ul
t-if="hasItemsToDisplay"
class="list-unstyled search-list"
t-ref="searchItems"
>
<t t-foreach="state.rootItems" t-as="menu" t-key="menu.id">
<li t-attf-class="search-item {{highlighted(menu_index)}}">
<a
t-attf-class="search-item__link"
t-att-href="menu.path"
t-att-data-menu-id="menu.id"
t-att-data-action-id="menu.actionID"
draggable="false"
tabindex="-1"
>
<img
class="search-item__image"
t-att-src="menu.webIconData"
alt="App Icon"
/>
<span class="search-item__name" t-att-title="menu.name">
<t
t-foreach="_splitName(menu.displayName)"
t-as="name"
t-key="name_index"
>
<b t-if="name_index % 2" t-out="name" />
<t t-else="" t-out="name" />
</t>
</span>
</a>
</li>
</t>
<li
class="search-item-divider"
t-if="state.rootItems.length and state.subItems.length"
>
<hr class="w-100" />
</li>
<t t-foreach="state.subItems" t-as="menu" t-key="menu.id">
<li t-attf-class="search-item {{highlighted(menu_index, true)}}">
<a
t-attf-class="search-item__link"
t-att-href="menu.path"
t-att-data-menu-id="menu.id"
t-att-data-action-id="menu.actionID"
draggable="false"
tabindex="-1"
>
<span
class="search-item__name px-2 py-1"
t-att-title="menu.name"
>
<t
t-foreach="_splitName(menu.displayName)"
t-as="name"
t-key="name_index"
>
<b t-if="name_index % 2" t-out="name" />
<t t-else="" t-out="name" />
</t>
</span>
</a>
</li>
</t>
</ul>
<ul
t-if="!hasItemsToDisplay and inputValue"
class="list-unstyled search-list"
>
<li class="empty-search-item">
<strong>Nothing to show</strong>
</li>
</ul>
</div>
</t>
</templates>

View File

@ -0,0 +1,31 @@
/* global Fuse */
/* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {AppsMenuCanonicalSearchBar} from "@web_responsive/components/menu_canonical_searchbar/searchbar.esm";
/**
* @extends AppsMenuCanonicalSearchBar
*/
export class AppsMenuFuseSearchBar extends AppsMenuCanonicalSearchBar {
setup() {
super.setup();
this.fuseOptions = {
keys: ["displayName"],
threshold: 0.43,
};
this.rootMenuItems = new Fuse(this.getRootMenuItems(), this.fuseOptions);
this.subMenuItems = new Fuse(this.getSubMenuItems(), this.fuseOptions);
}
_searchMenus() {
const {state} = this;
const query = this.inputValue;
state.hasResults = query !== "";
state.rootItems = this.rootMenuItems.search(query);
state.subItems = this.subMenuItems.search(query);
}
}
AppsMenuFuseSearchBar.props = {};
AppsMenuFuseSearchBar.template = "web_responsive.AppsMenuFuseSearchBar";

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2023 Taras Shabaranskyi
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<templates>
<!-- Search bar -->
<t
t-name="web_responsive.AppsMenuFuseSearchBar"
t-inherit="web_responsive.AppsMenuCanonicalSearchBar"
t-inherit-mode="primary"
>
<xpath expr="//t[@t-foreach='state.rootItems']" position="attributes">
<attribute name="t-as">result</attribute>
<attribute name="t-key">result.item.xmlid</attribute>
</xpath>
<xpath expr="//t[@t-foreach='state.rootItems']/li" position="before">
<t t-set="menu" t-value="result.item" />
</xpath>
<xpath expr="//t[@t-foreach='state.rootItems']/li" position="attributes">
<attribute
name="t-attf-class"
>search-item {{highlighted(result_index)}}</attribute>
</xpath>
<xpath expr="//t[@t-foreach='state.subItems']" position="attributes">
<attribute name="t-as">result</attribute>
<attribute name="t-key">result.item.xmlid</attribute>
</xpath>
<xpath expr="//t[@t-foreach='state.subItems']/li" position="before">
<t t-set="menu" t-value="result.item" />
</xpath>
<xpath expr="//t[@t-foreach='state.subItems']/li" position="attributes">
<attribute
name="t-attf-class"
>search-item {{highlighted(result_index, true)}}</attribute>
</xpath>
</t>
</templates>

View File

@ -0,0 +1,64 @@
/* Copyright 2018 Tecnativa - Jairo Llopis
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Onestein - Anjeel Haria
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {Component, useState} from "@odoo/owl";
import {useAutofocus, useService} from "@web/core/utils/hooks";
/**
* @extends Component
* @property {{el: HTMLInputElement}} searchBarInput
*/
export class AppsMenuOdooSearchBar extends Component {
setup() {
super.setup();
this.state = useState({
rootItems: [],
subItems: [],
offset: 0,
hasResults: false,
});
this.searchBarInput = useAutofocus({refName: "SearchBarInput"});
this.command = useService("command");
}
/**
* @returns {String}
*/
get inputValue() {
const {el} = this.searchBarInput;
return el ? el.value : "";
}
set inputValue(value) {
const {el} = this.searchBarInput;
if (el) {
el.value = value;
}
}
_onSearchInput() {
if (this.inputValue) {
this._openSearchMenu(this.inputValue);
this.inputValue = "";
}
}
_onSearchClick() {
this._openSearchMenu();
}
/**
* @param {String} [value]
* @private
*/
_openSearchMenu(value) {
const searchValue = value ? `/${value}` : "/";
this.command.openMainPalette({searchValue}, null);
}
}
AppsMenuOdooSearchBar.props = {};
AppsMenuOdooSearchBar.template = "web_responsive.AppsMenuOdooSearchBar";

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2018 Tecnativa - Jairo Llopis
Copyright 2021 ITerra - Sergey Shebanin
Copyright 2023 Onestein - Anjeel Haria
Copyright 2023 Taras Shabaranskyi
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<templates>
<!-- Search bar -->
<t t-name="web_responsive.AppsMenuOdooSearchBar">
<div class="search-container">
<div class="search-input">
<i class="fa fa-search search-icon fs-4 my-auto d-none d-sm-flex" />
<input
type="search"
t-ref="SearchBarInput"
t-on-input="_onSearchInput"
t-on-click="_onSearchClick"
autocomplete="off"
placeholder="Search menus..."
class="form-control"
/>
</div>
</div>
</t>
</templates>

View File

@ -0,0 +1,25 @@
/* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
import {AppsMenuCanonicalSearchBar} from "@web_responsive/components/menu_canonical_searchbar/searchbar.esm";
import {AppsMenuFuseSearchBar} from "@web_responsive/components/menu_fuse_searchbar/searchbar.esm";
import {AppsMenuOdooSearchBar} from "@web_responsive/components/menu_odoo_searchbar/searchbar.esm";
import {Component} from "@odoo/owl";
import {session} from "@web/session";
export class AppsMenuSearchBar extends Component {
setup() {
super.setup();
this.searchType = session.apps_menu.search_type || "canonical";
}
}
Object.assign(AppsMenuSearchBar, {
props: {},
template: "web_responsive.AppsMenuSearchBar",
components: {
AppsMenuOdooSearchBar,
AppsMenuCanonicalSearchBar,
AppsMenuFuseSearchBar,
},
});

View File

@ -0,0 +1,45 @@
/* Copyright 2018 Tecnativa - Jairo Llopis
* Copyright 2021 ITerra - Sergey Shebanin
* Copyright 2023 Taras Shabaranskyi
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
.o_grid_apps_menu .search-container {
width: 100%;
.search-input {
display: flex;
justify-items: center;
gap: 0.75rem;
box-shadow: $app-menu-box-shadow;
border-radius: 4px;
padding: 0.5rem 0.75rem;
background-color: white;
.search-icon {
color: $app-menu-text-color;
font-size: 1.5rem;
padding-top: 1px;
}
.form-control {
height: 1.75rem;
background: none;
border: none;
color: $app-menu-text-color;
display: block;
padding: 0;
box-shadow: none;
&::placeholder {
color: $app-menu-text-color;
opacity: 0.5;
}
}
}
}
.o_command_palette_search .form-control {
&:focus {
box-shadow: unset;
}
}

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2018 Tecnativa - Jairo Llopis
Copyright 2021 ITerra - Sergey Shebanin
Copyright 2023 Onestein - Anjeel Haria
Copyright 2023 Taras Shabaranskyi
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<templates>
<!-- Search bar -->
<t t-name="web_responsive.AppsMenuSearchBar">
<AppsMenuCanonicalSearchBar t-if="searchType==='canonical'" />
<AppsMenuOdooSearchBar t-if="searchType==='command_palette'" />
<AppsMenuFuseSearchBar t-if="searchType==='fuse'" />
</t>
</templates>

Some files were not shown because too many files have changed in this diff Show More