12 changed files with 448 additions and 0 deletions
			
			
		| @ -0,0 +1,24 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################## | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | |||
| #    Author: LINTO C T(<https://www.cybrosys.com>) | |||
| #    you can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    It is forbidden to publish, distribute, sublicense, or sell copies | |||
| #    of the Software or modified copies of the Software. | |||
| # | |||
| #    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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################## | |||
| 
 | |||
| import models | |||
| @ -0,0 +1,45 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################## | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | |||
| #    Author: Linto C T(<https://www.cybrosys.com>) | |||
| #    you can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    It is forbidden to publish, distribute, sublicense, or sell copies | |||
| #    of the Software or modified copies of the Software. | |||
| # | |||
| #    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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################## | |||
| { | |||
|     'name': 'Translation Helper', | |||
|     'version': '10.0.1.0.0', | |||
|     'category': 'Extra Tools', | |||
|     'summary': """Button To Translate New Words Using 'googletrans'.""", | |||
|     'description': """This module will help you to translate new words.""", | |||
|     'author': 'Cybrosys Techno Solutions', | |||
|     'website': "https://www.cybrosys.com", | |||
|     'company': 'Cybrosys Techno Solutions', | |||
|     'maintainer': 'Cybrosys Techno Solutions', | |||
|     'depends': ['base'], | |||
|     'external_dependencies': {'python': ['googletrans']}, | |||
|     'data': [ | |||
|         'data/lang_data.xml', | |||
|         'views/translation.xml', | |||
|         'security/ir.model.access.csv', | |||
|             ], | |||
|     'images': ['static/description/banner.jpg'], | |||
|     'license': 'LGPL-3', | |||
|     'installable': True, | |||
|     'auto_install': False, | |||
|     'application': False, | |||
| } | |||
| @ -0,0 +1,159 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <odoo noupdate="1"> | |||
|     <record model="languages.list" id="l1"> | |||
|         <field name="name">Greek / Ελληνικά</field> | |||
|         <field name="code">el</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l2"> | |||
|         <field name="name">English</field> | |||
|         <field name="code">en</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l3"> | |||
|         <field name="name">Catalan / Català</field> | |||
|         <field name="code">ca</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l4"> | |||
|         <field name="name">Italian / Italiano</field> | |||
|         <field name="code">it</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l5"> | |||
|         <field name="name">Swedish / svenska</field> | |||
|         <field name="code">sv</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l6"> | |||
|         <field name="name">Czech / Čeština</field> | |||
|         <field name="code">cs</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l7"> | |||
|         <field name="name">Arabic / الْعَرَبيّة</field> | |||
|         <field name="code">ar</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l8"> | |||
|         <field name="name">Estonian / Eesti keel</field> | |||
|         <field name="code">et</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l9"> | |||
|         <field name="name">Indonesian / Bahasa Indonesia</field> | |||
|         <field name="code">id</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l10"> | |||
|         <field name="name">Spanish / Español</field> | |||
|         <field name="code">es</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l11"> | |||
|         <field name="name">Russian / русский язык</field> | |||
|         <field name="code">es</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l12"> | |||
|         <field name="name">Dutch / Nederlands</field> | |||
|         <field name="code">nl</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l13"> | |||
|         <field name="name">Portuguese / Português</field> | |||
|         <field name="code">pt</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l13"> | |||
|         <field name="name">Turkish / Türkçe</field> | |||
|         <field name="code">tr</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l14"> | |||
|         <field name="name">Latvian / latviešu valoda</field> | |||
|         <field name="code">lv</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l15"> | |||
|         <field name="name">Lithuanian / Lietuvių kalba</field> | |||
|         <field name="code">lt</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l16"> | |||
|         <field name="name">Thai / ภาษาไทย</field> | |||
|         <field name="code">th</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l17"> | |||
|         <field name="name">Vietnamese / Tiếng Việt</field> | |||
|         <field name="code">vi</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l18"> | |||
|         <field name="name">Romanian / română</field> | |||
|         <field name="code">ro</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l19"> | |||
|         <field name="name">Polish / Język polski</field> | |||
|         <field name="code">pl</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l20"> | |||
|         <field name="name">French / Français</field> | |||
|         <field name="code">fr</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l21"> | |||
|         <field name="name">Bulgarian / български език</field> | |||
|         <field name="code">bg</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l22"> | |||
|         <field name="name">Ukrainian / українська</field> | |||
|         <field name="code">uk</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l23"> | |||
|         <field name="name">Croatian / hrvatski jezik</field> | |||
|         <field name="code">hr</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l24"> | |||
|         <field name="name">Slovenian / slovenščina</field> | |||
|         <field name="code">sl</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l25"> | |||
|         <field name="name">Danish / Dansk</field> | |||
|         <field name="code">da</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l26"> | |||
|         <field name="name">Persian / فارس</field> | |||
|         <field name="code">fa</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l27"> | |||
|         <field name="name">Hindi / हिंदी</field> | |||
|         <field name="code">hi</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l28"> | |||
|         <field name="name">Finnish / Suomi</field> | |||
|         <field name="code">fi</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l29"> | |||
|         <field name="name">Hungarian / Magyar</field> | |||
|         <field name="code">hu</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l30"> | |||
|         <field name="name">Japanese / 日本語</field> | |||
|         <field name="code">ja</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l31"> | |||
|         <field name="name">Norwegian Bokmål / Norsk bokmål</field> | |||
|         <field name="code">no</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l32"> | |||
|         <field name="name">Korean (KP) / 한국어 (KP)</field> | |||
|         <field name="code">ko</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l33"> | |||
|         <field name="name">Korean (KP) / 한국어 (KP)Korean (KR) / 한국어 (KR)</field> | |||
|         <field name="code">ko</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l34"> | |||
|         <field name="name">Slovak / Slovenský jazyk</field> | |||
|         <field name="code">sk</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l35"> | |||
|         <field name="name">Slovak / Slovenský jazyk</field> | |||
|         <field name="code">sk</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l36"> | |||
|         <field name="name">German / Deutsch</field> | |||
|         <field name="code">de</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l37"> | |||
|         <field name="name">German (CH) / Deutsch (CH)</field> | |||
|         <field name="code">de</field> | |||
|     </record> | |||
|     <record model="languages.list" id="l37"> | |||
|         <field name="name">German (CH) / Deutsch (CH)</field> | |||
|         <field name="code">de</field> | |||
|     </record> | |||
| </odoo> | |||
| @ -0,0 +1,24 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################## | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | |||
| #    Author: LINTO C T(<https://www.cybrosys.com>) | |||
| #    you can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    It is forbidden to publish, distribute, sublicense, or sell copies | |||
| #    of the Software or modified copies of the Software. | |||
| # | |||
| #    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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################## | |||
| 
 | |||
| import translation_helper | |||
| @ -0,0 +1,61 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################## | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | |||
| #    Author: LINTO C T(<https://www.cybrosys.com>) | |||
| #    you can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    It is forbidden to publish, distribute, sublicense, or sell copies | |||
| #    of the Software or modified copies of the Software. | |||
| # | |||
| #    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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################## | |||
| 
 | |||
| import time | |||
| try: | |||
|     from googletrans import Translator | |||
|     translator = Translator() | |||
| except ImportError: | |||
|     print "Unable to import " | |||
| 
 | |||
| from odoo import models, fields, _ | |||
| from odoo.exceptions import UserError | |||
| 
 | |||
| 
 | |||
| class LanguageList(models.Model): | |||
|     _name = 'languages.list' | |||
| 
 | |||
|     name = fields.Char(string="Name") | |||
|     code = fields.Char(string="Code") | |||
| 
 | |||
| 
 | |||
| class TranslationHelper(models.Model): | |||
|     _inherit = 'ir.translation' | |||
| 
 | |||
|     def translate_term(self): | |||
|         if self.lang: | |||
|             lang = dict(self.fields_get(allfields=['lang'])['lang']['selection'])[self.lang] | |||
|             rec = self.env['languages.list'].search([('name', '=', lang)], limit=1) | |||
|             if rec: | |||
|                 code = rec.code | |||
|             if self.source and code: | |||
|                 try: | |||
|                     val = translator.translate(self.source, dest=code) | |||
|                     time.sleep(1) | |||
|                     self.value = val.text | |||
|                 except: | |||
|                     raise UserError(_("No Translation Found. Please Check Your Internet Connection.")) | |||
|             else: | |||
|                 raise UserError(_("There is nothing to translate !")) | |||
|         else: | |||
|             raise UserError(_("Select a language!")) | |||
| 
 | 
| After Width: | Height: | Size: 117 KiB | 
| After Width: | Height: | Size: 50 KiB | 
| After Width: | Height: | Size: 33 KiB | 
| @ -0,0 +1,108 @@ | |||
| <section class="oe_container"> | |||
|     <div class="oe_row oe_spaced"> | |||
|         <h2 class="oe_slogan">Translation Helper</h2> | |||
|         <h3 class="oe_slogan">..Single Click To Translate New Words..</h3> | |||
|         <h4 class="oe_slogan"><a href="https://www.cybrosys.com">Cybrosys Technologies</a> </h4> | |||
|     </div> | |||
|     <div class="oe_row oe_spaced" style="padding-left:65px;"> | |||
|         <h4>Features:</h4> | |||
|         <div> | |||
|             <span style="color:green;"> ☑ </span> Translate words to other languages using 'googletrans'.<br/> | |||
|         </div> | |||
|     </div> | |||
| </section> | |||
| 
 | |||
| <section class="oe_container oe_dark"> | |||
|     <div class="oe_row oe_spaced"> | |||
|         <div class="oe_picture"> | |||
|             <h3 class="oe_slogan">Overview</h3> | |||
|             <p class="oe_mt32"> | |||
|                 Creating translations for new words has became simple with this module. It can be done in a single | |||
|                 button click. | |||
|             </p> | |||
|         </div> | |||
|     </div> | |||
| </section> | |||
| 
 | |||
| <section class="oe_container"> | |||
|     <div class="oe_row oe_spaced"> | |||
|         <div> | |||
|             <h3 style="color:brown;"><b><i><u>Note</u>:</i></b></h3> | |||
|             <p>For the perfect working, we have to install an external dependency, <b><i>'googlerans'</i></b> | |||
|                 using <b><i>'pip install googletrans'</i></b>.</p> | |||
|         </div> | |||
|     </div> | |||
| </section> | |||
| 
 | |||
| <section class="oe_container oe_dark"> | |||
|     <div class="oe_row oe_spaced"> | |||
|          <div> | |||
|              <p class="text-justify"> With the help of this module, finding translation for new words has become more easier in odoo. | |||
|              Instead of finding the translation manually, we can automate that process. We just need to provide the | |||
|              source which we need to translate and the language to which we need to translate the source. A new button, | |||
|              'Translate' is added for this purpose. </p> | |||
|         </div> | |||
|     </div> | |||
| </section> | |||
| 
 | |||
| <section class="oe_container"> | |||
|     <div class="oe_row oe_spaced"> | |||
|         <h3 class="oe_slogan">Translate button</h3> | |||
|         <div class="oe_span12" style="text-align: center;"> | |||
|             <div class="oe_demo oe_picture oe_screenshot"> | |||
|                 <img style="border:10px solid white;width:87% !important;" src="translate_button.png"> | |||
|             </div> | |||
|         </div> | |||
|             <br><br><br> | |||
|          <div> | |||
|              <div> | |||
|                 <p class="text-justify"> | |||
|                     For creating a new translation, first enable the debug mode and go to | |||
|                     Settings - > Translation - > Application Terms -> Translated Terms. We can create new | |||
|                     translations from here. After entering the source value, language and the other required details, | |||
|                  click on the 'Translate' button. After clicking the button, it will automatically find the translation | |||
|                   for the source and fill the value in the translated value column. | |||
|                 <p> | |||
|                  <p> | |||
|                  We can translate to 36 different languages with the help of this module. | |||
|              </p> | |||
|             </div> | |||
|         </div> | |||
|     </div> | |||
| </section> | |||
| 
 | |||
| <section class="oe_container oe_dark"> | |||
|     <div class="oe_row oe_spaced"> | |||
|        <h3 style="color:brown;"><b><i><u>Note</u>:</i></b></h3> | |||
|         <br /> | |||
|         <p> Please make sure that there is proper internet connection. Without proper internet connection, not all the | |||
|             facilities of this module will work. | |||
|         </p> | |||
|     </div> | |||
| </section> | |||
| 
 | |||
| <section class="oe_container"> | |||
| 		<h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> | |||
| 		<div class="oe_slogan" style="margin-top:10px !important;"> | |||
|             <div> | |||
| 				<a  class="btn btn-primary btn-lg mt8" | |||
| 				style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com"><i | |||
| 				class="fa fa-envelope"></i> Email </a> <a | |||
| 				class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | |||
| 				href="https://www.cybrosys.com/contact/"><i | |||
| 				class="fa fa-phone"></i> Contact Us </a> <a | |||
| 				class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | |||
| 				href="https://www.cybrosys.com/odoo-customization-and-installation/"><i | |||
| 				class="fa fa-check-square"></i> Request Customization </a> | |||
| 	        </div> | |||
|             <br> | |||
| 		    <img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> | |||
|             <div> | |||
| 			  <a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> | |||
|               <a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> | |||
|               <a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> | |||
|               <a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> | |||
|               <a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> | |||
|             </div> | |||
| 		</div> | |||
| </section> | |||
| After Width: | Height: | Size: 6.7 KiB | 
| @ -0,0 +1,25 @@ | |||
| <?xml version="1.0" encoding="UTF-8" ?> | |||
| <odoo> | |||
|     <data> | |||
|         <record model="ir.ui.view" id="translator_helper_tree"> | |||
|             <field name="name">translator.helper.tree</field> | |||
|             <field name="model">ir.translation</field> | |||
|             <field name="inherit_id" ref="base.view_translation_tree" /> | |||
|             <field name="arch" type="xml"> | |||
|                 <xpath expr="//field[@name='source']" position="after"> | |||
|                     <button name="translate_term" class="oe_highlight" string="Translate" id="translate_source" type="object" /> | |||
|                 </xpath> | |||
|             </field> | |||
|         </record> | |||
|         <record model="ir.ui.view" id="translator_helper_dialogue_tree"> | |||
|             <field name="name">translator.helper_dialogue.tree</field> | |||
|             <field name="model">ir.translation</field> | |||
|             <field name="inherit_id" ref="base.view_translation_dialog_tree" /> | |||
|             <field name="arch" type="xml"> | |||
|                 <xpath expr="//field[@name='source']" position="after"> | |||
|                     <button name="translate_term" class="oe_highlight" string="Translate" id="translate_source" type="object" /> | |||
|                 </xpath> | |||
|             </field> | |||
|         </record> | |||
|     </data> | |||
| </odoo> | |||
					Loading…
					
					
				
		Reference in new issue