Klasa PHP Language .ini

Klasa PHP Language .ini

language PHP
language PHP

Od pewnego czasu szukałem klasy, która była by odpowiednia do mojego projektu, postanowiłem wprowadzić dwu języczność. Poszukiwania nie przyniosły zadowalających efektów, które chciałem osiągnąć. Wykonałem klasę, którą nazwałem „Class Language„. Klasa bardzo lekka, przejrzysta i bardzo wydajna zero zamuleń. Do „Class Language” można podpiąć dowolną ilość języków, które ma obsługiwać, cała treść tłumaczenia znajduje się w osobnym pliku nazwanym lang.ini, dane w nim się znajdujące są importowane do metody i tam przetwarzane w zależności od języka, jaki na chwilę obecną używamy.

Samo używanie jest banalnie proste sprowadza się do podania języka, jaki ma obowiązywać w danym momencie podajemy go, jako liczby 1 to polski 2 to angielski itd. trzeba zachować tylko jedną regułę w pliku .ini musimy podawać takie same nazwy dla poszczególnych języków.

Jeżeli język polski to w pliku lang.ini tablica [pl] jak angielski to tablica [en] jak czeski to tablica [cz] itd. Następną zmienną, którą należy podać do klasy jest położenie pliku lang.ini z naszymi tłumaczeniami podajemy ścieżkę do pliku. No i już na koniec pozostaje nam tylko określenie słów do tłumaczenia, przez odpowiednią metodę $lang->_lang(„ZALOGUJ”); albo $lang->_lang(„WYLOGUJ”);

Jak wspomniałem wyżej klasa bardzo prosta i wydajna nie powinna przysporzyć w obsłudze żadnych problemów, życzę udanego użytkowania.

test.php

1
2
3
4
5
6
7
8
9
require_once('class_lang.php');
/* Okresl ktory jezyk "1" to polski "2" to angielski */
/* Specify which language "1" is the Polish "2" is an English */
        $file="lang.ini";
        $pl=1;
        $en=2;
        $lang = new class_lang($en, $file);
    echo $lang->_lang("ZALOGUJ");    
    echo $lang->_lang("WYLOGUJ");

language.ini

1
2
3
4
5
6
[pl]
ZALOGUJ= "Zaloguj PL"
WYLOGUJ= "Wyloguj PL"
[en]
ZALOGUJ= "Zaloguj EN"
WYLOGUJ= "Wyloguj EN"

class-language.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class class_lang{
     
   private $whatlang;
   private $lang      = array(1=>"pl", 2=>"en", 3=>"cz",
                                          4=>"br");
   private $lang_tabl = array();
   private $pl        = array();
           
     
    public function __construct($whatlangg, $file){
           if(file_exists($file)){
            $this->lang_tabl = parse_ini_file($file, true);
           }else{
             die("Brak Pliku lang.ini");
           }
           if(!empty($whatlangg)){
           $this->whatlang = $this->lang[(int)$whatlangg];    
           }else{
            die("Brak okreslonego jezyka");
           }        
      }
 
    private function lang(){  
        if(!empty($this->whatlang)){
         return $this->whatlang;  
        }else{
         return "pl";  
        }          
    }
       
    private function multi_lang($param){
      $this->pl = $this->lang_tabl[$param];    
    }  
 
    private function get_multi_lang(){
        return $this->pl;
    }
       
    public function _lang($langgg){  
           $this->multi_lang($this->lang());
           if($lan = $this->get_multi_lang()){
               return $lan[$langgg];
           }
     }        
}

Download do testów: language ini

Add a Comment