{"id":28364,"date":"2021-06-08T10:31:00","date_gmt":"2021-06-08T07:31:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28364"},"modified":"2021-10-18T04:03:38","modified_gmt":"2021-10-18T01:03:38","slug":"crie-um-site-multilingue-em-php-usando-o-laravel-framework","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/crie-um-site-multilingue-em-php-usando-o-laravel-framework\/","title":{"rendered":"Crie um site multil\u00edngue em PHP usando o Laravel Framework"},"content":{"rendered":"<p>Quer criar um site multil\u00edngue em PHP? Um site multil\u00edngue ajuda a aumentar o p\u00fablico de v\u00e1rias regi\u00f5es. Neste artigo, estudamos como construir um site multil\u00edngue em PHP usando o Framework Laravel.<\/p>\n<p>O Laravel possui um recurso integrado de localiza\u00e7\u00e3o. A localiza\u00e7\u00e3o de idioma \u00e9 o processo de tradu\u00e7\u00e3o de conte\u00fado em diferentes idiomas. Usando este recurso embutido do Laravel, podemos adicionar suporte para v\u00e1rios idiomas ao site do Laravel.<\/p>\n<p>No Laravel, voc\u00ea pode facilmente recuperar strings em v\u00e1rios idiomas, atrav\u00e9s dos quais voc\u00ea pode dar suporte a v\u00e1rios idiomas no aplicativo.<\/p>\n<p>Existem 2 maneiras de definir as strings de tradu\u00e7\u00e3o no Laravel &#8211; usando teclas curtas e usando as strings de tradu\u00e7\u00e3o como chaves. Vamos dar uma olhada em um por um.<\/p>\n<h3>Tradu\u00e7\u00e3o do Laravel usando teclas curtas<\/h3>\n<p>Para come\u00e7ar, voc\u00ea deve primeiro conhecer as estruturas de diret\u00f3rio usadas para tradu\u00e7\u00e3o no Laravel.<\/p>\n<p>Digamos que voc\u00ea precise adicionar suporte para o idioma &#8216;Alem\u00e3o&#8217;. Portanto, crie um diret\u00f3rio &#8216;de&#8217; na pasta &#8216;resources \/ lang&#8217;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20301-6081da9876a80.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20301-6081da9876a80.png\" alt=\"Crie um site multil\u00edngue em PHP usando o Laravel Framework\" ><\/a><\/p>\n<p>Recomenda-se usar o nome da pasta de acordo com o territ\u00f3rio de acordo com os valores ISO. Voc\u00ea pode obter uma lista de c\u00f3digos para idiomas <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ee825488(v=cs.20).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqui<\/a>.<\/p>\n<p>Crie um arquivo <code>messages.php<\/code>na pasta &#8216;de&#8217;. Este arquivo cont\u00e9m uma matriz de strings com chave. Abaixo est\u00e1 o exemplo em que estamos usando a tradu\u00e7\u00e3o alem\u00e3 para a palavra inglesa &#8216;welcome&#8217;.<\/p>\n<pre><code>&lt;?php\n\u00a0\nreturn [\n\u00a0\u00a0\u00a0\u00a0'welcome' =&gt; 'Herzlich willkommen',\n];<\/code><\/pre>\n<p>Aqui, &#8216;bem-vindo&#8217; \u00e9 uma chave definida pelo usu\u00e1rio. Esta chave ser\u00e1 usada para recuperar strings de tradu\u00e7\u00e3o no idioma alem\u00e3o. Voc\u00ea pode adicionar quantas chaves neste arquivo. Ao adicionar chaves, voc\u00ea deve usar chaves exclusivas na matriz. Chaves duplicadas resultar\u00e3o em uma tradu\u00e7\u00e3o errada.<\/p>\n<p>O processo acima \u00e9 f\u00e1cil se o seu site n\u00e3o tiver muito conte\u00fado. Mas, se o seu site for muito rico em conte\u00fado, ser\u00e1 dif\u00edcil manter as chaves exclusivas. Nesses casos, escolha a segunda op\u00e7\u00e3o de passar strings de tradu\u00e7\u00e3o como chaves.<\/p>\n<h3>Usando strings de tradu\u00e7\u00e3o como chaves<\/h3>\n<p>Nessa abordagem, voc\u00ea n\u00e3o precisa passar uma chave exclusiva. O que voc\u00ea precisa fazer \u00e9 criar um arquivo <code>de.json<\/code>no diret\u00f3rio &#8216;resources \/ lang&#8217;. Em seguida, neste arquivo JSON, passe a string de tradu\u00e7\u00e3o como chaves.<\/p>\n<p>Por exemplo, voc\u00ea deseja uma tradu\u00e7\u00e3o alem\u00e3 da frase em ingl\u00eas &#8216;How are you?&#8217; em seguida, no <code>de.json<\/code>arquivo, adicione o par abaixo.<\/p>\n<pre><code>{\n\u00a0\u00a0\u00a0\u00a0\"How are you?\": \"Wie geht es dir?\"\n}<\/code><\/pre>\n<p>A chave da string de tradu\u00e7\u00e3o deve ser exatamente o que voc\u00ea deseja traduzir. Isso ser\u00e1 muito mais f\u00e1cil, pois no c\u00f3digo voc\u00ea ter\u00e1 que passar uma string de tradu\u00e7\u00e3o diretamente.<\/p>\n<h3>Defina o idioma do site Laravel<\/h3>\n<p>Quando instalamos o Laravel, o idioma padr\u00e3o definido \u00e9 &#8216;en&#8217;. Para alterar o idioma padr\u00e3o, abra o <code>config\/app.php<\/code>arquivo. Encontre a chave &#8216;locale&#8217; e defina o c\u00f3digo do idioma. No nosso caso, ser\u00e1 <code>'locale' =&gt; 'de'<\/code>.<\/p>\n<p>Como alternativa, voc\u00ea pode definir o tempo de execu\u00e7\u00e3o da linguagem usando o <code>setLocale<\/code>m\u00e9todo de <code>App<\/code>fachada. No c\u00f3digo a seguir, defino a linguagem no construtor.<\/p>\n<pre><code>use App;\npublic function __construct() {\n\u00a0\u00a0\u00a0\u00a0App::setLocale('de');\n}<\/code><\/pre>\n<h3>Obtenha strings de tradu\u00e7\u00e3o e substitua-as<\/h3>\n<p>Para obter o texto traduzido dos arquivos de idioma, o Laravel forneceu um m\u00e9todo auxiliar &#8221;. No c\u00f3digo a seguir, estou obtendo strings de tradu\u00e7\u00e3o de ambos <code>messages.php<\/code>e <code>de.json<\/code>no arquivo blade.<\/p>\n<pre><code>{{ __('messages.welcome') }} \/\/Output, Herzlich willkommen\n\u00a0\n{{ __('How are you?') }} \/\/Output, Wie geht es dir?<\/code><\/pre>\n<p>No controlador, voc\u00ea pode obter a string de tradu\u00e7\u00e3o usando a <code>echo<\/code>fun\u00e7\u00e3o.<\/p>\n<pre><code>echo __('messages.welcome');\necho __('How are you?');<\/code><\/pre>\n<h3>Marcadores de posi\u00e7\u00e3o em strings de tradu\u00e7\u00e3o<\/h3>\n<p>O Laravel tamb\u00e9m explora recursos de tradu\u00e7\u00e3o onde voc\u00ea pode passar espa\u00e7os reservados nas strings de tradu\u00e7\u00e3o.<\/p>\n<pre><code>'welcome' =&gt; 'Welcome, :name',<\/code><\/pre>\n<p>Ou em <code>de.josn<\/code>arquivo,<\/p>\n<pre><code>{\n\u00a0\u00a0\u00a0\u00a0\"How are you?\": \"Wie geht es dir, :name?\"\n}<\/code><\/pre>\n<p>Para substituir os espa\u00e7os reservados no aplicativo, precisamos escrever o c\u00f3digo da seguinte maneira.<\/p>\n<pre><code>{{ __('messages.welcome', ['name' =&gt; 'John']) }}\n\u00a0\n{{ __('How are you?', ['name' =&gt; 'John']) }}<\/code><\/pre>\n<p>Se escrevermos um placeholder como &#8216;: NAME&#8217;, a sa\u00edda seria &#8216;JOHN&#8217; e para &#8216;: Name&#8217; a sa\u00edda seria &#8216;John&#8217;.<\/p>\n<p>Espero que voc\u00ea entenda como criar um site multil\u00edngue em PHP usando o framework Laravel. Por favor, compartilhe seus pensamentos e sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-fazer-upload-e-compactar-imagens-no-laravel\/\" title=\"Um Guia para Upload e Compacta\u00e7\u00e3o de Imagens no Laravel\">Um Guia para Upload e Compacta\u00e7\u00e3o de Imagens no Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-instalar-e-usar-o-ckeditor-no-laravel\/\" title=\"Como instalar e usar o CKEditor no Laravel\">Como instalar e usar o CKEditor no Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-usar-o-laravel-tinker\/\" title=\"Como usar o Laravel Tinker\">Como usar o Laravel Tinker<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quer criar um site multil\u00edngue em php? Neste artigo, mostro como se pode criar um site multil\u00edngue usando o Laravel<\/p>\n","protected":false},"author":1,"featured_media":21641,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[502],"tags":[848],"class_list":["post-28364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=28364"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21641"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=28364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=28364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=28364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}