Catalina Posted January 1, 2020 Share (edited) Hello, Do you if there a module allowing to display the language and translate the site ? Edited January 1, 2020 by Catalina Quote Link to post
FrediKa Posted January 1, 2020 Share (edited) hello Catalona, Look this page : https://www.w3schools.com/howto/howto_google_translate.asp It's easy to include in your code. Edited January 1, 2020 by FrediKa Quote Link to post
Catalina Posted January 1, 2020 Author Share Is it someone can help to create a little module for that. Looking a little but I do ot know if it's better in header tag or in modules header ? Quote Link to post
Patrick Posted January 2, 2020 Share Hi @Catalina, You must decide where you want to implement this module. - Header, footer, boxe ? - You can look after an exististing module and you can include the information that you want inside. - Generally you have this inside the module(structure) - module_header_google_translate (case of header) he_header_google_translate.php content (directory) header_google_translate.php (html content) and the languages synthaxe (do forget to reset your language in admin if you make a mistake because it's included in cache) On this example : For he_header_google_translate.php <?php /** * * @copyright 2008 - https://www.clicshopping.org * @Brand : ClicShopping(Tm) at Inpi all right Reserved * @Licence GPL 2 & MIT * @licence MIT - Portion of osCommerce 2.4 * @Info : https://www.clicshopping.org/forum/trademark/ * */ use ClicShopping\OM\Registry; use ClicShopping\OM\CLICSHOPPING; class module_header_google_translate { public $code; public $group; public $title; public $description; public $sort_order; public $enabled = false; public $pages; public function __construct() { $this->code = get_class($this); $this->group = basename(__DIR__); $this->title = CLICSHOPPING::getDef('module_header_google_translate_title'); $this->description = CLICSHOPPING::getDef('module_header_google_translate_description'); if ( defined('MODULE_HEADER_GOOGLE_TRANSLATE_STATUS') ) { $this->sort_order = MODULE_HEADER_GOOGLE_TRANSLATE_SORT_ORDER; $this->enabled = (MODULE_HEADER_GOOGLE_TRANSLATE_STATUS == 'True'); $this->pages = MODULE_BOXES_GOOGLE_TRANSLATE_DISPLAY_PAGES; } } public function execute() { $CLICSHOPPING_Template = Registry::get('Template'); $content_width = (int)MODULE_HEADER_GOOGLE_TRANSLATE_CONTENT_WIDTH; $data = '<!-- header_google_translate start -->' . "\n"; $data .= '<script type="text/javascript">'; $data .= 'function googleTranslateElementInit() {'; $data .= 'new google.translate.TranslateElement({pageLanguage: \'en\'}, \'google_translate_element\');'; $data .= '}'; $data .= '</script>' . "\n"; $data .='<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>' . "\n"; ob_start(); require_once($CLICSHOPPING_Template->getTemplateModules($this->group . '/content/header_google_translate')); $data .= ob_get_clean(); $data .='<!-- header_google_translate end -->' . "\n"; $CLICSHOPPING_Template->addBlock($data, $this->group); } public function isEnabled() { return $this->enabled; } public function check() { return defined('MODULE_HEADER_GOOGLE_TRANSLATE_STATUS'); } public function install() { $CLICSHOPPING_Db = Registry::get('Db'); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Do you want to enable this module ?', 'configuration_key' => 'MODULE_HEADER_GOOGLE_TRANSLATE_STATUS', 'configuration_value' => 'True', 'configuration_description' => 'Do you want to enable this module in your shop ?', 'configuration_group_id' => '6', 'sort_order' => '1', 'set_function' => 'clic_cfg_set_boolean_value(array(\'True\', \'False\'))', 'date_added' => 'now()' ] ); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Please indicate the width of the content', 'configuration_key' => 'MODULE_HEADER_GOOGLE_TRANSLATE_CONTENT_WIDTH', 'configuration_value' => '12', 'configuration_description' => 'Please specify a display width', 'configuration_group_id' => '6', 'sort_order' => '2', 'set_function' => 'clic_cfg_set_content_module_width_pull_down', 'date_added' => 'now()' ] ); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Sort order', 'configuration_key' => 'MODULE_HEADER_GOOGLE_TRANSLATE_SORT_ORDER', 'configuration_value' => '500', 'configuration_description' => 'Sort order of display. Lowest is displayed first. The sort order must be different on every module', 'configuration_group_id' => '6', 'sort_order' => '3', 'set_function' => '', 'date_added' => 'now()' ] ); $CLICSHOPPING_Db->save('configuration', [ 'configuration_title' => 'Please indicate where boxing should be displayed', 'configuration_key' => 'MODULE_HEADER_GOOGLE_TRANSLATE_DISPLAY_PAGES', 'configuration_value' => 'all', 'configuration_description' => 'Sélectionnez les pages où la boxe doit être présente', 'configuration_group_id' => '6', 'sort_order' => '7', 'set_function' => 'clic_cfg_set_select_pages_list', 'date_added' => 'now()' ] ); } public function remove() { return Registry::get('Db')->exec('delete from :table_configuration where configuration_key in ("' . implode('", "', $this->keys()) . '")'); } public function keys() { return array('MODULE_HEADER_GOOGLE_TRANSLATE_STATUS', 'MODULE_HEADER_GOOGLE_TRANSLATE_CONTENT_WIDTH', 'MODULE_HEADER_GOOGLE_TRANSLATE_SORT_ORDER', 'MODULE_HEADER_GOOGLE_TRANSLATE_DISPLAY_PAGES' ); } } Now the content : header_google_translate.php <div class="col-md-<?php echo $content_width; ?>"> <div class="separator"></div> <div id="google_translate_element"></div> </div> At the end the language : languages/english/modules/modules_header/he_header_google_translate.php module_header_google_translate_title = Do you want to enable google translate language module ? module_header_google_translate_description = Display google translate language Same for the french language. Now it's possible to improve the module and fix the script inside the footer by this code $footer_tag = '<script defer>'; $footer_tag .= 'function googleTranslateElementInit() {'; $footer_tag .= 'new google.translate.TranslateElement({pageLanguage: \'en\'}, \'google_translate_element\');'; $footer_tag .= '}'; $footer_tag .= '</script>' . "\n"; $footer_tag .= '<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>'; $CLICSHOPPING_Template->addBlock($footer_tag, 'footer_scripts'); 10 mn to do that. 2 Quote Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.