Forum » Server-Side scripting » Language klasse?
Informatica Student
Berichten: 1406
avatar
Offline Stuur privebericht
Hallo iedereen,

Voor een project wil ik gebruik maken van meerdere talen. Ik wil daarom bestanden aanmaken (en.php nl.php) met daarin alle vertalingen. Ik wil hierbij dus geen gebruik maken van de database.

Kent iemand toevallig een Language klasse die al geschreven is en dit ongeveer al doet?

Ik heb wat GeGoogled maar kwam op slecht resultaten. Mogelijk dat ik de verkeerde zoekwoorden intyp. Ik heb ook begrepen dat er iets als getText is maar dat is een extensie voor php, en dat wil ik niet.
20-11-2011 16:07
Dit topic is 146 keer bekeken door 43 verschillende leden
Reacties op: "Language klasse?"
1
Berichten: 553
avatar
Offline Stuur privébericht
In de source van jcvw is er een language vertaling
Te bekijken in dit topic:

http://www.criminalspoint.com/db/download/571/JW-s-Criminal-Volledige-versie.html
20-11-2011 16:18
Informatica Student
Berichten: 1406
avatar
Offline Stuur privébericht
Bedankt voor de link, maar dat is dus wat ik absoluut niet zoek.
Deze is niet OO en onveilig.

Edit:
Om even een voorbeeld te geven wat ik tot zover had gemaakt:
Code | Selecteer Alles
minimaliseren
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
<?php
class Language {
    private 
$languages = array('en');
    private 
$lang;
    private 
$langArray;
    public function 
__construct() {
        
$this->$lang $_COOKIE['language'];
        if(!isset(
$_COOKIE['language']) || !in_array($this->lang,$this->languages)) {
                
$lang STANDARD_LANGUAGE;    
        }
        
define('LANG',$lang);
        
$this->getLangContents();
    }
    
    public function 
change_lang($new) {
        if(isset(
$_COOKIE['language']) && !in_array($this->lang,$this->languages)) {
            
$_COOKIE['language'] = $new;
            return;
        }
            
setcookie('language',$new,time()+(3600*24*365),'/','gamesig.net');
    }
    public static function 
get_languages() {
        return 
$this->languages;    
    }
    
    private function 
getLangContents() {
        global 
$langArray;
        include_once(
$_SERVER['DOCUMENT_ROOT'].'/lang/'.$this->lang.'.php');
        
$this->langArray $langArray;
    }
    
    public function 
g($id$replaceArray null) {
        
$text $this->langArray[$id];
        if(
$replace != null && is_array($replaceArray)) {
            foreach(
$replaceArray as $search => $replace) {
                
str_replace('{'.$search.'}',$replace,$text);
            }
        }
        return 
$text;
    }
    
}
20-11-2011 16:23
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Ik weet niet bij wat voor hosting je zit. Maar mogelijk heb je toegang tot Internationalization Functions, het bestaat uit 9 classes en 16 functies.
20-11-2011 21:19
Reageer op: "Language klasse?"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden