 Boa tarde a quem ainda não conversei, eu tentei conversar bastante com o pessoal nos corredores que é outra função do evento, não é só o conhecimento também a rede é a conversa com as pessoas, eu vou falar sobre a usar a internacionalização no desenvolvimento, tanto de temas e plug-ins, eu sou Gilberto Tavares, eu tenho meu nickname Camaleão, então em vários serviços vocês vão me encontrar como Camaleão, eu desde criança sou curioso então eu gostava de saber como as coisas funcionavam e na adolescência eu tive primeiro contato com programação no comunicador Mirk, sou um pouquinho velho, desenvolver chat boots que hoje são bem sucesso aí, vindo a toda já tinha no Mirk chat boots, então eu comecei programando lá, aí quando eu sou adulto, meu minha paixão foi desenvolvimento web, eu gostava de ver como funcionava por trás de um site, saber que eu podia olhar o código fonte do site, agora o meu primeiro contrato com Wordpress foi em 2007, quando tinha um o comum sistema de monitor de ocorrência e inventário, era feito em PHP e eu achava que o código podia ser melhor e eu queria transformá-lo em um plug-in por Wordpress, não cheguei a fazer isso por enquanto, em 2016 eu me formei na universidade Udesk, eu comecei alguns anos antes e durante a faculdade eu fiz em estágio numa empresa que eu utilizei o Joomla e eu fiquei feliz quando eu pude voltar por Wordpress porque eu vi que o Wordpress está na minha observação, minha opinião anos à frente do Joomla e em 2013 eu comecei a usar profissionalmente o Wordpress numa agência de web próximo da cidade que eu fazia faculdade, lá na minha função nem era para ser o Wordpress, era para ser um framework interno, mas o Wordpress me chamou com um IMA e eu comecei a colaborar com a equipe de desenvolvimento de sites funcionais e outros sistemas baseados em Wordpress e atualmente eu sou desenvolvedor na envolvem, por que internacionalizar? Tem alguns pros e alguns contras, os pros é que você tem um público muito maior, então se você pensar no mundo quanto percentual vai falar o nosso idioma e quanto vão falar pelo menos o inglês como segunda língua, você vai atingir um público bem maior, você pode publicar open source, não que você não possa publicar open source se não for internacional, mas é a mesma coisa, é alcance de público, é a comunidade que vai poder te ajudar no desenvolvimento e você vai poder publicar em marketplace, não apenas no repositório oficial do Wordpress, mas você vai poder, não sei se alguns marketplace exigem a internacionalização, mas você vai conseguir atingir um público grande, marketplace é importante, vão estar pagando, vão querer que esteja no idioma deles, seja o espanhol que seja o português, seja o inglês, o idioma do cliente da marketplace. A notoriedade é algo interessante porque como aqui a Automatique foi falada na primeira palestra, é uma empresa que contrata do mundo inteiro, existem mais empresas dos Estados Unidos ou de outros países que contrata do mundo inteiro, então se você tiver um repositório, um plugin colocado em marketplace ou no próprio repositório oficial, vai ajudar no processo de seleção de você, você pode até ser contratado sem entrar no processo seletivo, simplesmente porque um desenvolvedor dentro da empresa descobriu o seu plugin, comentou com o chefe lá, estão precisando de uma vaga e acham que o desenvolvedor daquele plugin pode ser um profissional a se ter na empresa. A comunidade é algo interessante também, porque é isso, você está desenvolvendo algo open-source e você está envolvido a comunidade, então você vai ter trocas de experiências com a comunidade que também é bem interessante. Praticar idiomas, às vezes você não tem o inglês fluente ou você não usa muito inglês, então se você começar a desenvolver inglês, mesmo assim traduzir para o idioma nativo do seu cliente ou fazer multi sites, para alguns casos, você também vai melhorar você profissionalmente. E a previsão para multi-dioma é que o site ele não é atualmente, o cliente não quer o site multi-dioma, mas você tem tempo para encaixar, fazer o desenvolvimento em multi-dioma, se daqui, se depois de uns dois meses você, ó cara, agora eu vou atingir o mercado latino-americano, eu preciso que seja em espanhol também e aí eu depois eu quero também que vai ser inglês, mas por enquanto eu só quero espanhol, você já está preparado, você não precisa voltar lá no código alterar, só precisa colocar o pacote de idioma em espanhol, agora os contras são que a curva de aprendizagem é maior, então se você não desenvolveu ainda com multi-dioma, você vai ter que aprender como faz, mais codificação você vai ter que colocar um pouco mais de código para que ele funcione em multi-dioma e o tempo adicional, o tempo adicional na verdade é o maior custo, porque realmente muitos casos no mentor depress, o cliente vai pensar, o cliente e as agências às vezes acham, é simples, é rápido, eu tenho só uma semana para fazer e uma semana não dá para fazer uma coisa bem estruturada, às vezes você tem que pular um pouco fazer a internacionalização, o que eu recomendo então, se você não puder usar o inglês para depois fazer a tradução, comece usando algumas funções de internacionalização que são úteis, mesmo escrevendo em português, o que que é o i18n e o l10n, é internacionalização e localização, vem da primeira letra e da última letra e é a quantidade de caracteres que estão entre elas, eu dividi os dois, não seja um consenso, tem tratamentos diferentes para isso, mas eu entendi que internacionalizado é o relacionado à escrita, ao idioma, aos formatos de data e hora, aos formatos de número e moeda, onde o país não é o foco, então porque pode atingir mais de um país, tem mais países que usam o mesmo formato de data e hora, mais países que usam a mesma moeda, então é algo não relacionado diretamente ao país, já o localizado seja algo mais para estar da cultura, digamos que seja o commerce, um dos patrocinadores, que eles queiram que atinja a emissão de nota fiscal, no Brasil eles vão ter que fazer um processo específico para emitir nota fiscal no Brasil, mas isso eles deixam a carga de plug-ins, claro, regionalismos, algo específico daquela região, a direção do texto, alguns países são na direção contrária, são da direita para a esquerda, o fuso horário, então o fuso horário, cada país tem o seu, tem países que compartilham, mas em geral é assim que funciona, onde o país é o foco, as vantagens, desvantagens eu comentei, o inglês da codificação aos textos, eu recomendo fortemente o inglês, se vocês precisarem, eu vou fazer em português e depois eu vou traduzir para o inglês, também funciona, mas eu recomendo o inglês porque você vai ter um padrão, seguir o padrão que o desenvolvimento de temas faz, no mundo interno, então eu começo ali a escrever o nome das funções em inglês, os slugs em inglês, as classes em inglês, até a documentação em inglês, as notações, porque por exemplo, se você se acostumar a usar em inglês, quando você precisar, é buscar um, fazer uma pesquisa na internet, ou buscar a documentação, ler uma documentação, você vai ver que aquele costume que você teve no inglês melhorou a sua leitura e você vai ter um melhor aproveitamento da documentação na internet e dos códigos que você encontra na internet, prepara para o mercado estrangeiro, então se surgir uma oportunidade de participar de um prédio seletivo estrangeiro, você já vai estar à frente de alguns outros profissionais, porque o código é para desenvolvedor, não é para o usuário, então o desenvolvedor, ele, às vezes tem que se forçar a entender um pouco do inglês, exatamente porque é um padrão da área, o inglês é um idioma bem forte no dia a dia do desenvolvedor, traduzir a partir do inglês é mais fácil, então se você vai traduzir por exemplo, digamos que por cargas d'água o cara quer em alemão, porque o meu país de origem é alemão, eu quero atingir o público alemão também, traduzido português pro inglês, você vai atingir a usar algo mais automatizado, como o Google Translate, você vai ver que a chance de errar é maior que se você traduzir direto do inglês pro alemão, por exemplo, trechos de código, então se você vai estar escrevendo em português seu código, documentação, tudo, acontece de você se inspirar num código do stake overflow e querer pegar um c contra o c contra o v no seu código, mesmo que seja só uma inspiração pequenininha, vai ficar parte inglês, parte em português, então isso vai despadronizar o seu código fonte, então practice your English, isso torna a prática do inglês, você normalmente faz como? Num código fonte lá, numa tag h1, você vai colocar a set in a page ou o texto que você precisar, você vai substituir isso por uma função, vai colocar um PHP no lugar e um padrão que é o underline, underline que é o nome da função e vai passar com um parâmetro qual que é o texto, domínio de texto, é onde você vai especificar a tradução pra onde ela se encaixa, normalmente é o slug pasta, é o nome do tema ali, ele usado no cabeçalho, como no caso ali tem no cabeçalho aqui text domain myTema, meu tema, nas funções pra puxar as funções, você pode colocar como parâmetro aqui pra especificar, então só vai traduzir quando for deste e carregando tradução quando você for fazer a carga da tradução, o getText, ele é mais antigo do que WordPress, ele já vem lá do GNU e ele funciona basicamente assim, é onde você tem o código PHP, vai gerar um templete da tradução, do templete da tradução vai gerar um objeto, uma tradução mesmo, que vai primeiro se não ter, ou só ter o inglês e só vai ter o termo inglês e vai faltar o termo em português, ele especifica também onde está localizado aquele texto, então nesse caso está no arquivo dev, pega p na linha 15 e depois disso, depois que a tradução já está toda preenchida dentro do arquivo pô, ele vai gerar um binário que é o mo, então é um pômo, está mais conhecido como pômo, das funções além da básica, você ter pra dar eco para imprimir, você estaria aqui colocar underline, underline e daí imprimir essa função, você pode usar essa variante que ela vai fazer o eco, então já vai imprimir, pra quem já desenvolveu com o short tag, tem uma função que reduz esse uso do eco, assim você mantém o padrão do WordPress, que é a tag completa do PHP, mas também imprime de um jeito fácil o texto, tem algo interessante também, que é a descrição, que você pode descrever aqui, a mesma frase, a mesma palavra, sirva para substantivo ou para verbo, no inglês é post post, mas no português quando for traduzir, por exemplo, vai ficar publicação e publicar, não usar o domínio como variável, porque se você vai usar uma ferramenta automatizada para puxar todos esses pra dentro do bom arquivo pote, template tradução, ele não vai conseguir encontrar isso, a tradução com variável, caso você precisa usar variável no seu texto, que normalmente se usa assim, eco, as pás duplas para ele interpretar essa variável e daí vai imprimir sua cidade é nome da cidade, para fazer na tradução, a gente usa o printf ou sprintf caso não for feita a impressão direta, você vai abrir a função sprintf, vai passar como um dos parâmetros, o valor que será traduzido e como segundo o parâmetro, o valor da cidade que entrará substituindo esse percentual, esse aqui, que é o reservado, o placeholder e para fazer a impressão direta, sim, é incorreto, ele vai aparecer na tradução, mas ele vai aparecer na tradução já com o nome da cidade do último ali, vai fugir do que você espera, então assim é o jeito que funciona, é o jeito que resolve para fazer a tradução, aqui ele já está passando o text domain e aqui é uma anotação, que se você está usando um PHPCS com o padrão do ordepress, ele vai gritar que isso aqui precisa, porque se for um, aqui ficaria até claro que isso é o nome da cidade, mas para o tradutor às vezes é preciso ter uma informação, então nesse padrão aqui você faz um comentário, vai colocar translator dois pontos e você vai escrever o que o tradutor vai precisar para ajudar a fazer essa tradução e interessante é que quando for mais de um argumento até em alguns casos quando for um argumento só, usar os placeholders reordenáveis, os placeholders reordenáveis você acrescenta naquele formato de percentual S, a ordem do parâmetro e um sinfrão, então o segundo aqui vai pegar o segundo aqui, o primeiro aqui vai pegar o primeiro aqui, o número indica a ordem que ele vai pegar aqui e na descrição aqui na nota ele está especificando também o número que corresponde, em algumas traduções vai precisar alterar a ordem, mesmo se for no final placeholder é interessante, às vezes se você vai colocar a avenida tal nome e você usar uma tradução, em inglês não vai ser avenida, vai ser outro termo, então às vezes nos Estados Unidos por exemplo é rua tal, o nome da rua vem antes do termo rua, então às vezes é interessante usar o parâmetro reordenáveis inclusive quando for um só, o formato de data e hora também é muito interessante, porque você consegue trabalhar com, em vez de na casa de milhar colocar o ponto, fazer a redondamento caso não tenha passado o parâmetro, colocar vírgula quando for de duas casas decimais, o texto aqui, a tradução dos meses também é interessante que ele vai conseguir, se tiver um get text option aqui que vai pegar lá do seu, suas configurações na ordepress, normalmente se você usasse só o date sem o id 18n ele imprimir o termo, o mês em inglês, mês de semana em inglês, usando o date id 18n ele já vai, o ordepress mesmo já vai traduzir para o termo em português, e plural também é algo muito interessante, às vezes a gente tem o plural e não tá fazendo inglês, mesmo assim é interessante, no português usar os valores aqui, em português você vai conseguir fazer pluralização também, mesmo sem precisar usar a internação da lização, então o comando é underline n ou underline x caso você tenha que fazer uma descrição de uma variante, ele vai passar como primeiro parâmetro, o termo em singular, o segundo em plural, vai passar a contagem, o valor, então quando for um vai imprimir um comentário, quando for um, dois ou mais vai imprimir o número comentário, inclusive aí aqui ele vai fazer placeholder e vai jogar o valor formatado ainda para dentro do texto, quando for um só você pode colocar um item, ou mesmo se na tradução tiver por padrão percentual comentário, você pode na tradução terá para um comentário caso você prefira, marcação HTML foi falado aí dos escapes, é possível também misturar a tradução com escape html para não precisar colocar a função dentro de função, tanto para html quanto para tributo, e são necessárias para a tradução, principalmente que se você vai atingir um público que vai precisar traduzir que não seja você, boas práticas no inglês padrão, sem gíria, sem abreviação, usar sentenças inteiras, porque às vezes a ordem no inglês ou no português é diferente de qualquer outro idioma, quebrar em parágrafos, então não fazer textos muito grandes ali na tradução, pequenos parágrafos para traduzir, e lembrar também que junto com a tradução tem que pensar onde essa tradução vai entrar, porque pode na tradução ele dobrar de tamanho, não usar marcação em comum, só usa tag HTML caso precise, se for comum, não deixar o URL no texto, eu não sei que você realmente precisa traduzir aquela URL, dependendo do país, vai ser uma tradução diferente, ou separa então a URL em outro caso, e o que eu comentei que mesmo quando o placeholder for no fim tem que pensar nisso também, na possibilidade, aqui é uma opção bem legal para quem usa javascript, você pode traduzir javascript ou colocar qualquer parâmetro, caso você queira colocar uma URL, dá para colocar também, que é o localize script, então você vai primeiro registrar o script com alguma ID, vai traduzir essa script com a ID, e por último você vai fazer o encue dela, encueleiramento dela, aí quando você for fazer tipo um script inline, você consegue pegar o objeto que você passou aqui em cima, e o valor, o objeto que passou aqui, o object name, translator aqui, o array, e vai conseguir pegar esse valor, a geração do template, então se você tem o código lá, você não precisa fazer aquele arquivo manualmente, você pode usar as ferramentas do 818n do WordPress, ou o WPCli, você pode instalar um pequejo no WPCli e fazer a geração, vai colocar qual é os arquivos, está na mesma pasta aqui, e qual é o destino desse POT, ou pode usar a tarefa grande após configurado, Scaffolding do plugin ele já tem a tarefa configuradinha, esse aqui é o Poedit, o Poedit é um arquivo que você pode, é um programa que pode auxiliar na tradução, então você vai abrir o arquivo, vai gerar um arquivo Po, e vai poder usar como base o POT, e vai realmente alimentar tudo aqui, nesse campo você vai colocar qual é a tradução, vai mostrar no lado o valor você traduzido aqui a tradução, as notas para o tradutores também aparecem, você tem sugestões de tradução, ele está disponível para Windows, Mac e Linux, ele é recomendado pelo WordPress inclusive, para carregar o tema você pode carregar automaticamente, se estiver na pasta plugin com o context domain e o idioma, ou então você pode dentro do tema puxar com uma função, ou então dentro do plugin também puxar com uma função, aqui é os meus contatos, é camaleão em quase tudo quanto é lugar, tem inclusive meu telefone, celular, não tem problema, pode me entrar em contato, celular, Instagram, Twitter, Skype, GitHub, Geist, Telegram, WhatsApp, Angau, estou em tudo quanto é lugar, diferente do que o Cristian recomendou, eu sou bem promisco na internet, mas eu não me exponho demais, mas estou lá, se vocês quiserem me contactar, como disse o Pital, também aceito amigo, não tem problema, alguma pergunta, se precisarem do slide está aqui, pode notar o URL, vocês acessam os slides? Pergunta? Primeiramente elogiado a apresentação, gostei bastante porque eu uso bastante um plugin de recorrência da Vind, e o plugin deles não tem tradução, e eu estava sempre me ferrando para poder traduzir alguns termos, e são termos simples, meis, parcelas, às vezes que a gente usa no commerce, só que eu sempre fico com a dúvida, quando eu uso o Poedit para traduzir, depois que ele traduz ele gera então esses arquivos .po e .mo, eu devo subir então sempre esses dois arquivos para o servidor, depois que eu termino essas traduções, porque no plugin está só o .po, nunca está com .po, nem .mo. O .poT é o arquivo base que ele gera a partir da leitura do código, então quando você gera um arquivo novo no Poedit, ele vai já te oferecer para tu selecionar qual que é o arquivo template, é interessante manter também o arquivo pull up que você pode ir daqui um tempo, outra pessoa pode necessitar continuar a tradução, e como o arquivo .mo é binário, ele não vai conseguir fazer em cima do arquivo .mo, o que acontece muitas vezes é que você também é bom saber a internacionalização por isso, eu comprei um plugin e não tem a atualização, como fazer? Eu comprei um plugin que não tem nem o PoT, como é que eu faço, mas ele usou lá os parâmetros, então você pode você gerar mesmo de um plugin e fazer essa tradução, às vezes não tem a tradução lá no Nordpress.com, no Translate, então às vezes precisa resolver, não os plugins principais, o commerce e Jetpack que já vem por padrão essas traduções. Boa tarde, tudo bem? Então, já comprei alguns plugins que não tinha a tradução, não foi feito para ter a tradução e era necessário no site ter a tradução. Nesses casos, algumas formas que já foi utilizada lá na empresa, o professor de repente vai dar uma risada. Dentro do próprio código? Não, deixou intacto o plugin, pelo menos isso, mas daí usou um jQuery, para a JavaScript para substituir lá depois no final. Então, existe uma outra prática melhor para fazer isso, nesses casos? Olha, na verdade, é por isso que eu decidi fazer essas palestras, exatamente porque eu vejo que tem casos que não fazem, se não fazem, realmente você vai ter que usar qualquer outra função, vai ter que usar um JavaScript para fazer isso, mas se ele já foi desenvolvido com esse código, mesmo se não tiver o POT você pode gerar, ou o que acontece na maior parte das vezes é realmente ter o POT. O POT está lá, então você só precisa gerar a sua tradução. Então, realmente, já aconteceu casos que tinha lá, mas o cara usou um plugin, também tem plugin que às vezes faz tradução, mas às vezes o plugin encontrar ali é um pouco mais complicado se ele usar esse padrão. O que eu recomendo é buscar informações às vezes de algum plugin, cuidar para não instalar qualquer plugin que vai ter problema de brecha de segurança, vai ter problema de não atender a sua necessidade, vai ter problema de compatibilidade, então tem que cuidar. O que eu recomendo é ter uma caixa de ferramenta de alguns plugins que vocês confiam e lembrar que tive problema contar o plugin e cuidar para não utilizar. Igual, tem plugin que faz uma funcionalidade de tentativas de login. O próprio Jetpack já tem um flag que você clica e não precisa instalar mais um plugin. Jetpack por mais que é um patrocinador, mas eu gosto muito para sim utilizar um tempo atrás, então tem bastante funcionalidade legal. Às vezes procurar uma solução que é mais reconhecida, vai impedir de você pegar um plugin que vai te dar dor de cabeça. Pode falar. Que honra ser perguntado pelo Viking. É uma pergunta e um comentário, melhor fazer o comentário antes. Caso vocês usem algum plugin que esteja no repositório oficial e ele não esteja traduzido ainda para português, translate.wordpress.org, só criar uma conta dentro do Wordpress.org e vocês vão poder fazer toda essa tradução do resto da comunidade até aquele plugin já traduzido. Então, não traduza um plugin que seja no repositório e guarda só para você. Se você fizer isso, você vai ter pesadelos e a fada do dente não vai te dar uma moeda depois. Não sei. Então, sempre traduza um translate.wordpress.org. E a pergunta que vai fazer é você indica o loco translate para traduzir ao invés do Poedit, traduz direto do site e já cria o .mo dentro do servidor. Daí você não tem que ter o trabalho de subir por FTP. Eu nunca usei alguma função que não fosse essa. Eu estou restrito a esse uso. Mas realmente o Wordpress tem valorizado sem mais tradução. Agora ele está lá na pasta, ele já carrega automaticamente. Está lá no translate.wordpress.org e ele já vai fazer a instalação. A última versão veio com essas funcionalidades. Então, se você estiver com o Wordpress um pouco mais antigo. É realmente interessante você ver que eu estalei um plugin, ele está traduzido, mas tem alguns termos que estão faltando. Então, se você aceitar o translate.wordpress.org, você pesquisa o plugin, ele só está com 90% das traduções, você pode colaborar com o resto. Ou pensar se é isso que é legal. Realmente essa função do Google Translate, aqui na verdade eu trabalho um pouco mais com o software fechado. Então, eu não publico tanto, então realmente eu não cheguei a utilizar essa funcionalidade. Às vezes o plugin não tem a tradução nem em português, não foi iniciado. Você pode contratar o autor do plugin e pedir para ser incluído como um tradutor do plugin. E aí vocês vão passar a fazer parte disso aí também. É outra forma de colaborar nessa tradução. E tem mais gente que faz tradução continuamente. Tem um grupo no Slack onde se ensina as práticas de tradução que a gente usa na comunidade. Não sei se você chegou a mencionar isso ou não, que eu cheguei tarde na palestra. Mas dá várias dicas de como a gente usa a tradução para nós com o português do Brasil. Eu acho bem interessante seguir padrões. Eu acho muito interessante seguir padrões, conhecer os padrões, tanto de código quanto de tradução. Então, o que eu normalmente faço para aprender padrões? Não só em documentação. Eu olho os consagrados. Normalmente os consagrados estão seguindo bons padrões. Se eles chegaram tão longe, então o commerce também dos patrocinadores é um... até eu fico feliz que a Automatic adquiriu, porque realmente eles faziam algo muito bem feito e o que eles faziam bem feito, a própria WordPress.com e .org têm certeza que está trazendo para dentro deles e eles estão se melhorando junto. E eu, como um bom fã, tenho melhorado também por eles existirem. Então, eu acho que bons padrões, seja de texto, de escrita, de código, seja do que for, é bom seguir. Então, se você vê que, por mais que o inglês vai colocar todas as primeiras letras em letra maiúscula, mas você sabe que no português isso não acontece. Então, ponha só a primeira da frase. Às vezes, o setting pages ali, no inglês vai vir muito com setting pages. Mas no português, você vai ver que a maioria das pessoas, a maioria das pessoas, pagina de configuração, com deim minúsculo e configuração minúsculo. Então, tente ver como é que está sendo feito e tente manter o padrão que os grandes estão usando. Nós temos o glossário para esse tipo de coisa, como estados de post, ortego, né? A gente oferta por seguir o que tem no glossário e fica mais fácil daí. A documentação do WordPress é bem vasta. Eu já usava isso, mas eu usei bastante o WordPress, a nova que eles estão fazendo lá, os handbooks, para atualizar ela, para ver como é que o WordPress está ensinando e como é que o padrão que ele está seguindo. Por mais que é algo que eu use, eu pensei se não vou fazer da minha cabeça, vou fazer seguindo algo que o WordPress recomenda. Então, está tudo lá, a documentação. No slide, tem os links ali para vocês seguirem. Podem anotar aí. É o mesmo slide que está lá. Então, tem os links para vocês se ampliarem. Realmente, a documentação vai estar em inglês. Mais uma pergunta. Vamos começar a última palestra, que eu estou ansioso. O Guim Territory. Obrigado, gente.