{"id":233745,"date":"2023-02-20T11:43:00","date_gmt":"2023-02-20T08:43:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233745"},"modified":"2022-11-11T12:09:55","modified_gmt":"2022-11-11T09:09:55","slug":"tutorial-de-tema-wordpress-para-iniciantes-parte-8-traducao","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/tutorial-de-tema-wordpress-para-iniciantes-parte-8-traducao\/","title":{"rendered":"Tutorial de Tema WordPress para Iniciantes \u2013 Parte 8: Tradu\u00e7\u00e3o"},"content":{"rendered":"\n<p>Nesta li\u00e7\u00e3o, aprendemos como funciona a tradu\u00e7\u00e3o (ou tamb\u00e9m conhecida como i18n) no WordPress e como fazer os ajustes necess\u00e1rios em nossos modelos. Tamb\u00e9m aprenderemos como configurar corretamente o PoEdit para criar um arquivo de tradu\u00e7\u00e3o para o nosso tema, pronto para ser traduzido em diferentes idiomas.<\/p>\n<h2>Por que se preocupar em adicionar suporte \u00e0 tradu\u00e7\u00e3o?<\/h2>\n<p>Todos os temas, pelo menos aqueles que se tornam p\u00fablicos para uso de outras pessoas que n\u00e3o o desenvolvedor, devem estar dispon\u00edveis para tradu\u00e7\u00e3o. Isso \u00e9 chamado de internacionaliza\u00e7\u00e3o (i18n em resumo) e permite que as pessoas traduzam os textos que voc\u00ea adiciona em seu tema para outro idioma.<\/p>\n<p>A maneira como isso funciona \u00e9 que voc\u00ea, como autor de temas ou desenvolvedor de plugins, envolve todos os seus textos (como &#8220;Leia mais&quot;, &#8220;Sem postagens&#8221;) em determinadas fun\u00e7\u00f5es. Essas fun\u00e7\u00f5es fazem com que o WordPress seja capaz de peg\u00e1-los e injetar uma tradu\u00e7\u00e3o se ela existir. Dentro do seu tema (ou plugin) voc\u00ea pode adicionar arquivos de um determinado tipo de arquivo para cada idioma traduzido, ou certificar-se de que outras pessoas possam criar sua pr\u00f3pria tradu\u00e7\u00e3o em seu pr\u00f3prio idioma.<\/p>\n<p>Isso \u00e9 muito \u00fatil para pessoas que desejam usar o WordPress e seu tema (ou plugin) em um idioma diferente do idioma de origem em que foi escrito (que geralmente \u00e9 o ingl\u00eas). Mas tamb\u00e9m pode ser utilizado para alterar certos textos para algo diferente dentro do mesmo idioma.<\/p>\n<p>Se voc\u00ea estiver interessado no assunto, o WordPress Codex tem um <a href=\"https:\/\/codex.wordpress.org\/I18n_for_WordPress_Developers\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">guia de documenta\u00e7\u00e3o longo e bom sobre i18n para desenvolvedores<\/a>.<\/p>\n<h2>Implementando i18n em nosso tema<\/h2>\n<p>J\u00e1 fizemos a primeira parte na <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-7-theme-setup-and-featured-images\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">etapa anterior<\/a> desta s\u00e9rie de tutoriais de temas, onde adicionamos <code>load_theme_textdomain<\/code>a fun\u00e7\u00e3o de configura\u00e7\u00e3o do nosso tema. Caso voc\u00ea tenha esquecido, isso \u00e9 o que adicionamos:<\/p>\n<pre><code>load_theme_textdomain('wptutorial', get_stylesheet_directory(). '\/lang');<\/code><\/pre>\n<p>O primeiro argumento \u00e9 o handle, esta \u00e9 uma string \u00fanica que voc\u00ea usar\u00e1 para agrupar todos os textos que pertencem ao seu tema. Voc\u00ea repetir\u00e1 essa al\u00e7a toda vez que fizer um texto traduz\u00edvel. O segundo argumento informa ao WordPress onde est\u00e3o os arquivos de tradu\u00e7\u00e3o. N\u00f3s os definimos para residir em uma subpasta &#8216; <code>lang<\/code>&#8216; em nosso diret\u00f3rio de temas.<\/p>\n<p>N\u00e3o se preocupe se esta pasta n\u00e3o existir ou n\u00e3o contiver nenhum arquivo \u2013 nada ir\u00e1 travar. Se o WordPress n\u00e3o encontrar a pasta nem os arquivos de tradu\u00e7\u00e3o corretos, o padr\u00e3o voltar\u00e1 aos textos que temos no tema.<\/p>\n<p>O pr\u00f3ximo passo \u00e9 passar por todo o nosso c\u00f3digo e encontrar qualquer sa\u00edda de texto que deva ser traduz\u00edvel. \u00c9 uma boa pr\u00e1tica garantir que abrangemos absolutamente todos os textos. Nada \u00e9 mais irritante do que usar um tema ou plugin onde o autor codifica textos impossibilitando a tradu\u00e7\u00e3o ou altera\u00e7\u00e3o de qualquer forma.<\/p>\n<h2>Como tornar os textos traduz\u00edveis<\/h2>\n<p>O que fazemos com todos os textos \u00e9 coloc\u00e1-los dentro de uma das fun\u00e7\u00f5es gettext do WordPress, que mais comumente s\u00e3o <code>_e()<\/code>ou <code>__()<\/code>. O primeiro \u00e9 um sublinhado com &#8220;e&#8221; que \u00e9 usado quando voc\u00ea deseja ecoar o texto ao mesmo tempo. O segundo \u00e9 dois sublinhados e \u00e9 usado quando voc\u00ea n\u00e3o deseja eco\u00e1-lo, mas armazen\u00e1-lo ou us\u00e1-lo em uma vari\u00e1vel.<\/p>\n<p>O WordPress tem mais fun\u00e7\u00f5es gettext que atendem a prop\u00f3sitos mais espec\u00edficos, por exemplo <code>esc_html__()<\/code>, <code>_n()<\/code>, <code>_x()<\/code>e muito mais. No entanto, n\u00e3o entraremos em detalhes neste tutorial.<\/p>\n<p>As fun\u00e7\u00f5es gettext recebem dois par\u00e2metros; primeiro o pr\u00f3prio texto e, em segundo lugar, o identificador que voc\u00ea definiu em <code>load_theme_textdomain<\/code>. Neste caso \u00e9 &#8216; <code>wptutorial<\/code>&#8216;.<\/p>\n<p>Por exemplo, se voc\u00ea tiver algo assim:<\/p>\n<pre><code>echo 'Read more';<\/code><\/pre>\n<p>Voc\u00ea precisar\u00e1 substitu\u00ed-lo por:<\/p>\n<pre><code>_e('Read more', 'wptutorial');<\/code><\/pre>\n<p>E da mesma forma para armazenar em uma vari\u00e1vel;<\/p>\n<pre><code>$myvariable = 'Read more';<\/code><\/pre>\n<p>Ele precisa ser escrito assim:<\/p>\n<pre><code>$myvariable = __('Read more', 'wptutorial');<\/code><\/pre>\n<p>Agora precisamos encontrar todos os textos em nossos modelos! Se voc\u00ea seguiu este tutorial a um &#8220;T&#8221; n\u00e3o s\u00e3o muitos. Temos algumas strings <code>index.php<\/code>e algumas em <code>single.php<\/code>.<\/p>\n<h2>Adicionando suporte de tradu\u00e7\u00e3o em nosso tema<\/h2>\n<p>Vamos come\u00e7ar <code>index.php<\/code>e localizar a mensagem &#8220;Sem postagens, desculpe&#8221; que adicionamos se o loop n\u00e3o contivesse nenhuma postagem. Envolvemos esse texto <code>_e()<\/code>porque ainda queremos eco\u00e1-lo. Ent\u00e3o \u00e9 isso que obtemos:<\/p>\n<pre><code>...\n} else {\n    ?&gt;&lt;p&gt;&lt;?php _e('No posts, sorry.', 'wptutorial'); ?&gt;&lt;\/p&gt;&lt;?php\n}\n...<\/code><\/pre>\n<p>Como voc\u00ea usou <code>_e()<\/code>, n\u00e3o deve ver nenhuma altera\u00e7\u00e3o quando clicar em atualizar na p\u00e1gina inicial ou no arquivo. Mas sob o cap\u00f4, este texto agora \u00e9 traduz\u00edvel!<\/p>\n<p>Temos este mesmo texto em nosso <code>single.php<\/code>e <code>page.php<\/code>. Atualize-os da mesma maneira que fizemos no <code>index.php<\/code>. Adicionamos mais alguns textos em <code>single.php<\/code>, ent\u00e3o aqui est\u00e1 como fica depois de tornar todos os textos traduz\u00edveis:<\/p>\n<pre><code>...\n        &lt;?php the_category(); ?&gt;\n        &lt;p&gt;&lt;?php _e('Posted', 'wptutorial'); ?&gt;: &lt;?php the_date(); ?&gt; &lt;?php _e('at', 'wptutorial'); ?&gt; &lt;?php the_time(); ?&gt;&lt;\/p&gt;\n        &lt;p&gt;&lt;?php _e('Author', 'wptutorial'); ?&gt;: &lt;?php the_author(); ?&gt;&lt;\/p&gt;\n    &lt;\/article&gt;\n    &lt;?php endwhile;\n} else {\n    ?&gt;&lt;p&gt;&lt;?php _e('No posts, sorry.', 'wptutorial'); ?&gt;&lt;\/p&gt;&lt;?php\n}\n\u00a0\n...<\/code><\/pre>\n<p>A partir de agora, todos os textos que adicionarmos ao nosso tema, certifique-se de envolv\u00ea-los dentro <code>__()<\/code>ou <code>_e()<\/code>.<\/p>\n<h2>Arquivos de tradu\u00e7\u00e3o<\/h2>\n<p>Existem duas maneiras de fornecer arquivos de tradu\u00e7\u00e3o para o seu tema;<\/p>\n<ul>\n<li>Forne\u00e7a um <code>.pot<\/code>-arquivo<\/li>\n<li>ou forne\u00e7a um par de arquivos <code>.po<\/code>e .<code>.mo<\/code><\/li>\n<\/ul>\n<p>O <code>.pot<\/code>-file \u00e9 recomendado para um tema que voc\u00ea vende ou d\u00e1 para outros usu\u00e1rios, pois com este arquivo \u00e9 muito f\u00e1cil gerar um arquivo de tradu\u00e7\u00e3o para um novo idioma. No entanto, n\u00e3o \u00e9 f\u00e1cil (ou gratuito) criar um desses arquivos. Se voc\u00ea estiver familiarizado com WP-CLI (linha de comando WordPress) ou Grunt, voc\u00ea pode seguir as diretrizes na <a href=\"https:\/\/codex.wordpress.org\/I18n_for_WordPress_Developers#POT_files\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documenta\u00e7\u00e3o do WordPress aqui<\/a>. Se n\u00e3o, a outra alternativa pode ser para voc\u00ea.<\/p>\n<p>Os arquivos <code>.po<\/code>e <code>.mo<\/code>trabalham juntos. WordPress requer um <code>.mo<\/code>para tradu\u00e7\u00e3o de textos, mas este arquivo n\u00e3o \u00e9 leg\u00edvel. Portanto, temos o <code>.po<\/code>arquivo que \u00e9 leg\u00edvel para n\u00f3s. Com o software certo, ele gera o <code>.mo<\/code>arquivo sempre que voc\u00ea faz altera\u00e7\u00f5es.<\/p>\n<p>A desvantagem dos arquivos <code>.po<\/code>e <code>.mo<\/code>\u00e9 que voc\u00ea precisa gerar um par para cada idioma e, uma vez traduzido para um idioma, n\u00e3o h\u00e1 uma maneira f\u00e1cil de esvaziar todas as tradu\u00e7\u00f5es para criar outro novo idioma.<\/p>\n<p>Voc\u00ea precisa de um programa para editar <code>.pot<\/code>e <code>.po<\/code>arquivos. O mais comum \u00e9 <a href=\"https:\/\/poedit.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">o PoEdit<\/a>. O PoEdit \u00e9 gratuito e funciona tanto para iOS quanto para Windows. Mas alguns recursos avan\u00e7ados (como gerar um <code>.pot<\/code>-file) infelizmente requerem uma vers\u00e3o paga. Usaremos a vers\u00e3o gratuita para fazer um <code>.po<\/code>arquivo para o nosso tema.<\/p>\n<p>Baixe e instale o PoEdit para seguir o resto do tutorial.<\/p>\n<h2>Criando um arquivo .po para nosso tema com PoEdit<\/h2>\n<p>Fazer um arquivo de tradu\u00e7\u00e3o para o ingl\u00eas geralmente n\u00e3o faz sentido quando todos os textos do nosso tema s\u00e3o em ingl\u00eas, mas para os prop\u00f3sitos deste tutorial, farei um arquivo de tradu\u00e7\u00e3o para o ingl\u00eas.<\/p>\n<p>1 Abra o PoEdit e clique em Arquivo &gt; Novo\u2026<\/p>\n<p>2 Voc\u00ea ser\u00e1 solicitado a escolher um idioma. Escolha o idioma desejado, por exemplo, ingl\u00eas.<\/p>\n<p>3 Pressione Salvar (Ctrl+S). Localize a pasta do seu tema e entre na <code>\/lang\/<\/code>subpasta. (Se voc\u00ea n\u00e3o o criou na \u00faltima etapa, crie-o agora). O nome do seu arquivo \u00e9 cr\u00edtico. Para temas, ele deve ser nomeado apenas com o c\u00f3digo do seu idioma. Para o ingl\u00eas americano seria <code>en_US<\/code>, para o noruegu\u00eas \u00e9 <code>nb_NO<\/code>. Pesquise no Google ou consulte <a href=\"https:\/\/wpastra.com\/docs\/complete-list-wordpress-locale-codes\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">esta vis\u00e3o geral<\/a> para encontrar o c\u00f3digo do seu idioma. Vamos nome\u00e1-lo <code>en_US.po<\/code>.<\/p>\n<p>4 No menu, clique em Cat\u00e1logo &gt; Propriedades\u2026<\/p>\n<p>5 Na primeira aba voc\u00ea pode preencher algumas informa\u00e7\u00f5es como o nome do seu projeto (tema), ou mudar o idioma \u2013 mas n\u00e3o \u00e9 necess\u00e1rio. Eu recomendo que voc\u00ea mantenha o charset em UTF-8, pois \u00e9 isso que escrevemos para o WordPress.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69a10501.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69a10501.png\" alt=\"Tutorial de Tema WordPress para Iniciantes \u2013 Parte 8: Tradu\u00e7\u00e3o\" ><\/a><\/p>\n<p>6 Clique na guia Caminhos de fontes. Aqui voc\u00ea precisar\u00e1 definir quais pastas o arquivo deve procurar para textos traduz\u00edveis. Os caminhos s\u00e3o relativos, e como j\u00e1 salvamos em uma subpasta do nosso tema, sabemos que precisa subir um diret\u00f3rio. Clique no bot\u00e3o + abaixo da caixa Caminhos e escolha Adicionar pastas. Escolha o diret\u00f3rio do seu tema. Isso deve adicionar um elemento de caminho &#8220;.&#8221; (subir uma pasta). Verifique novamente se &#8220;caminho base&#8221; se refere ao diret\u00f3rio do seu tema raiz.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69b261fd.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69b261fd.png\" alt=\"Tutorial de Tema WordPress para Iniciantes \u2013 Parte 8: Tradu\u00e7\u00e3o\" ><\/a><\/p>\n<p>7 Clique na pr\u00f3xima guia, &#8220;Fontes de palavras-chave&#8221;. Aqui voc\u00ea precisa informar ao PoEdit quais fun\u00e7\u00f5es voc\u00ea usou para textos traduz\u00edveis (por exemplo <code>__<\/code>, <code>_e<\/code>, <code>esc_html_e<\/code>e assim por diante). Clique no bot\u00e3o + para adicionar cada fun\u00e7\u00e3o e escreva-as sem &#8220;()&#8221;. Cabe a voc\u00ea se voc\u00ea deseja cobrir todas as suas bases e adicionar todas as fun\u00e7\u00f5es gettext do WordPress, mas neste tutorial sabemos que usamos apenas duas. Ent\u00e3o adicionamos dois elementos; <code>__()<\/code>e <code>_e()<\/code>. Adicione as fun\u00e7\u00f5es sem nenhum par\u00eantese.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69c29a5b.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69c29a5b.png\" alt=\"Tutorial de Tema WordPress para Iniciantes \u2013 Parte 8: Tradu\u00e7\u00e3o\" ><\/a><\/p>\n<p>8 Pressione OK.<\/p>\n<p>9 Tudo o que resta \u00e9 dizer ao PoEdit para verificar os caminhos fornecidos para fun\u00e7\u00f5es usando <code>__()<\/code>e <code>_e()<\/code>(ou o que voc\u00ea forneceu). Voc\u00ea faz isso pressionando o bot\u00e3o &#8220;Atualizar a partir do c\u00f3digo&#8221;. (A vers\u00e3o do Windows tem o texto no bot\u00e3o, mas a vers\u00e3o do iOS n\u00e3o \u2013 ent\u00e3o para iOS voc\u00ea precisa apertar o bot\u00e3o que normalmente \u00e9 o \u00faltimo na barra de ferramentas; um \u00edcone de arquivo com um \u00edcone &#8220;refazer&#8221; na parte superior. Clique o bot\u00e3o &#8220;Atualizar do c\u00f3digo&#8221; e voc\u00ea dever\u00e1 ver todos os textos listados com uma interface para tradu\u00e7\u00e3o:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69d34b4a.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69d34b4a.png\" alt=\"Tutorial de Tema WordPress para Iniciantes \u2013 Parte 8: Tradu\u00e7\u00e3o\" ><\/a><\/p>\n<p>Agrad\u00e1vel!<\/p>\n<h3>Arquivos de tradu\u00e7\u00e3o gerados<\/h3>\n<p>Agora voc\u00ea pode usar o PoEdit para traduzir cada string, mas n\u00e3o faremos isso aqui, pois n\u00e3o adianta traduzir ingl\u00eas para ingl\u00eas. Lembre-se de clicar em Salvar para atualizar e gerar um <code>.mo<\/code>arquivo, e toda vez que voc\u00ea adicionar outro texto ao seu tema, voc\u00ea precisa clicar no bot\u00e3o &#8220;Atualizar do c\u00f3digo&#8221; novamente. Em seguida, as novas altera\u00e7\u00f5es em seus modelos aparecer\u00e3o.<\/p>\n<p>Se voc\u00ea verificar a <code>\/lang<\/code>subpasta na pasta do diret\u00f3rio do tema, dever\u00e1 ver dois arquivos; o <code>.po<\/code>arquivo que acabamos de criar e um <code>.mo<\/code>arquivo com o mesmo nome, gerado por n\u00f3s salvando no PoEdit.<\/p>\n<p>Voc\u00ea pode fazer uma c\u00f3pia do <code>en_US.po<\/code>arquivo e renome\u00e1-lo para um c\u00f3digo de idioma diferente. Mas lembre-se que o PoEdit n\u00e3o oferece uma maneira simples de limpar todas as strings traduzidas; voc\u00ea teria que limpar um por um. Esta \u00e9 a raz\u00e3o pela qual isso \u00e9 p\u00e9ssimo para usu\u00e1rios que desejam traduzir seu tema em um idioma diferente. Portanto, se voc\u00ea tiver a possibilidade de criar um <code>.pot<\/code>arquivo, deve faz\u00ea-lo.<\/p>\n<p>O WordPress procurar\u00e1 o arquivo de tradu\u00e7\u00e3o dependendo do idioma definido no menu de administra\u00e7\u00e3o Configura\u00e7\u00f5es&gt; Idioma do site. Se voc\u00ea adicionou um idioma diferente do ingl\u00eas, poder\u00e1 test\u00e1-lo trocando o idioma do site e ver se sua tradu\u00e7\u00e3o aparece!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aprendemos como funciona a tradu\u00e7\u00e3o (ou i18n) no WordPress e como tornar os textos traduz\u00edveis. Tamb\u00e9m inclui um guia sobre como usar o PoEdit para gerar arquivos .po.<\/p>\n","protected":false},"author":1,"featured_media":224072,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[930,898,898,722,722,920,1110,920,930,846,846,867,867],"tags":[1170],"class_list":["post-233745","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-assuntos","category-codigo-2","category-desenvolvedor","category-outro","category-n-a","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/233745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=233745"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/233745\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/224072"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=233745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=233745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=233745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}