| 
<?php 
////// constants //////////////////////
 define('PATH_TO_LANGUAGES' ,            'languages');
 define('PATH_TO_FLAGS'     , 'assets/images/flags/');
 define('DB_FILES_EXTENSION',                 '.txt');
 // the following constants use for easy use language name with or without commas
 define('en','en');    //English
 define('ru','ru');    //???????
 define('ee','ee');    //?????????
 define ('lv','lv');   //??????????
 define ('lt','lt');   //?????????
 define('md','md');    //??????????
 define('ua','ua');    // ??????????
 define ('by','by');   //??????????
 define ('ge','ge');   //??????????
 define ('ar','ar');   //
 define ('az','az');   //
 define ('kr','kr');   //??????????
 define('uz','uz');    // ?????????
 define('kz','kz');    //?????????
 define ('td','td');   // ??????????
 define ('tm','tm');   // ???????????
 define('cn','cn');    // ?????????
 define('cz','cz');    // Cesky
 define('de','de');    // German
 define('it','it');    // Italian
 define('fr','fr');    // France
 define('tk','tk');    // Turkish
 define('en','en');    // English
 define('jp','jp');    // Japan
 define('vn','vn');    // Vietnam
 define("cn",'cn');    // China
 define("es",'es');    // Espaņol
 define("pt",'pt');    // Portuguęs
 define("ro",'ro');    // Romanian
 
 
 //--------------const default-------------------------------|
 define ('DEFAULT_LANG',    en);
 
 /////////  GLOBALS /////////////////////////////////////////////
 $langs= array(en, ru, cz, ee, lv, lt, md,ua, by,gr, ar, az, kr, ge, lt, uz, it, jp, cn,tk,fr, vn,  es, pt);
 $lang_title=array(
 ua => '???????????',
 lt => 'lietuvi?',
 lv => 'latviski',
 uz => "o'zbek",
 ru => '???????',
 ge => '???????',
 by => '??????????',
 en => 'English',
 de => 'Deutch',
 cn => '???',
 cz => '?esky',
 ee => 'eesti keel',
 it => 'Italian',
 fr => 'France',
 jp => '??',
 vn => 'Ti?ng Vi?t',
 tu => 'Türkmenler',
 tk => 'T?????',
 kz => '???????',
 md => 'moldovenesc',
 ro => 'Romanian',
 es => 'Espaņol',
 pt => 'Portuguęs',
 pl => 'Polski',
 kr => '???'
 );
 ///////////// functions /////////////////////////////////
 // The labels are in the files with name  "en.txt" , "cz.txt",... and so on.
 function  get_labels(){
 GLOBAL $lng;                     // get access to the global var $lng
 $ret=[];                         // here we will store the result
 $r_ = file(PATH_TO_LANGUAGES.DIRECTORY_SEPARATOR.$lng.".txt"); // read the label file
 foreach($r_ as $key=>$value)
 $ret[$key] = trim($value);                                // clear from unused symbols
 array_unshift($ret, "[".$lng. "]");                       // insert the string to harmonize the number of string (in the db editor) with the index of approptiated variable in the code for easy human reading the content of db
 return $ret;
 }
 // when trigger this function you can use other arguments in array \$args for use it in other scripts
 function create_request($args=[]){
 GLOBAL $lng;
 $ret ="?lng=" . $lng;
 if (!is_array($args)) echo("<div class=\"err_mess\" Error in " . basename(__file__) ." l. " . _LINE_ . ": incorrect data type in \$args</div>");
 foreach($args as $key=>$value){
 $ret .= "&".$key."=".$value;
 }
 return $ret;
 }
 //-------------- automatically create needed for translate file
 function check_available_lang($f){
 GLOBAL $lng, $lang_title;
 if(!file_exists($f)) {
 $ff = PATH_TO_LANGUAGES . DIRECTORY_SEPARATOR . DEFAULT_LANG. DB_FILES_EXTENSION;
 
 $t  = copy($ff, $f);
 $tf = copy('readme/ReadMe_en.txt', 'readme/ReadMe_' . $lng . '.txt' );
 if($t){
 echo ("<div class = 'success'><h2>Warning!</h2> New file <strong> $f </strong> for ". strtoupper($lang_title[$lng]) . " language is created. <br> Please translate it from " . $lang_title[DEFAULT_LANG] . " language.</div>");
 }else{
 echo("<div class = 'warning'>Something wrong!<br> Can not create the file<strong> " . $f . ".</strong></div>" );
 }
 if($tf){
 echo ("<div class = 'success'><h2>Warning!</h2> New file <strong> 'readme/ReadMe_ $lng .txt'  </strong> for ". strtoupper($lang_title[$lng]) . " language is created. <br> Please translate it from " . $lang_title[DEFAULT_LANG] . " language.</div>");
 }else{
 echo("<div class = 'warning'>Something wrong!<br> Can not create the file<strong> " . $f . ".</strong></div>" );
 }
 }
 }
 //----------- automatically create the ReadMe_lng.txt
 
 /* use this code if there are a most of mistakes
 $lng     =  DEFAULT_LANG;                            // select default language
 // check the cookie if we have saved lng in the cookie
 if(array_key_exists(('lng', $_COOKIE){
 if(sizeof(array_intersect($langs, $_COOKIE))==1){  // test on errors
 $lng= $_COOKIE['lng'];                           // if all is ok change the language to language saved in Cookie
 } else {
 echo("Something wrong! Check the languages names array and Cookie");
 }
 }
 //---------------------------------------------------                                                      // check the request if lng is changed?
 if(array_key_exists(('lng', $_REQUEST){
 if(sizeof(array_intersect($langs, $_REQUEST))==1){ //test on errors
 $lng= $_REQUEST['lng'];                          // if all is ok change the language to language sent in \$_REQUEST
 } else {
 echo("Something wrong! Check the languages names in array and in \$_REQUEST");
 }
 }
 */
 
 //----  easy code (without testing of errors) as an alternative of rows before from 58 up to 74
 $lng = (array_key_exists('lng' , $_REQUEST))? $_REQUEST['lng']:DEFAULT_LANG;
 //---------------- create the language panel
 $lang_panel ='<div style="margin-top:0px">';
 if(array_key_exists("show_lang_panel",$_REQUEST)) {   //check if flag was clicked firts time
 foreach($langs as $key=>$value){                     // if so - show language panel with enabled flags (languages)
 $lang_panel .=  '<a href="?lng='.$value.'"><img src="assets/images/flags/'.$value.'.png" class="flags"   title ="' .
 $lang_title[$value].'"></a> ';
 }
 } else{
 $lang_panel.='<a href="?lng='. $lng .'&show_lang_panel=1">
 <img src="' . PATH_TO_FLAGS . $lng.'.png" class="flags"  title ="Current language is ' .$lang_title[$lng].'. ' . $labels[1] .'   ">
 </a>';
 }
 $lang_panel .='</div>';
 
 ?>
 
 
 
 
 |