Autor Zpráva
danny98
Profil
Ahoj všem pomocí php scriptu jsem přeložil dokument index.php
http://yourradio.cf/fdsfsd/index.php?lang=cz

zajímalo by mě, jak udělat, když už. nastaví na index.php češtinu, aby se mu čeština zobrazila i v ostatních dokumentech

Ukázka index.php
<?php
include('user-agent.php');
require_once('class.translation.php');

if(isset($_GET['lang']))
    $translate = new Translator($_GET['lang']);
else
    $translate = new Translator('en');
?>
<!DOCTYPE HTML>
<html>
<head>
<title><?php $translate->__('Yourradio:Main'); ?></title>
<meta name='description' content='Your free radio database' />
<meta name='keywords' content='free, radio, database, music' />
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta name='author' content='sigi' />
<meta name='robots' content='index,follow' />
<link rel="shortcut icon" type="image/png" href="favicon.png"/>
<link rel="stylesheet" href="themes/alertify.core.css" />
<link rel="stylesheet" href="themes/alertify.default.css" id="toggleCSS" />
<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
<link href='http://fonts.googleapis.com/css?family=Julius+Sans+One' rel='stylesheet' type='text/css'>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="lib/alertify.min.js"></script>
<script type="text/javascript" src="js/modernizr.custom.53451.js"></script>
<script type="text/javascript" src="js/jquery.min.js"></script>
</head>
<body>
<div class="menu-bg">
<div class="wrap">
    <div class="menu">
        <ul class="nav">
           <li class="active"><a href="index.php"><?php $translate->__('Home'); ?></a></li>
           <li><a href="stations.php"><?php $translate->__('Search'); ?></a></li>
           <li><a href="add.html"><?php $translate->__('ADD Station'); ?></a></li>
           <li><a href="contact.html"><?php $translate->__('Contact'); ?></a></li>
        </ul>
    </div>
class.translation.php:
<?php
class Translator {

    private $language    = 'en';
    private $lang         = array();
    
    public function __construct($language){
        $this->language = $language;
    }
    
    private function findString($str) {
        if (array_key_exists($str, $this->lang[$this->language])) {
            echo $this->lang[$this->language][$str];
            return;
        }
        echo $str;
    }
    
    private function splitStrings($str) {
        return explode('=',trim($str));
    }
    
    public function __($str) {    
        if (!array_key_exists($this->language, $this->lang)) {
            if (file_exists($this->language.'.txt')) {
                $strings = array_map(array($this,'splitStrings'),file($this->language.'.txt'));
                foreach ($strings as $k => $v) {
                    $this->lang[$this->language][$v[0]] = $v[1];
                }
                return $this->findString($str);
            }
            else {
                echo $str;
            }
        }
        else {
            return $this->findString($str);
        }
    }
}
?>
Alphard
Profil
Zvolený jazyk by měl být součátí url adresy, takže přidat do všech odkazů. Kromě toho je možné uložit ho do cookie pro další návštěvu, ale v adrese by neměl chybět.
danny98
Profil
takže to hodit do odkazu <a href="details.php?id=1lang=cz>
juriad
Profil
danny98:
Skoro:
<a href="details.php?id=1&lang=<?php echo $currentLang; ?>">
Kde aktuální jazyk si musíš od někud získat (buď z $_GET['lang'], nebo z Translatoru)
danny98
Profil
udělal jsem to takto: <?php echo '<a href="index.php?lang='.$_GET['lang'].'">'; ?>


děkuju za pomoc:) jak uzavřu téma?
Alphard
Profil
danny98:
Nijak, nechte ho zapadnout mezi ostatní. To byste téměř po roce na diskusi mohl vědět :-)
Bude tak otevřené pro případ, že byste měl doplňující dotaz, někdo jiný měl doplňující dotaz, nebo někdo přišel s lepší odpovědí.
danny98
Profil
Mám ještě dotaz po napsání tohoto kódu:

echo '<table width=100%>';
echo '<tr><td><h4>'.$translate->__('Name:').'</td><td>'.$p['station'].'<</h4></td></tr>';
echo '<tr><td><h4>'.$translate->__('Genre:').'</td><td>'.$p['genre'].'</h4></td></tr>';
echo '<tr><td><h4>'.$translate->__('Country:').'</td><td>'.$p['country'].'</td></tr>';
echo '<tr><td><h4>'.$translate->__('Online player:').'</h4></td><td><a href="play.php?id='.$p['id'].'" target="_blank">Opens in new tab</td></tr>';
echo '<tr><td><h4>'.$translate->__('Official website:').'</td><td><a href="'.$p['web'].'">Official website</a></td></tr>';
echo'</table>';

se objeví toto:
https://yadi.sk/i/nbdN3b4uhNfhJ
Fisir
Profil
Reaguji na dannyho98:
Máš bordel v HTML kódu (překřížené značky).
danny98
Profil
už to funguje vyřešeno prasácky: :D :D

<?php echo '<tr><td><h4>' ?><?php $translate->__('Name:')?><?php echo'</td> <td>'.$p['station'].'</h4>'; ?></td></tr>
<?php echo '<tr><td><h4>' ?><?php $translate->__('Genre:') ?><?php echo'</td> <td>'.$p['genre'].'</h4>'; ?></td></tr>
<?php echo '<tr><td><h4>' ?><?php $translate->__('Country:') ?><?php echo'</td> <td>'.$p['country'].'</h4>'; ?></td></tr>?>
<?php echo '<tr><td><h4>' ?><?php $translate->__('Online player:') ?></td><td><?php echo'<a href="play.php?id='.$p['id'].'" target="_blank">'; ?> <?php $translate->__('Opens in new tab'); ?></td></tr>;
<?php echo '<tr><td><h4>' ?>Web:</td><td><?php echo'<a href="'.$p['web'].'">'; ?><?php $translate->__('Official website')?> </a></h4>'; ?></td></tr>
Fisir
Profil
Reaguji na dannyho98:
Funguje to z dobré vůle. Znovu: máš překřížené značky!
danny98
Profil
jj teď je to z nedostatku času, dělám na tom sám, druhýho admina jsem vyrazil, tkz se k tomu vrátím, až budu mít víc času:)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: