Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Recentemente eu fiz um site em PHP, mas gostaria de colocar em em Portugues (Na verdade já está) e em inglês.
Quando o usuário clicar na bandeira do BRASIL ou EUA, muda a linguagem do site.
Como fazer isso?
Realmente isso que você explicou eu não sei fazer, na verdade eu comprei um script do codecanyon, não tenho muito conhecimento.
Estava procurando na internet e acabei lendo isto: Se eu colocar as bandeiras, por exemplo, eu posso criar uma outra pasta no servidor, daí quando o cara clicar em alguma bandeira, aponta para aquela pasta, que estará em inglês, por exemplo.
Recentemente eu fiz um site em PHP
na verdade eu comprei um script do codecanyon, não tenho muito conhecimento.
Hah... <_<
Há outra forma de implementar?
Obrigado
Só se você possuir acesso ao fonte e tiver conhecimento do código ou se a ferramenta fornecer algo para isso.
O termo técnico na verdade é "internacionalização", em inglês fica "internationalisation", que muitas vezes é abreviado para "intl" ou "i18n" (porque há 18 letras entre o i do início e o n do final da palavra).
Há inúmeras maneiras de se implementar isso, eis uma das mais simples:
Crie arquivos .ini para armazenar as variáveis de idioma. Cada arquivo terá as traduções de um idioma.
Exemplos:
en.ini (English)
[home]
greeting = "Hi there!"
[menu]
home = "Home"
aboutme = "About Me"
contact = "Contact"
[contact]
name = "Your Name"
email = "Your Email Address"
message = "Your Message"
send = "Send"
pt.ini (Português)[home]
greeting = "Olá!"
[menu]
home = "Início"
aboutme = "Sobre Mim"
contact = "Contato"
[contact]
name = "Seu Nome"
email = "Seu Endereço de Email"
message = "Sua Mensagem"
send = "Enviar"
Observe que as variáveis estão agrupadas em sessões, para evitar conflito de nomes.
Esses arquivos devem ser colocados em um pasta, por exemplo, "langs".
Daí é só identificar o idioma preferencial do usuário e carregar o arquivo .ini para esse idioma e interpretá-lo usando a função parse_ini_file.
intl.php
<?php
// Diretório onde estarão os arquivos de idiomas
define('LANGS_DIR', "./langs/");
// Idioma padrão, a ser usado quase nenhum idioma válido for identificado
define('DEFAULT_LANG', "en");
// Listar todos os idiomas (arquivos .ini) disponíveis
$langs = glob(LANGS_DIR . "*.ini");
// Idioma
array_walk(
$langs,
create_function('&$l', '$l = basename($l, ".ini");')
);
// Verificar se um idioma foi definido
} else {
// Pelo idioma do navegador
// Verificar se o idioma informado está disponível, caso contrário, usa default
if (!in_array($lang, $langs)) {
A variável [inline]$intl[/inline] é um array multidimensional que contém os valores do arquivo .ini carregado.
Se, por exemplo, você quiser resgatar o nome de página inicial no idioma selecionado pelo usuário, basta usar [inline]$intl['menu']['home'][/inline].
Um exemplo de uma página com internacionalização (Formulário de Contato):
contato.php
<?php require "intl.php"; ?>
<!DOCTYPE html>
É isso. Qualquer dúvida, é só perguntar.
Quanto a usar bandeiras, não é recomendável. Se você vai usar a bandeira dos E.U.A. para representar o Inglês e a do Brasil para representar o Português, os ingleses e portugueses que acessarem o site vão ficar putos com você! :D