Browse Source
Merge pull request #387 from Tecnativa/9.0-web_translate_dialog
Merge pull request #387 from Tecnativa/9.0-web_translate_dialog
[9.0][MIG] web_translate_dialogpull/400/head
Pedro M. Baeza
9 years ago
committed by
GitHub
16 changed files with 819 additions and 317 deletions
-
55web_translate_dialog/README.rst
-
56web_translate_dialog/__openerp__.py
-
54web_translate_dialog/i18n/ar.po
-
54web_translate_dialog/i18n/de.po
-
51web_translate_dialog/i18n/es.po
-
54web_translate_dialog/i18n/fi.po
-
51web_translate_dialog/i18n/fr.po
-
53web_translate_dialog/i18n/hr.po
-
54web_translate_dialog/i18n/it.po
-
54web_translate_dialog/i18n/pt_BR.po
-
54web_translate_dialog/i18n/sl.po
-
58web_translate_dialog/i18n/tr.po
-
3web_translate_dialog/static/src/css/base.css
-
403web_translate_dialog/static/src/js/web_translate_dialog.js
-
71web_translate_dialog/static/src/xml/base.xml
-
11web_translate_dialog/view/web_translate.xml
@ -1,35 +1,72 @@ |
|||||
|
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
||||
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html |
||||
|
:alt: License: AGPL-3 |
||||
|
|
||||
|
==================== |
||||
Web Translate Dialog |
Web Translate Dialog |
||||
==================== |
==================== |
||||
|
|
||||
This module replaces the standard translation view by an easy-to-use pop-up view where you can translate all the fields of the object in all the installed languages (for the ancient users, it may remind them the translation pop-up of OpenERP 6.1). |
|
||||
|
This module replaces the standard translation view by an easy-to-use pop-up |
||||
|
view where you can translate all the fields of the object in all the installed |
||||
|
languages (for long-time users, it may remind them the translation pop-up of |
||||
|
OpenERP 6.1). |
||||
|
|
||||
|
This module also features: |
||||
|
|
||||
This module also features : |
|
||||
* Adds a *Translate* button item in the *More* menu |
|
||||
* Support HTML fields |
|
||||
|
* A *Translate* button item in the *More* menu |
||||
|
* Support for HTML fields |
||||
* Autosize the textareas to the size of the content |
* Autosize the textareas to the size of the content |
||||
|
|
||||
Usage |
Usage |
||||
===== |
===== |
||||
|
|
||||
Go to an object that has translatable fields (*Products* for example) and select *More > Translate* (or click on *Edit* and then click on the flag at the top-right of one of the translatable fields): the translation view will pop-up on your screen. This translation view contains all the translatable fields of the object. |
|
||||
|
Go to an object that has translatable fields (*Products* for example) and |
||||
|
select *More > Translate* (or click on *Edit* and then click on the flag at |
||||
|
the top-right of one of the translatable fields): the translation view will |
||||
|
pop-up on your screen. This translation view contains all the translatable |
||||
|
fields of the object. |
||||
|
|
||||
|
If you click in the standard translate icon then the translation view will |
||||
|
pop-up with this field only. |
||||
|
|
||||
|
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas |
||||
|
:alt: Try me on Runbot |
||||
|
:target: https://runbot.odoo-community.org/runbot/162/9.0 |
||||
|
|
||||
|
|
||||
|
Bug Tracker |
||||
|
=========== |
||||
|
|
||||
|
Bugs are tracked on `GitHub Issues |
||||
|
<https://github.com/OCA/web/issues>`_. In case of trouble, please |
||||
|
check there if your issue has already been reported. If you spotted it first, |
||||
|
help us smashing it by providing a detailed and welcomed feedback. |
||||
|
|
||||
Credits |
Credits |
||||
======= |
======= |
||||
|
|
||||
|
Images |
||||
|
------ |
||||
|
|
||||
|
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_. |
||||
|
|
||||
Contributors |
Contributors |
||||
------------ |
------------ |
||||
|
|
||||
* Guewen Baconnier (Camptocamp) |
* Guewen Baconnier (Camptocamp) |
||||
|
* Antonio Espinosa <antonio.espinosa@tecnativa.com> |
||||
|
|
||||
Maintainer |
Maintainer |
||||
---------- |
---------- |
||||
|
|
||||
.. image:: http://odoo-community.org/logo.png |
|
||||
|
.. image:: https://odoo-community.org/logo.png |
||||
:alt: Odoo Community Association |
:alt: Odoo Community Association |
||||
:target: http://odoo-community.org |
|
||||
|
:target: https://odoo-community.org |
||||
|
|
||||
This module is maintained by the OCA. |
This module is maintained by the OCA. |
||||
|
|
||||
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. |
|
||||
|
OCA, or the Odoo Community Association, is a nonprofit organization whose |
||||
|
mission is to support the collaborative development of Odoo features and |
||||
|
promote its widespread use. |
||||
|
|
||||
To contribute to this module, please visit http://odoo-community.org. |
|
||||
|
To contribute to this module, please visit https://odoo-community.org. |
@ -1,32 +1,26 @@ |
|||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||
############################################################################## |
|
||||
# |
|
||||
# Author: Guewen Baconnier |
|
||||
# Copyright 2012 Camptocamp SA |
|
||||
# |
|
||||
# This program is free software: you can redistribute it and/or modify |
|
||||
# it under the terms of the GNU Affero General Public License as |
|
||||
# published by the Free Software Foundation, either version 3 of the |
|
||||
# License, or (at your option) any later version. |
|
||||
# |
|
||||
# This program is distributed in the hope that it will be useful, |
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||
# GNU Affero General Public License for more details. |
|
||||
# |
|
||||
# You should have received a copy of the GNU Affero General Public License |
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
||||
|
|
||||
{"name": "Web Translate Dialog", |
|
||||
"category": "Web", |
|
||||
"summary": "Easy-to-use pop-up to translate fields in several languages", |
|
||||
"license": "AGPL-3", |
|
||||
"author": "Camptocamp,Odoo Community Association (OCA)", |
|
||||
"version": "8.0.1.0.0", |
|
||||
"depends": ['web'], |
|
||||
'data': ['view/web_translate.xml'], |
|
||||
'qweb': ["static/src/xml/base.xml"], |
|
||||
'installable': False, |
|
||||
} |
|
||||
|
# Copyright 2012 Guewen Baconnier (Camptocamp SA) |
||||
|
# Copyright 2016 Antonio Espinosa <antonio.espinosa@tecnativa.com> |
||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
{ |
||||
|
"name": "Web Translate Dialog", |
||||
|
"summary": "Easy-to-use pop-up to translate fields in several languages", |
||||
|
"version": "9.0.1.0.0", |
||||
|
"category": "Web", |
||||
|
"website": "https://odoo-community.org/", |
||||
|
"author": "Camptocamp, " |
||||
|
"Tecnativa, " |
||||
|
"Odoo Community Association (OCA)", |
||||
|
"license": "AGPL-3", |
||||
|
"application": False, |
||||
|
"installable": True, |
||||
|
"depends": [ |
||||
|
"web", |
||||
|
], |
||||
|
"data": [ |
||||
|
"view/web_translate.xml", |
||||
|
], |
||||
|
"qweb": [ |
||||
|
"static/src/xml/base.xml", |
||||
|
] |
||||
|
} |
@ -0,0 +1,54 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_translate_dialog |
||||
|
# |
||||
|
# Translators: |
||||
|
# SaFi J. <safi2266@gmail.com>, 2015 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: web (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2015-12-16 07:41+0000\n" |
||||
|
"PO-Revision-Date: 2015-12-16 17:26+0000\n" |
||||
|
"Last-Translator: SaFi J. <safi2266@gmail.com>\n" |
||||
|
"Language-Team: Arabic (http://www.transifex.com/oca/OCA-web-8-0/language/ar/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: ar\n" |
||||
|
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:30 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "إلغاء" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:7 |
||||
|
#, python-format |
||||
|
msgid "Field" |
||||
|
msgstr "الحقل" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:29 |
||||
|
#, python-format |
||||
|
msgid "Save" |
||||
|
msgstr "حفظ" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:15 |
||||
|
#, python-format |
||||
|
msgid "Translate" |
||||
|
msgstr "ترجم" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:37 |
||||
|
#, python-format |
||||
|
msgid "Translations" |
||||
|
msgstr "الترجمات" |
@ -0,0 +1,54 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_translate_dialog |
||||
|
# |
||||
|
# Translators: |
||||
|
# Rudolf Schnapka <rs@techno-flex.de>, 2016 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: web (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-01-10 07:31+0000\n" |
||||
|
"PO-Revision-Date: 2016-01-18 20:58+0000\n" |
||||
|
"Last-Translator: Rudolf Schnapka <rs@techno-flex.de>\n" |
||||
|
"Language-Team: German (http://www.transifex.com/oca/OCA-web-8-0/language/de/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: de\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:30 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Abbrechen" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:7 |
||||
|
#, python-format |
||||
|
msgid "Field" |
||||
|
msgstr "Feld" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:29 |
||||
|
#, python-format |
||||
|
msgid "Save" |
||||
|
msgstr "Speichern" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:15 |
||||
|
#, python-format |
||||
|
msgid "Translate" |
||||
|
msgstr "Übersetze" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:37 |
||||
|
#, python-format |
||||
|
msgid "Translations" |
||||
|
msgstr "Übersetzungen" |
@ -0,0 +1,54 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_translate_dialog |
||||
|
# |
||||
|
# Translators: |
||||
|
# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2016 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: web (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-01-10 07:31+0000\n" |
||||
|
"PO-Revision-Date: 2016-02-01 09:53+0000\n" |
||||
|
"Last-Translator: Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>\n" |
||||
|
"Language-Team: Finnish (http://www.transifex.com/oca/OCA-web-8-0/language/fi/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: fi\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:30 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Peru" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:7 |
||||
|
#, python-format |
||||
|
msgid "Field" |
||||
|
msgstr "Kenttä" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:29 |
||||
|
#, python-format |
||||
|
msgid "Save" |
||||
|
msgstr "Tallenna" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:15 |
||||
|
#, python-format |
||||
|
msgid "Translate" |
||||
|
msgstr "Käännä" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:37 |
||||
|
#, python-format |
||||
|
msgid "Translations" |
||||
|
msgstr "Käännökset" |
@ -0,0 +1,53 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_translate_dialog |
||||
|
# |
||||
|
# Translators: |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: web (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-06-24 00:46+0000\n" |
||||
|
"PO-Revision-Date: 2015-11-07 11:21+0000\n" |
||||
|
"Last-Translator: <>\n" |
||||
|
"Language-Team: Croatian (http://www.transifex.com/oca/OCA-web-8-0/language/hr/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: hr\n" |
||||
|
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:30 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Otkaži" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:7 |
||||
|
#, python-format |
||||
|
msgid "Field" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:29 |
||||
|
#, python-format |
||||
|
msgid "Save" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:15 |
||||
|
#, python-format |
||||
|
msgid "Translate" |
||||
|
msgstr "" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:37 |
||||
|
#, python-format |
||||
|
msgid "Translations" |
||||
|
msgstr "" |
@ -0,0 +1,54 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_translate_dialog |
||||
|
# |
||||
|
# Translators: |
||||
|
# Paolo Valier, 2016 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: web (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-17 07:30+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-19 10:15+0000\n" |
||||
|
"Last-Translator: Paolo Valier\n" |
||||
|
"Language-Team: Italian (http://www.transifex.com/oca/OCA-web-8-0/language/it/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: it\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:30 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Annulla" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:7 |
||||
|
#, python-format |
||||
|
msgid "Field" |
||||
|
msgstr "Campo" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:29 |
||||
|
#, python-format |
||||
|
msgid "Save" |
||||
|
msgstr "Salva" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:15 |
||||
|
#, python-format |
||||
|
msgid "Translate" |
||||
|
msgstr "Traduci" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:37 |
||||
|
#, python-format |
||||
|
msgid "Translations" |
||||
|
msgstr "Traduzioni" |
@ -0,0 +1,54 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_translate_dialog |
||||
|
# |
||||
|
# Translators: |
||||
|
# danimaribeiro <danimaribeiro@gmail.com>, 2016 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: web (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2016-03-11 02:17+0000\n" |
||||
|
"PO-Revision-Date: 2016-03-05 16:20+0000\n" |
||||
|
"Last-Translator: danimaribeiro <danimaribeiro@gmail.com>\n" |
||||
|
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-web-8-0/language/pt_BR/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: pt_BR\n" |
||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:30 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Cancelar" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:7 |
||||
|
#, python-format |
||||
|
msgid "Field" |
||||
|
msgstr "Campo" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:29 |
||||
|
#, python-format |
||||
|
msgid "Save" |
||||
|
msgstr "Salvar" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:15 |
||||
|
#, python-format |
||||
|
msgid "Translate" |
||||
|
msgstr "Traduzir" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:37 |
||||
|
#, python-format |
||||
|
msgid "Translations" |
||||
|
msgstr "Traduções" |
@ -0,0 +1,54 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * web_translate_dialog |
||||
|
# |
||||
|
# Translators: |
||||
|
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015 |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: web (8.0)\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2015-11-23 13:46+0000\n" |
||||
|
"PO-Revision-Date: 2015-11-08 05:47+0000\n" |
||||
|
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n" |
||||
|
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-web-8-0/language/sl/)\n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Language: sl\n" |
||||
|
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:30 |
||||
|
#, python-format |
||||
|
msgid "Cancel" |
||||
|
msgstr "Preklic" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:7 |
||||
|
#, python-format |
||||
|
msgid "Field" |
||||
|
msgstr "Polje" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/xml/base.xml:29 |
||||
|
#, python-format |
||||
|
msgid "Save" |
||||
|
msgstr "Shrani" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:15 |
||||
|
#, python-format |
||||
|
msgid "Translate" |
||||
|
msgstr "Prevod" |
||||
|
|
||||
|
#. module: web_translate_dialog |
||||
|
#. openerp-web |
||||
|
#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:37 |
||||
|
#, python-format |
||||
|
msgid "Translations" |
||||
|
msgstr "Prevodi" |
@ -1,209 +1,228 @@ |
|||||
openerp.web_translate_dialog = function (instance) { |
|
||||
|
/* Copyright 2012 Guewen Baconnier (Camptocamp SA) |
||||
|
Copyright 2016 Antonio Espinosa <antonio.espinosa@tecnativa.com> |
||||
|
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
|
||||
|
|
||||
"use strict"; |
|
||||
|
odoo.define('web_translate_dialog.translate_dialog', function(require){ |
||||
|
"use strict"; |
||||
|
|
||||
var QWeb = instance.web.qweb, |
|
||||
_t = instance.web._t, |
|
||||
_lt = instance.web._lt; |
|
||||
|
var _ = require('_'); |
||||
|
var $ = require('$'); |
||||
|
|
||||
instance.web.FormView.include({ |
|
||||
load_form: function(data) { |
|
||||
var self = this; |
|
||||
this._super(data); |
|
||||
if (this.sidebar) { |
|
||||
this.sidebar.add_items('other', _.compact([ |
|
||||
self.is_action_enabled('edit') && { label: _t('Translate'), callback: self.on_button_translate }, |
|
||||
])); |
|
||||
} |
|
||||
}, |
|
||||
on_button_translate: function() { |
|
||||
var self = this; |
|
||||
$.when(this.has_been_loaded).then(function() { |
|
||||
self.open_translate_dialog(this); |
|
||||
}); |
|
||||
}, |
|
||||
}); |
|
||||
|
var core = require('web.core'); |
||||
|
var data = require('web.data'); |
||||
|
var common = require('web.form_common'); |
||||
|
|
||||
instance.web.View.include({ |
|
||||
open_translate_dialog: function() { |
|
||||
new instance.web_translate_dialog.TranslateDialog(this).open(); |
|
||||
} |
|
||||
}); |
|
||||
|
var FormView = require('web.FormView'); |
||||
|
var View = require('web.View'); |
||||
|
var Dialog = require('web.Dialog'); |
||||
|
|
||||
instance.web_translate_dialog.TranslateDialog = instance.web.Dialog.extend({ |
|
||||
template: "TranslateDialog", |
|
||||
init: function(parent, options, content) { |
|
||||
this._super(parent, |
|
||||
{title: _t("Translations"), |
|
||||
width: '90%', |
|
||||
height: '80%'}, |
|
||||
content); |
|
||||
this.view_language = this.session.user_context.lang; |
|
||||
this.view = parent; |
|
||||
this.view_type = parent.fields_view.type || ''; |
|
||||
this.$view_form = null; |
|
||||
this.$sidebar_form = null; |
|
||||
this.translatable_fields_keys = _.map(this.view.translatable_fields || [], function(i) { return i.name;}); |
|
||||
this.languages = null; |
|
||||
this.languages_loaded = $.Deferred(); |
|
||||
(new instance.web.DataSetSearch(this, |
|
||||
'res.lang', |
|
||||
this.view.dataset.get_context(), |
|
||||
[['translatable', '=', '1']])) |
|
||||
.read_slice(['code', 'name'], { sort: 'id' }) |
|
||||
.then(this.on_languages_loaded); |
|
||||
}, |
|
||||
on_languages_loaded: function(langs) { |
|
||||
this.languages = langs; |
|
||||
this.languages_loaded.resolve(); |
|
||||
}, |
|
||||
open: function() { |
|
||||
var self = this, |
|
||||
sup = this._super; |
|
||||
// the template needs the languages
|
|
||||
$.when(this.languages_loaded).then(function() { |
|
||||
return sup.call(self); |
|
||||
}); |
|
||||
}, |
|
||||
start: function() { |
|
||||
var self = this; |
|
||||
this.$el.find('.oe_translation_field').change(function() { |
|
||||
$(this).toggleClass('touched', ($(this).val() != $(this).attr('data-value'))); |
|
||||
}); |
|
||||
this.$buttons.html(QWeb.render("TranslateDialog.buttons")); |
|
||||
this.$buttons.find(".oe_form_translate_dialog_save_button").click(function(){ |
|
||||
self.on_button_save(); |
|
||||
self.on_button_close(); |
|
||||
}); |
|
||||
this.$buttons.find(".oe_form_translate_dialog_cancel_button").click(function(){ |
|
||||
self.on_button_close(); |
|
||||
}); |
|
||||
this.initialize_html_fields(); |
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
this.do_load_fields_values(); |
|
||||
}, |
|
||||
initialize_html_fields: function() { |
|
||||
this.$el.find('.oe_form_field_html textarea').each(function() { |
|
||||
var $textarea = $(this); |
|
||||
var width = 100; // forced to fixed size on initialization
|
|
||||
// will be changed to percentage right after
|
|
||||
// the creation
|
|
||||
var height = 250; |
|
||||
$textarea.cleditor({ |
|
||||
width: width, // width not including margins, borders or padding
|
|
||||
height: height, // height not including margins, borders or padding
|
|
||||
controls: // controls to add to the toolbar
|
|
||||
"bold italic underline strikethrough " + |
|
||||
"| removeformat | bullets numbering | outdent " + |
|
||||
"indent | link unlink | source", |
|
||||
bodyStyle: // style to assign to document body contained within the editor
|
|
||||
"margin:4px; color:#4c4c4c; font-size:13px; font-family:'Lucida Grande',Helvetica,Verdana,Arial,sans-serif; cursor:text" |
|
||||
}); |
|
||||
|
var translateDialog = Dialog.extend({ |
||||
|
template: "TranslateDialog", |
||||
|
init: function(parent, field, content) { |
||||
|
this._super(parent, |
||||
|
{title: _t("Translations"), |
||||
|
width: '90%', |
||||
|
height: '80%'}, |
||||
|
content); |
||||
|
this.view_language = this.session.user_context.lang; |
||||
|
this.view = parent; |
||||
|
this.view_type = parent.fields_view.type || ''; |
||||
|
this.$view_form = null; |
||||
|
this.$sidebar_form = null; |
||||
|
if (!!field) { |
||||
|
this.translatable_fields_keys = [field]; |
||||
|
this.translatable_fields = _.filter( |
||||
|
this.view.translatable_fields || [], |
||||
|
function(i) {return i.name == field;} |
||||
|
); |
||||
|
} else { |
||||
|
this.translatable_fields_keys = _.map( |
||||
|
this.view.translatable_fields || [], |
||||
|
function(i) {return i.name;} |
||||
|
); |
||||
|
this.translatable_fields = this.view.translatable_fields.slice(0); |
||||
|
} |
||||
|
this.languages = null; |
||||
|
this.languages_loaded = $.Deferred(); |
||||
|
(new data.DataSetSearch(this, 'res.lang', this.view.dataset.get_context(), |
||||
|
[['translatable', '=', '1']])) |
||||
|
.read_slice(['code', 'name'], { sort: 'id' }) |
||||
|
.then(this.on_languages_loaded); |
||||
|
}, |
||||
|
on_languages_loaded: function(langs) { |
||||
|
this.languages = langs; |
||||
|
this.languages_loaded.resolve(); |
||||
|
}, |
||||
|
open: function() { |
||||
|
var self = this, |
||||
|
sup = this._super; |
||||
|
// the template needs the languages
|
||||
|
$.when(this.languages_loaded).then(function() { |
||||
|
return sup.call(self); |
||||
|
}); |
||||
|
}, |
||||
|
start: function() { |
||||
|
var self = this; |
||||
|
this.$el.find('.oe_translation_field').change(function() { |
||||
|
$(this).toggleClass('touched', ($(this).val() != $(this).attr('data-value'))); |
||||
|
}); |
||||
|
this.$footer.html(QWeb.render("TranslateDialog.buttons")); |
||||
|
this.$footer.find(".oe_form_translate_dialog_save_button").click(function(){ |
||||
|
self.on_button_save(); |
||||
|
self.on_button_close(); |
||||
|
}); |
||||
|
this.$footer.find(".oe_form_translate_dialog_cancel_button").click(function(){ |
||||
|
self.on_button_close(); |
||||
|
}); |
||||
|
|
||||
var $cleditor = $textarea.cleditor()[0]; |
|
||||
// Down to -- end, this is a workaround for the bug
|
|
||||
// https://bugs.launchpad.net/openerp-web/+bug/1258463
|
|
||||
// The editor is initially created with a fixed size so
|
|
||||
// the buggy event is not bound to $(window), then we restore
|
|
||||
// a percentage width and bind the "normal" event without the
|
|
||||
// CHM's buggy change.
|
|
||||
$cleditor.$main.width('95%'); |
|
||||
$cleditor.options.width = '95%'; |
|
||||
$(window).resize(function() { |
|
||||
//Forcefully blurred iframe contentWindow, chrome, IE, safari doesn't trigger blur on window resize and due to which text disappears
|
|
||||
var contentWindow = $cleditor.$frame[0].contentWindow; |
|
||||
if(!$.browser.mozilla && contentWindow){ |
|
||||
$(contentWindow).trigger('blur'); |
|
||||
|
this.do_load_fields_values(); |
||||
|
}, |
||||
|
initialize_html_fields: function(lang) { |
||||
|
var self = this; |
||||
|
_.each(this.translatable_fields_keys, function(f) { |
||||
|
// Initialize summernote if HTML field
|
||||
|
self.$el.find('.oe_form_field_html .oe_translation_field[name="' + lang.code + '-' + f + '"]').each(function() { |
||||
|
var $parent = $(this).summernote({ |
||||
|
'focus': false, |
||||
|
'toolbar': [ |
||||
|
['style', ['style']], |
||||
|
['font', ['bold', 'italic', 'underline', 'clear']], |
||||
|
['fontsize', ['fontsize']], |
||||
|
['color', ['color']], |
||||
|
['para', ['ul', 'ol', 'paragraph']], |
||||
|
['table', ['table']], |
||||
|
['insert', ['link', 'picture']], |
||||
|
['history', ['undo', 'redo']] |
||||
|
], |
||||
|
'prettifyHtml': false, |
||||
|
'styleWithSpan': false, |
||||
|
'inlinemedia': ['p'], |
||||
|
'lang': "odoo", |
||||
|
'onChange': function (value) { |
||||
|
$(this).toggleClass('touched', (value != $(this).attr('data-value'))); |
||||
} |
} |
||||
|
}).parent(); |
||||
|
// Triggers a mouseup to refresh the editor toolbar
|
||||
|
$parent.find('.note-editable').trigger('mouseup'); |
||||
|
$parent.find('.note-editing-area').css({ |
||||
|
minHeight:'100px', |
||||
|
minWidth:'260px', |
||||
}); |
}); |
||||
$cleditor.refresh(); |
|
||||
// -- end
|
|
||||
|
}); |
||||
|
}); |
||||
|
}, |
||||
|
set_fields_values: function(lang, values) { |
||||
|
var self = this; |
||||
|
_.each(this.translatable_fields_keys, function(f) { |
||||
|
self.$el.find('.oe_translation_field[name="' + lang.code + '-' + f + '"]') |
||||
|
.val(values[f] || '') |
||||
|
.attr('data-value', values[f] || ''); |
||||
|
}); |
||||
|
this.$el.find('textarea.oe_translation_field').css({ |
||||
|
minHeight:'100px', |
||||
|
}); |
||||
|
$(window).resize(); // triggers the autosize
|
||||
|
this.initialize_html_fields(lang); |
||||
|
}, |
||||
|
do_load_fields_values: function() { |
||||
|
var self = this, |
||||
|
deferred = []; |
||||
|
|
||||
$cleditor.change(function() { |
|
||||
this.updateTextArea(); |
|
||||
this.$area.toggleClass('touched', |
|
||||
(this.$area.val() != this.$area.attr('data-value'))); |
|
||||
|
this.$el.find('.oe_translation_field').val('').removeClass('touched'); |
||||
|
_.each(self.languages, function(lg) { |
||||
|
var deff = $.Deferred(); |
||||
|
deferred.push(deff); |
||||
|
if (lg.code === self.view_language) { |
||||
|
var values = {}; |
||||
|
_.each(self.translatable_fields_keys, function(field) { |
||||
|
values[field] = self.view.fields[field].get_value(); |
||||
}); |
}); |
||||
|
self.set_fields_values(lg, values); |
||||
|
deff.resolve(); |
||||
|
} else { |
||||
|
self.view.dataset.call( |
||||
|
'read', |
||||
|
[[self.view.datarecord.id], |
||||
|
self.translatable_fields_keys, |
||||
|
self.view.dataset.get_context({ |
||||
|
'lang': lg.code |
||||
|
})]).done(function (rows) { |
||||
|
self.set_fields_values(lg, rows[0]); |
||||
|
deff.resolve(); |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
return deferred; |
||||
|
}, |
||||
|
on_button_save: function() { |
||||
|
var translations = {}, |
||||
|
self = this, |
||||
|
translation_mutex = new $.Mutex(); |
||||
|
self.$el.find('.oe_translation_field.touched').each(function() { |
||||
|
var field = $(this).attr('name').split('-'); |
||||
|
if (!translations[field[0]]) { |
||||
|
translations[field[0]] = {}; |
||||
|
} |
||||
|
translations[field[0]][field[1]] = $(this).val(); |
||||
|
}); |
||||
|
_.each(translations, function(text, code) { |
||||
|
if (code === self.view_language) { |
||||
|
self.view.set_values(text); |
||||
|
} |
||||
|
translation_mutex.exec(function() { |
||||
|
return new data.DataSet(self, self.view.dataset.model, |
||||
|
self.view.dataset.get_context()) |
||||
|
.write(self.view.datarecord.id, text, |
||||
|
{ context : { 'lang': code }}); |
||||
}); |
}); |
||||
}, |
|
||||
set_fields_values: function(lang, values) { |
|
||||
var self = this; |
|
||||
_.each(this.translatable_fields_keys, function(f) { |
|
||||
self.$el.find('.oe_translation_field[name="' + lang.code + '-' + f + '"]') |
|
||||
.val(values[f] || '') |
|
||||
.attr('data-value', values[f] || ''); |
|
||||
|
}); |
||||
|
this.close(); |
||||
|
}, |
||||
|
on_button_close: function() { |
||||
|
this.close(); |
||||
|
}, |
||||
|
|
||||
var $tarea = self.$el.find('.oe_form_field_html .oe_translation_field[name="' + lang.code + '-' + f + '"]'); |
|
||||
if ($tarea.length) { |
|
||||
$tarea.cleditor()[0].updateFrame(); |
|
||||
} |
|
||||
}); |
|
||||
var $textarea = this.$el.find('textarea.oe_translation_field'); |
|
||||
$textarea.css({minHeight:'100px'}); |
|
||||
$textarea.autosize(); |
|
||||
$(window).resize(); // triggers the autosize
|
|
||||
}, |
|
||||
do_load_fields_values: function() { |
|
||||
var self = this, |
|
||||
deferred = []; |
|
||||
|
}); |
||||
|
|
||||
this.$el.find('.oe_translation_field').val('').removeClass('touched'); |
|
||||
_.each(self.languages, function(lg) { |
|
||||
var deff = $.Deferred(); |
|
||||
deferred.push(deff); |
|
||||
if (lg.code === self.view_language) { |
|
||||
var values = {}; |
|
||||
_.each(self.translatable_fields_keys, function(field) { |
|
||||
values[field] = self.view.fields[field].get_value(); |
|
||||
}); |
|
||||
self.set_fields_values(lg, values); |
|
||||
deff.resolve(); |
|
||||
} else { |
|
||||
self.view.dataset.call( |
|
||||
'read', |
|
||||
[[self.view.datarecord.id], |
|
||||
self.translatable_fields_keys, |
|
||||
self.view.dataset.get_context({ |
|
||||
'lang': lg.code |
|
||||
})]).done(function (rows) { |
|
||||
self.set_fields_values(lg, rows[0]); |
|
||||
deff.resolve(); |
|
||||
}); |
|
||||
}; |
|
||||
}); |
|
||||
return deferred; |
|
||||
}, |
|
||||
on_button_save: function() { |
|
||||
var translations = {}, |
|
||||
self = this, |
|
||||
translation_mutex = new $.Mutex(); |
|
||||
self.$el.find('.oe_translation_field.touched').each(function() { |
|
||||
var field = $(this).attr('name').split('-'); |
|
||||
if (!translations[field[0]]) { |
|
||||
translations[field[0]] = {}; |
|
||||
} |
|
||||
translations[field[0]][field[1]] = $(this).val(); |
|
||||
}); |
|
||||
_.each(translations, function(data, code) { |
|
||||
if (code === self.view_language) { |
|
||||
self.view.set_values(data); |
|
||||
} |
|
||||
translation_mutex.exec(function() { |
|
||||
return new instance.web.DataSet(self, self.view.dataset.model, self.view.dataset.get_context()).write(self.view.datarecord.id, data, { context : { 'lang': code }}); |
|
||||
}); |
|
||||
}); |
|
||||
this.close(); |
|
||||
}, |
|
||||
on_button_close: function() { |
|
||||
this.close(); |
|
||||
}, |
|
||||
|
FormView.include({ |
||||
|
render_sidebar: function($node) { |
||||
|
this._super($node); |
||||
|
if (this.sidebar) { |
||||
|
this.sidebar.add_items('other', _.compact([ |
||||
|
this.is_action_enabled('edit') && |
||||
|
this.translatable_fields.length > 0 && { |
||||
|
label: _t('Translate'), |
||||
|
callback: this.on_button_translate |
||||
|
}, |
||||
|
])); |
||||
|
} |
||||
|
}, |
||||
|
on_button_translate: function() { |
||||
|
var self = this; |
||||
|
$.when(this.has_been_loaded).then(function() { |
||||
|
self.open_translate_dialog(); |
||||
|
}); |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
}); |
|
||||
|
View.include({ |
||||
|
open_translate_dialog: function(field) { |
||||
|
new translateDialog(this, field).open(); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
instance.web.form.AbstractField.include({ |
|
||||
on_translate: function() { |
|
||||
// the image next to the fields opens the translate dialog
|
|
||||
this.view.open_translate_dialog(); |
|
||||
}, |
|
||||
}); |
|
||||
|
common.AbstractField.include({ |
||||
|
on_translate: function() { |
||||
|
// the image next to the fields opens the translate dialog
|
||||
|
this.view.open_translate_dialog(this.name); |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
|
return { |
||||
|
translateDialog: translateDialog, |
||||
}; |
}; |
||||
|
|
||||
|
}); // odoo.define
|
@ -1,34 +1,51 @@ |
|||||
<templates> |
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!-- Copyright 2012 Guewen Baconnier (Camptocamp SA) |
||||
|
Copyright 2016 Antonio Espinosa <antonio.espinosa@tecnativa.com> |
||||
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> |
||||
|
<template> |
||||
|
|
||||
<t t-name="TranslateDialog"> |
<t t-name="TranslateDialog"> |
||||
<table t-if="widget.view.translatable_fields" class="oe_frame oe_forms oe_translation_form" border="0" cellpadding="0" cellspacing="0" width="100%"> |
|
||||
<tr> |
|
||||
<td class="oe_form_separator" width="1%" nowrap="nowrap"> |
|
||||
<div class="separator horizontal">Field</div> |
|
||||
</td> |
|
||||
<th t-foreach="widget.languages" align="left"> |
|
||||
<div class="separator horizontal"><t t-esc="name"/></div> |
|
||||
</th> |
|
||||
</tr> |
|
||||
<tr t-foreach="widget.view.translatable_fields" t-as="field" t-att-data-field="field.name"> |
|
||||
<td class="oe_form_frame_cell" width="1%" nowrap="nowrap"> |
|
||||
<label class="oe_label"><t t-esc="field.string"/>:</label> |
|
||||
</td> |
|
||||
<td t-foreach="widget.languages" t-as="lg" class="oe_form_frame_cell"> |
|
||||
<input t-if="field.field.type == 'char' || field.field.type == 'url'" type="text" t-attf-name="#{lg.code}-#{field.name}" value="" data-value="" class="oe_translation_field"/> |
|
||||
<textarea t-if="field.field.type == 'text'" t-attf-name="#{lg.code}-#{field.name}" data-value="" class="oe_translation_field" ></textarea> |
|
||||
<div t-if="field.field.type == 'html'" class="oe_form_field_html"> |
|
||||
<textarea class="oe_translation_field oe_form_field" t-attf-name="#{lg.code}-#{field.name}" data-value=""/> |
|
||||
</div> |
|
||||
</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
|
<div class="modal-body"> |
||||
|
<table t-if="widget.view.translatable_fields" |
||||
|
class="oe_frame oe_forms oe_translation_form" |
||||
|
border="0" cellpadding="0" cellspacing="0" width="100%"> |
||||
|
<tr> |
||||
|
<td class="oe_form_separator" width="1%" nowrap="nowrap"> |
||||
|
<div class="separator horizontal">Field</div> |
||||
|
</td> |
||||
|
<th t-foreach="widget.languages" align="left"> |
||||
|
<div class="separator horizontal"><t t-esc="name"/></div> |
||||
|
</th> |
||||
|
</tr> |
||||
|
<tr t-foreach="widget.translatable_fields" t-as="field" |
||||
|
t-att-data-field="field.name"> |
||||
|
<td class="oe_form_frame_cell" width="1%" nowrap="nowrap"> |
||||
|
<label class="oe_label"><t t-esc="field.string"/>:</label> |
||||
|
</td> |
||||
|
<td t-foreach="widget.languages" t-as="lg" class="oe_form_frame_cell"> |
||||
|
<input t-if="field.field.type == 'char' || field.field.type == 'url'" |
||||
|
type="text" t-attf-name="#{lg.code}-#{field.name}" |
||||
|
value="" data-value="" class="oe_translation_field"/> |
||||
|
<textarea t-if="field.field.type == 'text'" |
||||
|
t-attf-name="#{lg.code}-#{field.name}" data-value="" |
||||
|
class="oe_translation_field" ></textarea> |
||||
|
<div t-if="field.field.type == 'html'" class="oe_form_field_html"> |
||||
|
<textarea class="oe_translation_field oe_form_field" |
||||
|
t-attf-name="#{lg.code}-#{field.name}" data-value=""/> |
||||
|
</div> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
</div> |
||||
</t> |
</t> |
||||
|
|
||||
<t t-name="TranslateDialog.buttons"> |
<t t-name="TranslateDialog.buttons"> |
||||
<button class="oe_form_translate_dialog_save_button oe_button oe_highlight">Save</button> |
|
||||
<button class="oe_form_translate_dialog_cancel_button oe_button">Cancel</button> |
|
||||
|
<button class="btn btn-sm oe_button btn-primary oe_form_translate_dialog_save_button"> |
||||
|
<span>Save</span> |
||||
|
</button> |
||||
|
<button class="btn btn-sm oe_button btn-default oe_form_translate_dialog_cancel_button"> |
||||
|
<span>Cancel</span> |
||||
|
</button> |
||||
</t> |
</t> |
||||
|
|
||||
</templates> |
|
||||
|
|
||||
|
</template> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue