Diskusijų forumai
Diskusijų forumai     Tinklalapių kūrimas ir programavimas     PHP/MySQL     Codeigniter multilanguage svetainės



Codeigniter multilanguage svetainės

aws
Naujokas

 
Sveiki, taip jau nutiko, kad savaji projekta perrašinėju visa iš naujo. Anksčiau buvo paprastas php, dabar darau su CI framework'u ir iškilo bėdų, kaip padaryti daugiakalbiškumą. Ankščiau naudojau "DEFINE" funkciją ir nekilo bėdų. Norėtusi kažko panašaus ir čia, susitaupytų brangaus laiko neperrašant kalbų paketo.

Kokiu budu geriausia būtu tai padaryti su šia sistema?
 


Atsakymai į temą

Irmantas
Tinklalapio šeimininkas

 
Na CI turi savo kalbų class'e, manau geriausia būtų ją ir naudoti: http://codeigniter.com/user_guide/libraries/language.html
aws
Naujokas

 
Žiūrėjau šitai, bandžiau suprasti, bet niekaip man nesigavo...
Plačiau ir suprantamiau gal galėtum apie šį būdą papasakoti? Tikėjausi iš šio frameworko detalesnio vartotojo manualo, tačiau jis panašiai toks pat plikas kaip ir CakePHP
Pask. redagavo aws (2010-07-31 18:46:36), redaguota kartų: 1

Edmundas
Tinklalapio šeimininkas

 
Nežinau, kur tu klaidžioji, tačiau CodeIgniter turi bene pačią geriausią dokumentaciją tarp visų karkasų. Neabejoju, kad dauguma su tuo sutinka. Viskas puslapyje, kurį infactor nurodė, yra aiškiai parašyta. Jeigu nemoki anglų kalbos, tada čia jau visai kita problema. O šiaip kas konkrečiai neaišku?
aws
Naujokas

 
konkreciai toje nuorodoje nieko beveik nera parasyta.
esme:

Senasis kodas:

../../kalba_lt.php
<?php
define ('trumpinys', 'LT zodis');
--||--
?>

index.php
<?php
echo TRUMPINYS;
--||--
?>


kaip sitai daroma sioje sistemoje?
P.S. kalba pas mane imdavo pagal cooke, linka sugeneruodavo atskira funkcija.
Edmundas
Tinklalapio šeimininkas

 
Dar kartą sakau, kad ten viskas konkrečiai parašyta!

Each language should be stored in its own folder. For example, the English files are located at: system/language/english


Kiekvienai kalbai turi būti atskiras aplankalas. Pavyzdžiui, anglų kalbos failus dedi į system/language/english. Taip pat gali sukurti atskirą aplankalą pavadinimu „language“ application direktorijoje.

Language files must be named with _lang.php as the file extension. For example, let's say you want to create a file containing error messages. You might name it: error_lang.php


Kalbos failai turi būti pavadinti su galūnėmis _lang.php. Pavyzdžiui, nori sukurti failą klaidų pranešimams. Tada failą gali pavadinti error_lang.php.

Within the file you will assign each line of text to an array called $lang with this prototype:


Faile kiekvieną pavadinimą, sakinį ir pan. priskiri masyvui $lang.

$lang['login_error'] = "Sorry, but you've provided the system with wrong login data.";


In order to fetch a line from a particular file you must load the file first. Loading a language file is done with the following code:


Norint paimti visas kalbos eilutes, pirma reikia užrauti tam tikrą kalbos failą. Kalbos failo užkrovimas atliekamas parašius šį kodą:

$this->lang->load('kalbos_failas', 'kalba');


Iš čia kalba — english, lithuanian ir pan., priklausomai nuo to, kaip pavadinai kalbos aplankalą.

If the second parameter is missing, the default language set in your application/config/config.php file will be used.


Jeigu antrasis parametras nenurodytas, numatytoji kalba paimama iš application/config/config.php failo.

Once your desired language file is loaded you can access any line of text using this function:


Kai norimas kalbos failas užkrautas, eilutes pasiekti galima naudojantis funkcija:

$this->lang->line('eilutes_pavadinimas');


Tad, tarkime, noriu išvesti klaidos pranešimą apie blogus prisijungimo duomenis.

$this->lang->load('error');

if($username != $_POST['username'] AND $password != $_POST['password'])
{
	echo $this->lang->line('login_error');
}



Prašau neapsimesti, kad ten nieko beveik neparašyta. Viskas aiškiai ir gražiai parašyta ir paaiškinta.

Sėkmės.
aws
Naujokas

 
Na atsiprašau kolega kad taip įžeidžiau klausimais ir pasitikslinimais (iš balso tono ta galima spręsti), pažadu daugiau neklausti ir ištrinti acc iš šio forumo kad nebekelčiau jums nemalonių jausmų.
aws
Naujokas

 
visgi dar paklausiu, tikiuosi neįžeisti smarkiai, o gal pirma valerijonu arbatos išgertumėte?
Kaip išsiregistruoti iš čia? Kitaip tariant, panaikinti acc iš šio forumo?