Skip to content

Commit 22043eb

Browse files
authored
Update GTranslator.php
1 parent ea03e3a commit 22043eb

File tree

1 file changed

+41
-3
lines changed

1 file changed

+41
-3
lines changed

src/GTranslator.php

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,20 @@ class GTranslator{
4141
* @var int
4242
*/
4343
const SELECT = 3;
44+
45+
/**
46+
* Hold type bootstrap 4 attribute
47+
*
48+
* @var int
49+
*/
50+
const BOOTSTRAP_4 = 4;
51+
52+
/**
53+
* Hold type bootstrap 5 attribute
54+
*
55+
* @var int
56+
*/
57+
const BOOTSTRAP_5 = 5;
4458

4559
/**
4660
* Hold google translator element id name
@@ -83,6 +97,20 @@ class GTranslator{
8397
* @var string
8498
*/
8599
private $iconType;
100+
101+
/**
102+
* Hold ui design provider type
103+
*
104+
* @var int
105+
*/
106+
private $provider
107+
108+
/**
109+
* Hold bootstrap design provider version
110+
*
111+
* @var string
112+
*/
113+
private $bootstrapVersion;
86114

87115
/**
88116
* Hold list of languages to build
@@ -196,13 +224,23 @@ public function setLinkClass($cls){
196224
/**
197225
* Sets design style default or bootstrap
198226
* @param int $prv
227+
* @param int $ver bootstrap version [4/5]
199228
* @return GTranslator $this
200229
*/
201-
public function setProvider($prv){
230+
public function setProvider($prv, $ver = self::BOOTSTRAP_5){
202231
$this->provider = $prv;
232+
$this->bootstrapVersion = $ver;
203233
return $this;
204234
}
205235

236+
/**
237+
* Gets bootstrap attrbute name
238+
* @return String
239+
*/
240+
public function getBootstrapAttr(){
241+
return ($this->bootstrapVersion == self::BOOTSTRAP_5 ? "bs-" : "");
242+
}
243+
206244
/**
207245
* Builds language selector links
208246
* @param boolean $li if link should be child of list item
@@ -268,7 +306,7 @@ private function selectorBootstrap(){
268306
$this->setLinkClass("dropdown-item");
269307
$html = '<div class="language-selector">';
270308
$html .= '<div class="dropdown notranslate">';
271-
$html .= '<button class="btn btn-outline-gold dropdown-toggle" type="button" id="php-g-translator" data-bs-toggle="dropdown" aria-expanded="false">';
309+
$html .= '<button class="btn btn-outline-gold dropdown-toggle" type="button" id="php-g-translator" data-' . $this->getBootstrapAttr() . 'toggle="dropdown" aria-expanded="false">';
272310
$html .= '<img alt="' . $this->siteLang . '" src="' . $this->iconPath . $this->siteLang . $this->iconType . '"> ' . $this->languages[$this->siteLang];
273311
$html .= '</button>';
274312
$html .= ' <ul id="php-gt-languages" class="dropdown-menu" aria-labelledby="php-g-translator">';
@@ -339,7 +377,7 @@ function(a){a.preventDefault();GTranslator.toggle();GTranslator.toggleClass()};b
339377
* @return string|html|css $styleSheet
340378
*/
341379
private function addCss(){
342-
$styleSheet = " <style> body{top:0 !important} #{$this->element}{display:none!important} #goog-gt-tt{display:none !important} .goog-te-banner-frame{display:none !important} .goog-te-menu-value:hover{text-decoration:none !important} .goog-text-highlight{background-color:transparent !important;box-shadow:none !important} #php-g-translator img{height:16px;width:16px}";
380+
$styleSheet = " <style> body{top:0 !important} .skiptranslate, #{$this->element}, #goog-gt-tt{display:none !important} .goog-te-banner-frame{display:none !important} .goog-te-menu-value:hover{text-decoration:none !important} .goog-text-highlight{background-color:transparent !important;box-shadow:none !important} #php-g-translator img{height:16px;width:16px}";
343381
if($this->provider == self::DEFAULT){
344382
$styleSheet .= ".g-translator-custom{position: relative} .g-translator-custom .toggle-translator{font-family:Arial;font-size:10pt;text-align:left;cursor:pointer;overflow:hidden;width:{$this->selectWidth};line-height:17px;position: absolute;right: 0;list-style-type: none;padding-left: 0px} .g-translator-custom a{text-decoration:none;display:block;font-size:10pt;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box} .g-translator-custom a img{vertical-align:middle;display:inline;border:0;padding:0;margin:0;opacity:0.8} .g-translator-custom a:hover img{opacity:1} .g-translator-custom .toggle-languages{background-color:#FFFFFF; position:relative; z-index:9999; cursor: pointer} .g-translator-custom .toggle-languages a{border:1px solid #CCCCCC;color:#666666;padding:3px 5px} .g-translator-custom .toggle-cert{background-image: url(\"data:image/svg+xml,%3Csvg class='caret-down' width='12' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 1.5l-5 5-5-5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' stroke='%23000'%3E%3C/path%3E%3C/svg%3E\");background-repeat: no-repeat;background-position: center;padding:3px 5px;width: 12px;position: absolute;right: 0px;top: 0px;bottom: 0px;height: 22px} .g-translator-custom .toggle-languages .open .toggle-cert{-moz-transform: scaleY(-1);-o-transform: scaleY(-1);-webkit-transform: scaleY(-1);transform: scaleY(-1)} .g-translator-custom .language-options{position:relative;border:1px solid #CCCCCC;background-color:#EEEEEE;display:none;width:auto;max-height:300px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;overflow-y:auto;overflow-x:hidden;z-index: 100;list-style-type: none;padding-left: 0px} .g-translator-custom .language-options li{list-style-type: none} .g-translator-custom .language-options a{background:#eee;color:#000;padding:5px 8px} .g-translator-custom .language-options a:hover{background:#FFC} .g-translator-custom .language-options::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,0.3);border-radius:5px;background-color:#F5F5F5} .g-translator-custom .language-options::-webkit-scrollbar{width:5px} .g-translator-custom .language-options::-webkit-scrollbar-thumb{border-radius:5px;-webkit-box-shadow: inset 0 0 3px rgba(0,0,0,.3);background-color:#888} .g-translator-custom #php-g-translator img{margin-right:2px} ";
345383
}

0 commit comments

Comments
 (0)