Como printf (__ ()); trabalhos?

12

Hoje, trabalho com um tema para entender melhor o WordPress e os modelos. Eu descobri isso:

<?php 
printf( 
    __('Designed by %s', 'Anyword'), 
    '<a href="http://www.example.com">Blub</a>'
); 
?>

Eu sei que mostra "Designed by Blub" (Onde o Blub está vinculado) Mas o que __()significa ou por que existe uma inserção de string? Para que serve o Anyword?

Alguém pode explicar exatamente essa linha para mim?

Denny Mueller
fonte

Respostas:

8

É usado para traduzir texto .

O segundo argumento é um tipo de espaço para nome (chamado domínio aqui) para recuperar a tradução (por exemplo, de um arquivo dedicado ou outra coisa).

Portanto Anyword, aqui deve ser o cara por trás do modelo, a empresa ou o que quer que seja um domínio / espaço para nome.

editar:

O documento do wordpress fornece mais explicações sobre como internacionalizar um plugin :


Adicione isso ao código do plug-in para garantir que os arquivos de idioma sejam carregados:

load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );

Para buscar uma string, basta usar __('String name','your-unique-name');para retornar a tradução ou _e('String name','your-unique-name');repetir a tradução. As traduções irão para a pasta / idiomas do seu plugin.


Para o seu plugin / tema, your-unique-nameparece ser Anyword.

j0k
fonte
Existem alguns arquivos de idioma no tema. Como o argumento sabe usá-los apenas para o 'Anyword'?
Atualizei minha resposta com uma parte melhor do documento do WP.