Current Directory: /home/astoriaah/www/administrator/components/com_gdpr/framework/helpers
Viewing File: /home/astoriaah/www/administrator/components/com_gdpr/framework/helpers/language.php
<?php
// namespace components\com_gdpr\libraries;
/**
*
* @package GDPR::components::com_gdpr
* @subpackage libraries
* @author Joomla! Extensions Store
* @copyright (C) 2018 - Joomla! Extensions Store
* @license GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html
*/
defined ( '_JEXEC' ) or die ( 'Restricted access' );
jimport ( 'joomla.language.language' );
/**
*
* @package GDPR::components::com_gdpr
* @subpackage libraries
* @since 1.0
*/
class GdprHelpersLanguage extends JLanguage {
/**
* Get the sef string for the current language
*
* @access public
* @return string
*/
public static function getCurrentSefLanguage() {
$defaultLanguageSef = null;
$knownLangs = JLanguageHelper::getLanguages ();
// Setup predefined site language
$defaultLanguageCode = JFactory::getLanguage ()->getTag ();
foreach ( $knownLangs as $knownLang ) {
if ($knownLang->lang_code == $defaultLanguageCode) {
$defaultLanguageSef = $knownLang->sef;
break;
}
}
return $defaultLanguageSef;
}
/**
* Returns strings transliterated from UTF-8 to Latin
*
* @param string $string
* String to transliterate
* @param integer $case
* Optionally specify upper or lower case. Default to null.
*
* @return string Transliterated string
*
* @since 11.1
*/
public static function utf8_latin_to_ascii($string, $case = 0) {
static $UTF8_LOWER_ACCENTS = null;
static $UTF8_UPPER_ACCENTS = null;
if ($case <= 0) {
if (is_null ( $UTF8_LOWER_ACCENTS )) {
$UTF8_LOWER_ACCENTS = array (
'Ã ' => 'a',
'ô' => 'o',
'�' => 'd',
'ḟ' => 'f',
'ë' => 'e',
'Å¡' => 's',
'Æ¡' => 'o',
'ß' => 'ss',
'ă' => 'a',
'Å™' => 'r',
'È›' => 't',
'ň' => 'n',
'�' => 'a',
'Ä·' => 'k',
'�' => 's',
'ỳ' => 'y',
'ņ' => 'n',
'ĺ' => 'l',
'ħ' => 'h',
'á¹—' => 'p',
'ó' => 'o',
'ú' => 'u',
'Ä›' => 'e',
'é' => 'e',
'ç' => 'c',
'�' => 'w',
'Ä‹' => 'c',
'õ' => 'o',
'ṡ' => 's',
'ø' => 'o',
'Ä£' => 'g',
'ŧ' => 't',
'È™' => 's',
'Ä—' => 'e',
'ĉ' => 'c',
'Å›' => 's',
'î' => 'i',
'ű' => 'u',
'ć' => 'c',
'Ä™' => 'e',
'ŵ' => 'w',
'ṫ' => 't',
'Å«' => 'u',
'�' => 'c',
'ö' => 'oe',
'è' => 'e',
'Å·' => 'y',
'Ä…' => 'a',
'Å‚' => 'l',
'ų' => 'u',
'ů' => 'u',
'ÅŸ' => 's',
'ÄŸ' => 'g',
'ļ' => 'l',
'Æ’' => 'f',
'ž' => 'z',
'ẃ' => 'w',
'ḃ' => 'b',
'Ã¥' => 'a',
'ì' => 'i',
'ï' => 'i',
'ḋ' => 'd',
'Å¥' => 't',
'Å—' => 'r',
'ä' => 'ae',
'Ã' => 'i',
'Å•' => 'r',
'ê' => 'e',
'ü' => 'ue',
'ò' => 'o',
'Ä“' => 'e',
'ñ' => 'n',
'Å„' => 'n',
'Ä¥' => 'h',
'�' => 'g',
'Ä‘' => 'd',
'ĵ' => 'j',
'ÿ' => 'y',
'Å©' => 'u',
'Å' => 'u',
'ư' => 'u',
'Å£' => 't',
'ý' => 'y',
'Å‘' => 'o',
'â' => 'a',
'ľ' => 'l',
'ẅ' => 'w',
'ż' => 'z',
'Ä«' => 'i',
'ã' => 'a',
'Ä¡' => 'g',
'�' => 'm',
'�' => 'o',
'Ä©' => 'i',
'ù' => 'u',
'į' => 'i',
'ź' => 'z',
'á' => 'a',
'û' => 'u',
'þ' => 'th',
'ð' => 'dh',
'æ' => 'ae',
'µ' => 'u',
'Ä•' => 'e',
'Å“' => 'oe'
);
}
$string = str_replace ( array_keys ( $UTF8_LOWER_ACCENTS ), array_values ( $UTF8_LOWER_ACCENTS ), $string );
}
if ($case >= 0) {
if (is_null ( $UTF8_UPPER_ACCENTS )) {
$UTF8_UPPER_ACCENTS = array (
'À' => 'A',
'Ô' => 'O',
'ÄŽ' => 'D',
'Ḟ' => 'F',
'Ë' => 'E',
'Å ' => 'S',
'Æ ' => 'O',
'Ä‚' => 'A',
'Ř' => 'R',
'Èš' => 'T',
'Ň' => 'N',
'Ä€' => 'A',
'Ķ' => 'K',
'Ŝ' => 'S',
'Ỳ' => 'Y',
'Å…' => 'N',
'Ĺ' => 'L',
'Ħ' => 'H',
'á¹–' => 'P',
'Ó' => 'O',
'Ú' => 'U',
'Äš' => 'E',
'É' => 'E',
'Ç' => 'C',
'Ẁ' => 'W',
'ÄŠ' => 'C',
'Õ' => 'O',
'á¹ ' => 'S',
'Ø' => 'O',
'Ä¢' => 'G',
'Ŧ' => 'T',
'Ș' => 'S',
'Ä–' => 'E',
'Ĉ' => 'C',
'Åš' => 'S',
'ÃŽ' => 'I',
'Ű' => 'U',
'Ć' => 'C',
'Ę' => 'E',
'Å´' => 'W',
'Ṫ' => 'T',
'Ū' => 'U',
'Č' => 'C',
'Ö' => 'Oe',
'È' => 'E',
'Ŷ' => 'Y',
'Ä„' => 'A',
'�' => 'L',
'Ų' => 'U',
'Å®' => 'U',
'Åž' => 'S',
'Äž' => 'G',
'Ä»' => 'L',
'Æ‘' => 'F',
'Ž' => 'Z',
'Ẃ' => 'W',
'Ḃ' => 'B',
'Ã…' => 'A',
'Ì' => 'I',
'�' => 'I',
'Ḋ' => 'D',
'Ť' => 'T',
'Å–' => 'R',
'Ä' => 'Ae',
'�' => 'I',
'Å”' => 'R',
'Ê' => 'E',
'Ü' => 'Ue',
'Ã’' => 'O',
'Ä’' => 'E',
'Ñ' => 'N',
'Ń' => 'N',
'Ĥ' => 'H',
'Ĝ' => 'G',
'�' => 'D',
'Ä´' => 'J',
'Ÿ' => 'Y',
'Ũ' => 'U',
'Ŭ' => 'U',
'Ư' => 'U',
'Å¢' => 'T',
'�' => 'Y',
'�' => 'O',
'Â' => 'A',
'Ľ' => 'L',
'Ẅ' => 'W',
'Å»' => 'Z',
'Ī' => 'I',
'Ã' => 'A',
'Ä ' => 'G',
'á¹€' => 'M',
'Ō' => 'O',
'Ĩ' => 'I',
'Ù' => 'U',
'Ä®' => 'I',
'Ź' => 'Z',
'�' => 'A',
'Û' => 'U',
'Þ' => 'Th',
'�' => 'Dh',
'Æ' => 'Ae',
'Ä”' => 'E',
'Å’' => 'Oe'
);
}
$string = str_replace ( array_keys ( $UTF8_UPPER_ACCENTS ), array_values ( $UTF8_UPPER_ACCENTS ), $string );
}
return $string;
}
/**
* Injector language const to JS domain with same name mapping
*
* @access protected
* @param $translations Object&
* @param $document Object&
* @return void
*/
public function injectJsTranslations(&$translations, &$document) {
$jsInject = null;
// Do translations
foreach ( $translations as $translation ) {
$jsTranslation = strtoupper ( $translation );
$translated = JText::_ ( $jsTranslation, true );
$jsInject .= <<<JS
var $jsTranslation = '{$translated}';
JS;
}
$document->addScriptDeclaration ( $jsInject );
}
/**
* Override Language instantiator
*
* @access public
* @return JLanguage The Language object.
* @since 1.5
*/
public static function getInstance($lang = null, $debug = false) {
static $lang;
if (! is_object ( $lang )) {
$conf = JFactory::getConfig ();
$locale = $conf->get ( 'config.language' );
$lang = new GDprHelpersLanguage ( $locale );
$lang->setDebug ( $conf->get ( 'config.debug_lang' ) );
}
return $lang;
}
}