diff --git a/.tx/config b/.tx/config index 960da32bc..b76d229d3 100644 --- a/.tx/config +++ b/.tx/config @@ -2,6 +2,11 @@ host = https://www.transifex.com type = PO +[odoo-16-doc.administration] +file_filter = locale//LC_MESSAGES/administration.po +source_file = locale/sources/administration.pot +source_lang = en + [odoo-16-doc.applications] file_filter = locale//LC_MESSAGES/applications.po source_file = locale/sources/applications.pot diff --git a/locale/sources/administration.pot b/locale/sources/administration.pot index 061af4c66..04e1b6db0 100644 --- a/locale/sources/administration.pot +++ b/locale/sources/administration.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-23 09:13+0000\n" +"POT-Creation-Date: 2023-01-13 14:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -160,7 +160,7 @@ msgid "Setting a proper :option:`--db-filter ` is an impor msgstr "" #: ../../content/administration/install/deploy.rst:76 -#: ../../content/administration/install/install.rst:428 +#: ../../content/administration/install/install.rst:427 msgid "PostgreSQL" msgstr "" @@ -903,11 +903,11 @@ msgid "Official Community packages with all relevant dependency requirements are msgstr "" #: ../../content/administration/install/install.rst:90 -#: ../../content/administration/install/install.rst:296 -#: ../../content/administration/install/install.rst:367 -#: ../../content/administration/install/install.rst:432 -#: ../../content/administration/install/install.rst:505 -#: ../../content/administration/install/install.rst:672 +#: ../../content/administration/install/install.rst:295 +#: ../../content/administration/install/install.rst:366 +#: ../../content/administration/install/install.rst:431 +#: ../../content/administration/install/install.rst:504 +#: ../../content/administration/install/install.rst:671 msgid "Windows" msgstr "" @@ -940,23 +940,23 @@ msgid "Odoo will automatically be started at the end of the installation." msgstr "" #: ../../content/administration/install/install.rst:106 -#: ../../content/administration/install/install.rst:314 -#: ../../content/administration/install/install.rst:389 -#: ../../content/administration/install/install.rst:452 -#: ../../content/administration/install/install.rst:540 -#: ../../content/administration/install/install.rst:683 +#: ../../content/administration/install/install.rst:313 +#: ../../content/administration/install/install.rst:388 +#: ../../content/administration/install/install.rst:451 +#: ../../content/administration/install/install.rst:539 +#: ../../content/administration/install/install.rst:682 msgid "Linux" msgstr "" #: ../../content/administration/install/install.rst:109 -#: ../../content/administration/install/install.rst:360 +#: ../../content/administration/install/install.rst:359 msgid "Prepare" msgstr "" #: ../../content/administration/install/install.rst:113 #: ../../content/administration/install/install.rst:146 #: ../../content/administration/install/install.rst:179 -#: ../../content/administration/install/install.rst:547 +#: ../../content/administration/install/install.rst:546 msgid "Debian/Ubuntu" msgstr "" @@ -975,7 +975,7 @@ msgid "Odoo needs a `PostgreSQL`_ server to run properly. Make sure that the `su msgstr "" #: ../../content/administration/install/install.rst:137 -#: ../../content/administration/install/install.rst:645 +#: ../../content/administration/install/install.rst:644 msgid "`wkhtmltopdf` is not installed through **pip** and must be installed manually in version `0.12.5 `_ for it to support headers and footers. See our `wiki `_ for more details on the various versions." msgstr "" @@ -1056,253 +1056,253 @@ msgid "The source \"installation\" is really about not installing Odoo, and runn msgstr "" #: ../../content/administration/install/install.rst:245 -msgid "This can be more convenient for module developers as the Odoo source is more easily accessible than using packaged installation (for information or to build this documentation and have it available offline)." +msgid "It can be more convenient for module developers as the Odoo source is more easily accessible than using packaged installation." msgstr "" -#: ../../content/administration/install/install.rst:249 +#: ../../content/administration/install/install.rst:248 msgid "It also makes starting and stopping Odoo more flexible and explicit than the services set up by the packaged installations, and allows overriding settings using :ref:`command-line parameters ` without needing to edit a configuration file." msgstr "" -#: ../../content/administration/install/install.rst:253 +#: ../../content/administration/install/install.rst:252 msgid "Finally it provides greater control over the system's set up, and allows to more easily keep (and run) multiple versions of Odoo side-by-side." msgstr "" -#: ../../content/administration/install/install.rst:257 +#: ../../content/administration/install/install.rst:256 msgid "Fetch the sources" msgstr "" -#: ../../content/administration/install/install.rst:259 +#: ../../content/administration/install/install.rst:258 msgid "There are two ways to obtain the source code of Odoo: as a zip **archive** or through **git**." msgstr "" -#: ../../content/administration/install/install.rst:262 +#: ../../content/administration/install/install.rst:261 msgid "Archive" msgstr "" -#: ../../content/administration/install/install.rst:264 +#: ../../content/administration/install/install.rst:263 msgid "Community Edition:" msgstr "" -#: ../../content/administration/install/install.rst:266 -#: ../../content/administration/install/install.rst:272 +#: ../../content/administration/install/install.rst:265 +#: ../../content/administration/install/install.rst:271 msgid "`Official download page `_" msgstr "" -#: ../../content/administration/install/install.rst:267 +#: ../../content/administration/install/install.rst:266 msgid "`GitHub repository `_" msgstr "" -#: ../../content/administration/install/install.rst:268 +#: ../../content/administration/install/install.rst:267 msgid "`Nightly server `_" msgstr "" -#: ../../content/administration/install/install.rst:270 +#: ../../content/administration/install/install.rst:269 msgid "Enterprise Edition:" msgstr "" -#: ../../content/administration/install/install.rst:273 +#: ../../content/administration/install/install.rst:272 msgid "`GitHub repository `_" msgstr "" -#: ../../content/administration/install/install.rst:278 +#: ../../content/administration/install/install.rst:277 msgid "Git" msgstr "" -#: ../../content/administration/install/install.rst:280 +#: ../../content/administration/install/install.rst:279 msgid "The following requires `Git `_ to be installed on your machine and that you have basic knowledge of Git commands. To clone a Git repository, you must choose between cloning with HTTPS or SSH. If you do not know the difference between the two, the best option is most likely HTTPS. If you are following the :doc:`Getting started ` developer tutorial, or plan on contributing to Odoo source code, choose SSH." msgstr "" -#: ../../content/administration/install/install.rst:287 +#: ../../content/administration/install/install.rst:286 msgid "**The Enterprise Git repository does not contain the full Odoo source code**. It is only a collection of extra add-ons. The main server code is in the Community version. Running the Enterprise version actually means running the server from the Community version with the addons-path option set to the folder with the Enterprise version. You need to clone both the Community and Enterprise repository to have a working Odoo Enterprise installation. See :ref:`setup/install/editions` to get access to the Enterprise repository." msgstr "" -#: ../../content/administration/install/install.rst:300 -#: ../../content/administration/install/install.rst:318 -#: ../../content/administration/install/install.rst:336 +#: ../../content/administration/install/install.rst:299 +#: ../../content/administration/install/install.rst:317 +#: ../../content/administration/install/install.rst:335 msgid "Clone with HTTPS" msgstr "" -#: ../../content/administration/install/install.rst:307 -#: ../../content/administration/install/install.rst:325 -#: ../../content/administration/install/install.rst:343 +#: ../../content/administration/install/install.rst:306 +#: ../../content/administration/install/install.rst:324 +#: ../../content/administration/install/install.rst:342 msgid "Clone with SSH" msgstr "" -#: ../../content/administration/install/install.rst:332 -#: ../../content/administration/install/install.rst:408 -#: ../../content/administration/install/install.rst:475 -#: ../../content/administration/install/install.rst:604 -#: ../../content/administration/install/install.rst:693 +#: ../../content/administration/install/install.rst:331 +#: ../../content/administration/install/install.rst:407 +#: ../../content/administration/install/install.rst:474 +#: ../../content/administration/install/install.rst:603 +#: ../../content/administration/install/install.rst:692 msgid "Mac OS" msgstr "" -#: ../../content/administration/install/install.rst:351 +#: ../../content/administration/install/install.rst:350 msgid "**The Enterprise git repository does not contain the full Odoo source code**. It is only a collection of extra add-ons. The main server code is in the Community version. Running the Enterprise version actually means running the server from the Community version with the addons-path option set to the folder with the Enterprise version. You need to clone both the Community and Enterprise repository to have a working Odoo Enterprise installation." msgstr "" -#: ../../content/administration/install/install.rst:363 +#: ../../content/administration/install/install.rst:362 msgid "Python" msgstr "" -#: ../../content/administration/install/install.rst:369 +#: ../../content/administration/install/install.rst:368 msgid "Odoo requires Python 3.7 or later to run. Visit `Python's download page `_ to download and install the latest version of Python 3 on your machine." msgstr "" -#: ../../content/administration/install/install.rst:372 +#: ../../content/administration/install/install.rst:371 msgid "During installation, check **Add Python 3 to PATH**, then click **Customize Installation** and make sure that **pip** is checked." msgstr "" -#: ../../content/administration/install/install.rst:376 -#: ../../content/administration/install/install.rst:395 -#: ../../content/administration/install/install.rst:414 +#: ../../content/administration/install/install.rst:375 +#: ../../content/administration/install/install.rst:394 +#: ../../content/administration/install/install.rst:413 msgid "If Python 3 is already installed, make sure that the version is 3.7 or above, as previous versions are not compatible with Odoo." msgstr "" -#: ../../content/administration/install/install.rst:383 -#: ../../content/administration/install/install.rst:402 -#: ../../content/administration/install/install.rst:421 +#: ../../content/administration/install/install.rst:382 +#: ../../content/administration/install/install.rst:401 +#: ../../content/administration/install/install.rst:420 msgid "Verify also that pip_ is installed for this version." msgstr "" -#: ../../content/administration/install/install.rst:391 +#: ../../content/administration/install/install.rst:390 msgid "Odoo requires Python 3.7 or later to run. Use your package manager to download and install Python 3 on your machine if it is not already done." msgstr "" -#: ../../content/administration/install/install.rst:410 +#: ../../content/administration/install/install.rst:409 msgid "Odoo requires Python 3.7 or later to run. Use your preferred package manager (homebrew_, macports_) to download and install Python 3 on your machine if it is not already done." msgstr "" -#: ../../content/administration/install/install.rst:434 +#: ../../content/administration/install/install.rst:433 msgid "Odoo uses PostgreSQL as database management system. `Download and install PostgreSQL `_ (supported version: 12.0 and later)." msgstr "" -#: ../../content/administration/install/install.rst:437 -#: ../../content/administration/install/install.rst:463 -#: ../../content/administration/install/install.rst:486 +#: ../../content/administration/install/install.rst:436 +#: ../../content/administration/install/install.rst:462 +#: ../../content/administration/install/install.rst:485 msgid "By default, the only user is `postgres` but Odoo forbids connecting as `postgres`, so you need to create a new PostgreSQL user:" msgstr "" -#: ../../content/administration/install/install.rst:440 +#: ../../content/administration/install/install.rst:439 msgid "Add PostgreSQL's `bin` directory (by default: :file:`C:\\\\Program Files\\\\PostgreSQL\\\\\\\\bin`) to your `PATH`." msgstr "" -#: ../../content/administration/install/install.rst:442 +#: ../../content/administration/install/install.rst:441 msgid "Create a postgres user with a password using the pg admin gui:" msgstr "" -#: ../../content/administration/install/install.rst:444 +#: ../../content/administration/install/install.rst:443 msgid "Open **pgAdmin**." msgstr "" -#: ../../content/administration/install/install.rst:445 +#: ../../content/administration/install/install.rst:444 msgid "Double-click the server to create a connection." msgstr "" -#: ../../content/administration/install/install.rst:446 +#: ../../content/administration/install/install.rst:445 msgid "Select :menuselection:`Object --> Create --> Login/Group Role`." msgstr "" -#: ../../content/administration/install/install.rst:447 +#: ../../content/administration/install/install.rst:446 msgid "Enter the username in the **Role Name** field (e.g. `odoo`)." msgstr "" -#: ../../content/administration/install/install.rst:448 +#: ../../content/administration/install/install.rst:447 msgid "Open the **Definition** tab and enter the password (e.g. `odoo`), then click **Save**." msgstr "" -#: ../../content/administration/install/install.rst:449 +#: ../../content/administration/install/install.rst:448 msgid "Open the **Privileges** tab and switch **Can login?** to `Yes` and **Create database?** to `Yes`." msgstr "" -#: ../../content/administration/install/install.rst:454 +#: ../../content/administration/install/install.rst:453 msgid "Odoo uses PostgreSQL as database management system. Use your package manager to download and install PostgreSQL (supported version: 12.0 and later)." msgstr "" -#: ../../content/administration/install/install.rst:457 +#: ../../content/administration/install/install.rst:456 msgid "It can be achieved by executing the following:" msgstr "" -#: ../../content/administration/install/install.rst:472 -#: ../../content/administration/install/install.rst:495 +#: ../../content/administration/install/install.rst:471 +#: ../../content/administration/install/install.rst:494 msgid "Because your PostgreSQL user has the same name as your Unix login, you will be able to connect to the database without password." msgstr "" -#: ../../content/administration/install/install.rst:477 +#: ../../content/administration/install/install.rst:476 msgid "Odoo uses PostgreSQL as database management system. Use `postgres.app `_ to download and install PostgreSQL (supported version: 12.0 and later)." msgstr "" -#: ../../content/administration/install/install.rst:482 +#: ../../content/administration/install/install.rst:481 msgid "To make the command line tools bundled with `postgres.app` available, make sure to setup your `$PATH` variable by following the `Postgres.app CLI Tools Instructions `_." msgstr "" -#: ../../content/administration/install/install.rst:501 +#: ../../content/administration/install/install.rst:500 msgid "Dependencies" msgstr "" -#: ../../content/administration/install/install.rst:507 +#: ../../content/administration/install/install.rst:506 msgid "Before installing the dependencies, you must download and install the `Build Tools for Visual Studio `_. When prompted, select **C++ build tools** in the **Workloads** tab and install them." msgstr "" -#: ../../content/administration/install/install.rst:511 -#: ../../content/administration/install/install.rst:606 +#: ../../content/administration/install/install.rst:510 +#: ../../content/administration/install/install.rst:605 msgid "Odoo dependencies are listed in the `requirements.txt` file located at the root of the Odoo community directory." msgstr "" -#: ../../content/administration/install/install.rst:515 -#: ../../content/administration/install/install.rst:582 -#: ../../content/administration/install/install.rst:610 +#: ../../content/administration/install/install.rst:514 +#: ../../content/administration/install/install.rst:581 +#: ../../content/administration/install/install.rst:609 msgid "It can be preferable to not mix python modules packages between different instances of Odoo or with your system. You can use virtualenv_ to create isolated Python environments." msgstr "" -#: ../../content/administration/install/install.rst:518 +#: ../../content/administration/install/install.rst:517 msgid "Navigate to the path of your Odoo Community installation (`CommunityPath`) and run **pip** on the requirements file in a terminal **with Administrator privileges**:" msgstr "" -#: ../../content/administration/install/install.rst:527 -#: ../../content/administration/install/install.rst:594 -#: ../../content/administration/install/install.rst:634 +#: ../../content/administration/install/install.rst:526 +#: ../../content/administration/install/install.rst:593 +#: ../../content/administration/install/install.rst:633 msgid "For languages with right-to-left interface (such as Arabic or Hebrew), the package `rtlcss` is needed:" msgstr "" -#: ../../content/administration/install/install.rst:530 +#: ../../content/administration/install/install.rst:529 msgid "Download and install `nodejs `_." msgstr "" -#: ../../content/administration/install/install.rst:531 -#: ../../content/administration/install/install.rst:598 -#: ../../content/administration/install/install.rst:638 +#: ../../content/administration/install/install.rst:530 +#: ../../content/administration/install/install.rst:597 +#: ../../content/administration/install/install.rst:637 msgid "Install `rtlcss`:" msgstr "" -#: ../../content/administration/install/install.rst:537 +#: ../../content/administration/install/install.rst:536 msgid "Edit the System Environment's variable `PATH` to add the folder where `rtlcss.cmd` is located (typically: :file:`C:\\\\Users\\\\\\\\AppData\\\\Roaming\\\\npm\\\\`)." msgstr "" -#: ../../content/administration/install/install.rst:542 +#: ../../content/administration/install/install.rst:541 msgid "Using your **distribution packages** is the preferred way of installing dependencies. Alternatively, you can install the python dependencies with **pip**." msgstr "" -#: ../../content/administration/install/install.rst:549 +#: ../../content/administration/install/install.rst:548 msgid "For Debian-based systems, the packages are listed in the `debian/control `_ file of the Odoo sources." msgstr "" -#: ../../content/administration/install/install.rst:552 +#: ../../content/administration/install/install.rst:551 msgid "On Debian/Ubuntu, the following commands should install the required packages:" msgstr "" -#: ../../content/administration/install/install.rst:559 +#: ../../content/administration/install/install.rst:558 msgid "Install with pip" msgstr "" -#: ../../content/administration/install/install.rst:561 +#: ../../content/administration/install/install.rst:560 msgid "As some of the python packages need a compilation step, they require system libraries to be installed." msgstr "" -#: ../../content/administration/install/install.rst:564 +#: ../../content/administration/install/install.rst:563 msgid "On Debian/Ubuntu-based systems, the following command should install these required libraries:" msgstr "" -#: ../../content/administration/install/install.rst:571 +#: ../../content/administration/install/install.rst:570 msgid "Odoo dependencies are listed in the :file:`requirements.txt` file located at the root of the Odoo community directory." msgstr "" @@ -1314,101 +1314,101 @@ msgstr "" msgid "E.g., for Odoo 15.0, the `python3-babel` package version is 2.8.0 in Debian Bullseye and 2.6.0 in Ubuntu Focal. The lowest version is then chosen in the :file:`requirements.txt`." msgstr "" -#: ../../content/administration/install/install.rst:586 +#: ../../content/administration/install/install.rst:585 msgid "Navigate to the path of your Odoo Community installation (:file:`CommunityPath`) and run **pip** on the requirements file to install the requirements for the current user." msgstr "" -#: ../../content/administration/install/install.rst:597 +#: ../../content/administration/install/install.rst:596 msgid "Download and install **nodejs** and **npm** with your package manager." msgstr "" -#: ../../content/administration/install/install.rst:613 +#: ../../content/administration/install/install.rst:612 msgid "Navigate to the path of your Odoo Community installation (`CommunityPath`) and run **pip** on the requirements file:" msgstr "" -#: ../../content/administration/install/install.rst:623 +#: ../../content/administration/install/install.rst:622 msgid "Non-Python dependencies need to be installed with a package manager:" msgstr "" -#: ../../content/administration/install/install.rst:625 +#: ../../content/administration/install/install.rst:624 msgid "Download and install the **Command Line Tools**:" msgstr "" -#: ../../content/administration/install/install.rst:631 +#: ../../content/administration/install/install.rst:630 msgid "Download and install the package manager of your choice (homebrew_, macports_)." msgstr "" -#: ../../content/administration/install/install.rst:632 +#: ../../content/administration/install/install.rst:631 msgid "Install non-python dependencies." msgstr "" -#: ../../content/administration/install/install.rst:637 +#: ../../content/administration/install/install.rst:636 msgid "Download and install **nodejs** with your preferred package manager (homebrew_, macports_)." msgstr "" -#: ../../content/administration/install/install.rst:650 +#: ../../content/administration/install/install.rst:649 msgid "Running Odoo" msgstr "" -#: ../../content/administration/install/install.rst:652 +#: ../../content/administration/install/install.rst:651 msgid "Once all dependencies are set up, Odoo can be launched by running `odoo-bin`, the command-line interface of the server. It is located at the root of the Odoo Community directory." msgstr "" -#: ../../content/administration/install/install.rst:655 +#: ../../content/administration/install/install.rst:654 msgid "To configure the server, you can either specify :ref:`command-line arguments ` or a :ref:`configuration file `." msgstr "" -#: ../../content/administration/install/install.rst:659 +#: ../../content/administration/install/install.rst:658 msgid "For the Enterprise edition, you must add the path to the `enterprise` addons to the `addons-path` argument. Note that it must come before the other paths in `addons-path` for addons to be loaded correctly." msgstr "" -#: ../../content/administration/install/install.rst:663 +#: ../../content/administration/install/install.rst:662 msgid "Common necessary configurations are:" msgstr "" -#: ../../content/administration/install/install.rst:665 +#: ../../content/administration/install/install.rst:664 msgid "PostgreSQL user and password." msgstr "" -#: ../../content/administration/install/install.rst:666 +#: ../../content/administration/install/install.rst:665 msgid "Custom addon paths beyond the defaults, to load your own modules." msgstr "" -#: ../../content/administration/install/install.rst:668 +#: ../../content/administration/install/install.rst:667 msgid "A typical way to run the server would be:" msgstr "" -#: ../../content/administration/install/install.rst:679 +#: ../../content/administration/install/install.rst:678 msgid "Where `CommunityPath` is the path of the Odoo Community installation, `dbuser` is the PostgreSQL login, `dbpassword` is the PostgreSQL password, and `mydb` is the name of the PostgreSQL database." msgstr "" -#: ../../content/administration/install/install.rst:690 -#: ../../content/administration/install/install.rst:700 +#: ../../content/administration/install/install.rst:689 +#: ../../content/administration/install/install.rst:699 msgid "Where `CommunityPath` is the path of the Odoo Community installation, and `mydb` is the name of the PostgreSQL database." msgstr "" -#: ../../content/administration/install/install.rst:703 +#: ../../content/administration/install/install.rst:702 msgid "After the server has started (the INFO log `odoo.modules.loading: Modules loaded.` is printed), open http://localhost:8069 in your web browser and log in with the base administrator account: Use `admin` for the :guilabel:`Email` and, again, `admin` for the :guilabel:`Password`. That's it, you just logged into your own Odoo database!" msgstr "" -#: ../../content/administration/install/install.rst:709 +#: ../../content/administration/install/install.rst:708 msgid "From there, you can create and manage new :doc:`users `." msgstr "" -#: ../../content/administration/install/install.rst:711 +#: ../../content/administration/install/install.rst:710 msgid "The user account you use to log into Odoo's web interface differs from the :option:`--db_user ` CLI argument." msgstr "" -#: ../../content/administration/install/install.rst:715 +#: ../../content/administration/install/install.rst:714 msgid ":doc:`The exhaustive list of CLI arguments for odoo-bin `." msgstr "" -#: ../../content/administration/install/install.rst:720 +#: ../../content/administration/install/install.rst:719 #: ../../content/administration/maintain/update.rst:147 msgid "Docker" msgstr "" -#: ../../content/administration/install/install.rst:722 +#: ../../content/administration/install/install.rst:721 msgid "The full documentation on how to use Odoo with Docker can be found on the official Odoo `docker image `_ page." msgstr "" @@ -1573,7 +1573,7 @@ msgid "Add a CNAME record" msgstr "" #: ../../content/administration/maintain/domain_names.rst:128 -msgid "A **CNAME record** is a type of DNS record that points to the IP address of another website rather than to directly to an IP address." +msgid "A **CNAME record** is a type of DNS record that points to the domain of another website rather than directly to an IP address." msgstr "" #: ../../content/administration/maintain/domain_names.rst:131 @@ -1614,7 +1614,7 @@ msgid "Create a **CNAME record** pointing to the address of your database." msgstr "" #: ../../content/administration/maintain/domain_names.rst:154 -msgid "While Odoo suggests creating a CNAME record for your ``www.`` subdomain (``www.example.com``, you can of course use any domain name of your choice, with any subdomain (e.g., ``anything.example.com``)." +msgid "While Odoo suggests creating a CNAME record for your ``www.`` subdomain (``www.example.com``), you can of course use any domain name of your choice, with any subdomain (e.g., ``anything.example.com``)." msgstr "" #: ../../content/administration/maintain/domain_names.rst:159 @@ -2328,6 +2328,227 @@ msgstr "" msgid "Grab a :ref:`backup of your Odoo.sh production database `." msgstr "" +#: ../../content/administration/maintain/mailjet_api.rst:3 +msgid "Mailjet API" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:5 +msgid "Odoo is compatible with Mailjet's :abbr:`API (Application Programming Interface)` for mass mailing. Set up a dedicated mass mailing server through Mailjet by configuring settings in the Mailjet account and the Odoo database. In some circumstances, settings need to be configured on the custom domain's :abbr:`DNS (Domain Name System)` settings as well." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:11 +msgid "Set up in Mailjet" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:14 +msgid "Create API credentials" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:16 +msgid "To get started, sign in to the `Mailjet Account Information `_ page. Next, navigate to the :guilabel:`Senders & Domains` section and click on :guilabel:`SMTP and SEND API Settings`." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:None +msgid "SMTP and Send API Settings link in the Senders & Domains section of Mailjet." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:24 +msgid "Then, copy the :abbr:`SMTP (Simple Mail Transfer Protocol)` configuration settings onto a notepad. They can be found under the :guilabel:`Configuration (SMTP only)` section. The :abbr:`SMTP (Simple Mail Transfer Protocol)` configuration settings include the server address, the security option needed (Use :abbr:`SSL (Secure Sockets Layer)`/:abbr:`TLS (Transport Layer Security)`), and the port number. The settings are needed to configure Mailjet in Odoo, which is covered in the :ref:`last section `." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:32 +msgid "`Mailjet: How can I configure my SMTP parameters? `_" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:36 +msgid "Odoo blocks `port 25` on Odoo Online and Odoo.sh databases. :ref:`See reference here `." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:None +msgid "SMTP configuration from Mailjet." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:43 +msgid "Next, click on the button labeled :guilabel:`Retrieve your API credentials` to retrieve the Mailjet API credentials." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:46 +msgid "Then, click on the eye icon to reveal the :guilabel:`API key`. Copy this key to a notepad, as this serves as the :guilabel:`Username` in the Odoo configuration. Next, click on the :guilabel:`Generate Secret Key` button to generate the :guilabel:`Secret Key`. Copy this key to a notepad, as this serves as the :guilabel:`Password` in the Odoo configuration." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:52 +msgid "Add verified sender address(es)" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:54 +msgid "The next step is to add a sender address or a domain to the Mailjet account settings so that the email address or domain is approved to send emails using Mailjet's servers. First, navigate to the `Mailjet Account Information `_ page. Next, click on the :guilabel:`Add a Sender Domain or Address` link under the :guilabel:`Senders & Domains` section." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:None +msgid "Add a sender domain or address in the Mailjet interface." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:63 +msgid "Determine if a sender's email address or the entire domain needs to be added to the Mailjet settings. It may be easier to configure the domain as a whole if :abbr:`DNS (Domain Name System)` access is available. Jump to the :ref:`Add a domain ` section for steps on adding the domain." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:69 +msgid "Either all email addresses of the Odoo database users who are sending emails using Mailjet's servers need to be configured or the domain(s) of the users' email addresses can be configured." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:72 +msgid "By default, the email address originally set up in the Mailjet account is added as a trusted sender. To add another email address, click on the button labeled :guilabel:`Add a sender address`. Then, add the email address that is configured to send from the custom domain." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:76 +msgid "At minimum the following email addresses should be set up in the provider and verified in Mailjet:" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:78 +msgid "notifications\\@yourdomain.com" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:79 +msgid "bounce\\@yourdomain.com" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:80 +msgid "catchall\\@yourdomain.com" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:83 +msgid "Replace `yourdomain` with the custom domain for the Odoo database. If there isn't one, then use the :guilabel:`mail.catchall.domain` system parameter." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:86 +msgid "After that, fill out the :guilabel:`Email Information` form, making sure to select the appropriate email type: transactional email or mass emails. After completing the form, an activation email is sent to the email address and the trusted sender can be activated." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:90 +msgid "It is recommended to set up the :abbr:`SPF (Sender Policy Framework)`/:abbr:`DKIM (DomainKeys Identified Mail)`/:abbr:`DMARC (Domain-based Message Authentication, Reporting, and Conformance)` settings on the domain of the sender." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:95 +#: ../../content/administration/maintain/mailjet_api.rst:162 +msgid "`Mailjet's SPF/DKIM/DMARC documentation `_" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:99 +msgid "If the database is not using a custom domain, then in order to verify the sender's address, a temporary alias (of the three email addresses mentioned above) should be set up in Odoo CRM to create a lead. Then, the database is able to receive the verification email and verify the accounts." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:107 +msgid "Add a domain" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:109 +msgid "By adding an entire domain to the Mailjet account, all the sender addresses related to that domain are automatically validated for sending emails using Mailjet servers. First, navigate to the `Mailjet Account Information `_ page. Next, click on :guilabel:`Add a Sender Domain or Address` link under the :guilabel:`Senders & Domains` section. Then, click on :guilabel:`Add domain` to add the custom domain." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:116 +msgid "The domain needs to be added to the Mailjet account and then validated through the :abbr:`DNS (Domain Name System)`." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:119 +msgid "After that, fill out the :guilabel:`Add a new Domain` page on Mailjet and click :guilabel:`Continue`." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:122 +msgid "After adding the domain, a validation page will populate. Unless the Odoo database is on-premise (in which case, choose :guilabel:`Option 1`), choose :guilabel:`Option 2: Create a DNS Record`. Copy the TXT record information to a notepad and then navigate to the domain's :abbr:`DNS (Domain Name System)` provider to complete validation." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:None +msgid "The TXT record information to input on the domain's DNS." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:132 +msgid "Setup in the domain's DNS" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:134 +msgid "After getting the TXT record information from the Mailjet account, add a TXT record to the domain's :abbr:`DNS (Domain Name System)`. This process varies depending on the :abbr:`DNS (Domain Name System)` provider. Consult the provider for specific configuration processes. The TXT record information consists of the :guilabel:`Host` and :guilabel:`Value`. Paste these into the corresponding fields in the TXT record." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:141 +msgid "Return to Mailjet account information" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:143 +msgid "After adding the TXT record to the domain's :abbr:`DNS (Domain Name System)`, navigate back to the Mailjet account. Then, navigate to :menuselection:`Account Information --> Add a Sender Domain or Address`, click the gear icon next to :guilabel:`Domain`, and select :guilabel:`Validate`." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:147 +msgid "This action can also be done by going to the `Sender domains & addresses `_ page on the Mailjet account information and clicking on :guilabel:`Manage`." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:150 +msgid "Next, click :guilabel:`Check Now` to validate the TXT record that was added on the domain. A success screen will appear if the domain is configured correctly." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:None +msgid "Check DNS record in Mailjet." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:157 +msgid "After successfully setting up the domain, there is an option to :guilabel:`Authenticate this domain (SPF/DKIM)`. This button populates :abbr:`SPF (Sender Policy Framework)` & :abbr:`DKIM (DomainKeys Identified Mail) records to input into the :abbr:`DNS (Domain Name System)` provider." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:None +msgid "Authenticate the domain with SPF/DKIM records in Mailjet." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:172 +msgid "Set up in Odoo" +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:174 +msgid "To complete the setup, navigate to the Odoo database and go to the :guilabel:`Settings`. With :ref:`developer-mode` turned on, go to the :menuselection:`Technical Menu --> Email --> Outgoing Mail Servers`. Then, create a new outgoing server configuration by clicking on the :guilabel:`Create` button." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:179 +msgid "Next, input the `SMTP server` (in-v3.mailjet.com), `port number` (587 or 465), and `Security (SSL/TLS)` that was copied earlier from the Mailjet account. They can also be found `here `_. It is recommended to use :abbr:`SSL (Secure Sockets Layer)`/:abbr:`TLS (Transport Layer Security)` even though Mailjet may not require it." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:184 +msgid "For the :guilabel:`Username`, input the :guilabel:`API KEY`. For the :guilabel:`Password`, input the :guilabel:`SECRET KEY` that was copied from the Mailjet account to the notepad earlier. These settings can be found on :menuselection:`Mailjet --> Account Settings --> SMTP and SEND API Settings`." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:189 +msgid "Then, if the Mailjet server is used for mass emailing, set the :guilabel:`Priority` value higher than that of any transactional email server(s). Finally, save the settings and :guilabel:`Test the Connection`." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:None +msgid "Odoo outgoing email server settings." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:198 +msgid "In order for the notifications feature to work using Mailjet, there are three settings that need to be set in Odoo." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:201 +msgid "The :guilabel:`From Filter` needs to be set on the server configuration. It is recommended to set it as a domain and not a full email address. It should match the domain in the two proceeding steps. More information can be referenced :ref:`here `." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:205 +msgid "The :guilabel:`mail.default.from` system parameter must have the value `notifications\\@yourdomain.com`." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:207 +msgid "The :guilabel:`mail.default.from_filter` system parameter must have the value `yourdomain.com`. Replace `yourdomain` with the custom domain for the Odoo database. If there isn't one, then use the :guilabel:`mail.catchall.domain` system parameter." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:211 +msgid "For more information see :ref:`Using a default email address `." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:213 +msgid "The :guilabel:`System Parameters` can be accessed by activating :doc:`../../applications/general/developer_mode` in the :menuselection:`Settings --> Technical --> Parameters --> System Parameters` menu." +msgstr "" + +#: ../../content/administration/maintain/mailjet_api.rst:217 +msgid "Once the setup is complete, the Odoo database is ready to use the Mailjet email server for mass mailing or transactional emails!" +msgstr "" + #: ../../content/administration/maintain/odoo_online.rst:3 msgid "Odoo Online database management" msgstr "" diff --git a/locale/sources/contributing.pot b/locale/sources/contributing.pot index f91333c90..4e6d2d28b 100644 --- a/locale/sources/contributing.pot +++ b/locale/sources/contributing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-23 09:13+0000\n" +"POT-Creation-Date: 2023-01-13 14:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -153,867 +153,1327 @@ msgstr "" msgid "It is mainly Odoo employees who develop new features for the codebase and write new content for the documentation. Be sure to discuss any idea for a new feature or page with the Odoo team so they can give you the green light before you begin working on it. Some features may already be in development on their side, and only approved features can be merged." msgstr "" -#: ../../content/contributing/development.rst:6 +#: ../../content/contributing/check_mergeability_status.rst:1 +#: ../../content/contributing/check_mergeability_status.rst:1 +#: ../../content/contributing/check_mergeability_status.rst:1 +#: ../../content/contributing/check_mergeability_status.rst:1 +#: ../../content/contributing/check_mergeability_status.rst:1 +#: ../../content/contributing/check_mergeability_status.rst:1 +msgid "At the bottom of the page, check the mergeability status and address any issues." +msgstr "" + +#: ../../content/contributing/configure_git_authorship.rst:1 +#: ../../content/contributing/configure_git_authorship.rst:1 +#: ../../content/contributing/configure_git_authorship.rst:1 +msgid "Configure Git to identify yourself as the author of your future contributions. Enter the same email address you used to register on GitHub." +msgstr "" + +#: ../../content/contributing/configure_github_account.rst:1 +#: ../../content/contributing/configure_github_account.rst:1 +#: ../../content/contributing/configure_github_account.rst:1 +msgid "`Generate a new SSH key and register it on your GitHub account `_." +msgstr "" + +#: ../../content/contributing/create_github_account.rst:1 +#: ../../content/contributing/create_github_account.rst:1 +#: ../../content/contributing/create_github_account.rst:1 +msgid "First, you need to `create a GitHub account `_. Odoo uses GitHub to manage the source code of its products, and this is where you will make your changes and submit them for review." +msgstr "" + +#: ../../content/contributing/development.rst:5 msgid "Development" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:6 -msgid "Coding Guidelines" +#: ../../content/contributing/development.rst:13 +msgid "If you are reading this, chances are that you are interested in learning how to contribute to the codebase of Odoo. Whether that's the case or you landed here by accident, we've got you covered!" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:8 +#: ../../content/contributing/development.rst:17 +#: ../../content/contributing/documentation.rst:19 +msgid ":doc:`Discover other ways to contribute to Odoo <../contributing>`" +msgstr "" + +#: ../../content/contributing/development.rst:19 +msgid "When you feel ready, jump to the :ref:`contributing/development/setup` section to begin your journey in contributing to the development of Odoo." +msgstr "" + +#: ../../content/contributing/development.rst:25 +#: ../../content/contributing/documentation.rst:63 +msgid "Environment setup" +msgstr "" + +#: ../../content/contributing/development.rst:27 +msgid "The instructions below help you prepare your environment for making local changes to the codebase and then push them to GitHub. Skip this section and go to :ref:`contributing/development/first-contribution` if you have already completed this step." +msgstr "" + +#: ../../content/contributing/development.rst:33 +msgid "Go to `github.com/odoo/odoo `_ and click on the :guilabel:`Fork` button in the top right corner to create a fork (:dfn:`your own copy`) of the repository on your account. Do the same with `github.com/odoo/enterprise `_ if you have access to it. This creates a copy of the codebase to which you can make changes without affecting the main codebase. Skip this step if you work at Odoo." +msgstr "" + +#: ../../content/contributing/install_git.rst:1 +#: ../../content/contributing/install_git.rst:1 +#: ../../content/contributing/install_git.rst:1 +msgid "`Install Git `_. It is a command-line (:dfn:`a text interface`) tool that allows tracking the history of changes made to a file and, more importantly, working on different versions of that file simultaneously. It means you do not need to worry about overwriting someone else’s pending work when making changes." +msgstr "" + +#: ../../content/contributing/install_git.rst:6 +#: ../../content/contributing/install_git.rst:6 +#: ../../content/contributing/install_git.rst:6 +msgid "Verify that the installation directory of Git is included in your system's `PATH` variable." +msgstr "" + +#: ../../content/contributing/install_git.rst:10 +#: ../../content/contributing/install_git.rst:10 +#: ../../content/contributing/documentation.rst:97 +#: ../../content/contributing/documentation.rst:124 +#: ../../content/contributing/documentation.rst:140 +#: ../../content/contributing/install_git.rst:10 +msgid "Linux and macOS" +msgstr "" + +#: ../../content/contributing/install_git.rst:12 +#: ../../content/contributing/install_git.rst:12 +#: ../../content/contributing/install_git.rst:12 +msgid "Follow the `guide to update the PATH variable on Linux and macOS `_ with the installation path of Git (by default :file:`/usr/bin/git`)." +msgstr "" + +#: ../../content/contributing/install_git.rst:16 +#: ../../content/contributing/install_git.rst:16 +#: ../../content/contributing/documentation.rst:104 +#: ../../content/contributing/documentation.rst:130 +#: ../../content/contributing/documentation.rst:146 +#: ../../content/contributing/install_git.rst:16 +msgid "Windows" +msgstr "" + +#: ../../content/contributing/install_git.rst:18 +#: ../../content/contributing/install_git.rst:18 +#: ../../content/contributing/install_git.rst:18 +msgid "Follow the `guide to update the PATH variable on Windows `_ with the installation path of Git (by default :file:`C:\\\\Program Files\\\\Git`)." +msgstr "" + +#: ../../content/contributing/development.rst:40 +msgid ":ref:`Install Odoo from the sources `. Make sure to fetch the sources through Git with SSH." +msgstr "" + +#: ../../content/contributing/development.rst:42 +msgid "Configure Git to push changes to your fork(s) rather than to the main codebase. If you work at Odoo, configure Git to push changes to the shared forks created on the account **odoo-dev**." +msgstr "" + +#: ../../content/contributing/development.rst:47 +msgid "Link Git with your fork(s)" +msgstr "" + +#: ../../content/contributing/development.rst:49 +msgid "In the command below, replace `` with the name of the GitHub account on which you created the fork(s)." +msgstr "" + +#: ../../content/contributing/development.rst:56 +msgid "If you have access to `odoo/enterprise`, configure the related remote too." +msgstr "" + +#: ../../content/contributing/development.rst:62 +msgid "Link Git with odoo-dev" +msgstr "" + +#: ../../content/contributing/development.rst:72 +msgid "That's it! You are ready to :ref:`make your first contribution `." +msgstr "" + +#: ../../content/contributing/development.rst:79 +#: ../../content/contributing/documentation.rst:158 +msgid "Make your first contribution" +msgstr "" + +#: ../../content/contributing/development.rst:82 +msgid "Odoo development can be challenging for beginners. We recommend you to be knowledgeable enough to code a small module before contributing. If that is not the case, take some time to go through the :doc:`developer tutorials ` to fill in the gaps." +msgstr "" + +#: ../../content/contributing/development.rst:85 +#: ../../content/contributing/documentation.rst:204 +msgid "Some steps of this guide require to be comfortable with Git. Here are some `tutorials `_ and an `interactive training `_ if you are stuck at some point." +msgstr "" + +#: ../../content/contributing/development.rst:89 +msgid "Now that your environment is set up, you can start contributing to the codebase. In a terminal, navigate to the directory where you installed Odoo from sources and follow the guide below." +msgstr "" + +#: ../../content/contributing/development.rst:92 +msgid "Choose the version of Odoo to which you want to make changes. Keep in mind that contributions targeting an :doc:`unsupported version of Odoo ` are not accepted. This guide assumes that the changes target Odoo 16, which corresponds to branch `16.0`." +msgstr "" + +#: ../../content/contributing/development.rst:96 +#: ../../content/contributing/documentation.rst:216 +msgid "Create a new branch starting from branch 16.0. Prefix the branch name with the base branch: `16.0-...`. If you work at Odoo, suffix the branch name with your Odoo handle: `16.0-...-xyz`." +msgstr "" + +#: ../../content/contributing/development.rst:110 +msgid "`Sign the Odoo CLA `_ if not already done. Skip this step if you work at Odoo." +msgstr "" + +#: ../../content/contributing/development.rst:112 +msgid "Make the desired changes to the codebase. When working on the codebase, follow these rules:" +msgstr "" + +#: ../../content/contributing/development.rst:114 +msgid "Keep your changes focused and specific. It is best to work on one particular feature or bug fix at a time rather than tackle multiple unrelated changes simultaneously." +msgstr "" + +#: ../../content/contributing/development.rst:116 +msgid "Respect the `stable policy `_ when working in another branch than `master`." +msgstr "" + +#: ../../content/contributing/development.rst:119 +msgid "Follow the :doc:`coding guidelines `." +msgstr "" + +#: ../../content/contributing/development.rst:120 +msgid "Test your changes thoroughly and :doc:`write tests ` to ensure that everything is working as expected and that there are no regressions or unintended consequences." +msgstr "" + +#: ../../content/contributing/development.rst:124 +#: ../../content/contributing/documentation.rst:249 +msgid "Commit your changes. Write a clear commit message as instructed in the :doc:`Git guidelines `." +msgstr "" + +#: ../../content/contributing/development.rst:132 +#: ../../content/contributing/documentation.rst:257 +msgid "Push your change to your fork, for which we added the remote alias `dev`." +msgstr "" + +#: ../../content/contributing/development.rst:140 +#: ../../content/contributing/documentation.rst:274 +msgid "Open a :abbr:`PR (Pull Request)` on GitHub to submit your changes for review." +msgstr "" + +#: ../../content/contributing/development.rst:142 +msgid "Go to the `compare page of the odoo/odoo codebase `_, or the `compare page of the odoo/enterprise codebase `_, depending on which codebase your changes target." +msgstr "" + +#: ../../content/contributing/development.rst:146 +#: ../../content/contributing/documentation.rst:278 +msgid "Select **16.0** for the base." +msgstr "" + +#: ../../content/contributing/development.rst:147 +#: ../../content/contributing/documentation.rst:279 +msgid "Click on :guilabel:`compare across forks`." +msgstr "" + +#: ../../content/contributing/development.rst:148 +msgid "Select **/odoo** or **/enterprise** for the head repository. Replace `` with the name of the GitHub account on which you created the fork or by **odoo-dev** if you work at Odoo." +msgstr "" + +#: ../../content/contributing/development.rst:151 +#: ../../content/contributing/documentation.rst:192 +#: ../../content/contributing/documentation.rst:283 +msgid "Review your changes and click on the :guilabel:`Create pull request` button." +msgstr "" + +#: ../../content/contributing/development.rst:152 +#: ../../content/contributing/documentation.rst:193 +#: ../../content/contributing/documentation.rst:284 +msgid "Tick the :guilabel:`Allow edits from maintainer` checkbox. Skip this step if you work at Odoo." +msgstr "" + +#: ../../content/contributing/development.rst:153 +#: ../../content/contributing/documentation.rst:286 +msgid "Complete the description and click on the :guilabel:`Create pull request` button again." +msgstr "" + +#: ../../content/contributing/handle_reviews.rst:1 +#: ../../content/contributing/handle_reviews.rst:1 +#: ../../content/contributing/handle_reviews.rst:1 +#: ../../content/contributing/handle_reviews.rst:1 +#: ../../content/contributing/handle_reviews.rst:1 +#: ../../content/contributing/handle_reviews.rst:1 +msgid "As soon as your :abbr:`PR (Pull Request)` is ready for merging, a member of the Odoo team will be automatically assigned for review. If the reviewer has questions or remarks, they will post them as comments and you will be notified by email. Those comments must be resolved for the contribution to go forward." +msgstr "" + +#: ../../content/contributing/development.rst:157 +msgid "Once your changes are approved, the review merges them and they become available for all Odoo users after the next code update!" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:5 +msgid "Coding guidelines" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:7 msgid "This page introduces the Odoo Coding Guidelines. Those aim to improve the quality of Odoo Apps code. Indeed proper code improves readability, eases maintenance, helps debugging, lowers complexity and promotes reliability. These guidelines should be applied to every new module and to all new development." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:15 +#: ../../content/contributing/development/coding_guidelines.rst:14 msgid "When modifying existing files in **stable version** the original file style strictly supersedes any other style guidelines. In other words please never modify existing files in order to apply these guidelines. It avoids disrupting the revision history of code lines. Diff should be kept minimal. For more details, see our `pull request guide `_." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:23 +#: ../../content/contributing/development/coding_guidelines.rst:22 msgid "When modifying existing files in **master (development) version** apply those guidelines to existing code only for modified code or if most of the file is under revision. In other words modify existing files structure only if it is going under major changes. In that case first do a **move** commit then apply the changes related to the feature." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:30 +#: ../../content/contributing/development/coding_guidelines.rst:29 msgid "Module structure" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:33 +#: ../../content/contributing/development/coding_guidelines.rst:32 msgid "Directories" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:34 +#: ../../content/contributing/development/coding_guidelines.rst:33 msgid "A module is organized in important directories. Those contain the business logic; having a look at them should make you understand the purpose of the module." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:37 +#: ../../content/contributing/development/coding_guidelines.rst:36 msgid "*data/* : demo and data xml" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:38 +#: ../../content/contributing/development/coding_guidelines.rst:37 msgid "*models/* : models definition" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:39 +#: ../../content/contributing/development/coding_guidelines.rst:38 msgid "*controllers/* : contains controllers (HTTP routes)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:40 +#: ../../content/contributing/development/coding_guidelines.rst:39 msgid "*views/* : contains the views and templates" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:41 +#: ../../content/contributing/development/coding_guidelines.rst:40 msgid "*static/* : contains the web assets, separated into *css/, js/, img/, lib/, ...*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:43 +#: ../../content/contributing/development/coding_guidelines.rst:42 msgid "Other optional directories compose the module." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:45 +#: ../../content/contributing/development/coding_guidelines.rst:44 msgid "*wizard/* : regroups the transient models (``models.TransientModel``) and their views" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:46 +#: ../../content/contributing/development/coding_guidelines.rst:45 msgid "*report/* : contains the printable reports and models based on SQL views. Python objects and XML views are included in this directory" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:47 +#: ../../content/contributing/development/coding_guidelines.rst:46 msgid "*tests/* : contains the Python tests" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:51 +#: ../../content/contributing/development/coding_guidelines.rst:50 msgid "File naming" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:53 +#: ../../content/contributing/development/coding_guidelines.rst:52 msgid "File naming is important to quickly find information through all odoo addons. This section explains how to name files in a standard odoo module. As an example we use a `plant nursery `_ application. It holds two main models *plant.nursery* and *plant.order*." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:58 +#: ../../content/contributing/development/coding_guidelines.rst:57 msgid "Concerning *models*, split the business logic by sets of models belonging to a same main model. Each set lies in a given file named based on its main model. If there is only one model, its name is the same as the module name. Each inherited model should be in its own file to help understanding of impacted models." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:72 +#: ../../content/contributing/development/coding_guidelines.rst:71 msgid "Concerning *security*, three main files should be used:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:74 +#: ../../content/contributing/development/coding_guidelines.rst:73 msgid "First one is the definition of access rights done in a :file:`ir.model.access.csv` file." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:75 +#: ../../content/contributing/development/coding_guidelines.rst:74 msgid "User groups are defined in :file:`_groups.xml`." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:76 +#: ../../content/contributing/development/coding_guidelines.rst:75 msgid "Record rules are defined in :file:`_security.xml`." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:87 +#: ../../content/contributing/development/coding_guidelines.rst:86 msgid "Concerning *views*, backend views should be split like models and suffixed by ``_views.xml``. Backend views are list, form, kanban, activity, graph, pivot, .. views. To ease split by model in views main menus not linked to specific actions may be extracted into an optional ``_menus.xml`` file. Templates (QWeb pages used notably for portal / website display) and bundles (import of JS and CSS assets) are put in separate files. Those are respectively ``_templates.xml`` and ``assets.xml`` files." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:107 +#: ../../content/contributing/development/coding_guidelines.rst:106 msgid "Concerning *data*, split them by purpose (demo or data) and main model. Filenames will be the main_model name suffixed by ``_demo.xml`` or ``_data.xml``. For instance for an application having demo and data for its main model as well as subtypes, activities and mail templates all related to mail module:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:120 +#: ../../content/contributing/development/coding_guidelines.rst:119 msgid "Concerning *controllers*, generally all controllers belong to a single controller contained in a file named ``.py``. An old convention in Odoo is to name this file ``main.py`` but it is considered as outdated. If you need to inherit an existing controller from another module do it in ``.py``. For example adding portal controller in an application is done in ``portal.py``." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:134 +#: ../../content/contributing/development/coding_guidelines.rst:133 msgid "Concerning *static files*, Javascript files follow globally the same logic as python models. Each component should be in its own file with a meaningful name. For instance, the activity widgets are located in ``activity.js`` of mail module. Subdirectories can also be created to structure the 'package' (see web module for more details). The same logic should be applied for the templates of JS widgets (static XML files) and for their styles (scss files). Don't link data (image, libraries) outside Odoo: do not use an URL to an image but copy it in the codebase instead." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:143 +#: ../../content/contributing/development/coding_guidelines.rst:142 msgid "Concerning *wizards*, naming convention is the same of for python models: ``.py`` and ``_views.xml``. Both are put in the wizard directory. This naming comes from old odoo applications using the wizard keyword for transient models." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:155 +#: ../../content/contributing/development/coding_guidelines.rst:154 msgid "Concerning *statistics reports* done with python / SQL views and classic views naming is the following :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:165 +#: ../../content/contributing/development/coding_guidelines.rst:164 msgid "Concerning *printable reports* which contain mainly data preparation and Qweb templates naming is the following :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:175 +#: ../../content/contributing/development/coding_guidelines.rst:174 msgid "The complete tree of our Odoo module therefore looks like" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:234 +#: ../../content/contributing/development/coding_guidelines.rst:233 msgid "File names should only contain ``[a-z0-9_]`` (lowercase alphanumerics and ``_``)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:237 +#: ../../content/contributing/development/coding_guidelines.rst:236 msgid "Use correct file permissions : folder 755 and file 644." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:242 +#: ../../content/contributing/development/coding_guidelines.rst:241 msgid "XML files" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:245 +#: ../../content/contributing/development/coding_guidelines.rst:244 msgid "Format" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:246 +#: ../../content/contributing/development/coding_guidelines.rst:245 msgid "To declare a record in XML, the **record** notation (using **) is recommended:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:248 +#: ../../content/contributing/development/coding_guidelines.rst:247 msgid "Place ``id`` attribute before ``model``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:249 +#: ../../content/contributing/development/coding_guidelines.rst:248 msgid "For field declaration, ``name`` attribute is first. Then place the *value* either in the ``field`` tag, either in the ``eval`` attribute, and finally other attributes (widget, options, ...) ordered by importance." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:254 +#: ../../content/contributing/development/coding_guidelines.rst:253 msgid "Try to group the record by model. In case of dependencies between action/menu/views, this convention may not be applicable." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:256 +#: ../../content/contributing/development/coding_guidelines.rst:255 msgid "Use naming convention defined at the next point" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:257 +#: ../../content/contributing/development/coding_guidelines.rst:256 msgid "The tag ** is only used to set not-updatable data with ``noupdate=1``. If there is only not-updatable data in the file, the ``noupdate=1`` can be set on the ```` tag and do not set a ```` tag." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:275 +#: ../../content/contributing/development/coding_guidelines.rst:274 msgid "Odoo supports custom tags acting as syntactic sugar:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:277 +#: ../../content/contributing/development/coding_guidelines.rst:276 msgid "menuitem: use it as a shortcut to declare a ``ir.ui.menu``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:278 +#: ../../content/contributing/development/coding_guidelines.rst:277 msgid "template: use it to declare a QWeb View requiring only the ``arch`` section of the view." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:280 +#: ../../content/contributing/development/coding_guidelines.rst:279 msgid "These tags are preferred over the *record* notation." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:284 +#: ../../content/contributing/development/coding_guidelines.rst:283 msgid "XML IDs and naming" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:287 +#: ../../content/contributing/development/coding_guidelines.rst:286 msgid "Security, View and Action" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:289 +#: ../../content/contributing/development/coding_guidelines.rst:288 msgid "Use the following pattern :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:291 +#: ../../content/contributing/development/coding_guidelines.rst:290 msgid "For a menu: :samp:`{}_menu`, or :samp:`{}_menu_{do_stuff}` for submenus." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:292 +#: ../../content/contributing/development/coding_guidelines.rst:291 msgid "For a view: :samp:`{}_view_{}`, where *view_type* is ``kanban``, ``form``, ``tree``, ``search``, ..." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:294 +#: ../../content/contributing/development/coding_guidelines.rst:293 msgid "For an action: the main action respects :samp:`{}_action`. Others are suffixed with :samp:`_{}`, where *detail* is a lowercase string briefly explaining the action. This is used only if multiple actions are declared for the model." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:298 +#: ../../content/contributing/development/coding_guidelines.rst:297 msgid "For window actions: suffix the action name by the specific view information like :samp:`{}_action_view_{}`." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:300 +#: ../../content/contributing/development/coding_guidelines.rst:299 msgid "For a group: :samp:`{}_group_{}` where *group_name* is the name of the group, generally 'user', 'manager', ..." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:302 +#: ../../content/contributing/development/coding_guidelines.rst:301 msgid "For a rule: :samp:`{}_rule_{}` where *concerned_group* is the short name of the concerned group ('user' for the 'model_name_group_user', 'public' for public user, 'company' for multi-company rules, ...)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:307 +#: ../../content/contributing/development/coding_guidelines.rst:306 msgid "Name should be identical to xml id with dots replacing underscores. Actions should have a real naming as it is used as display name." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:361 +#: ../../content/contributing/development/coding_guidelines.rst:360 msgid "Inheriting XML" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:363 +#: ../../content/contributing/development/coding_guidelines.rst:362 msgid "Xml Ids of inheriting views should use the same ID as the original record. It helps finding all inheritance at a glance. As final Xml Ids are prefixed by the module that creates them there is no overlap." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:367 +#: ../../content/contributing/development/coding_guidelines.rst:366 msgid "Naming should contain an ``.inherit.{details}`` suffix to ease understanding the override purpose when looking at its name." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:378 +#: ../../content/contributing/development/coding_guidelines.rst:377 msgid "New primary views do not require the inherit suffix as those are new records based upon the first one." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:393 -#: ../../content/contributing/documentation.rst:223 +#: ../../content/contributing/development/coding_guidelines.rst:392 #: ../../content/contributing/documentation/rst_cheat_sheet.rst:879 #: ../../content/contributing/documentation/rst_cheat_sheet.rst:881 #: ../../content/contributing/documentation/rst_cheat_sheet.rst:897 msgid "Python" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:397 +#: ../../content/contributing/development/coding_guidelines.rst:396 msgid "Do not forget to read the :ref:`Security Pitfalls ` section as well to write secure code." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:401 +#: ../../content/contributing/development/coding_guidelines.rst:400 msgid "PEP8 options" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:403 +#: ../../content/contributing/development/coding_guidelines.rst:402 msgid "Using a linter can help show syntax and semantic warnings or errors. Odoo source code tries to respect Python standard, but some of them can be ignored." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:406 +#: ../../content/contributing/development/coding_guidelines.rst:405 msgid "E501: line too long" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:407 +#: ../../content/contributing/development/coding_guidelines.rst:406 msgid "E301: expected 1 blank line, found 0" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:408 +#: ../../content/contributing/development/coding_guidelines.rst:407 msgid "E302: expected 2 blank lines, found 1" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:411 +#: ../../content/contributing/development/coding_guidelines.rst:410 msgid "Imports" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:412 +#: ../../content/contributing/development/coding_guidelines.rst:411 msgid "The imports are ordered as" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:414 +#: ../../content/contributing/development/coding_guidelines.rst:413 msgid "External libraries (one per line sorted and split in python stdlib)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:415 +#: ../../content/contributing/development/coding_guidelines.rst:414 msgid "Imports of ``odoo``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:416 +#: ../../content/contributing/development/coding_guidelines.rst:415 msgid "Imports from Odoo modules (rarely, and only if necessary)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:418 +#: ../../content/contributing/development/coding_guidelines.rst:417 msgid "Inside these 3 groups, the imported lines are alphabetically sorted." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:436 +#: ../../content/contributing/development/coding_guidelines.rst:435 msgid "Idiomatics of Programming (Python)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:438 +#: ../../content/contributing/development/coding_guidelines.rst:437 msgid "Always favor *readability* over *conciseness* or using the language features or idioms." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:439 +#: ../../content/contributing/development/coding_guidelines.rst:438 msgid "Don't use ``.clone()``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:450 +#: ../../content/contributing/development/coding_guidelines.rst:449 msgid "Python dictionary : creation and update" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:475 +#: ../../content/contributing/development/coding_guidelines.rst:474 msgid "Use meaningful variable/class/method names" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:476 +#: ../../content/contributing/development/coding_guidelines.rst:475 msgid "Useless variable : Temporary variables can make the code clearer by giving names to objects, but that doesn't mean you should create temporary variables all the time:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:488 +#: ../../content/contributing/development/coding_guidelines.rst:487 msgid "Multiple return points are OK, when they're simpler" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:508 +#: ../../content/contributing/development/coding_guidelines.rst:507 msgid "Know your builtins : You should at least have a basic understanding of all the Python builtins (http://docs.python.org/library/functions.html)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:516 +#: ../../content/contributing/development/coding_guidelines.rst:515 msgid "Also, ``if 'key' in my_dict`` and ``if my_dict.get('key')`` have very different meaning, be sure that you're using the right one." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:519 +#: ../../content/contributing/development/coding_guidelines.rst:518 msgid "Learn list comprehensions : Use list comprehension, dict comprehension, and basic manipulation using ``map``, ``filter``, ``sum``, ... They make the code easier to read." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:532 +#: ../../content/contributing/development/coding_guidelines.rst:531 msgid "Collections are booleans too : In python, many objects have \"boolean-ish\" value when evaluated in a boolean context (such as an if). Among these are collections (lists, dicts, sets, ...) which are \"falsy\" when empty and \"truthy\" when containing items:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:543 +#: ../../content/contributing/development/coding_guidelines.rst:542 msgid "So, you can write ``if some_collection:`` instead of ``if len(some_collection):``." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:546 +#: ../../content/contributing/development/coding_guidelines.rst:545 msgid "Iterate on iterables" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:560 +#: ../../content/contributing/development/coding_guidelines.rst:559 msgid "Use dict.setdefault" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:576 +#: ../../content/contributing/development/coding_guidelines.rst:575 msgid "As a good developer, document your code (docstring on methods, simple comments for tricky part of code)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:578 +#: ../../content/contributing/development/coding_guidelines.rst:577 msgid "In additions to these guidelines, you may also find the following link interesting: http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html (a little bit outdated, but quite relevant)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:583 +#: ../../content/contributing/development/coding_guidelines.rst:582 msgid "Programming in Odoo" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:585 +#: ../../content/contributing/development/coding_guidelines.rst:584 msgid "Avoid to create generators and decorators: only use the ones provided by the Odoo API." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:587 +#: ../../content/contributing/development/coding_guidelines.rst:586 msgid "As in python, use ``filtered``, ``mapped``, ``sorted``, ... methods to ease code reading and performance." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:591 +#: ../../content/contributing/development/coding_guidelines.rst:590 msgid "Propagate the context" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:592 +#: ../../content/contributing/development/coding_guidelines.rst:591 msgid "The context is a ``frozendict`` that cannot be modified. To call a method with a different context, the ``with_context`` method should be used :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:601 +#: ../../content/contributing/development/coding_guidelines.rst:600 msgid "Passing parameter in context can have dangerous side-effects." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:603 +#: ../../content/contributing/development/coding_guidelines.rst:602 msgid "Since the values are propagated automatically, some unexpected behavior may appear. Calling ``create()`` method of a model with *default_my_field* key in context will set the default value of *my_field* for the concerned model. But if during this creation, other objects (such as sale.order.line, on sale.order creation) having a field name *my_field* are created, their default value will be set too." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:609 +#: ../../content/contributing/development/coding_guidelines.rst:608 msgid "If you need to create a key context influencing the behavior of some object, choose a good name, and eventually prefix it by the name of the module to isolate its impact. A good example are the keys of ``mail`` module : *mail_create_nosubscribe*, *mail_notrack*, *mail_notify_user_signature*, ..." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:616 +#: ../../content/contributing/development/coding_guidelines.rst:615 msgid "Think extendable" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:618 +#: ../../content/contributing/development/coding_guidelines.rst:617 msgid "Functions and methods should not contain too much logic: having a lot of small and simple methods is more advisable than having few large and complex methods. A good rule of thumb is to split a method as soon as it has more than one responsibility (see http://en.wikipedia.org/wiki/Single_responsibility_principle)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:623 +#: ../../content/contributing/development/coding_guidelines.rst:622 msgid "Hardcoding a business logic in a method should be avoided as it prevents to be easily extended by a submodule." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:649 +#: ../../content/contributing/development/coding_guidelines.rst:648 msgid "The above code is over extendable for the sake of example but the readability must be taken into account and a tradeoff must be made." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:652 +#: ../../content/contributing/development/coding_guidelines.rst:651 msgid "Also, name your functions accordingly: small and properly named functions are the starting point of readable/maintainable code and tighter documentation." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:655 +#: ../../content/contributing/development/coding_guidelines.rst:654 msgid "This recommendation is also relevant for classes, files, modules and packages. (See also http://en.wikipedia.org/wiki/Cyclomatic_complexity)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:660 +#: ../../content/contributing/development/coding_guidelines.rst:659 msgid "Never commit the transaction" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:661 +#: ../../content/contributing/development/coding_guidelines.rst:660 msgid "The Odoo framework is in charge of providing the transactional context for all RPC calls. The principle is that a new database cursor is opened at the beginning of each RPC call, and committed when the call has returned, just before transmitting the answer to the RPC client, approximately like this:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:682 +#: ../../content/contributing/development/coding_guidelines.rst:681 msgid "If any error occurs during the execution of the RPC call, the transaction is rolled back atomically, preserving the state of the system." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:685 +#: ../../content/contributing/development/coding_guidelines.rst:684 msgid "Similarly, the system also provides a dedicated transaction during the execution of tests suites, so it can be rolled back or not depending on the server startup options." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:689 +#: ../../content/contributing/development/coding_guidelines.rst:688 msgid "The consequence is that if you manually call ``cr.commit()`` anywhere there is a very high chance that you will break the system in various ways, because you will cause partial commits, and thus partial and unclean rollbacks, causing among others:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:694 +#: ../../content/contributing/development/coding_guidelines.rst:693 msgid "inconsistent business data, usually data loss" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:695 +#: ../../content/contributing/development/coding_guidelines.rst:694 msgid "workflow desynchronization, documents stuck permanently" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:696 +#: ../../content/contributing/development/coding_guidelines.rst:695 msgid "tests that can't be rolled back cleanly, and will start polluting the database, and triggering error (this is true even if no error occurs during the transaction)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:707 +#: ../../content/contributing/development/coding_guidelines.rst:706 msgid "Here is the very simple rule:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:701 +#: ../../content/contributing/development/coding_guidelines.rst:700 msgid "You should **NEVER** call ``cr.commit()`` yourself, **UNLESS** you have created your own database cursor explicitly! And the situations where you need to do that are exceptional!" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:705 +#: ../../content/contributing/development/coding_guidelines.rst:704 msgid "And by the way if you did create your own cursor, then you need to handle error cases and proper rollback, as well as properly close the cursor when you're done with it." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:709 +#: ../../content/contributing/development/coding_guidelines.rst:708 msgid "And contrary to popular belief, you do not even need to call ``cr.commit()`` in the following situations: - in the ``_auto_init()`` method of an *models.Model* object: this is taken care of by the addons initialization method, or by the ORM transaction when creating custom models - in reports: the ``commit()`` is handled by the framework too, so you can update the database even from within a report - within *models.Transient* methods: these methods are called exactly like regular *models.Model* ones, within a transaction and with the corresponding ``cr.commit()/rollback()`` at the end - etc. (see general rule above if you are in doubt!)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:721 +#: ../../content/contributing/development/coding_guidelines.rst:720 msgid "All ``cr.commit()`` calls outside of the server framework from now on must have an **explicit comment** explaining why they are absolutely necessary, why they are indeed correct, and why they do not break the transactions. Otherwise they can and will be removed !" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:728 +#: ../../content/contributing/development/coding_guidelines.rst:727 msgid "Use translation method correctly" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:730 +#: ../../content/contributing/development/coding_guidelines.rst:729 msgid "Odoo uses a GetText-like method named \"underscore\" ``_( )`` to indicate that a static string used in the code needs to be translated at runtime using the language of the context. This pseudo-method is accessed within your code by importing as follows:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:739 +#: ../../content/contributing/development/coding_guidelines.rst:738 msgid "A few very important rules must be followed when using it, in order for it to work and to avoid filling the translations with useless junk." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:742 +#: ../../content/contributing/development/coding_guidelines.rst:741 msgid "Basically, this method should only be used for static strings written manually in the code, it will not work to translate field values, such as Product names, etc. This must be done instead using the translate flag on the corresponding field." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:747 +#: ../../content/contributing/development/coding_guidelines.rst:746 msgid "The method accepts optional positional or named parameter The rule is very simple: calls to the underscore method should always be in the form ``_('literal string')`` and nothing else:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:790 +#: ../../content/contributing/development/coding_guidelines.rst:789 msgid "Also, keep in mind that translators will have to work with the literal values that are passed to the underscore function, so please try to make them easy to understand and keep spurious characters and formatting to a minimum. Translators must be aware that formatting patterns such as ``%s`` or ``%d``, newlines, etc. need to be preserved, but it's important to use these in a sensible and obvious manner:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:810 +#: ../../content/contributing/development/coding_guidelines.rst:809 msgid "In general in Odoo, when manipulating strings, prefer ``%`` over ``.format()`` (when only one variable to replace in a string), and prefer ``%(varname)`` instead of position (when multiple variables have to be replaced). This makes the translation easier for the community translators." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:817 +#: ../../content/contributing/development/coding_guidelines.rst:816 msgid "Symbols and Conventions" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:827 +#: ../../content/contributing/development/coding_guidelines.rst:826 msgid "Model name (using the dot notation, prefix by the module name) :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:820 +#: ../../content/contributing/development/coding_guidelines.rst:819 msgid "When defining an Odoo Model : use singular form of the name (*res.partner* and *sale.order* instead of *res.partnerS* and *saleS.orderS*)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:822 +#: ../../content/contributing/development/coding_guidelines.rst:821 msgid "When defining an Odoo Transient (wizard) : use ``.`` where *related_base_model* is the base model (defined in *models/*) related to the transient, and *action* is the short name of what the transient do. Avoid the *wizard* word. For instance : ``account.invoice.make``, ``project.task.delegate.batch``, ..." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:826 +#: ../../content/contributing/development/coding_guidelines.rst:825 msgid "When defining *report* model (SQL views e.i.) : use ``.report.``, based on the Transient convention." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:829 +#: ../../content/contributing/development/coding_guidelines.rst:828 msgid "Odoo Python Class : use camelcase (Object-oriented style)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:840 +#: ../../content/contributing/development/coding_guidelines.rst:839 msgid "Variable name :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:838 +#: ../../content/contributing/development/coding_guidelines.rst:837 msgid "use camelcase for model variable" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:839 +#: ../../content/contributing/development/coding_guidelines.rst:838 msgid "use underscore lowercase notation for common variable." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:840 +#: ../../content/contributing/development/coding_guidelines.rst:839 msgid "suffix your variable name with *_id* or *_ids* if it contains a record id or list of id. Don't use ``partner_id`` to contain a record of res.partner" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:848 +#: ../../content/contributing/development/coding_guidelines.rst:847 msgid "``One2Many`` and ``Many2Many`` fields should always have *_ids* as suffix (example: sale_order_line_ids)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:849 +#: ../../content/contributing/development/coding_guidelines.rst:848 msgid "``Many2One`` fields should have *_id* as suffix (example : partner_id, user_id, ...)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:859 +#: ../../content/contributing/development/coding_guidelines.rst:858 msgid "Method conventions" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:851 +#: ../../content/contributing/development/coding_guidelines.rst:850 msgid "Compute Field : the compute method pattern is *_compute_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:852 +#: ../../content/contributing/development/coding_guidelines.rst:851 msgid "Search method : the search method pattern is *_search_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:853 +#: ../../content/contributing/development/coding_guidelines.rst:852 msgid "Default method : the default method pattern is *_default_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:854 +#: ../../content/contributing/development/coding_guidelines.rst:853 msgid "Selection method: the selection method pattern is *_selection_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:855 +#: ../../content/contributing/development/coding_guidelines.rst:854 msgid "Onchange method : the onchange method pattern is *_onchange_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:856 +#: ../../content/contributing/development/coding_guidelines.rst:855 msgid "Constraint method : the constraint method pattern is *_check_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:857 +#: ../../content/contributing/development/coding_guidelines.rst:856 msgid "Action method : an object action method is prefix with *action_*. Since it uses only one record, add ``self.ensure_one()`` at the beginning of the method." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:870 +#: ../../content/contributing/development/coding_guidelines.rst:869 msgid "In a Model attribute order should be" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:862 +#: ../../content/contributing/development/coding_guidelines.rst:861 msgid "Private attributes (``_name``, ``_description``, ``_inherit``, ``_sql_constraints``, ...)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:863 +#: ../../content/contributing/development/coding_guidelines.rst:862 msgid "Default method and ``default_get``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:864 +#: ../../content/contributing/development/coding_guidelines.rst:863 msgid "Field declarations" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:865 +#: ../../content/contributing/development/coding_guidelines.rst:864 msgid "Compute, inverse and search methods in the same order as field declaration" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:866 +#: ../../content/contributing/development/coding_guidelines.rst:865 msgid "Selection method (methods used to return computed values for selection fields)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:867 +#: ../../content/contributing/development/coding_guidelines.rst:866 msgid "Constrains methods (``@api.constrains``) and onchange methods (``@api.onchange``)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:868 +#: ../../content/contributing/development/coding_guidelines.rst:867 msgid "CRUD methods (ORM overrides)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:869 +#: ../../content/contributing/development/coding_guidelines.rst:868 msgid "Action methods" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:870 +#: ../../content/contributing/development/coding_guidelines.rst:869 msgid "And finally, other business methods." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:926 -msgid "Javascript and CSS" +#: ../../content/contributing/development/coding_guidelines.rst:925 +msgid "Javascript" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:929 +#: ../../content/contributing/development/coding_guidelines.rst:928 msgid "Static files organization" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:931 +#: ../../content/contributing/development/coding_guidelines.rst:930 msgid "Odoo addons have some conventions on how to structure various files. We explain here in more details how web assets are supposed to be organized." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:934 +#: ../../content/contributing/development/coding_guidelines.rst:933 msgid "The first thing to know is that the Odoo server will serve (statically) all files located in a *static/* folder, but prefixed with the addon name. So, for example, if a file is located in *addons/web/static/src/js/some_file.js*, then it will be statically available at the url *your-odoo-server.com/web/static/src/js/some_file.js*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:939 +#: ../../content/contributing/development/coding_guidelines.rst:938 msgid "The convention is to organize the code according to the following structure:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:941 +#: ../../content/contributing/development/coding_guidelines.rst:940 msgid "*static*: all static files in general" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:943 +#: ../../content/contributing/development/coding_guidelines.rst:942 msgid "*static/lib*: this is the place where js libs should be located, in a sub folder. So, for example, all files from the *jquery* library are in *addons/web/static/lib/jquery*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:945 +#: ../../content/contributing/development/coding_guidelines.rst:944 msgid "*static/src*: the generic static source code folder" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:947 +#: ../../content/contributing/development/coding_guidelines.rst:946 msgid "*static/src/css*: all css files" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:948 +#: ../../content/contributing/development/coding_guidelines.rst:947 msgid "*static/fonts*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:949 +#: ../../content/contributing/development/coding_guidelines.rst:948 msgid "*static/img*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:950 +#: ../../content/contributing/development/coding_guidelines.rst:949 msgid "*static/src/js*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:952 +#: ../../content/contributing/development/coding_guidelines.rst:951 msgid "*static/src/js/tours*: end user tour files (tutorials, not tests)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:954 +#: ../../content/contributing/development/coding_guidelines.rst:953 msgid "*static/src/scss*: scss files" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:955 +#: ../../content/contributing/development/coding_guidelines.rst:954 msgid "*static/src/xml*: all qweb templates that will be rendered in JS" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:957 +#: ../../content/contributing/development/coding_guidelines.rst:956 msgid "*static/tests*: this is where we put all test related files." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:959 +#: ../../content/contributing/development/coding_guidelines.rst:958 msgid "*static/tests/tours*: this is where we put all tour test files (not tutorials)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:962 +#: ../../content/contributing/development/coding_guidelines.rst:961 msgid "Javascript coding guidelines" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:964 +#: ../../content/contributing/development/coding_guidelines.rst:963 msgid "``use strict;`` is recommended for all javascript files" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:965 +#: ../../content/contributing/development/coding_guidelines.rst:964 msgid "Use a linter (jshint, ...)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:966 +#: ../../content/contributing/development/coding_guidelines.rst:965 msgid "Never add minified Javascript Libraries" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:967 +#: ../../content/contributing/development/coding_guidelines.rst:966 msgid "Use camelcase for class declaration" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:969 +#: ../../content/contributing/development/coding_guidelines.rst:968 msgid "More precise JS guidelines are detailed in the `github wiki `_. You may also have a look at existing API in Javascript by looking Javascript References." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:974 -msgid "CSS coding guidelines" +#: ../../content/contributing/development/coding_guidelines.rst:975 +msgid "CSS and SCSS" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:976 -msgid "Prefix all your classes with *o_* where *module_name* is the technical name of the module ('sale', 'im_chat', ...) or the main route reserved by the module (for website module mainly, i.e. : 'o_forum' for *website_forum* module). The only exception for this rule is the webclient: it simply uses *o_* prefix." +#: ../../content/contributing/development/coding_guidelines.rst:980 +msgid "Syntax and Formatting" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:981 -msgid "Avoid using *id* tag" +#: ../../content/contributing/development/coding_guidelines.rst:1012 +msgid "four (4) space indents, no tabs;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:982 -msgid "Use Bootstrap native classes" +#: ../../content/contributing/development/coding_guidelines.rst:1013 +msgid "columns of max. 80 characters wide;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:983 -msgid "Use underscore lowercase notation to name class" +#: ../../content/contributing/development/coding_guidelines.rst:1014 +msgid "opening brace (`{`): empty space after the last selector;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:988 -msgid "Git" +#: ../../content/contributing/development/coding_guidelines.rst:1015 +msgid "closing brace (`}`): on its own new line;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:991 -msgid "Configure your git" +#: ../../content/contributing/development/coding_guidelines.rst:1016 +msgid "one line for each declaration;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:993 -msgid "Based on ancestral experience and oral tradition, the following things go a long way towards making your commits more helpful:" +#: ../../content/contributing/development/coding_guidelines.rst:1017 +msgid "meaningful use of whitespace." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:996 -msgid "Be sure to define both the user.email and user.name in your local git config" +#: ../../content/contributing/development/coding_guidelines.rst:1060 +msgid "Properties order" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1002 -msgid "Be sure to add your full name to your Github profile here. Please feel fancy and add your team, avatar, your favorite quote, and whatnot ;-)" +#: ../../content/contributing/development/coding_guidelines.rst:1062 +msgid "Order properties from the \"outside\" in, starting from `position` and ending with decorative rules (`font`, `filter`, etc.)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1006 -msgid "Commit message structure" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1008 -msgid "Commit message has four parts: tag, module, short description and full description. Try to follow the preferred structure for your commit messages" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1031 -msgid "Tag and module name" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1033 -msgid "Tags are used to prefix your commit. They should be one of the following" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1035 -msgid "**[FIX]** for bug fixes: mostly used in stable version but also valid if you are fixing a recent bug in development version;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1037 -msgid "**[REF]** for refactoring: when a feature is heavily rewritten;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1038 -msgid "**[ADD]** for adding new modules;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1039 -msgid "**[REM]** for removing resources: removing dead code, removing views, removing modules, ...;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1041 -msgid "**[REV]** for reverting commits: if a commit causes issues or is not wanted reverting it is done using this tag;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1043 -msgid "**[MOV]** for moving files: use git move and do not change content of moved file otherwise Git may loose track and history of the file; also used when moving code from one file to another;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1046 -msgid "**[REL]** for release commits: new major or minor stable versions;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1047 -msgid "**[IMP]** for improvements: most of the changes done in development version are incremental improvements not related to another tag;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1049 -msgid "**[MERGE]** for merge commits: used in forward port of bug fixes but also as main commit for feature involving several separated commits;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1051 -msgid "**[CLA]** for signing the Odoo Individual Contributor License;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1052 -msgid "**[I18N]** for changes in translation files;" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1054 -msgid "After tag comes the modified module name. Use the technical name as functional name may change with time. If several modules are modified, list them or use various to tell it is cross-modules. Unless really required or easier avoid modifying code across several modules in the same commit. Understanding module history may become difficult." -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1061 -msgid "Commit message header" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1063 -msgid "After tag and module name comes a meaningful commit message header. It should be self explanatory and include the reason behind the change. Do not use single words like \"bugfix\" or \"improvements\". Try to limit the header length to about 50 characters for readability." -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1068 -msgid "Commit message header should make a valid sentence once concatenated with ``if applied, this commit will
``. For example ``[IMP] base: prevent to archive users linked to active partners`` is correct as it makes a valid sentence ``if applied, this commit will prevent users to archive...``." -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1074 -msgid "Commit message full description" -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1076 -msgid "In the message description specify the part of the code impacted by your changes (module name, lib, transversal object, ...) and a description of the changes." -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1079 -msgid "First explain WHY you are modifying code. What is important if someone goes back to your commit in about 4 decades (or 3 days) is why you did it. It is the purpose of the change." -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1083 -msgid "What you did can be found in the commit itself. If there was some technical choices involved it is a good idea to explain it also in the commit message after the why. For Odoo R&D developers \"PO team asked me to do it\" is not a valid why, by the way." -msgstr "" - -#: ../../content/contributing/development/coding_guidelines.rst:1087 -msgid "Please avoid commits which simultaneously impact multiple modules. Try to split into different commits where impacted modules are different. It will be helpful if we need to revert changes in a given module separately." +#: ../../content/contributing/development/coding_guidelines.rst:1065 +msgid ":ref:`Scoped SCSS variables ` and :ref:`CSS variables ` must be placed at the very top, followed by an empty line separating them from other declarations." msgstr "" #: ../../content/contributing/development/coding_guidelines.rst:1091 -msgid "Don't hesitate to be a bit verbose. Most people will only see your commit message and judge everything you did in your life just based on those few sentences. No pressure at all." +msgid "Naming Conventions" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1095 -msgid "**You spend several hours, days or weeks working on meaningful features. Take some time to calm down and write clear and understandable commit messages.**" +#: ../../content/contributing/development/coding_guidelines.rst:1093 +msgid "Naming conventions in CSS are incredibly useful in making your code more strict, transparent and informative." msgstr "" #: ../../content/contributing/development/coding_guidelines.rst:1098 +msgid "Avoid `id` selectors, and prefix your classes with `o_`, where `` is the technical name of the module (`sale`, `im_chat`, ...) or the main route reserved by the module (for website modules mainly, i.e. : `o_forum` for the `website_forum` module)." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1099 +msgid "The only exception for this rule is the webclient: it simply uses the `o_` prefix." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1101 +msgid "Avoid creating hyper-specific classes and variable names. When naming nested elements, opt for the \"Grandchild\" approach." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1109 +msgid "Don't" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1123 +msgid "Do" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1135 +msgid "Besides being more compact, this approach eases maintenance because it limits the need of renaming when changes occur at the DOM." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1141 +msgid "SCSS Variables" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1143 +msgid "Our standard convention is `$o-[root]-[element]-[property]-[modifier]`, with:" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1145 +msgid "`$o-`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1146 +msgid "The prefix." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1147 +#: ../../content/contributing/development/coding_guidelines.rst:1231 +msgid "`[root]`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1148 +#: ../../content/contributing/development/coding_guidelines.rst:1232 +msgid "Either the component **or** the module name (components take priority)." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1149 +#: ../../content/contributing/development/coding_guidelines.rst:1233 +msgid "`[element]`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1150 +#: ../../content/contributing/development/coding_guidelines.rst:1234 +msgid "An optional identifier for inner elements." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1151 +#: ../../content/contributing/development/coding_guidelines.rst:1235 +msgid "`[property]`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1152 +#: ../../content/contributing/development/coding_guidelines.rst:1236 +msgid "The property/behavior defined by the variable." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1154 +#: ../../content/contributing/development/coding_guidelines.rst:1238 +msgid "`[modifier]`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1154 +#: ../../content/contributing/development/coding_guidelines.rst:1238 +msgid "An optional modifier." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1167 +msgid "SCSS Variables (scoped)" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1169 +msgid "These variables are declared within blocks and are not accessible from the outside. Our standard convention is `$-[variable name]`." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1187 +msgid "`Variables scope on the SASS Documentation `_" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1193 +msgid "SCSS Mixins and Functions" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1195 +msgid "Our standard convention is `o-[name]`. Use descriptive names. When naming functions, use verbs in the imperative form (e.g.: `get`, `make`, `apply`...)." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1198 +msgid "Name optional arguments in the :ref:`scoped variables form `, so `$-[argument]`." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1218 +msgid "`Mixins on the SASS Documentation `_" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1219 +msgid "`Functions on the SASS Documentation `_" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1224 +msgid "CSS Variables" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1226 +msgid "In Odoo, the use of CSS variables is strictly DOM-related. Use them to **contextually** adapt the design and layout." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1229 +msgid "Our standard convention is BEM, so `--[root]__[element]-[property]--[modifier]`, with:" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1260 +msgid "Use of CSS Variables" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1262 +msgid "In Odoo, the use of CSS variables is strictly DOM-related, meaning that are used to **contextually** adapt the design and layout rather than to manage the global design-system. These are typically used when a component's properties can vary in specific contexts or in other circumstances." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1266 +msgid "We define these properties inside the component's main block, providing default fallbacks." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1270 +msgid ":file:`my_component.scss`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1277 +msgid ":file:`my_dashboard.scss`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1286 +msgid "`CSS variables on MDN web docs `_" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1292 +msgid "CSS and SCSS Variables" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1294 +msgid "Despite being apparently similar, `CSS` and `SCSS` variables behave very differently. The main difference is that, while `SCSS` variables are **imperative** and compiled away, `CSS` variables are **declarative** and included in the final output." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1299 +msgid "`CSS/SCSS variables difference on the SASS Documentation `_" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1302 +msgid "In Odoo, we take the best of both worlds: using the `SCSS` variables to define the design-system while opting for the `CSS` ones when it comes to contextual adaptations." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1305 +msgid "The implementation of the previous example should be improved by adding SCSS variables in order to gain control at the top-level and ensure consistency with other components." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1310 +msgid ":file:`secondary_variables.scss`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1317 +msgid ":file:`component.scss`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1324 +msgid ":file:`dashboard.scss`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1334 +msgid "The `:root` pseudo-class" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1336 +msgid "Defining CSS variables on the `:root` pseudo-class is a technique we normally **don't use** in Odoo's UI. The practice is commonly used to access and modify CSS variables globally. We perform this using SCSS instead." +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1340 +msgid "Exceptions to this rule should be fairly apparent, such as templates shared across bundles that require a certain level of contextual awareness in order to be rendered properly." +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:3 +msgid "Git guidelines" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:6 +msgid "Configure your git" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:8 +msgid "Based on ancestral experience and oral tradition, the following things go a long way towards making your commits more helpful:" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:11 +msgid "Be sure to define both the user.email and user.name in your local git config" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:17 +msgid "Be sure to add your full name to your Github profile here. Please feel fancy and add your team, avatar, your favorite quote, and whatnot ;-)" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:21 +msgid "Commit message structure" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:23 +msgid "Commit message has four parts: tag, module, short description and full description. Try to follow the preferred structure for your commit messages" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:46 +msgid "Tag and module name" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:48 +msgid "Tags are used to prefix your commit. They should be one of the following" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:50 +msgid "**[FIX]** for bug fixes: mostly used in stable version but also valid if you are fixing a recent bug in development version;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:52 +msgid "**[REF]** for refactoring: when a feature is heavily rewritten;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:53 +msgid "**[ADD]** for adding new modules;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:54 +msgid "**[REM]** for removing resources: removing dead code, removing views, removing modules, ...;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:56 +msgid "**[REV]** for reverting commits: if a commit causes issues or is not wanted reverting it is done using this tag;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:58 +msgid "**[MOV]** for moving files: use git move and do not change content of moved file otherwise Git may loose track and history of the file; also used when moving code from one file to another;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:61 +msgid "**[REL]** for release commits: new major or minor stable versions;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:62 +msgid "**[IMP]** for improvements: most of the changes done in development version are incremental improvements not related to another tag;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:64 +msgid "**[MERGE]** for merge commits: used in forward port of bug fixes but also as main commit for feature involving several separated commits;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:66 +msgid "**[CLA]** for signing the Odoo Individual Contributor License;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:67 +msgid "**[I18N]** for changes in translation files;" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:69 +msgid "After tag comes the modified module name. Use the technical name as functional name may change with time. If several modules are modified, list them or use various to tell it is cross-modules. Unless really required or easier avoid modifying code across several modules in the same commit. Understanding module history may become difficult." +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:76 +msgid "Commit message header" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:78 +msgid "After tag and module name comes a meaningful commit message header. It should be self explanatory and include the reason behind the change. Do not use single words like \"bugfix\" or \"improvements\". Try to limit the header length to about 50 characters for readability." +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:83 +msgid "Commit message header should make a valid sentence once concatenated with ``if applied, this commit will
``. For example ``[IMP] base: prevent to archive users linked to active partners`` is correct as it makes a valid sentence ``if applied, this commit will prevent users to archive...``." +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:89 +msgid "Commit message full description" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:91 +msgid "In the message description specify the part of the code impacted by your changes (module name, lib, transversal object, ...) and a description of the changes." +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:94 +msgid "First explain WHY you are modifying code. What is important if someone goes back to your commit in about 4 decades (or 3 days) is why you did it. It is the purpose of the change." +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:98 +msgid "What you did can be found in the commit itself. If there was some technical choices involved it is a good idea to explain it also in the commit message after the why. For Odoo R&D developers \"PO team asked me to do it\" is not a valid why, by the way." +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:102 +msgid "Please avoid commits which simultaneously impact multiple modules. Try to split into different commits where impacted modules are different. It will be helpful if we need to revert changes in a given module separately." +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:106 +msgid "Don't hesitate to be a bit verbose. Most people will only see your commit message and judge everything you did in your life just based on those few sentences. No pressure at all." +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:110 +msgid "**You spend several hours, days or weeks working on meaningful features. Take some time to calm down and write clear and understandable commit messages.**" +msgstr "" + +#: ../../content/contributing/development/git_guidelines.rst:113 msgid "If you are an Odoo R&D developer the WHY should be the purpose of the task you are working on. Full specifications make the core of the commit message. **If you are working on a task that lacks purpose and specifications please consider making them clear before continuing.**" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1103 +#: ../../content/contributing/development/git_guidelines.rst:118 msgid "Finally here are some examples of correct commit messages :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1126 +#: ../../content/contributing/development/git_guidelines.rst:141 msgid "Use the long description to explain the *why* not the *what*, the *what* can be seen in the diff" msgstr "" @@ -1026,353 +1486,180 @@ msgid "This introductory guide will help you acquire the tools and knowledge you msgstr "" #: ../../content/contributing/documentation.rst:21 -msgid "reStructuredText" +msgid "Read the :ref:`introduction to the reStructuredText language ` if you are not familiar with it. Then, you have two courses of action to start contributing to the documentation, depending on whether you want to propose minor changes to existing content or you instead want to work on significant changes to new and existing content." msgstr "" -#: ../../content/contributing/documentation.rst:23 -msgid "Our documentation is written in **reStructuredText** (RST), a `lightweight markup language `_ consisting of normal text augmented with markup which allows including headings, images, notes, and so on. This might seem a bit abstract but there is no need to worry. :abbr:`RST (reStructuredText)` is not hard to learn, especially if you intend to make only small changes to the content." +#: ../../content/contributing/documentation.rst:26 +msgid "**For minor changes**, for example, adding a paragraph or fixing a typo, we recommend **using the GitHub interface**. This is the easiest and fastest way to submit your changes, and it is suitable for non-technical people. Jump directly to the :ref:`contributing/documentation/first-contribution` section to get started." msgstr "" -#: ../../content/contributing/documentation.rst:29 -msgid "If you need to learn about a specific markup, head over to :doc:`our cheat sheet for RST ` which contains all the information that you should ever need for the user documentation of Odoo." +#: ../../content/contributing/documentation.rst:30 +msgid "**For more complex changes**, it is necessary to **use Git** and work from a local copy of the documentation. Follow the instructions in the :ref:`contributing/documentation/setup` section to first prepare your environment." msgstr "" -#: ../../content/contributing/documentation.rst:34 -msgid "We kindly ask you to observe a set of :doc:`content ` and :doc:`RST ` guidelines as you write documentation. This ensures that you stay consistent with the rest of the documentation and facilitates the approval of your content changes as they are reviewed by a redactor at Odoo." +#: ../../content/contributing/documentation.rst:37 +msgid "reStructuredText (RST)" msgstr "" -#: ../../content/contributing/documentation.rst:40 +#: ../../content/contributing/documentation.rst:39 +msgid "The documentation is written in **reStructuredText** (RST), a `lightweight markup language `_ consisting of regular text augmented with markup, which allows including headings, images, notes, and so on. This might seem a bit abstract, but there is no need to worry; :abbr:`RST (reStructuredText)` is not hard to learn, especially if you intend to make minor changes to the content." +msgstr "" + +#: ../../content/contributing/documentation.rst:45 +msgid "If you need to learn about a specific markup, head over to our :doc:`cheat sheet for RST `; it contains all the information you should ever need for the documentation of Odoo." +msgstr "" + +#: ../../content/contributing/documentation.rst:50 +msgid "We kindly ask you to observe a set of :doc:`content ` and :doc:`RST ` guidelines as you write documentation. This ensures that you stay consistent with the rest of the documentation and facilitates the approval of your content changes as the Odoo team reviews them." +msgstr "" + +#: ../../content/contributing/documentation.rst:56 msgid ":doc:`documentation/content_guidelines`" msgstr "" -#: ../../content/contributing/documentation.rst:41 +#: ../../content/contributing/documentation.rst:57 msgid ":doc:`documentation/rst_cheat_sheet`" msgstr "" -#: ../../content/contributing/documentation.rst:42 +#: ../../content/contributing/documentation.rst:58 msgid ":doc:`documentation/rst_guidelines`" msgstr "" -#: ../../content/contributing/documentation.rst:47 -msgid "Getting started" +#: ../../content/contributing/documentation.rst:65 +msgid "The instructions below help you prepare your environment for making local changes to the documentation and then push them to GitHub. Skip this section and go to :ref:`contributing/documentation/first-contribution` if you have already completed this step or want to make changes from the GitHub interface." msgstr "" -#: ../../content/contributing/documentation.rst:49 -msgid "As our documentation is maintained on GitHub, you will need a free GitHub account. Click `here `_ to create one." +#: ../../content/contributing/documentation.rst:72 +msgid "Go to `github.com/odoo/documentation `_ and click on the :guilabel:`Fork` button in the top right corner to create a fork (:dfn:`your own copy`) of the repository on your account. This creates a copy of the codebase to which you can make changes without affecting the main codebase. Skip this step if you work at Odoo." msgstr "" -#: ../../content/contributing/documentation.rst:52 -msgid "Now, depending on whether you want to update existing content, or rather work on new content and make file changes, you have two courses of action:" +#: ../../content/contributing/documentation.rst:78 +msgid "Clone the sources with Git and navigate into the local repository." msgstr "" -#: ../../content/contributing/documentation.rst:55 -msgid "**For small changes** in ``.rst`` files only, i.e. addition/edition of paragraphs or typos, **we suggest that you use the GitHub interface**. This is the easiest and fasted way to submit your request for changes for the documentation and is suitable for non-technical people. Read :ref:`contributing/github-interface` to learn how to use this method." +#: ../../content/contributing/documentation.rst:85 +msgid "Configure Git to push changes to your fork rather than to the main codebase. In the commands below, replace `` with the name of the GitHub account on which you created the fork. Skip this step if you work at Odoo." msgstr "" -#: ../../content/contributing/documentation.rst:59 -msgid "**For more complex cases**, it is necessary to **use Git and work from a local copy of the documentation**. This method seems intimidating but only requires basic knowledge of Git. See :ref:`contributing/canonical-git-workflow` for more information on this method." +#: ../../content/contributing/documentation.rst:93 +msgid "Configure Git to ease the collaboration between writers coming from different systems." msgstr "" -#: ../../content/contributing/documentation.rst:66 -msgid "Use the GitHub interface" +#: ../../content/contributing/documentation.rst:111 +msgid "Install the latest release of `Python `_ and `pip `_ on your machine." msgstr "" -#: ../../content/contributing/documentation.rst:68 -msgid "Verify that you are browsing the documentation in the version that you intend to change. The version can be selected from the dropdown in the top menu." +#: ../../content/contributing/documentation.rst:113 +msgid "Install the Python dependencies of the documentation with pip." msgstr "" -#: ../../content/contributing/documentation.rst:71 -msgid "Head over to the page that you want to change and click on the **Edit on GitHub** button in the top right corner of the page." -msgstr "" - -#: ../../content/contributing/documentation.rst:74 -msgid "If you do not have edit rights on the repository (`odoo/documentation `_), you need to fork it by clicking on the appropriate button. In other terms, you create a copy of the entire repository on your own account. If you do have the edit rights, skip this step." -msgstr "" - -#: ../../content/contributing/documentation.rst:81 -msgid "Make the appropriate changes while taking care of following the :doc:`content ` and :doc:`RST ` guidelines." -msgstr "" - -#: ../../content/contributing/documentation.rst:84 -msgid "Click on the **Preview changes** button to review your contribution in a more human-readable format. Be aware that the preview is not able to handle all markups correctly. Notes and tips, for instance, are not correctly rendered. The version of your content published to the website will be, however." -msgstr "" - -#: ../../content/contributing/documentation.rst:89 -msgid "Go to the bottom of the page to create a commit (:dfn:`what packs your changes together and labels them with a commit message`) of your changes." -msgstr "" - -#: ../../content/contributing/documentation.rst:0 -msgid "In first text box, describe your changes. For instance, \"Fix a typo\" and \"Add documentation for invoicing of sales orders\" are two clear commit messages." -msgstr "" - -#: ../../content/contributing/documentation.rst:0 -msgid "In the second text box, justify *why* you made these changes, if you feel that it is not obvious." -msgstr "" - -#: ../../content/contributing/documentation.rst:96 -msgid "Select the option \"Create a new branch for this commit and start a pull request.\" if you have the choice (if you have partial or full edit writes on the repository). If not, skip this step." -msgstr "" - -#: ../../content/contributing/documentation.rst:99 -msgid "Click on the green button. It is either labelled \"Commit changes\" or \"Propose file change\"." -msgstr "" - -#: ../../content/contributing/documentation.rst:103 -msgid "In the dropdown for the selection of the base branch (i.e., the version of the documentation that your changes concern), make sure to select the same version as in the first step of this guide and click on the **Create pull request** button." -msgstr "" - -#: ../../content/contributing/documentation.rst:109 -msgid "Double-check your :abbr:`PR (Pull Request)` and, when ready, click again on the **Create pull request** button to submit your changes for review by a content writer at Odoo." -msgstr "" - -#: ../../content/contributing/documentation.rst:114 -#: ../../content/contributing/documentation.rst:417 -msgid "You're done! If your changes are approved straight away they will appear in the documentation the very next day. It may also be the case that the reviewer has a question or a remark, so make sure to check your notifications or your emails, depending on your account settings." -msgstr "" - -#: ../../content/contributing/documentation.rst:121 -msgid "Use the canonical Git workflow" +#: ../../content/contributing/documentation.rst:119 +msgid "Verify that the installation directory of the Python dependencies is included in your system's `PATH` variable." msgstr "" #: ../../content/contributing/documentation.rst:126 -msgid "Prepare your machine" +msgid "Follow the `guide to update the PATH variable on Linux and macOS `_ with the installation path of the Python dependencies (by default :file:`~/.local/bin`)." msgstr "" -#: ../../content/contributing/documentation.rst:131 -msgid "Install Git" +#: ../../content/contributing/documentation.rst:132 +msgid "Follow the `guide to update the PATH variable on Windows `_ with the installation path of the Python dependencies." msgstr "" -#: ../../content/contributing/documentation.rst:133 -msgid "We use `Git `_ to manage the files of the user documentation. It is a tool that allows to track the history of changes made to a file and, more importantly, to work on different versions of those files at the same time. It means that you do not need to worry about overwriting someone else’s pending work when you start editing the documentation." +#: ../../content/contributing/documentation.rst:136 +msgid "Install Make." msgstr "" -#: ../../content/contributing/documentation.rst:138 -msgid "You must then configure Git to identify yourself as the author of your future contribution. Enter the same email address as the one you used to register on GitHub." +#: ../../content/contributing/documentation.rst:148 +msgid "Follow the `guide to install Make on Windows `_." msgstr "" -#: ../../content/contributing/documentation.rst:141 -msgid "Download and install **Git** on your machine." +#: ../../content/contributing/documentation.rst:151 +msgid "`Install pngquant `_." msgstr "" -#: ../../content/contributing/documentation.rst:142 -msgid "Verify that `the installation folder of Git is included in your system's PATH variable `_." +#: ../../content/contributing/documentation.rst:152 +msgid "That's it! You are ready to :ref:`make your first contribution ` with Git." msgstr "" -#: ../../content/contributing/documentation.rst:144 -#: ../../content/contributing/documentation.rst:172 -#: ../../content/contributing/documentation.rst:337 -#: ../../content/contributing/documentation.rst:357 -#: ../../content/contributing/documentation.rst:388 -msgid "Execute the following commands in a terminal:" +#: ../../content/contributing/documentation.rst:162 +msgid "Contribute from the GitHub interface" msgstr "" -#: ../../content/contributing/documentation.rst:154 -msgid "Fetch the sources" +#: ../../content/contributing/documentation.rst:164 +msgid "Verify that you are browsing the documentation in the version that you intend to change. The version can be selected from the dropdown in the top menu." msgstr "" -#: ../../content/contributing/documentation.rst:156 -msgid "As stated earlier, our documentation (in all its versions) is maintained on GitHub at `github.com/odoo/documentation `_. A modification is made by the mean of a :abbr:`PR (Pull Request)` (:dfn:`proposal of content changes`) to allow for a review of the changes before updating the sources of the documentation." +#: ../../content/contributing/documentation.rst:166 +msgid "Head to the page that you want to change and click on the :guilabel:`Edit on GitHub` button in the top right corner of the page." msgstr "" -#: ../../content/contributing/documentation.rst:161 -msgid "Prior to submitting a modification, you need to make a copy of the sources and download that copy on your machine. Git's CLI (:dfn:`command-line interface`) allows downloading the sources by passing an URL to its :command:`git clone` command. You must choose the protocol of the URL depending on what you want to do with the sources: choose HTTPS if you intend to only build the documentation locally; choose SSH if you plan on proposing content changes." -msgstr "" - -#: ../../content/contributing/documentation.rst:167 -msgid "Go to `github.com/odoo/documentation `_ and click on the **Fork** button in the top right corner. If you work at Odoo, skip this step." -msgstr "" - -#: ../../content/contributing/documentation.rst:176 -msgid "Clone with HTTPS" -msgstr "" - -#: ../../content/contributing/documentation.rst:183 -#: ../../content/contributing/documentation.rst:197 -msgid "Replace `` with your GitHub username. If you work at Odoo, replace it with `odoo`." -msgstr "" - -#: ../../content/contributing/documentation.rst:186 -msgid "Clone with SSH" -msgstr "" - -#: ../../content/contributing/documentation.rst:189 -msgid "Make sure that you `registered your SSH key on GitHub `_." -msgstr "" - -#: ../../content/contributing/documentation.rst:200 -msgid "In order to ease the collaboration between writers coming from many different systems and teams, execute the following group of commands that correspond to your :abbr:`OS (Operating System)` in a terminal." -msgstr "" - -#: ../../content/contributing/documentation.rst:204 -msgid "Windows:" -msgstr "" - -#: ../../content/contributing/documentation.rst:212 -msgid "Linux or Mac OS:" -msgstr "" - -#: ../../content/contributing/documentation.rst:225 -msgid "Because the documentation is written in :abbr:`RST (reStructuredText)`, it needs to be built (:dfn:`converted to HTML`) in order to display nicely. This is done by the documentation generator which takes the original :abbr:`RST (reStructuredText)` files as input, transforms the markups in a human-readable format, and outputs HTML files to be read in your web browser." +#: ../../content/contributing/documentation.rst:168 +msgid "Click on the :guilabel:`Fork this repository` button to create a fork (:dfn:`your own copy`) of the repository on your account. This creates a copy of the codebase to which you can make changes without affecting the main codebase. Skip this step if you work at Odoo." msgstr "" +#: ../../content/contributing/documentation.rst:175 #: ../../content/contributing/documentation.rst:230 -msgid "The documentation generator that we use is called `Sphinx `_. and is written in `Python `_. You have to install Python in order to use Sphinx. For the record, Sphinx is the program and Python the programming language, but you do not need to know much more about them so don't panic!" +msgid "Make the desired changes while taking care of following the :doc:`content ` and :doc:`RST ` guidelines." msgstr "" -#: ../../content/contributing/documentation.rst:235 -msgid "Python comes with its own package manager: `pip `_. It allows installing Python dependencies in a single command." +#: ../../content/contributing/documentation.rst:180 +msgid "Click on the :guilabel:`Preview changes` button to review your contribution in a more human-readable format. Be aware that the preview is not able to handle all markups correctly. Notes and tips, for instance, are shown as plain text." msgstr "" -#: ../../content/contributing/documentation.rst:239 -msgid "Download and install the recommended release (`see README file `_) of **Python 3** on your machine." +#: ../../content/contributing/documentation.rst:184 +msgid "Scroll to the bottom of the page and fill out the small form to propose your changes. In the first text box, write a very short summary of your changes. For instance, \"Fix a typo\" or \"Add documentation for invoicing of sales orders\". In the second text box, explain *why* you are proposing these changes. Then, click on the :guilabel:`Propose changes` button." msgstr "" -#: ../../content/contributing/documentation.rst:242 -msgid "Make sure to have **pip** installed on your machine (on Windows, you can install pip alongside Python)." +#: ../../content/contributing/documentation.rst:195 +msgid "Review the summary that you wrote about your changes and click on the :guilabel:`Create pull request` button again." msgstr "" -#: ../../content/contributing/documentation.rst:244 -msgid "Execute the following commands in a terminal to verify that both installations finished successfully:" +#: ../../content/contributing/documentation/changes_approved.rst:1 +#: ../../content/contributing/documentation/changes_approved.rst:1 +#: ../../content/contributing/documentation/changes_approved.rst:1 +#: ../../content/contributing/documentation/changes_approved.rst:1 +#: ../../content/contributing/documentation/changes_approved.rst:1 +msgid "Once your changes are approved, the reviewer merges them and they appear online the next day!" msgstr "" -#: ../../content/contributing/documentation.rst:252 -msgid "Execute the following commands in a terminal to install the Python dependencies of the documentation:" +#: ../../content/contributing/documentation.rst:201 +msgid "Contribute with Git" msgstr "" -#: ../../content/contributing/documentation.rst:261 -msgid "Depending on your :abbr:`OS (Operating System)`, you may need to run the commands ``python`` and ``pip`` instead of ``python3`` and ``pip3``" +#: ../../content/contributing/documentation.rst:208 +msgid "Now that your environment is set up, you can start contributing to the documentation. In a terminal, navigate to the directory where you cloned the sources and follow the guide below." msgstr "" -#: ../../content/contributing/documentation.rst:267 -msgid "Make" +#: ../../content/contributing/documentation.rst:211 +msgid "Choose the version of the documentation to which you want to make changes. Keep in mind that contributions targeting an :doc:`unsupported version of Odoo ` are not accepted. This guide assumes that the changes target the documentation of Odoo 16, which corresponds to branch `16.0`." msgstr "" -#: ../../content/contributing/documentation.rst:269 -msgid "`Make `_ is a tool that packs a bunch of command-lines into one to be easier to remember and to type. In our case, it is used to execute complex Sphinx build commands by using a single and simpler one instead." +#: ../../content/contributing/documentation.rst:233 +msgid "Compress all PNG images that you added or modified." msgstr "" -#: ../../content/contributing/documentation.rst:273 -msgid "Download and install **Make** on your machine." +#: ../../content/contributing/documentation.rst:240 +msgid "Write a `redirect rule `_ for every RST file that your renamed." msgstr "" -#: ../../content/contributing/documentation.rst:274 -msgid "Verify that `the installation folder of Make is included in your system's PATH variable `_." +#: ../../content/contributing/documentation.rst:243 +msgid "Build the documentation with :command:`make`. Then, open :file:`_build/index.html` in your web browser to browse the documentation with your changes." +msgstr "" + +#: ../../content/contributing/documentation.rst:247 +msgid "Use :command:`make help` to learn about other useful commands." +msgstr "" + +#: ../../content/contributing/documentation.rst:265 +msgid "If you work at Odoo, push your changes directly to the main codebase whose remote alias is `origin`." +msgstr "" + +#: ../../content/contributing/documentation.rst:276 +msgid "Go to the `compare page of the odoo/documentation codebase `_." msgstr "" #: ../../content/contributing/documentation.rst:280 -msgid "pngquant" -msgstr "" - -#: ../../content/contributing/documentation.rst:282 -msgid "`pngquant `_ is a tool that we use to compress PNG images so that the documentation does not end up weighting several Gigabytes in a few year span." -msgstr "" - -#: ../../content/contributing/documentation.rst:285 -msgid "Download and install **pngquant** on your machine." -msgstr "" - -#: ../../content/contributing/documentation.rst:286 -msgid "Verify that `the installation folder of pngquant is included in your system's PATH variable `_." -msgstr "" - -#: ../../content/contributing/documentation.rst:292 -msgid "Prepare your version" -msgstr "" - -#: ../../content/contributing/documentation.rst:294 -msgid "Now that your machine is all set up, it is time to do the same for your version of the documentation files. As it would not be convenient to have several people working on the version 16.0 in parallel (conflicts of content would occur all the time), and in order to be able to create a :abbr:`PR (Pull Request)`, you must `create a new branch `_ starting from the branch 16.0. In other words, you copy the entirety of this version’s files and give it another name. For this example, we will go with ``16.0-my_contribution``." -msgstr "" - -#: ../../content/contributing/documentation.rst:302 -msgid "Execute the following commands in a terminal to..." -msgstr "" - -#: ../../content/contributing/documentation.rst:304 -msgid "Navigate to the documentation folder:" -msgstr "" - -#: ../../content/contributing/documentation.rst:310 -msgid "Switch to the version 16.0:" -msgstr "" - -#: ../../content/contributing/documentation.rst:316 -msgid "Create your own branch which will be a copy of 16.0:" -msgstr "" - -#: ../../content/contributing/documentation.rst:325 -msgid "Perform your changes" -msgstr "" - -#: ../../content/contributing/documentation.rst:327 -msgid "You can now perform any change you want to the documentation files. These changes must be compliant with :abbr:`RST (reStructuredText)` syntax (see :doc:`documentation/rst_cheat_sheet`) and with our :doc:`content ` and :doc:`RST ` guidelines." -msgstr "" - -#: ../../content/contributing/documentation.rst:333 -msgid "If your changes include the addition of a new image, for instance :file:`my-image.png`, proceed as follows:" -msgstr "" - -#: ../../content/contributing/documentation.rst:336 -msgid "Make sure that the image is in ``.png`` format." -msgstr "" - -#: ../../content/contributing/documentation.rst:344 -msgid "Delete :file:`my-image.png`." -msgstr "" - -#: ../../content/contributing/documentation.rst:345 -msgid "Rename :file:`my-image-fs8.png` to :file:`my-image.png`." -msgstr "" - -#: ../../content/contributing/documentation.rst:346 -msgid "If your changes include renaming or moving an RST file to a new location, follow the `manual for redirect rules `_ to create the appropriate redirect rule(s)." -msgstr "" - -#: ../../content/contributing/documentation.rst:353 -msgid "Preview your changes" -msgstr "" - -#: ../../content/contributing/documentation.rst:355 -msgid "To preview your changes in a generated documentation, proceed as follows:" -msgstr "" - -#: ../../content/contributing/documentation.rst:366 -msgid "You can omit the :command:`make clean` command when no recent change has been made to the hierarchy of documentation files." -msgstr "" - -#: ../../content/contributing/documentation.rst:369 -msgid "Fix any error or warning shown in the logs of the build." -msgstr "" - -#: ../../content/contributing/documentation.rst:370 -msgid "Open the file :file:`documentation/_build/html/index.html` with your default web browser." -msgstr "" - -#: ../../content/contributing/documentation.rst:373 -msgid "These steps have for only purpose to show you the final results of your changes. They have no impact on the documentation source files." -msgstr "" - -#: ../../content/contributing/documentation.rst:379 -msgid "Submit your changes" -msgstr "" - -#: ../../content/contributing/documentation.rst:382 -msgid "We expect you to have basic knowledge of Git, which should be enough to cover the basic flow of a one-time contribution. If you plan on submitting several contributions, work on older versions of the documentation or perform any other advanced action, we recommend you to be confident with Git. Help yourself with `this manual of Git `_ and `this interactive tutorial `_." -msgstr "" - -#: ../../content/contributing/documentation.rst:396 -msgid "Go to `github.com/odoo/documentation/pulls `_ and click on the **New pull request** button." -msgstr "" - -#: ../../content/contributing/documentation.rst:401 -msgid "If you forked the base repository in the section :ref:`contributing/fetch-sources`, click on the link **compare across forks** If not, skip this step." -msgstr "" - -#: ../../content/contributing/documentation.rst:406 -msgid "In the dropdown for the selection of the base branch (i.e., the version of the documentation that your changes concern), make sure to select the version that your changes target (here **16.0**)." -msgstr "" - -#: ../../content/contributing/documentation.rst:412 -msgid "Double-check your :abbr:`PR (Pull Request)` and, when ready, click again on the **Create pull request** button to submit your changes for review by a redactor at Odoo." +msgid "Select **/odoo** for the head repository. Replace `` with the name of the GitHub account on which you created the fork. Skip this step if you work at Odoo." msgstr "" #: ../../content/contributing/documentation/content_guidelines.rst:3 @@ -1649,34 +1936,34 @@ msgid "Adding a few images to illustrate your text helps the readers to understa msgstr "" #: ../../content/contributing/documentation/content_guidelines.rst:185 -msgid "Don't forget to :ref:`compress your PNG files with pngquant `." +msgid "Don't forget to :ref:`compress your PNG files with pngquant `." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:190 +#: ../../content/contributing/documentation/content_guidelines.rst:191 msgid "Screenshots" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:192 +#: ../../content/contributing/documentation/content_guidelines.rst:193 msgid "Screenshots are automatically resized to fit the content block's width. This implies that screenshots can't be too wide, else they would appear very small on-screen. Therefore, we recommend to avoid to take screenshots of a full screen display of the app, unless it is relevant to do so." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:196 +#: ../../content/contributing/documentation/content_guidelines.rst:197 msgid "A few tips to improve your screenshots:" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:198 +#: ../../content/contributing/documentation/content_guidelines.rst:199 msgid "**Zoom** in your browser. We recommend a 110% zoom for better results." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:199 +#: ../../content/contributing/documentation/content_guidelines.rst:200 msgid "**Resize** your browser's width, either by *resizing the window* itself or by opening the *browser's developer tools* (press the ``F12`` key) and resizing the width." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:201 +#: ../../content/contributing/documentation/content_guidelines.rst:202 msgid "**Select** the relevant area, rather than keeping the full window." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:202 +#: ../../content/contributing/documentation/content_guidelines.rst:203 msgid "If necessary, you can **edit** the screenshot to remove unnecessary fields and to narrow even more Odoo's display." msgstr "" @@ -1684,71 +1971,71 @@ msgstr "" msgid "Three tips to take good screenshots for the Odoo documentation." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:210 +#: ../../content/contributing/documentation/content_guidelines.rst:211 msgid "Resizing the window's width is the most important step to do as Odoo's responsive design automatically resizes all fields to match the window's width." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:216 +#: ../../content/contributing/documentation/content_guidelines.rst:217 msgid "Media files" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:218 +#: ../../content/contributing/documentation/content_guidelines.rst:219 msgid "A **media filename**:" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:220 +#: ../../content/contributing/documentation/content_guidelines.rst:221 msgid "is written in **lower-case letters**" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:221 +#: ../../content/contributing/documentation/content_guidelines.rst:222 msgid "is **relevant** to the media's content. (E.g., :file:`screenshot-tips.gif`.)" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:222 +#: ../../content/contributing/documentation/content_guidelines.rst:223 msgid "separates its words with a **hyphen** ``-`` (E.g., :file:`awesome-filename.png`.)" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:224 +#: ../../content/contributing/documentation/content_guidelines.rst:225 msgid "Each document has its own folder in which the media files are located. The folder's name must be the same as the document's filename." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:227 +#: ../../content/contributing/documentation/content_guidelines.rst:228 msgid "For example, the document :file:`doc_filename.rst` refers to two images that are placed in the folder ``doc_filename``." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:239 +#: ../../content/contributing/documentation/content_guidelines.rst:240 msgid "Previously, image filenames would mostly be named with numbers (e.g., :file:`feature01.png`) and placed in a single ``media`` folder. While it is advised not to name your *new* images in that fashion, it is also essential **not to rename unchanged files**, as doing this would double the weight of renamed image files on the repository. They will eventually all be replaced as the content referencing those images is updated." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:248 +#: ../../content/contributing/documentation/content_guidelines.rst:249 msgid "ALT tags" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:250 +#: ../../content/contributing/documentation/content_guidelines.rst:251 msgid "An **ALT tag** is a *text alternative* to an image. This text is displayed if the browser fails to render the image. It is also helpful for users who are visually impaired. Finally, it helps search engines, such as Google, to understand what the image is about and index it correctly, which improves the :abbr:`SEO (Search Engine Optimization)` significantly." msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:255 +#: ../../content/contributing/documentation/content_guidelines.rst:256 msgid "Good ALT tags are:" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:257 +#: ../../content/contributing/documentation/content_guidelines.rst:258 msgid "**Short** (one line maximum)" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:258 +#: ../../content/contributing/documentation/content_guidelines.rst:259 msgid "**Not a repetition** of a previous sentence or title" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:259 +#: ../../content/contributing/documentation/content_guidelines.rst:260 msgid "A **good description** of the action happening on the image" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:260 +#: ../../content/contributing/documentation/content_guidelines.rst:261 msgid "Easily **understandable** if read aloud" msgstr "" -#: ../../content/contributing/documentation/content_guidelines.rst:263 +#: ../../content/contributing/documentation/content_guidelines.rst:264 msgid ":ref:`RST cheat sheet: image directive `" msgstr "" @@ -2595,7 +2882,7 @@ msgid "Use relative links for internal URLs" msgstr "" #: ../../content/contributing/documentation/rst_guidelines.rst:10 -msgid "If you need to reference an internal documentation page or a file that is not sitting in the same directory as your current page, always make use of *relative file paths* rather than *absolute file paths*. An absolute file path indicates the location of the target from the root of its file tree. A relative file path makes use of smart notations (such as ``../`` git that redirects to the parent folder) to indicate the location of the target *relative* to that of the source document." +msgid "If you need to reference an internal documentation page or a file that is not sitting in the same directory as your current page, always make use of *relative file paths* rather than *absolute file paths*. An absolute file path indicates the location of the target from the root of its file tree. A relative file path makes use of smart notations (such as ``../`` that redirects to the parent folder) to indicate the location of the target *relative* to that of the source document." msgstr "" #: ../../content/contributing/documentation/rst_guidelines.rst:19 diff --git a/locale/sources/sales.pot b/locale/sources/sales.pot index c7ae16296..08029d231 100644 --- a/locale/sources/sales.pot +++ b/locale/sources/sales.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-23 09:13+0000\n" +"POT-Creation-Date: 2023-01-13 14:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -66,6 +66,7 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/payment/worldline.rst:12 #: ../../content/applications/sales/point_of_sale/restaurant/restaurant.rst:14 #: ../../content/applications/sales/point_of_sale/restaurant/split.rst:10 +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:11 #: ../../content/applications/sales/point_of_sale/shop/barcode.rst:9 #: ../../content/applications/sales/point_of_sale/shop/cash_rounding.rst:17 #: ../../content/applications/sales/point_of_sale/shop/reprint.rst:8 @@ -2635,35 +2636,97 @@ msgid "When you use it, you will be able to select what that guest should had an msgstr "" #: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:3 -msgid "Integrate a tip option into payment" +msgid "Tips" msgstr "" #: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:5 -msgid "As it is customary to tip in many countries all over the world, it is important to have the option in your PoS interface." +msgid "Tipping is customary in multiple countries. Point of Sale allows tipping in :doc:`shops <../overview/getting_started>`, :doc:`bars <../restaurant>`, or :doc:`restaurants <../restaurant>`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:9 -msgid "Configure Tipping" +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:13 +msgid "To allow tipping in your POS, activate the :guilabel:`Tips` feature in :menuselection:`Point of Sale --> Configuration --> Settings`. At the top of the page, select the POS in which you wish to allow **tipping**, scroll down to the :guilabel:`Payment` section and check :guilabel:`Tips`. Once enabled, add a :guilabel:`Tip Product` in the corresponding field, and save. The designated product will be used as a reference on customers' receipts." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:11 -msgid "To activate the *Tips* feature, go to :menuselection:`Point of Sale --> Configuration --> Point of sale` and select your PoS." +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:None +msgid "enable tips in a POS" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:14 -msgid "Under the Bills & Receipts category, you will find *Tips*. Select it and create a *Tip Product* such as *Tips* in this case." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:21 -msgid "Add Tips to the bill" -msgstr "" - -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:23 -msgid "Once on the payment interface, you now have a new *Tip* button" +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:26 +msgid "Tip products" msgstr "" #: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:28 -msgid "Add the tip your customer wants to leave and process to the payment." +msgid "**Tip products** can be created on the spot. To do so, enter a product's name in the :ref:`Tip Product ` field and click :guilabel:`Create` or press **enter**. The product is automatically configured to be used as a tip at the payment screen." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:32 +msgid "However, if you wish to be able to select the tip product in a POS session, you must activate the **Available in POS** setting. To do so, click :guilabel:`Create and edit...` to open the product configuration form. Then, go to the :guilabel:`Sales` tab, tick the :guilabel:`Available in POS` checkbox, and click :guilabel:`Save & Close`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:38 +msgid "When you create a product to use as a tip, leave the **product type** as :guilabel:`Consumable` to avoid unnecessary inventory movements." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:40 +msgid "You can only select one tip product per POS, but you can choose a different one for each." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:43 +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:75 +msgid "Tip using an Adyen terminal" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:45 +msgid "If you use an :doc:`Adyen <../payment/adyen>` payment terminal and wish to enable **tips** using the terminal, check :guilabel:`Add tip through payment terminal (Adyen)` below the :ref:`tip settings `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:50 +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:82 +msgid "Tip after payment" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:52 +msgid "If you use a POS system in a bar or a restaurant, you can enable :guilabel:`Add tip after payment (North America specific)`. Doing so generates a bill to print and complete manually by the customer and the waiter. That bill indicates the tip value the customer chooses to give after the payment." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:57 +msgid "To use this feature, the selected payment method must have a bank journal attributed." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:60 +msgid "Add tips" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:62 +msgid "To add tips to an order, :doc:`access the payment screen <../overview/getting_started>` and click :guilabel:`♥ Tip`. Then, enter the tipping amount, click :guilabel:`Confirm` to validate, and process the payment." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:None +msgid "tip popup window" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:70 +msgid "Alternatively, you can select the :ref:`tip product ` on the POS interface to add it to the cart. When selected, the product is automatically set as a tip, and its default value equals its **Sales Price**." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:77 +msgid "During checkout, select **Adyen** as the payment terminal, and send the payment request to the device by clicking :guilabel:`Send`. The customers are asked to enter the desired tipping amount on the terminal's screen before proceeding to the payment." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:84 +msgid "At checkout, select a card payment method and click :guilabel:`Close Tab`. Doing so generates a bill to complete by the customer." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:None +msgid "tipping bill after payment to complete by customers" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:91 +msgid "On the following screen, click the percentage (:guilabel:`15%`, :guilabel:`20%`, :guilabel:`25%`), :guilabel:`No Tip`, or enter the tipping amount the customer chose to give. Then, click :guilabel:`Settle` to move to the following order." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:None +msgid "screen to select a tip amount to collect after payment" msgstr "" #: ../../content/applications/sales/point_of_sale/shop.rst:5