Implemente a tradução da API do Google Cloud AI vs Google Translate para Laravel

dispositivos eletrônicos, preto e branco
Índice de Conteúdo

Para aqueles que possuem sites baseados em Laravel, fornecer conteúdo de tradução preciso e natural é muito importante para traduzir seu site e oferecer uma boa experiência ao usuário.

Felizmente, vários serviços de tradução automática estão disponíveis para ajudar os desenvolvedores a superar esse desafio, incluindo a Tradução da API de IA do Google Cloud e o Google Translate. Ambos os serviços oferecem capacidades de tradução usando tecnologia de máquina.

Neste artigo, exploraremos as principais diferenças entre a implementação da tradução do Google Cloud AI e do Google Translate para aplicações Laravel e recomendamos os melhores serviços de tradução para o seu Laravel site.

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

Antes de entrar na discussão, discutiremos os respectivos significados da API do Google Cloud AI e das traduções do Google Translate.

Tradução da API do Google Cloud AI

Servidor e armazenamento em nuvem do Google Cloud

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

A tradução da API do Google Cloud AI usa modelos de tradução neural baseados em aprendizado profundo, o que lhe permite capturar nuances e contexto da linguagem de forma mais eficaz, fornecendo traduções mais idiomáticas que se alinham com o uso real da linguagem. Além disso, usar a tradução da API do Google Cloud AI para até 500.000 caracteres é gratuito, enquanto os próximos 75.000 caracteres terão um custo de $20 por milhão de caracteres. 

Google Translate

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

Enquanto isso, o Google Translate é um serviço de tradução automática de texto de longa data e amplamente conhecido. Ele usa 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 tradução da API do Google Cloud AI em termos de precisão e tratamento de nuances da linguagem, o Google Translate continua sendo uma escolha popular devido à sua facilidade de uso e disponibilidade gratuita para uso não comercial.

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

Vários serviços de tradução, incluindo Linguise, usam a tecnologia de nuvem Tradução de IA para traduzir sites.

O serviço de tradução de idiomas usa a API de IA em nuvem como uma de suas tecnologias de tradução. A seguir estão as etapas de implementação no site Laravel. Aqui, presumimos que você já tenha um site de projeto Laravel pronto.

Criar conta Linguise

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

Adicione informações do site Laravel

Depois disso, adicione informações sobre o site que você irá usar, insira as informações da sua conta Linguise e 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 por meio do botão a seguir e salve-o em seu computador local.

Faça o upload e configure o script PHP

Depois de baixar o script, descompacte-o e faça o upload para a pasta raiz onde o Laravel está instalado. Certifique-se de que ele esteja localizado na raiz da sua instalação do Laravel (normalmente onde seus arquivos CMS estão). Certifique-se de que a pasta seja nomeada “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 a 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 idioma

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

Seletor de Idioma de Script - Implemente a tradução da API do Google Cloud AI vs Google Translate para Laravel

Inserido no arquivo front.blade.php no diretório resources/views/layouts/. Aqui está uma pré-visualização do script inserido.

Janela do terminal com saída de código

Configurar .htaccess

Por fim, as URLs baseadas em idioma precisam ser configuradas no arquivo .htaccess. Se o seu arquivo incluir “RewriteBase /,” simplesmente copie e cole o código a seguir 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>
				
			

Feito. Neste ponto, você implementou com sucesso a Tradução da API de IA em nuvem no serviço Linguise. Agora, você pode verificar o site Laravel. Um seletor de idioma padrão aparecerá, e você pode personalizar o seletor de idioma para Laravel via painel de controle.

um homem com um fundo escuro, atmosfera misteriosa

Implementar o Google Tradutor no Laravel

Agora, tentaremos implementar o Google Tradutor no Laravel. Aqui, presumimos que você criou com sucesso um projeto Laravel e só precisa adicionar o Google Tradutor.

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

Instalar Pacote de Tradutor do Google

Para instalar o Pacote do Google Tradutor, abra o prompt do projeto e insira o seguinte comando. Este pacote permitirá que você utilize as funções de trabalho do google-translator-language.

				
					composer require stichoza/google-translate-php
				
			

Configuração do Pacote do Google Tradutor

Devemos configurar o “pacote do tradutor do google” dentro da aplicação. 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 de codificação na tela. A tela 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/a34a9f5be866041efb810d48a1cc5b6e.js?ver=6943a"></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 cole isso.

Uma imagem pixelada em preto e branco. Nenhum detalhe claro 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 a matriz $middlewareGroups e navegue até a seção web.

Uma imagem desfocada de texto em um 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 web.php na pasta /routes e adicione estas rotas a ele.

Web.php - Implemente a tradução da API do Google Cloud AI vs 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');


				
			

Testando site

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

				
					php artisan serve
				
			

Aqui está uma exibição do Laravel da website onlinewebtutorblog.com que foi criado, como você pode ver na seguinte exibição, há um menu suspenso do Google Translate.

Uma imagem distorcida do que parece ser uma tela de computador.

Então é assim que fica quando o site Laravel é traduzido para o árabe.

Tela de computador com defeito. Exibindo código e texto distorcidos.

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

Depois de entender cada implementação da tradução do Google Cloud AI e do Google Translate no Laravel, discutiremos suas diferenças.

Processo de Instalação e Configuração

Uma ilustração em preto e branco. Pessoas em pé perto de um grande alvo.
  • Tradução da API do Google Cloud AI: O processo de instalação e configuração é mais complexo porque você precisa criar um projeto na Plataforma Google Cloud (GCP), habilitar a API de Tradução da Nuvem, criar uma conta de serviço, gerar chaves de API e configurar o cliente de API em sua aplicação Laravel. Isso envolve várias etapas e requer uma conta GCP válida.
  • Google Tradutor: A instalação e configuração são muito mais simples. Você só precisa instalar um pacote ou biblioteca de terceiros via Composer, como stichoza/google-translate-php. Depois disso, você pode configurar a chave da API do Google Tradutor no Laravel arquivo de configuração.

Precisão da Tradução

Grupo de pessoas reunidas em torno de um computador.
  • Tradução da API do Google Cloud AI: Graças às suas capacidades de aprendizado profundo, este serviço pode capturar melhor contextos linguísticos complexos e nuances. 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.
  • Google Tradutor: muitas vezes luta para capturar contextos e nuances linguísticas mais sutis, tornando os resultados sonoros rígidos ou menos naturais. Devido à abordagem estatística, a tradução de expressões idiomáticas ou frases figurativas é frequentemente menos precisa.

Velocidade de Resposta

Uma nave espacial decolando de um computador portátil e um telefone celular.
  • Tradução da API do Google Cloud AI: Geralmente mais rápida ao responder a solicitações de tradução, pois utiliza modelos otimizados 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 ligeiramente mais lento ao responder a solicitações de tradução, especialmente para documentos ou textos mais longos. Isso ocorre porque ele usa uma mistura mais tradicional de abordagens de tradução estatística e neural, que podem não ser tão eficientes quanto os modelos neurais usados pela tradução da API do Google Cloud AI.

Capacidades de Personalização e Controle

Uma tela de computador distorcida com efeitos glitchy. A imagem parece estar corrompida.
  • Tradução da API do Google Cloud AI: 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 interface de tradução do editor ao vivo para editar os resultados da tradução manualmente. Isso permite que os usuários melhorem a precisão da tradução de acordo com suas necessidades.
  • Google Translate: Tem opções de personalização e controle mais limitadas. Os usuários devem se basear nos resultados da tradução automática sem muita capacidade de editar ou personalizar diretamente os resultados.

Recursos Avançados

Tela do computador com recursos de acessibilidade e xícara de café
  • Tradução da API do Google Cloud AI: A tecnologia de tradução do Google Cloud AI tem várias características avançadas, como Glossário, seleção de Modelo e modelos AutoML. Além disso, no contexto da tradução de IA em nuvem com Linguise, também possui 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.
  • Google Tradutor:O Google Tradutor instalado noLaravelnão pode traduzir documentos de áudio ou outros. Ele só pode traduzir o texto no site para outro idioma sem a capacidade de editar os resultados da tradução.
Quebre as Barreiras Linguísticas
Diga adeus às barreiras linguísticas e dê as boas-vindas ao crescimento ilimitado! Experimente nosso serviço de tradução automática hoje mesmo.

Fatores que você deve considerar ao escolher um serviço de tradução para o seu site Laravel

Aqui estão algumas considerações ao 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 requer traduções altamente precisas, especialmente para conteúdo complexo e linguagem matizada, então a Tradução da API do Google Cloud AI pode ser uma escolha 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 aplicação Laravel. O Google Translate é geralmente mais fácil de integrar porque está disponível como um pacote ou biblioteca PHP. Enquanto isso, a Tradução da API 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, tradução do editor resultados ou outras opções de personalização, a Tradução da API do Google Cloud AI oferece mais opções do que o Google Translate.
  • Velocidade e Tempo de Resposta – Para aplicações com grandes volumes de tradução ou que precisam de resposta rápida, a Tradução da API do Google Cloud AI geralmente responde às solicitações de tradução mais rapidamente do que o Google Translate.
  • Custo e Orçamento – O Google Translate está disponível gratuitamente para uso não comercial, enquanto a tradução da API do Google Cloud AI usa um modelo de cobrança pago com base no uso. Considere seu orçamento e volume de tradução estimado para escolher o serviço mais econômico.
  • Suporte e Documentação – Além disso, considere o suporte técnico e a documentação disponível para cada serviço. A tradução da API do Google Cloud AI pode ter documentação e suporte mais abrangentes do Google.

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

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

Até este ponto, você já sabe 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 de IA em nuvem para produzir traduções de conteúdo. Este serviço pode ser a melhor solução para traduzir um site baseado em Laravel. Por que isso? Porque Linguise aborda as considerações mencionadas acima.

  • Linguise tem qualidade de tradução perfeita. Embora essa precisão varie dependendo do par de idiomas, Linguise ostenta uma taxa de precisão de quase 97%, semelhante à tradução humana.
  • Linguise também está integrado com mais de 40 construtores de CMS e web, bem como integrado com sites baseados em PHP como Laravel
  • Embora ele traduza automaticamente, Linguise tem um editor ao vivo que pode ser usado para editar os resultados da tradução. Desta forma, a tradução pode ser ajustada às preferências comerciais.
  • O tempo de carregamento para páginas multilíngues é apenas 5% maior do que o das páginas de idioma original.
  • Nosso serviço está disponível em três pacotes que variam de $15 a $45 por mês. Embora seja pago, também oferecemos um período de teste gratuito de 30 dias com um limite de 600.000 palavras que podem ser traduzidas.
  • Finalmente, Linguise suporta todas as formas de assistência ao cliente, incluindo artigos de guia, documentação, notícias de produtos, tutoriais em vídeo do YouTube e chat de suporte 24 horas por dia, 7 dias por semana.

A partir dos pontos acima, Linguise pode ser uma solução de tecnologia de tradução de 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. Não é necessário cartão de crédito!

Conclusão

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

A tradução da API do Google Cloud AI se destaca pela precisão e pela necessidade de traduções de alta precisão. No entanto, este serviço requer uma configuração mais complexa e é mais caro do que o Google Translate. Por outro lado, o Google Translate oferece facilidade de integração, mas tem limitações em termos de precisão e opções de personalização.

Linguise surge como um serviço de tradução alternativo baseado em IA na nuvem compatível com sites Laravel . Com níveis de precisão quase equivalentes a traduções humanas, opções de editor 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, você pode cadastrar-se para uma conta gratuita e desfrutar de um período de teste de 30 dias com um limite de 600.000 palavras traduzidas. Visite linguise.com para mais informações!

Você também pode estar interessado em ler

Não perca!
Inscreva-se na 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 qualquer momento.

Não vá embora 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