PHP: O que faz __ ( 'Algum texto') fazer?
Pergunta
Reading sobre Kohana modelos e viu algo que eu nunca antes visto:
$this->template->title = __('Welcome To Acme Widgets');
O que __('Text')
média? O que é isso? O que ele faz?
Solução
Kohana (versão 3), a função é definida em sistema / base.php e é uma função de conveniência a ajuda (como as outras respostas mencionado) internacionalização. Você fornecer uma string (com, opcionalmente, alguns espaços reservados para valores de substituição no texto acabado) que é então interpretados e, se necessário, uma tradução é retornado.
Ao contrário das suposições em outras respostas, este não usa gettext .
Um exemplo muito básico seria (esta determinada seqüência já está traduzido em Inglês, Espanhol e Francês em Kohana):
// 1. In your bootstrap.php somewhere below the Kohana::init line
I18n::lang('fr');
// 2. In a view
echo __("Hello, world!"); // Bonjour, monde!
Outras dicas
O duplo '__' é usado para localização no CakePHP (e possíveis outras estruturas)
É de string gettext ( string $message )
: http://php.net/manual/en/function. gettext.php
Retorna uma string traduzido se um é encontrado na tabela de conversão, ou o mensagem enviada se não for encontrado.
O __ () é apenas um apelido para ele. Então __("some text")
é equivalente a gettext("some text")
Editar: Na verdade, se é dois sublinhados que não é gettext (). O alias para gettext () é um sublinhado.
Segunda edição: Parece __ () pode ser outro alias para gettext (). Com um significado ligeiramente diferente do _ (). Veja aqui: http://groups.google.com / grupo / bolo-php / browse_thread / thread / 9f501e31a4d4130d? pli = 1
Terceira e edição final: Aqui está um artigo que explica com mais detalhes. Parece que ele não é um construído em função, mas sim algo que é comumente adicionados em um monte de frameworks. É, essencialmente, um alias de gettext - que executa a mesma função. No entanto, não é um apelido direta (eu não acho). Ele é implementado e é específico para o quadro. Ele procura e retorna uma localização ou tradução da string é dado. Para mais, veja este post: http://www.eatmybusiness.com/food/2007/04/13/what-on-earth-does-a-double-underscore-then -parenthesis-média-in-php -__ / 7 /
// Display a translated message
echo __('Hello, world');
// With parameter replacement
echo __('Hello, :user', array(':user' => $username));
http://kohanaframework.org/3.2/guide/api/I18n para mais detalhes.
Isso significa que alguém criou uma função chamada __ (Isso é dois sublinhados ao lado do outro.)
Meu palpite é definido em algum lugar na documentação Kohana.