Implementar a tradução da API de IA do Google Cloud em comparação com o Google Translate para Laravel

dispositivos eletrônicos, preto e branco
Índice

Para quem possui Laravel , fornecer conteúdo traduzido com precisão e naturalidade é fundamental para traduzir o site e oferecer uma boa experiência ao usuário.

Felizmente, existem diversos serviços de tradução automática disponíveis para ajudar os desenvolvedores a superar esse desafio, incluindo a API de Tradução de IA do Google Cloud e o Google Tradutor. Ambos os serviços oferecem recursos de tradução usando tecnologia de aprendizado de máquina.

Neste artigo, exploraremos as principais diferenças entre a implementação do Google Cloud AI Translation e do Google Translate para Laravel e recomendaremos os melhores serviços de tradução para o seu site Laravel

O que são a API de tradução do Google Cloud AI e o Google Translate?

Antes de iniciarmos a discussão, vamos abordar os significados respectivos da API de IA do Google Cloud e das traduções do Google Translate.

Tradução da API de IA do Google Cloud

Servidor Google Cloud e armazenamento em nuvem

A API de Tradução de IA do Google Cloud é um serviço avançado de tradução automática fornecido pela plataforma Google Cloud. Este serviço utiliza as mais recentes tecnologias de inteligência artificial (IA) e aprendizado de máquina para fornecer traduções precisas e naturais de texto, voz e documentos.

A API de Tradução do Google Cloud AI utiliza modelos de tradução neural baseados em aprendizado profundo, o que permite capturar melhor as nuances e o contexto da linguagem, fornecendo traduções mais idiomáticas e alinhadas ao uso real do idioma. Além disso, o uso da API de Tradução do Google Cloud AI para até 500.000 caracteres é gratuito, enquanto os próximos 75.000 caracteres terão um custo de US$ 20 por milhão de caracteres. 

Google Tradutor

Interface de configurações de tradução. Opções de configuração de idioma.

Enquanto isso, o Google Tradutor é um serviço de tradução automática de textos consolidado e amplamente conhecido. Ele utiliza uma abordagem de tradução estatística mais tradicional, que gera traduções com base em padrões e probabilidades aprendidos a partir de grandes conjuntos de dados de treinamento.

Embora não seja tão avançado quanto a API de Tradução de IA do Google Cloud em termos de precisão e capacidade de lidar com nuances linguísticas, o Google Tradutor continua sendo uma escolha popular devido à sua facilidade de uso e disponibilidade gratuita para uso não comercial.

Implemente a tradução da API de IA do Google Cloud no Laravel

Diversos serviços de tradução, incluindo Linguise , utilizam de tradução automática em nuvem para traduzir sites.

O serviço de tradução de idiomas utiliza a API de IA na nuvem como uma de suas tecnologias de tradução. A seguir, apresentamos os passos de implementação em um Laravel . Assumimos que você já possui um projeto Laravel

Criar conta Linguise

Para usar Linguise , você precisa criar uma conta . Você pode fazer isso gratuitamente ou assinar por um mês ou um ano. Basta fornecer informações como seu e-mail, nome de usuário e senha.

Adicionar informações do site Laravel

Em seguida, adicione informações sobre o site que você usará, insira as informações da sua conta Linguise e o URL do site, selecione a plataforma Laravel e adicione o idioma padrão e o idioma que você deseja adicionar ao site.

 

Animação de carregamento

Em seguida, baixe o script PHP através do botão abaixo e salve-o em seu computador.

Faça o upload e configure o script PHP

Após baixar o script, descompacte-o e envie-o para a pasta raiz onde Laravel está instalado. Certifique-se de que esteja localizado na raiz da sua instalação Laravel (normalmente onde estão os arquivos do seu CMS). Certifique-se de que a pasta esteja nomeada como “linguise” (o nome padrão quando a pasta é descompactada).

Menu de navegação do sistema de arquivos do computador

Em seguida, a chave da API Linguise deve ser copiada para o arquivo …/linguise/Configuration.php que você carregou no seu servidor. Edite o arquivo e cole sua chave da API entre as aspas, substituindo o texto REPLACE_BY_YOUR_TOKEN.

Captura de tela da configuração do código

Inserir script do seletor de idiomas

Em seguida, insira o script de troca de idioma que você obteve no Linguise .

Seletor de idioma de script - Implemente a tradução da API de IA do Google Cloud em comparação com o Google Translate para Laravel

Inserido no arquivo front.blade.php no diretório resources/views/layouts/. Aqui está uma prévia do script inserido.

Janela do terminal com saída de código

Configure o arquivo .htaccess

Por fim, URLs baseadas em idioma precisam ser configuradas no arquivo .htaccess. Se o seu arquivo incluir “RewriteBase /”, basta copiar e colar o seguinte código após essa linha.

				
					<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-cn|zh-tw|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu|zz-zz)(?:$|/)(.*)$ linguise/linguise.php?linguise_language=$1&original_url=$2 [L,QSA]
</IfModule>
				
			

Concluído. Neste ponto, você implementou com sucesso a tradução via API de IA na nuvem no Linguise . Agora, você pode acessar o Laravel . Um seletor de idiomas padrão será exibido, e você pode personalizá-lo Laravel do painel de controle.

um homem com um fundo escuro, atmosfera misteriosa

Implementar o Google Translate no Laravel

Agora vamos tentar implementar o Google Translate no Laravel. Aqui, partimos do princípio de que você já criou um projeto Laravel com sucesso e só precisa adicionar o Google Translate.

Você também pode encontrar as seguintes etapas de instalação no oficial Laravel .

Instale o pacote do Google Tradutor

Para instalar o pacote do Google Tradutor, abra o prompt do projeto e digite o seguinte comando. Este pacote permitirá que você utilize as funcionalidades do google-translator-language.

				
					composer require stichoza/google-translate-php
				
			

Configuração do pacote do Google Tradutor

Precisamos configurar o pacote do Google Tradutor no aplicativo. Abra o arquivo app.php na pasta /config, encontre a seção "aliases" e adicione a seguinte linha de código.

Um terminal de computador com texto codificado na tela. O visor mostra várias linhas de código.
				
					/*
|--------------------------------------------------------------------------
| Class Aliases
|--------------------------------------------------------------------------
|
| This array of class aliases will be registered when this application
| is started. However, feel free to register as many as you wish as
| the aliases are "lazy" loaded so they don't hinder performance.
|
*/

'aliases' => Facade::defaultAliases()->merge([
    // 'Example' => App\Facades\Example::class,
    'GoogleTranslate' => Stichoza\GoogleTranslate\GoogleTranslate::class,
])->toArray(),

				
			

Configurar Controlador de Idioma

Você precisa criar um arquivo de controlador de idioma como o seguinte:

				
					php artisan make:controller LangController
				
			

Isso criará o arquivo LangController.php dentro da pasta /app/Http/Controllers.

Tela do computador mostrando linhas de código
				
					<?php

namespace App\Http\Controllers;

use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;

class LangController extends Controller
{
    public function index(): View
    {
        return view('lang');
    }

    public function change(Request $request)
    {
        App::setLocale($request->lang);
        
        session()->put('locale', $request->lang);

        return redirect()->back();
    }
}


				
			

Criar arquivo de modelo Blade

Navegue até a pasta /resources/views e crie um arquivo chamado lang.blade.php. Abra o arquivo e insira o seguinte código nele.

Imagem de código na tela de um computador. Texto de programação.
				
					<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Laravel 10 Create Multi Language Website Tutorial</title> <script type="litespeed/javascript" data-src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script type="application/ld+json" class="gnpub-schema-markup-output">{"@context":"https:\/\/schema.org\/","@type":"NewsArticle","@id":"https:\/\/www.linguise.com\/blog\/guide\/implement-google-cloud-ai-api-translation-vs-google-translate-for-laravel\/#newsarticle","url":"https:\/\/www.linguise.com\/blog\/guide\/implement-google-cloud-ai-api-translation-vs-google-translate-for-laravel\/","image":{"@type":"ImageObject","url":"https:\/\/www.linguise.com\/wp-content\/uploads\/2024\/05\/Implement-Google-Cloud-AI-API-translation-vs-Google-Translate-for-Laravel-150x150.png","width":150,"height":150},"headline":"Implement Google Cloud AI API translation vs Google Translate for Laravel","mainEntityOfPage":"https:\/\/www.linguise.com\/blog\/guide\/implement-google-cloud-ai-api-translation-vs-google-translate-for-laravel\/","datePublished":"2024-05-31T07:32:47+00:00","dateModified":"2024-08-26T19:19:15+00:00","description":"For those of you who own Laravel-based websites, providing accurate and natural translation content is very important to translate your website and offer a good","articleSection":"Guide","articleBody":"For those of you who own Laravel-based websites, providing accurate and natural translation content is very important to translate your website and offer a good user experience.\nFortunately, several automatic translation services are available to help developers overcome this challenge, including Google Cloud AI API Translation and Google Translate. Both services offer translation capabilities using machine technology.\nIn this article, we will explore the main differences between implementing Google Cloud AI Translation and Google Translate for Laravel applications and recommend the best translation services for your Laravel website.&nbsp;\t\t\n\t\t\tWhat are Google Cloud AI API translation &amp; Google Translate?\n\t\t\n\t\tBefore entering into the discussion, we will discuss the respective meanings of Google Cloud AI API and Google Translate translations.\t\t\n\t\t\tGoogle Cloud AI API translation\n\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\tGoogle Cloud AI API Translation is an advanced automatic translation service provided by Google Cloud Platform. This service leverages the latest artificial intelligence (AI) and machine learning technologies to deliver accurate and natural translations of text, voice, and documents.Google Cloud AI API Translation uses neural translation models based on deep learning, which allows it to capture language nuances and context better, providing more idiomatic translations that align with actual language usage. Additionally, using Google Cloud AI Translation for up to 500,000 characters is free of charge, while the next 75,000 characters will incur a cost of $20 per million characters.\u00a0\t\t\n\t\t\tGoogle Translate\n\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\tMeanwhile, Google Translate is a long-standing and widely known automatic text translation service. It uses a more traditional statistical translation approach, which generates translations based on patterns and probabilities learned from large training datasets.Although it is not as advanced as Google Cloud AI API Translation in terms of accuracy and handling language nuances, Google Translate remains a popular choice due to its ease of use and free availability for non-commercial use.\t\t\n\t\t\tImplement Google Cloud AI API translation on Laravel\n\t\t\n\t\tSeveral translation services, including Linguise, use AI Translation cloud technology to translate websites.The language translation service uses cloud AI API as one of its translation technologies. The following are the implementation steps on the Laravel website. We assume here that you already have a ready Laravel project website.\t\t\n\t\t\tCreate Linguise account\n\t\t\n\t\tTo use Linguise, you must register an account first. You can do this for free or subscribe for one month or a year. You only need to provide information such as your email, username, and password.\t\t\n\t\t\tAdd Laravel website info\n\t\t\n\t\tAfter that, add information about the website you will use, enter your Linguise account info and web URL, select the Laravel platform, and add the default language and the language you want to add to the website.\u00a0\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\tThen download the PHP script via the following button and save it on your local computer.\t\t\n\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tDOWNLOAD PHP-JS TRANSLATION SCRIPT\n\t\t\t\t\t\n\t\t\tUpload and configure the PHP script\n\t\t\n\t\tAfter downloading the script, unzip it and upload it to the root folder where Laravel is installed. Ensure it is located at the root of your Laravel installation (typically where your CMS files are). Ensure the folder is named \"linguise\" (the default name when the folder is unzipped).\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\tThen, the Linguise API key must be copied into the \u2026\/linguise\/Configuration.php file you uploaded to your server. Edit the file and paste your API key between the quotes, replacing the text REPLACE_BY_YOUR_TOKEN.\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\tInsert script of language switcher\t\t\n\t\tNext, insert the language switch script that you got from the Linguise dashboard.\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\tInserted into the front.blade.php file in the resources\/views\/layouts\/ directory. Here is a preview of the inserted script.\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\tConfigure .htaccess\n\t\t\n\t\tLastly, language-based URLs need to be configured in the .htaccess file. If your file includes \"RewriteBase \/,\" simply copy and paste the following code after that line.\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n  RewriteEngine On\n  RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-cn|zh-tw|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu|zz-zz)(?:$|\/)(.*)$ linguise\/linguise.php?linguise_language=$1&original_url=$2 [L,QSA]\n\n\t\t\t\t\n\t\t\t\n\t\tDone. At this point, you have successfully implemented cloud AI API Translation on the Linguise service. Now, you can check the Laravel website. A default language switcher will appear, and you can customize the Language switcher for Laravel via the dashboard.\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\tImplement Google Translate on Laravel\t\t\n\t\tNow we will try to implement Google Translate in Laravel. Here we assume that you have successfully created a Laravel project and just need to add Google Translate.You can also find the following installation steps on the official Laravel website.\t\t\n\t\t\tInstall Google Translator Package\n\t\t\n\t\tTo install the Google Translator Package, open the project prompt and input the following command. This package will enable you to utilize the working functions of the google-translator-language.\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tcomposer require stichoza\/google-translate-php\n\t\t\t\t\n\t\t\t\n\t\t\tSetting of Google Translator Package\n\t\t\n\t\tWe must set up the \"google translator package\" within the the application. Open the app.php file in the \/config folder, find the \"aliases\" section, and add the following line of code.\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\/*\n|--------------------------------------------------------------------------\n| Class Aliases\n|--------------------------------------------------------------------------\n|\n| This array of class aliases will be registered when this application\n| is started. However, feel free to register as many as you wish as\n| the aliases are \"lazy\" loaded so they don't hinder performance.\n|\n*\/\n'aliases' => Facade::defaultAliases()->merge([\n    \/\/ 'Example' => AppFacadesExample::class,\n    'GoogleTranslate' => StichozaGoogleTranslateGoogleTranslate::class,\n])->toArray(),\n\n\t\t\t\t\n\t\t\t\n\t\t\tSetup Language Controller\n\t\t\n\t\tYou need to create a language controller file like the following\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tphp artisan make:controller LangController\n\t\t\t\t\n\t\t\t\n\t\tIt will create LangController.php file inside \/app\/Http\/Controllers folder.","keywords":"","name":"Implement Google Cloud AI API translation vs Google Translate for Laravel","thumbnailUrl":"https:\/\/www.linguise.com\/wp-content\/uploads\/2024\/05\/Implement-Google-Cloud-AI-API-translation-vs-Google-Translate-for-Laravel-150x150.png","wordCount":809,"timeRequired":"PT3M35S","mainEntity":{"@type":"WebPage","@id":"https:\/\/www.linguise.com\/blog\/guide\/implement-google-cloud-ai-api-translation-vs-google-translate-for-laravel\/"},"author":{"@type":"Person","name":"Tristan","url":"https:\/\/www.linguise.com\/author\/tristan\/","sameAs":[],"image":{"@type":"ImageObject","url":"https:\/\/secure.gravatar.com\/avatar\/50d7238660b192d8d54ebf6367be5e97bb41c24dbd190daae062d931efd351ae?s=96&d=mm&r=g","height":96,"width":96}},"editor":{"@type":"Person","name":"Tristan","url":"https:\/\/www.linguise.com\/author\/tristan\/","sameAs":[],"image":{"@type":"ImageObject","url":"https:\/\/secure.gravatar.com\/avatar\/50d7238660b192d8d54ebf6367be5e97bb41c24dbd190daae062d931efd351ae?s=96&d=mm&r=g","height":96,"width":96}}}</script> </head>

<body>
    <div class="container mt-5">
        <div class="row">
            <div class="col-md-12">
                <div class="card w-75 m-auto">
                    <div class="card-header text-center bg-primary text-white">
                        <h4 style="font-size: 17px;">Laravel 10 Create Multi Language Website Tutorial</h4>
                    </div>
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-4">
                                <strong>Select Language: </strong>
                            </div>
                            <div class="col-md-4">
                                <select class="form-select changeLang">
                                    <option value="en" {{ session()->get('locale') == 'en' ? 'selected' : '' }}>
                                        English
                                    </option>
                                    <option value="fr" {{ session()->get('locale') == 'fr' ? 'selected' : '' }}>
                                        French
                                    </option>
                                    <option value="ar" {{ session()->get('locale') == 'ar' ? 'selected' : '' }}>
                                        Arabic
                                    </option>
                                    <option value="hi" {{ session()->get('locale') == 'hi' ? 'selected' : '' }}>
                                        Hindi
                                    </option>
                                </select>
                            </div>
                        </div>

                        <div style="margin-top: 20px;">
                            <p>{{ GoogleTranslate::trans('Welcome to Online Web Tutor', app()->getLocale()) }}</p>
                            <p>{{ GoogleTranslate::trans('It is a passionate and innovative Web Development Community dedicated to empowering aspiring web developers with the latest tools and techniques. Our platform offers a comprehensive range of web development courses, including PHP and its frameworks, Node.js, MySQL, Javascript and WordPress.', app()->getLocale()) }}
                            </p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

     <script data-no-optimize="1">window.lazyLoadOptions=Object.assign({},{threshold:300},window.lazyLoadOptions||{});!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){"use strict";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t}).apply(this,arguments)}function o(t){return e({},at,t)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,vt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,vt,e)}function i(t){return s(t,null),0}function r(t){return null===c(t)}function u(t){return c(t)===_t}function d(t,e,n,a){t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function f(t,e){et?t.classList.add(e):t.className+=(t.className?" ":"")+e}function _(t,e){et?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}function g(t){return t.llTempImage}function v(t,e){!e||(e=e._observer)&&e.unobserve(t)}function b(t,e){t&&(t.loadingCount+=e)}function p(t,e){t&&(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)"SOURCE"===e.tagName&&n.push(e);return n}function h(t,e){(t=t.parentNode)&&"PICTURE"===t.tagName&&n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function m(t){return!!t[lt]}function E(t){return t[lt]}function I(t){return delete t[lt]}function y(e,t){var n;m(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[lt]=n)}function L(a,t){var o;m(a)&&(o=E(a),t.forEach(function(t){var e,n;e=a,(t=o[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function k(t,e,n){f(t,e.class_loading),s(t,st),n&&(b(n,1),d(e.callback_loading,t,n))}function A(t,e,n){n&&t.setAttribute(e,n)}function O(t,e){A(t,rt,l(t,e.data_sizes)),A(t,it,l(t,e.data_srcset)),A(t,ot,l(t,e.data_src))}function w(t,e,n){var a=l(t,e.data_bg_multi),o=l(t,e.data_bg_multi_hidpi);(a=nt&&o?o:a)&&(t.style.backgroundImage=a,n=n,f(t=t,(e=e).class_applied),s(t,dt),n&&(e.unobserve_completed&&v(t,e),d(e.callback_applied,t,n)))}function x(t,e){!e||0<e.loadingCount||0<e.toLoadCount||d(t.callback_finish,e)}function M(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function N(t){return!!t.llEvLisnrs}function z(t){if(N(t)){var e,n,a=t.llEvLisnrs;for(e in a){var o=a[e];n=e,o=o,t.removeEventListener(n,o)}delete t.llEvLisnrs}}function C(t,e,n){var a;delete t.llTempImage,b(n,-1),(a=n)&&--a.toLoadCount,_(t,e.class_loading),e.unobserve_completed&&v(t,n)}function R(i,r,c){var l=g(i)||i;N(l)||function(t,e,n){N(t)||(t.llEvLisnrs={});var a="VIDEO"===t.tagName?"loadeddata":"load";M(t,a,e),M(t,"error",n)}(l,function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_loaded),s(e,ut),d(n.callback_loaded,e,a),o||x(n,a),z(l)},function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_error),s(e,ft),d(n.callback_error,e,a),o||x(n,a),z(l)})}function T(t,e,n){var a,o,i,r,c;t.llTempImage=document.createElement("IMG"),R(t,e,n),m(c=t)||(c[lt]={backgroundImage:c.style.backgroundImage}),i=n,r=l(a=t,(o=e).data_bg),c=l(a,o.data_bg_hidpi),(r=nt&&c?c:r)&&(a.style.backgroundImage='url("'.concat(r,'")'),g(a).setAttribute(ot,r),k(a,o,i)),w(t,e,n)}function G(t,e,n){var a;R(t,e,n),a=e,e=n,(t=Et[(n=t).tagName])&&(t(n,a),k(n,a,e))}function D(t,e,n){var a;a=t,(-1<It.indexOf(a.tagName)?G:T)(t,e,n)}function S(t,e,n){var a;t.setAttribute("loading","lazy"),R(t,e,n),a=e,(e=Et[(n=t).tagName])&&e(n,a),s(t,_t)}function V(t){t.removeAttribute(ot),t.removeAttribute(it),t.removeAttribute(rt)}function j(t){h(t,function(t){L(t,mt)}),L(t,mt)}function F(t){var e;(e=yt[t.tagName])?e(t):m(e=t)&&(t=E(e),e.style.backgroundImage=t.backgroundImage)}function P(t,e){var n;F(t),n=e,r(e=t)||u(e)||(_(e,n.class_entered),_(e,n.class_exited),_(e,n.class_applied),_(e,n.class_loading),_(e,n.class_loaded),_(e,n.class_error)),i(t),I(t)}function U(t,e,n,a){var o;n.cancel_on_exit&&(c(t)!==st||"IMG"===t.tagName&&(z(t),h(o=t,function(t){V(t)}),V(o),j(t),_(t,n.class_loading),b(a,-1),i(t),d(n.callback_cancel,t,e,a)))}function $(t,e,n,a){var o,i,r=(i=t,0<=bt.indexOf(c(i)));s(t,"entered"),f(t,n.class_entered),_(t,n.class_exited),o=t,i=a,n.unobserve_entered&&v(o,i),d(n.callback_enter,t,e,a),r||D(t,n,a)}function q(t){return t.use_native&&"loading"in HTMLImageElement.prototype}function H(t,o,i){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?$(t.target,t,o,i):(e=t.target,n=t,a=o,t=i,void(r(e)||(f(e,a.class_exited),U(e,n,a,t),d(a.callback_exit,e,n,t))));var e,n,a})}function B(e,n){var t;tt&&!q(e)&&(n._observer=new IntersectionObserver(function(t){H(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))}function J(t){return Array.prototype.slice.call(t)}function K(t){return t.container.querySelectorAll(t.elements_selector)}function Q(t){return c(t)===ft}function W(t,e){return e=t||K(e),J(e).filter(r)}function X(e,t){var n;(n=K(e),J(n).filter(Q)).forEach(function(t){_(t,e.class_error),i(t)}),t.update()}function t(t,e){var n,a,t=o(t);this._settings=t,this.loadingCount=0,B(t,this),n=t,a=this,Y&&window.addEventListener("online",function(){X(n,a)}),this.update(e)}var Y="undefined"!=typeof window,Z=Y&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),tt=Y&&"IntersectionObserver"in window,et=Y&&"classList"in document.createElement("p"),nt=Y&&1<window.devicePixelRatio,at={elements_selector:".lazy",container:Z||Y?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot="src",it="srcset",rt="sizes",ct="poster",lt="llOriginalAttrs",st="loading",ut="loaded",dt="applied",ft="error",_t="native",gt="data-",vt="ll-status",bt=[st,ut,dt,ft],pt=[ot],ht=[ot,ct],mt=[ot,it,rt],Et={IMG:function(t,e){h(t,function(t){y(t,mt),O(t,e)}),y(t,mt),O(t,e)},IFRAME:function(t,e){y(t,pt),A(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){y(t,pt),A(t,ot,l(t,e.data_src))}),y(t,ht),A(t,ct,l(t,e.data_poster)),A(t,ot,l(t,e.data_src)),t.load()}},It=["IMG","IFRAME","VIDEO"],yt={IMG:j,IFRAME:function(t){L(t,pt)},VIDEO:function(t){a(t,function(t){L(t,pt)}),L(t,ht),t.load()}},Lt=["IMG","IFRAME","VIDEO"];return t.prototype={update:function(t){var e,n,a,o=this._settings,i=W(t,o);{if(p(this,i.length),!Z&&tt)return q(o)?(e=o,n=this,i.forEach(function(t){-1!==Lt.indexOf(t.tagName)&&S(t,e,n)}),void p(n,0)):(t=this._observer,o=i,t.disconnect(),a=t,void o.forEach(function(t){a.observe(t)}));this.loadAll(i)}},destroy:function(){this._observer&&this._observer.disconnect(),K(this._settings).forEach(function(t){I(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;W(t,n).forEach(function(t){v(t,e),D(t,n,e)})},restoreAll:function(){var e=this._settings;K(e).forEach(function(t){P(t,e)})}},t.load=function(t,e){e=o(e);D(t,e)},t.resetStatus=function(t){i(t)},t}),function(t,e){"use strict";function n(){e.body.classList.add("litespeed_lazyloaded")}function a(){console.log("[LiteSpeed] Start Lazy Load"),o=new LazyLoad(Object.assign({},t.lazyLoadOptions||{},{elements_selector:"[data-lazyloaded]",callback_finish:n})),i=function(){o.update()},t.MutationObserver&&new MutationObserver(i).observe(e.documentElement,{childList:!0,subtree:!0,attributes:!0})}var o,i;t.addEventListener?t.addEventListener("load",a,!1):t.attachEvent("onload",a)}(window,document);</script><script data-no-optimize="1">window.litespeed_ui_events=window.litespeed_ui_events||["mouseover","click","keydown","wheel","touchmove","touchstart"];var urlCreator=window.URL||window.webkitURL;function litespeed_load_delayed_js_force(){console.log("[LiteSpeed] Start Load JS Delayed"),litespeed_ui_events.forEach(e=>{window.removeEventListener(e,litespeed_load_delayed_js_force,{passive:!0})}),document.querySelectorAll("iframe[data-litespeed-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-litespeed-src"))}),"loading"==document.readyState?window.addEventListener("DOMContentLoaded",litespeed_load_delayed_js):litespeed_load_delayed_js()}litespeed_ui_events.forEach(e=>{window.addEventListener(e,litespeed_load_delayed_js_force,{passive:!0})});async function litespeed_load_delayed_js(){let t=[];for(var d in document.querySelectorAll('script[type="litespeed/javascript"]').forEach(e=>{t.push(e)}),t)await new Promise(e=>litespeed_load_one(t[d],e));document.dispatchEvent(new Event("DOMContentLiteSpeedLoaded")),window.dispatchEvent(new Event("DOMContentLiteSpeedLoaded"))}function litespeed_load_one(t,e){console.log("[LiteSpeed] Load ",t);var d=document.createElement("script");d.addEventListener("load",e),d.addEventListener("error",e),t.getAttributeNames().forEach(e=>{"type"!=e&&d.setAttribute("data-src"==e?"src":e,t.getAttribute(e))});let a=!(d.type="text/javascript");!d.src&&t.textContent&&(d.src=litespeed_inline2src(t.textContent),a=!0),t.after(d),t.remove(),a&&e()}function litespeed_inline2src(t){try{var d=urlCreator.createObjectURL(new Blob([t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1")],{type:"text/javascript"}))}catch(e){d="data:text/javascript;base64,"+btoa(t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1"))}return d}</script><script data-no-optimize="1">var litespeed_vary=document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/,"");litespeed_vary||fetch("/wp-content/plugins/litespeed-cache/guest.vary.php",{method:"POST",cache:"no-cache",redirect:"follow"}).then(e=>e.json()).then(e=>{console.log(e),e.hasOwnProperty("reload")&&"yes"==e.reload&&(sessionStorage.setItem("litespeed_docref",document.referrer),window.location.reload(!0))});</script><script data-optimized="1" type="litespeed/javascript" data-src="https://www.linguise.com/wp-content/litespeed/js/d67b785032398966caba440906f9d5db.js?ver=7271c"></script></body>

</html>

				
			

Configuração do Middleware de Idioma

Abra o terminal do projeto e execute este comando:

				
					php artisan make:middleware LanguageManager


				
			

Isso criará um arquivo LanguageManager.php dentro da pasta /app/Http/Middleware e colará o seguinte conteúdo.

Imagem pixelizada em preto e branco. Nenhum detalhe nítido é visível.
				
					<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use Illuminate\Support\Facades\App;

class LanguageManager
{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next): Response
    {
        if (session()->has('locale')) {

            App::setLocale(session()->get('locale'));
        }

        return $next($request);
    }
}

				
			

Registrar middleware de idioma via Kernel.php

Abra o arquivo Kernel.php localizado no diretório /app/Http. Procure pelo array $middlewareGroups e navegue até a seção web.

Imagem desfocada de texto sobre fundo preto. O texto é ilegível.
				
					/**
 * The application's route middleware groups.
 *
 * @var array<string, array<int, class-string|string>>
 */
protected $middlewareGroups = [
    'web' => [
        
        //...

        \App\Http\Middleware\LanguageManager::class,
    ],

    'api' => [
        
        //...
    ],
];

				
			

Adicionar rota

Abra o arquivo web.php na pasta /routes e adicione essas rotas a ele.

Web.php - Implementar tradução via API do Google Cloud AI em vez do Google Translate para Laravel
				
					//...
use App\Http\Controllers\LangController;

//...

Route::get('lang/home', [LangController::class, 'index']);
Route::get('lang/change', [LangController::class, 'change'])->name('changeLang');


				
			

Site de testes

Execute este comando no terminal do projeto para iniciar o servidor de desenvolvimento.

				
					php artisan serve
				
			

Aqui está uma imagem do site Laravel criado onlinewebtutorblog.com.

Uma imagem distorcida do que parece ser a tela de um computador.

Então, veja como fica o site Laravel quando traduzido para o árabe.

Tela do computador com falhas. Exibindo código e texto distorcidos.

Qual a diferença entre implementar a tradução com IA do Google Cloud e o Google Translate no Laravel?

Após entendermos cada implementação do Google Cloud AI e do Google Translate no Laravel, discutiremos suas diferenças.

Processo de Instalação e Configuração

Ilustração em preto e branco. Pessoas em pé perto de um alvo grande.
  • Tradução da API de IA do Google Cloud: O processo de instalação e configuração é mais complexo, pois exige a criação de um projeto no Google Cloud Platform (GCP), a ativação da API de Tradução na Nuvem, a criação de uma conta de serviço, a geração de chaves de API e a configuração do cliente de API em sua Laravel . Isso envolve várias etapas e requer uma conta válida do GCP.
  • Google Translate: A instalação e a configuração são muito mais simples. Basta instalar um pacote ou biblioteca de terceiros via Composer, como o stichoza/google-translate-php. Depois disso, você pode configurar a chave da API do Google Translate no Laravel .

Precisão da tradução

Grupo de pessoas reunidas em volta de um computador.
  • Tradução da API de IA do Google Cloud: Graças aos seus recursos de aprendizado profundo, este serviço consegue capturar melhor contextos e nuances linguísticas complexas. Isso permite uma tradução mais precisa de expressões idiomáticas, frases figurativas e jogos de palavras que são difíceis de traduzir literalmente.
  • O Google Tradutor frequentemente tem dificuldades em captar o contexto e as nuances da linguagem, resultando em traduções artificiais ou pouco naturais. Devido à sua abordagem estatística, a tradução de expressões idiomáticas ou frases figurativas costuma ser menos precisa.

Velocidade de resposta

Um foguete decolando a partir de um computador portátil e um telefone celular.
  • A API de IA do Google Cloud para tradução geralmente responde mais rapidamente às solicitações de tradução, pois utiliza de tradução automática neural , hospedados na robusta infraestrutura de nuvem do Google. Isso proporciona tempos de resposta mais rápidos, especialmente para textos mais longos ou grandes volumes de traduções.
  • Google Tradutor: Pode ser um pouco mais lento na resposta a solicitações de tradução, principalmente para documentos ou textos mais longos. Isso ocorre porque ele usa uma combinação mais tradicional de abordagens de tradução estatística e neural, que pode não ser tão eficiente quanto os modelos neurais usados ​​pela API de tradução do Google Cloud AI.

Capacidades de personalização e controle

Uma tela de computador distorcida com efeitos de falha gráfica. A imagem parece estar corrompida.
  • Tradução via API de IA do Google Cloud: Oferece mais opções para personalizar e controlar o processo de tradução, como definir preferências de tradução, carregar glossários personalizados e acessar a do editor de tradução em tempo real para editar manualmente os resultados da tradução. Isso permite que os usuários aprimorem a precisão da tradução de acordo com suas necessidades.
  • Google Tradutor: Possui opções de personalização e controle mais limitadas. Os usuários precisam confiar nos resultados da tradução automática, sem muita possibilidade de editar ou personalizar diretamente os resultados.

Recursos avançados

Tela de computador com recursos de acessibilidade e xícara de café
  • Tradução da API de IA do Google Cloud: A tecnologia de tradução de IA do Google Cloud possui diversos recursos avançados, como glossário, seleção de modelo e modelos AutoML. Além disso, no contexto da tradução de IA na nuvem com Linguise , também oferece recursos avançados como exclusões de tradução para palavras específicas, como termos técnicos, nomes de marcas etc., com base em linhas, páginas ou URLs.
  • Translate instalado no Laravel não consegue traduzir documentos de áudio ou outros tipos de conteúdo. Ele só pode traduzir o texto do site para outro idioma, sem a possibilidade de editar os resultados da tradução.
Quebrar barreiras linguísticas
Diga adeus às barreiras linguísticas e olá ao crescimento ilimitado! Experimente nosso serviço de tradução automática hoje mesmo.

Fatores a considerar ao escolher um serviço de tradução para o seu site Laravel

Aqui estão algumas considerações para escolher o melhor serviço de tradução para o seu site Laravel .

  • Alta precisão de tradução – Um dos fatores mais importantes é a precisão da tradução produzida. Se o seu site exige traduções altamente precisas, especialmente para conteúdo complexo e linguagem com nuances, a API de Tradução de IA do Google Cloud pode ser uma opção melhor do que o Google Tradutor.
  • Facilidade de integração e configuração — Considere instalar e configurar o serviço de tradução com sua Laravel . O Google Translate geralmente é mais fácil de integrar, pois está disponível como um pacote ou biblioteca PHP. Já a API de Tradução do Google Cloud AI requer uma configuração mais complexa na plataforma Google Cloud.
  • Recursos e opções de personalização – Se você precisar de recursos adicionais, como um glossário ou tradução de terminologia especializada, de tradução do editor ou outras opções de personalização, a API de Tradução de IA do Google Cloud oferece mais opções do que o Google Tradutor.
  • Velocidade e tempo de resposta – Para aplicações com grandes volumes de tradução ou que necessitam de respostas rápidas, a API de Tradução de IA do Google Cloud geralmente responde às solicitações de tradução mais rapidamente do que o Google Tradutor.
  • Custo e orçamento – O Google Tradutor está disponível gratuitamente para uso não comercial, enquanto a API de Tradução do Google Cloud AI utiliza um modelo de cobrança baseado no uso. Considere seu orçamento e o volume estimado de traduções para escolher o serviço mais econômico.
  • Suporte e documentação – Considere também o suporte técnico e a documentação disponíveis para cada serviço. A API de Tradução do Google Cloud AI pode ter documentação e suporte mais abrangentes por parte do Google.

Linguise, o melhor serviço de tradução em nuvem com IA para sites Laravel

Serviços profissionais de design e desenvolvimento de websites, otimização de SEO

Até este ponto, você já conhece as considerações para escolher um serviço de tradução para Laravel; quase todos os fatores mencionados acima estão presentes no serviço de tradução Linguise .

Linguise é um serviço de tradução de sites que utiliza tecnologia de tradução com IA na nuvem para produzir traduções de conteúdo. Este serviço pode ser a melhor solução para traduzir um Laravel . Por quê? Porque Linguise leva em consideração os aspectos mencionados acima.

  • Linguise oferece uma qualidade de tradução impecável. Embora a precisão varie de acordo com o par de idiomas, Linguise apresenta uma taxa de acerto de quase 97%, semelhante à tradução humana.
  • Linguise também é integrada com mais de 40 CMS e construtores de sites, além de ser integrada com sites baseados em PHP, como Laravel .
  • Embora traduza automaticamente, Linguise possui um editor em tempo real que pode ser usado para editar os resultados da tradução. Dessa forma, a tradução pode ser ajustada às preferências da empresa.
  • O tempo de carregamento das páginas multilíngues é apenas 5% maior do que o das páginas no idioma original.
  • Nosso serviço está disponível em três pacotes, com preços que variam de US$ 15 a US$ 45 por mês. Embora seja pago, oferecemos também um período de teste gratuito de 30 dias, com um limite de 600.000 palavras que podem ser traduzidas.
  • Por fim, Linguise oferece suporte a todas as formas de assistência ao cliente, incluindo artigos de guia, documentação, notícias sobre o produto, tutoriais em vídeo no YouTube e chat de suporte 24 horas por dia, 7 dias por semana.

Considerando os pontos acima, Linguise pode ser uma solução de tecnologia de tradução com IA em nuvem para Laravel.

Pronto para explorar novos mercados? Experimente nosso serviço de tradução automática gratuitamente com nossa avaliação gratuita de 1 mês. Nenhum cartão de crédito necessário!

Conclusão

Neste artigo, exploramos as principais diferenças entre a implementação da API de Tradução do Google Cloud AI e do Google Translate para aplicações web Laravel .

A API de Tradução de IA do Google Cloud se destaca pela precisão e pela necessidade de traduções de alta precisão. No entanto, esse serviço exige uma configuração mais complexa e é mais caro do que o Google Tradutor. Por outro lado, o Google Tradutor oferece facilidade de integração, mas apresenta limitações em termos de precisão e opções de personalização.

Linguise surge como um serviço alternativo de tradução em nuvem baseado em IA, compatível com sites Laravel . Com níveis de precisão quase equivalentes aos de traduções humanas, opções de edição de tradução, tempos de carregamento rápidos e suporte ao cliente abrangente, Linguise se torna uma excelente solução de tradução para o seu site Laravel .

Se você quiser experimentar Linguise , pode criar uma conta gratuita e aproveitar um período de teste de 30 dias com um limite de 600.000 palavras traduzidas. Visite linguise para mais informações!

Você também pode estar interessado em ler

Não perca!
Assine a nossa newsletter

Receba notícias sobre tradução automática de sites, SEO internacional e muito mais!

Invalid email address
Experimente. Uma vez por mês, e você pode cancelar a assinatura a qualquer momento.

Não saia sem compartilhar seu e-mail!

Não podemos garantir que você ganhará na loteria, mas podemos prometer algumas notícias informativas interessantes sobre tradução e descontos ocasionais.

Não perca!
Invalid email address