Sistema Multilanguage

Started by rodweb, 31 de December , 2007, 08:40:54 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

rodweb

Bem pessoal é o seguinte, fiz um sistema pra Multi-Linguagem, tipo pro site poder ser em várias linguagens, sem dar muito trabalho pra editar.
E eu queria saber de quem já fez algo do tipo, como que vocês fazem e se o meu tah no caminho certo ;)

shake

Boa cara!
Gostei desse sistema!
Havia analisado o sistema do phpbb mas ele é um pouco mais complexo...
Porém acredito que a idéia seja a mesma!
Vou começar a usar nos meus scripts!
hehe
Um abraço

branco

nunca tentei nada do tipo Eclipse, mas o parabenizo pela iniciativa de compartilhar e pedir a opniao ^^

have fun
Olha o trem... Quem vai ficar, quem vai partir? Quem vai chorar, quem vai sorrir?

Magrinho Loko

#3
Só uma pergunta, é o usuário que usa de-de(Alemão/Alemanha), en-GB(Inglês/UK) ou afins, terá que se contentar com o acesso ao teu site só em pt-BR?

Uma dica para resolver esse problema, sempre coloque o idioma default como en-US, e algumas flags para o usuário modificar o idioma do site ao bel-prazer. :)

P.s:
O correto não seria
while (false !== ($files = readdir($pon))) {
        $langs[] = $files;
    }

?
Saudades do antigo Darkers.

rodweb

Eu me baseei na saída de 4 navegadores (Firefox, Internet Explorer, Safari, Netscape) usando o windows xp em português.

Firefox em português, resultado:
pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3 (ok)
Internet Explorer em português, resultado:
pt-br (ok)
Safari em inglês, resultado:
pt-BR (ok)
Netscape em inglês, resultado:
en-us,en;q=0.5 (no)

Acho que todos com exceção do Netscape pegaram com base no sistema, o Netscape com base nele mesmo :)
[/quote]

Sim sim, eu só quis demonstrar como exemplo, pois é nossa língua certo? mais na verdade eu invés de colocar o inglês(ou português) direto, eu iria exibir um combo (ou flags) com os idiomas disponíveis para o usuário escolher, e então pegar o idioma por $_GET e pular todo esse procedimento.

Quote from: "Magrinho Loko"P.s:
O correto não seria
while (false !== ($files = readdir($pon))) {
        $langs[] = $files;
    }

?

Pode ser, mais se não tiver nada na pasta não ia funcionar porque estaria sem tradução do mesmo jeito :P vlw...

Já já posto ele com as modificações que citei...

rodweb

lang.php - Agora com as modificações
<?php
###########[rod MultiLanguage v1&#46;1&#93;###########
#
# Rodrigo Aparecido - rod&#46;apd@gmail&#46;com
# Rodweb / Eclipse  - msn&#46;rod@hotmail&#46;com
# Críticas e sugestões mande um e-mail ;)
#
################################02-12-2007&#93;##

# Pega o idioma suportado
$accept $_SERVER['HTTP_ACCEPT_LANGUAGE'&#93;; 

# Pega a pasta atual e entra
$dir getcwd(); 
$dir &#46;= '/langs';
$pon opendir($dir);

# Joga os arquivos no array
while (false != ($files readdir($pon))) {
   
$langs[&#93; = $files;
}

# Pega idioma selecionado pelo combo
if(isset($_GET['lang'&#93;)){
$name $_GET['lang'&#93;&#46;'&#46;php';
if(file_exists($dir&#46;'/'&#46;$name)){
require($dir&#46;'/'&#46;$name);
} else {
echo "Language not suported!";
}
} else {

# Faz a verificação, se a liguagem padrão existem no sistema
foreach ($langs as $name) {
if ($name != "&#46;" && $name != "&#46;&#46;"){ 
$lang explode('&#46;'$name);
$_langs[&#93; = $lang[0&#93;;
if(ereg("^"&#46;$lang[0&#93;&#46;"[-a-z&#93;*", $accept)){
require($dir&#46;'/'&#46;$name);
$ok $lang[0&#93;;
break;
}
}
}

# Caso o idioma não for compatível mostra os disponíveis
if(!isset($ok)) {
require($dir&#46;'/en2&#46;php');
?>

<form name="lang_select" method="get" action="?">
<select name="lang" id="lang" onchange="lang_select.submit()">
<option value="en" selected="selected">English (default)<option>
<?
foreach($_langs as $lang){
if(!isset($w[$lang])){
$a = $lang;
} else {
$a = $w[$lang];
}
echo "<option value=\"$lang\">$a</option>";
}
?>
</select>
</form><br>
<?
}

} #Fecha get
?>

Download: Arquivo Atualizado

caesar2k

o meu eu fiz com XML, e o simplexml, usando PHP template com a função extract(), não poderia funcionar melhor.

rodweb

Poste um exemplo de como funciona ai ;D