1. Përshëndetje dhe mirësevini në forumin e Itshqip.com
    Nëse akoma nuk jeni pjesë e IT komunitetit më të madhë Shqiptarë nga fusha e Teknologjisë Informative, ju ftojmë që të bëheni pjesë e këtij komuniteti që tani duke u regjistruar këtu - procedura është shumë e thjeshtë dhe e lehtë. Gjithashtu ju mund të regjistroheni edhe përmes rrjetit social Facebook, Twitter, Google+.

Perdorimi i multi-language (shume gjuhesh) ne PHP/MySQL

Tema tek 'PHP // ASP // Python' e hapur nga tupac.al, 18 Qershor 2022.

  1. tupac.al

    tupac.al Anëtar Aktiv

    Postimet:
    409
    Pëlqimet:
    465
    Pikë nga trofetë:
    123
    Kjo eshte nje nga taktikat qe u duhet shum njerezve por eshte ekstrem veshtire me gjet online sepse shumica perdorin getText.

    Kjo menyre nuk eshte me e mire se getText por ju shpeton kohe dhe eliminon perdorimin e fileve .po/.mo apo dhe programeve shtese qe kerkojne aftesi ne instalim dhe konfigurim. Gjithashtu ju jep mundesine qe te krijoni export/import dhe ti perktheni apo krijoni gjuhen shum here me shpejt nepermjet fileve csv/xlsx.

    Une do ju paraqes idene time qe kam arrit me e ndertu dhe realizu ne disa projekte te miat.

    Table mysql:

    id int(11) Auto Increment
    code varchar(50) NULL [en]
    key varchar(500) NULL
    text varchar(500) NULL

    Te dhenat i ruajme keshtu:
    1,en,hello_mr,"Hi, are you %s?"
    2,sq,hello_mr,"Hi, a jeni ju %s?"

    Fillimisht marrim te dhenat nga database table mysql qe eshte me siper

    File: functions.php

    PHP:
    $language DB::Query("SELECT * FROM language WHERE code=:s"'en'); // English
    #$language = DB::Query("SELECT * FROM language WHERE code=:s", 'sq'); // Shqip
    foreach($language as $lang) {
        
    $settings['lang'][$lang['key']] = $lang['text'];
    }


    function 
    lang($key$array null) {
      global 
    $settings;
      if(isset(
    $settings['lang'][$key])) {
      
    $message vsprintf($settings['lang'][$key], $array);
      } else {
      
    $message vsprintf($key$array);
      }
      return 
    $message;
    }

    Tani e therrasim neper file keshtu

    Anglisht:
    PHP:
    <?php
    echo lang('hello_mr''Tupac'); // Rezultati en: Hi, are you Tupac? | Rezultati: Shqip: Hi, a jeni ju Tupac?
    ?>
    Mbase disa nuk e keshillojne sepse ju ngadaleson paksa webin ngaqe shton 1 query db me shume, por menyra qe un e kam realizu ju ndihmon ne shum gjera te tjera qe do i kuptoni nese perdorni getText.
     
    Universal, Freeman, Mr.Gh0$T dhe 3 anëtarë tjerë pëlqejnë postimin.
  2. Freeman

    Freeman Anëtar

    Postimet:
    45
    Pëlqimet:
    19
    Pikë nga trofetë:
    8
    Personalisht preferoj mos ta ruaj nje informacion te tille ne databaze, per shume arsye.
    Nje alternative do te ishte krijimi i fajleve .php ose .json per te ruajtur gjuhet e ndryshme.

    PHP:
    // index.php

    require_once("functions.php");

    require_once(
    inc_language());

    echo 
    lang('hello_mr''Tupac');

    PHP:
    // functions.php

    function inc_language()
    {

        if (
    session_status() === PHP_SESSION_NONE) {
            
    session_start();
        }

        
    $path "languages/";
        
    $default "en";
        
    $ext ".php";

        if (isset(
    $_GET['lang'])) {

            
    $filename $_GET['lang'];

            if (
    file_exists($path $filename $ext)) {
                return 
    $path $filename $ext;
            }

            return 
    $path $default $ext;
        }

        return 
    $path $default $ext;
    }

    function 
    lang($key$array null)
    {
        global 
    $lang;

        if (isset(
    $lang[$key])) {
            
    $message vsprintf($lang[$key], $array);
        } else {
            
    $message vsprintf($key$array);
        }

        return 
    $message;
    }
    PHP:
    // languages/en.php

    $lang = [
        
    "hello_mr" => "Hi, are you %s?",
    ];
    PHP:
    // languages/sq.php

    $lang = [
        
    "hello_mr" => "Hi, a jeni ju %s?",
    ];
     
    Last edited: 23 Qershor 2022
    Universal dhe tupac.al pëlqejnë postimin.
  3. tupac.al

    tupac.al Anëtar Aktiv

    Postimet:
    409
    Pëlqimet:
    465
    Pikë nga trofetë:
    123
    Database mund te perdoret dhe per ruajtjen e ketyre te dhenave me pas per gjenerimin e fileve (me ose pa cronjob) qe mund te perdoren me funksionin tend duke i bere shum pak ndryshim.

    ps: Pune e mire nga ty.
     

Shpërndaje faqen

Loading...