SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Internacionalizando 
seu desenvolvimento
@RafaelFunchal 
Publicitário, Desenvolvedor e músico nas 
horas vagas 
Desenvolve com WordPress desde 2009 
Administrador do grupo WordPress Brasil no 
Facebook e demais grupos do GUWP 
Support Guru na MailPoet.com 
Internacionalizando seu desenvolvimento @RafaelFunchal
Internacionalização 
Internacionalização é o processo de desenvolver seu 
plugin ou tema de uma forma que seja possível traduzi-lo 
facilmente. 
É comum abreviar o termo como i18n (por que há 18 letras entre 
as letras i e n na palavra internacionalization). 
Internacionalizando seu desenvolvimento @RafaelFunchal
Localização 
Localização se refere a todos os processos de tradução 
do seu tema ou plugin. 
Normalmente é abreviado como l10n (por que há 10 letras entre 
as letras l e n na palavra localization). 
Exemplos: GlotPress, Transifex, PoEdit e Virtaal 
Internacionalizando seu desenvolvimento @RafaelFunchal
Text Domain 
tornando seu código traduzível
Text Domain no seu plugin 
/* 
* Plugin Name: Meu plugin 
* Author: Autor do plugin 
* Text Domain: meu-plugin 
* Domain Path: /languages 
*/ 
Internacionalizando seu desenvolvimento @RafaelFunchal
Text Domain no seu plugin 
add_action( 'plugins_loaded', 'myplugin_load_textdomain' ); 
function myplugin_load_textdomain() { 
load_plugin_textdomain( 
'meu-plugin', 
false, 
dirname( plugin_basename( __FILE__ ) ) . '/languages' 
); 
} 
Internacionalizando seu desenvolvimento @RafaelFunchal
Text Domain no seu tema 
/* 
* Theme Name: Meu tema 
* Author: Autor do tema 
* Text Domain: meu-tema 
* Domain Path: /languages 
*/ 
Internacionalizando seu desenvolvimento @RafaelFunchal
Text Domain no seu tema 
add_action('after_setup_theme', mytheme_load_textdomain); 
function mytheme_load_textdomain(){ 
load_theme_textdomain( 
'meu-tema', 
get_template_directory() . '/languages' 
); 
} 
Internacionalizando seu desenvolvimento @RafaelFunchal
Funções 
para facilitar sua vida
Funções básicas 
__() 
_e() 
_x() 
_ex() 
_n() 
_nx() 
_n_noop() 
_nx_noop() 
translate_nooped_plural() 
Internacionalizando seu desenvolvimento @RafaelFunchal
Inserindo no HTML 
esc_html__() 
esc_html_e() 
esc_html_x() 
esc_attr__() 
esc_attr_e() 
esc_attr_x() 
Internacionalizando seu desenvolvimento @RafaelFunchal
Data e número 
number_format_i18n() 
date_i18n() 
Internacionalizando seu desenvolvimento @RafaelFunchal
Exemplos 
como utilizar no seu código
Funções básicas 
__( 'Blog Options', 'my-textdomain' ); 
_e( 'WordPress is the best!', 'my-textdomain' ); 
Internacionalizando seu desenvolvimento @RafaelFunchal
Variáveis 
printf( 
__( 'Your city is %s.', 'my-textdomain' ), 
$city 
); 
Internacionalizando seu desenvolvimento @RafaelFunchal
Plural 
printf( 
_n( 
'One comment', 
'%s comments', 
get_comments_number(), 
'my-textdomain' 
), 
number_format_i18n( get_comments_number() ) 
); 
Internacionalizando seu desenvolvimento @RafaelFunchal
Contexto 
_x( 'Post', 'noun', 'my-textdomain' ); 
_x( 'Post', 'verb', 'my-textdomain' ); 
Internacionalizando seu desenvolvimento @RafaelFunchal
Mais conteúdo 
http://codex.wordpress.org/I18n_for_WordPress_Developers 
https://developer.wordpress.org/plugins/internationalization/how-to-internationalize- 
your-plugin/ 
https://developer.wordpress.org/themes/functionality/internationalization/ 
https://codex.wordpress.org/Function_Reference/load_plugin_textdomain 
http://codex.wordpress.org/Function_Reference/load_theme_textdomain 
http://codex.wordpress.org/Function_Reference/wp_localize_script 
Internacionalizando seu desenvolvimento @RafaelFunchal
Obrigado! 
caso tenham mais perguntas, 
essa é a hora! :-)

Mais conteúdo relacionado

Destaque

Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLIConfigurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLIRafael Funchal
 
Empregos com WordPress
Empregos com WordPressEmpregos com WordPress
Empregos com WordPressRafael Funchal
 
Como enviar newsletters no WordPress
Como enviar newsletters no WordPressComo enviar newsletters no WordPress
Como enviar newsletters no WordPressRafael Funchal
 
Odin: Um framework que chuta bundas
Odin: Um framework que chuta bundasOdin: Um framework que chuta bundas
Odin: Um framework que chuta bundasRafael Funchal
 
ETAPAS PARA CRIAÇÃO DE CAMPANHA PUBLICIDADE
ETAPAS PARA CRIAÇÃO DE CAMPANHA PUBLICIDADEETAPAS PARA CRIAÇÃO DE CAMPANHA PUBLICIDADE
ETAPAS PARA CRIAÇÃO DE CAMPANHA PUBLICIDADEPosicionamento Web
 
Fazendo milagres com WordPress
Fazendo milagres com WordPressFazendo milagres com WordPress
Fazendo milagres com WordPressRafael Funchal
 

Destaque (7)

Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLIConfigurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
 
Empregos com WordPress
Empregos com WordPressEmpregos com WordPress
Empregos com WordPress
 
Como enviar newsletters no WordPress
Como enviar newsletters no WordPressComo enviar newsletters no WordPress
Como enviar newsletters no WordPress
 
Odin: Um framework que chuta bundas
Odin: Um framework que chuta bundasOdin: Um framework que chuta bundas
Odin: Um framework que chuta bundas
 
Conceito, Linha Criativa e Execução
Conceito, Linha Criativa e ExecuçãoConceito, Linha Criativa e Execução
Conceito, Linha Criativa e Execução
 
ETAPAS PARA CRIAÇÃO DE CAMPANHA PUBLICIDADE
ETAPAS PARA CRIAÇÃO DE CAMPANHA PUBLICIDADEETAPAS PARA CRIAÇÃO DE CAMPANHA PUBLICIDADE
ETAPAS PARA CRIAÇÃO DE CAMPANHA PUBLICIDADE
 
Fazendo milagres com WordPress
Fazendo milagres com WordPressFazendo milagres com WordPress
Fazendo milagres com WordPress
 

Semelhante a Internacionalizando­ seu desenvolvimento

Traduções no WordPress
Traduções no WordPressTraduções no WordPress
Traduções no WordPressBreno Alves
 
Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosLucas Vegi
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPRamon Ribeiro Rabello
 
Artigo de php
Artigo de phpArtigo de php
Artigo de phprobson
 
Distribuições Drupal: Estudo de Caso Drüpen
Distribuições Drupal: Estudo de Caso DrüpenDistribuições Drupal: Estudo de Caso Drüpen
Distribuições Drupal: Estudo de Caso DrüpenRodrigo Prior Bechelli
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
Internacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIInternacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIRicardo Ogliari
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7Silvano Oliveira
 
Como criar um tema para WordPress
Como criar um tema para WordPressComo criar um tema para WordPress
Como criar um tema para WordPressRafael Funchal
 
Bancos de dados portáveis em XML com PEAR::MDB2_Schema
Bancos de dados portáveis em XML com PEAR::MDB2_SchemaBancos de dados portáveis em XML com PEAR::MDB2_Schema
Bancos de dados portáveis em XML com PEAR::MDB2_SchemaIgor Feghali
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyGilson Filho
 
Aula 01 introdução ao php
Aula 01   introdução ao phpAula 01   introdução ao php
Aula 01 introdução ao phpAdriano Castro
 
T@rget trust linq - language integrated query
T@rget trust   linq - language integrated queryT@rget trust   linq - language integrated query
T@rget trust linq - language integrated queryTargettrust
 

Semelhante a Internacionalizando­ seu desenvolvimento (20)

Traduções no WordPress
Traduções no WordPressTraduções no WordPress
Traduções no WordPress
 
Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetos
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHP
 
Artigo de php
Artigo de phpArtigo de php
Artigo de php
 
Delphi Prism 2011
Delphi Prism 2011Delphi Prism 2011
Delphi Prism 2011
 
Distribuições Drupal: Estudo de Caso Drüpen
Distribuições Drupal: Estudo de Caso DrüpenDistribuições Drupal: Estudo de Caso Drüpen
Distribuições Drupal: Estudo de Caso Drüpen
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
Internacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIInternacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry API
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7
 
Programacao Modular
Programacao ModularProgramacao Modular
Programacao Modular
 
Phpmagazine
PhpmagazinePhpmagazine
Phpmagazine
 
Delphi aplicado by jurandir pellin
Delphi aplicado by jurandir pellinDelphi aplicado by jurandir pellin
Delphi aplicado by jurandir pellin
 
Como criar um tema para WordPress
Como criar um tema para WordPressComo criar um tema para WordPress
Como criar um tema para WordPress
 
Bancos de dados portáveis em XML com PEAR::MDB2_Schema
Bancos de dados portáveis em XML com PEAR::MDB2_SchemaBancos de dados portáveis em XML com PEAR::MDB2_Schema
Bancos de dados portáveis em XML com PEAR::MDB2_Schema
 
PHP Tools for Fast coding
PHP Tools for Fast codingPHP Tools for Fast coding
PHP Tools for Fast coding
 
PHP, Mercado e Certificações
PHP, Mercado e CertificaçõesPHP, Mercado e Certificações
PHP, Mercado e Certificações
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
 
Aula 01 introdução ao php
Aula 01   introdução ao phpAula 01   introdução ao php
Aula 01 introdução ao php
 
Tema 1 | Introdução a PHP
Tema 1 | Introdução a PHPTema 1 | Introdução a PHP
Tema 1 | Introdução a PHP
 
T@rget trust linq - language integrated query
T@rget trust   linq - language integrated queryT@rget trust   linq - language integrated query
T@rget trust linq - language integrated query
 

Mais de Rafael Funchal

Quem tem medo do terminal?
Quem tem medo do terminal?Quem tem medo do terminal?
Quem tem medo do terminal?Rafael Funchal
 
Automattic: A empresa por trás do WordPress.com e muito mais
Automattic: A empresa por trás do WordPress.com e muito maisAutomattic: A empresa por trás do WordPress.com e muito mais
Automattic: A empresa por trás do WordPress.com e muito maisRafael Funchal
 
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIWordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIRafael Funchal
 
Fazendo de tudo com WordPress
Fazendo de tudo com WordPressFazendo de tudo com WordPress
Fazendo de tudo com WordPressRafael Funchal
 
Automattic a empresa por trás do WordPress.com e muito mais
Automattic a empresa por trás do WordPress.com e muito maisAutomattic a empresa por trás do WordPress.com e muito mais
Automattic a empresa por trás do WordPress.com e muito maisRafael Funchal
 
Workshop criando um site WordPress do zero
Workshop criando um site WordPress do zeroWorkshop criando um site WordPress do zero
Workshop criando um site WordPress do zeroRafael Funchal
 
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIConfigurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIRafael Funchal
 

Mais de Rafael Funchal (7)

Quem tem medo do terminal?
Quem tem medo do terminal?Quem tem medo do terminal?
Quem tem medo do terminal?
 
Automattic: A empresa por trás do WordPress.com e muito mais
Automattic: A empresa por trás do WordPress.com e muito maisAutomattic: A empresa por trás do WordPress.com e muito mais
Automattic: A empresa por trás do WordPress.com e muito mais
 
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIWordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
 
Fazendo de tudo com WordPress
Fazendo de tudo com WordPressFazendo de tudo com WordPress
Fazendo de tudo com WordPress
 
Automattic a empresa por trás do WordPress.com e muito mais
Automattic a empresa por trás do WordPress.com e muito maisAutomattic a empresa por trás do WordPress.com e muito mais
Automattic a empresa por trás do WordPress.com e muito mais
 
Workshop criando um site WordPress do zero
Workshop criando um site WordPress do zeroWorkshop criando um site WordPress do zero
Workshop criando um site WordPress do zero
 
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIConfigurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
 

Internacionalizando­ seu desenvolvimento

  • 2. @RafaelFunchal Publicitário, Desenvolvedor e músico nas horas vagas Desenvolve com WordPress desde 2009 Administrador do grupo WordPress Brasil no Facebook e demais grupos do GUWP Support Guru na MailPoet.com Internacionalizando seu desenvolvimento @RafaelFunchal
  • 3. Internacionalização Internacionalização é o processo de desenvolver seu plugin ou tema de uma forma que seja possível traduzi-lo facilmente. É comum abreviar o termo como i18n (por que há 18 letras entre as letras i e n na palavra internacionalization). Internacionalizando seu desenvolvimento @RafaelFunchal
  • 4. Localização Localização se refere a todos os processos de tradução do seu tema ou plugin. Normalmente é abreviado como l10n (por que há 10 letras entre as letras l e n na palavra localization). Exemplos: GlotPress, Transifex, PoEdit e Virtaal Internacionalizando seu desenvolvimento @RafaelFunchal
  • 5. Text Domain tornando seu código traduzível
  • 6. Text Domain no seu plugin /* * Plugin Name: Meu plugin * Author: Autor do plugin * Text Domain: meu-plugin * Domain Path: /languages */ Internacionalizando seu desenvolvimento @RafaelFunchal
  • 7. Text Domain no seu plugin add_action( 'plugins_loaded', 'myplugin_load_textdomain' ); function myplugin_load_textdomain() { load_plugin_textdomain( 'meu-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); } Internacionalizando seu desenvolvimento @RafaelFunchal
  • 8. Text Domain no seu tema /* * Theme Name: Meu tema * Author: Autor do tema * Text Domain: meu-tema * Domain Path: /languages */ Internacionalizando seu desenvolvimento @RafaelFunchal
  • 9. Text Domain no seu tema add_action('after_setup_theme', mytheme_load_textdomain); function mytheme_load_textdomain(){ load_theme_textdomain( 'meu-tema', get_template_directory() . '/languages' ); } Internacionalizando seu desenvolvimento @RafaelFunchal
  • 11. Funções básicas __() _e() _x() _ex() _n() _nx() _n_noop() _nx_noop() translate_nooped_plural() Internacionalizando seu desenvolvimento @RafaelFunchal
  • 12. Inserindo no HTML esc_html__() esc_html_e() esc_html_x() esc_attr__() esc_attr_e() esc_attr_x() Internacionalizando seu desenvolvimento @RafaelFunchal
  • 13. Data e número number_format_i18n() date_i18n() Internacionalizando seu desenvolvimento @RafaelFunchal
  • 14. Exemplos como utilizar no seu código
  • 15. Funções básicas __( 'Blog Options', 'my-textdomain' ); _e( 'WordPress is the best!', 'my-textdomain' ); Internacionalizando seu desenvolvimento @RafaelFunchal
  • 16. Variáveis printf( __( 'Your city is %s.', 'my-textdomain' ), $city ); Internacionalizando seu desenvolvimento @RafaelFunchal
  • 17. Plural printf( _n( 'One comment', '%s comments', get_comments_number(), 'my-textdomain' ), number_format_i18n( get_comments_number() ) ); Internacionalizando seu desenvolvimento @RafaelFunchal
  • 18. Contexto _x( 'Post', 'noun', 'my-textdomain' ); _x( 'Post', 'verb', 'my-textdomain' ); Internacionalizando seu desenvolvimento @RafaelFunchal
  • 19. Mais conteúdo http://codex.wordpress.org/I18n_for_WordPress_Developers https://developer.wordpress.org/plugins/internationalization/how-to-internationalize- your-plugin/ https://developer.wordpress.org/themes/functionality/internationalization/ https://codex.wordpress.org/Function_Reference/load_plugin_textdomain http://codex.wordpress.org/Function_Reference/load_theme_textdomain http://codex.wordpress.org/Function_Reference/wp_localize_script Internacionalizando seu desenvolvimento @RafaelFunchal
  • 20. Obrigado! caso tenham mais perguntas, essa é a hora! :-)