实施谷歌云AI API翻译与谷歌翻译对比 Laravel

电子设备,黑白
目录

对于拥有Laravel网站的您,提供准确和自然的翻译内容对于翻译您的网站和提供良好的用户体验非常重要。

幸运的是,有几种自动翻译服务可以帮助开发人员克服这一挑战,包括Google Cloud AI API翻译和Google翻译。两种服务都提供使用机器技术的翻译能力。.

在本文中,我们将探讨实施Google Cloud AI翻译和Google Translate的主要区别,适用于Laravel应用程序,并为您推荐最佳的翻译服务,用于您的Laravel

什么是谷歌云AI API翻译和谷歌翻译?

在进行讨论之前,我们将讨论Google Cloud AI API和Google Translate翻译的各自含义。.

谷歌云AI API翻译

谷歌云服务器和云存储

Google Cloud AI API翻译是一种由Google Cloud Platform提供的先进的自动翻译服务

谷歌云AI API翻译使用基于深度学习的神经翻译模型,可以更好地捕捉语言的细微差别和上下文,提供更符合实际语言使用习惯的翻译。此外,使用谷歌云AI翻译服务翻译高达50万个字符是免费的,而接下来的7.5万个字符将产生每百万字符20美元的费用。. 

谷歌翻译

翻译设置界面。语言设置选项。.

同时,谷歌翻译是一项历史悠久、广为人知的自动文本翻译服务。它采用更传统的统计翻译方法,根据从大型训练数据集中学习到的模式和概率生成翻译。.

尽管Google Cloud AI API翻译在准确性和处理语言细微差别方面不如前者先进,但Google翻译由于其易用性和非商业使用的免费可用性,仍然是一个受欢迎的选择。.

在 Laravel上实施Google Cloud AI API翻译

几种翻译服务包括Linguise使用人工智能翻译云技术翻译网站。

语言翻译服务使用云AI API作为其翻译技术之一。以下是Laravel网站上的实现步骤。我们假设在这里您已经有了一个完整的Laravel项目网站。

创建 Linguise 账户

要使用Linguise,您必须先注册帐户。您可以免费执行此操作,也可以按月或按年订阅。您只需提供诸如电子邮件、用户名和密码之类的信息。

添加 Laravel 网站信息

之后,添加有关您将使用的网站的信息,输入您的 Linguise 帐户信息和网址,选择 Laravel 平台,并添加默认语言和要添加到网站的语言。.

 

加载动画

然后通过以下按钮下载PHP脚本,并将其保存在本地计算机上。.

上传并配置PHP脚本

下载脚本后,解压缩并将其上传到安装 Laravel 的根文件夹。确保它位于您的 Laravel 安装根目录下(通常是您的CMS文件所在位置)。确保文件夹命名为“linguise”(解压缩时的默认名称)。.

计算机文件系统导航菜单

然后,必须将 Linguise API密钥复制到您上传到服务器的…/linguise/Configuration.php文件中。编辑文件并将API密钥粘贴到引号之间,替换文本REPLACE_BY_YOUR_TOKEN。.

代码配置截图

插入语言切换器脚本

脚本语言切换器 - 为 Laravel实施谷歌云AI API翻译与谷歌翻译对比

插入到resources/views/layouts/目录中的front.blade.php文件中。以下是插入脚本的预览。.

带有代码输出的终端窗口

配置.htaccess

最后,基于语言的URL需要在.htaccess文件中配置。如果您的文件包括“RewriteBase /,”,只需在该行后复制粘贴以下代码。.

				
					<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>
				
			

完成。此时,您已成功在Linguise服务上实施了云AI API翻译。现在,您可以查看Laravel网站。默认语言切换器将出现,您可以通过仪表板自定义Laravel的语言切换器。

一个男人,背景黑暗,神秘的气氛

在 Laravel上实施谷歌翻译

现在,我们将尝试在 Laravel中实施谷歌翻译。在这里,我们假设您已经成功创建了一个 Laravel 项目,只需要添加谷歌翻译。.

您还可以在官方Laravel网站上找到以下安装步骤。

安装谷歌翻译包

要安装Google翻译包,请打开项目提示并输入以下命令。该软件包将使您能够使用google-translator-language的工作功能。.

				
					composer require stichoza/google-translate-php
				
			

Google翻译包的设置

我们必须在应用程序中设置“google translator包”。打开/config文件夹中的app.php文件,找到“aliases”部分,并添加以下代码行。.

带有屏幕上编码文本的计算机终端。显示屏显示多行代码。.
				
					/*
|--------------------------------------------------------------------------
| 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(),

				
			

设置语言控制器

您需要创建一个类似以下语言控制器文件

				
					php artisan make:controller LangController
				
			

它将在/app/Http/Controllers文件夹中创建一个名为LangController.php的文件。.

计算机屏幕显示代码行
				
					<?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();
    }
}


				
			

创建Blade模板文件

导航到/resources/views文件夹并创建一个名为lang.blade.php的文件。打开文件并将以下代码插入其中。.

计算机屏幕上的代码图像。编程文本。.
				
					<!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/2b8a0247c24b45a33c66fc0185fc554c.js?ver=0275f"></script></body>

</html>

				
			

语言中间件设置

打开项目终端并运行此命令,

				
					php artisan make:middleware LanguageManager


				
			

它将在/app/Http/Middleware文件夹中创建一个名为LanguageManager.php的文件,并粘贴此内容。.

黑白像素图像。无清晰细节可见。.
				
					<?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);
    }
}

				
			

通过Kernel.php注册语言中间件

打开位于/app/Http目录下的Kernel.php文件。查找$middlewareGroups数组并导航到web部分。.

黑色背景上的文字模糊图像。文本不可读。.
				
					/**
 * The application's route middleware groups.
 *
 * @var array<string, array<int, class-string|string>>
 */
protected $middlewareGroups = [
    'web' => [
        
        //...

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

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

				
			

添加路由

打开/routes文件夹中的web.php并添加路由.

Web.php - 为 Laravel实现Google Cloud AI API翻译与Google翻译的比较
				
					//...
use App\Http\Controllers\LangController;

//...

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


				
			

测试网站

在项目终端中执行此命令以启动开发服务器。.

				
					php artisan serve
				
			

这是从网站Laravel创建的网站的显示onlinewebtutorblog.com,正如您在以下显示中看到的那样,有一个谷歌翻译下拉菜单。

一个看起来像是计算机屏幕的扭曲图像。.

然后,这就是当 Laravel 网站被翻译成阿拉伯语时的样子。.

故障的电脑屏幕。显示扭曲的代码和文本。.

在 Laravel上实施谷歌云AI翻译和谷歌翻译有什么区别?

了解了谷歌云AI和谷歌翻译在 Laravel中的各自实现后,我们将讨论它们之间的差异。.

安装和配置过程

黑白插图。人们站在一个大目标旁边。.
  • 谷歌云AI API翻译:安装和配置过程更加复杂,因为您必须在谷歌云平台(GCP)上创建项目,启用云翻译API,创建服务帐户,生成API密钥,并在您的Laravel应用程序中配置API客户端。这涉及多个步骤,需要有效的GCP帐户。
  • 谷歌翻译:安装和配置要简单得多。您只需通过Composer安装第三方包或库,例如stichoza/google-translate-php。然后,您可以在Laravel配置文件中配置谷歌翻译API密钥。

翻译准确性

一群人围坐在电脑旁。.
  • 谷歌云AI API翻译: 由于其深度学习能力,这项服务可以更好地捕捉复杂的语言环境和细微差别。这使得成语表达、比喻性短语和文字游戏的翻译更加准确,而这些内容很难直译。
  • 谷歌翻译:经常难以捕捉到细腻的语言环境和细微差别,使得翻译结果听起来生硬或不够自然。由于采用统计学方法,翻译成语或比喻性短语时往往准确性较低。

响应速度

一艘火箭从笔记本电脑和手机上起飞。.
  • 谷歌云AI API翻译:由于使用优化的神经机器翻译模型托管在谷歌强大的云基础设施上,因此在响应翻译请求时通常更快。这提供了更快的响应时间,特别是对于较长的文本或大量的翻译。
  • Google 翻译: 它在响应翻译请求时可能会稍微慢一些,尤其是对于较长的文档或文本。这是因为它使用了一种更传统的统计和神经翻译方法混合体,可能不如 Google Cloud AI API 翻译使用的神经模型那样高效。

定制和控制能力

带有故障效果的扭曲计算机屏幕。图像似乎已损坏。.
  • 谷歌云AI API翻译: 提供更多自定义和控制翻译过程的选项,例如设置翻译偏好、上传自定义词汇表,以及访问实时编辑器翻译界面以手动编辑翻译结果。这使用户能够根据自己的需求提高翻译准确性。
  • 谷歌翻译:具有更有限的定制和控制选项。用户必须依赖自动翻译结果,无法进行大量编辑或直接自定义结果。

高级功能

带有无障碍功能和咖啡杯的电脑屏幕
  • 谷歌云AI API翻译:谷歌云AI翻译技术具有多个高级功能,如术语表、模型选择和AutoML模型。此外,在与Linguise进行云AI翻译的上下文中,它还具有高级功能,如翻译排除,适用于特定词语,如技术术语、品牌名称等,基于行、页面或URL。
  • 谷歌翻译:安装在Laravel中的谷歌翻译无法翻译音频文件或其他内容。它只能将网站上的文本翻译成另一种语言,而无法编辑翻译结果。
打破语言障碍
告别语言障碍,迎来无限增长!今天就试试我们的自动翻译服务吧。.

为您的 Laravel 网站选择翻译服务时应考虑的因素

以下是为您的 Laravel 网站选择最佳翻译服务的一些考虑因素。.

  • 高翻译准确率–最重要的因素之一是生成的翻译的准确性。如果您的网站需要高度准确的翻译,特别是对于复杂的内容和细微的语言,那么谷歌云AI API翻译可能是比谷歌翻译更好的选择。
  • 易于集成和配置 — 考虑在您的 Laravel 应用中安装和配置翻译服务。谷歌翻译通常更容易集成,因为它可以作为PHP包或库使用。同时,谷歌云AI API翻译需要在谷歌云平台上进行更复杂的配置。
  • 功能和自定义选项 – 如果您需要额外的功能,如术语表或专用术语翻译,编辑器翻译结果,或其他自定义选项,Google Cloud AI API 翻译提供比 Google 翻译更多的选择。
  • 速度和响应时间 – 对于具有大量翻译量或需要快速响应的应用程序,Google Cloud AI API 翻译通常比 Google 翻译响应更快。
  • 成本和预算 –谷歌翻译对非商业用途免费,而谷歌云AI API翻译采用基于使用量的付费计费模式。请考虑您的预算和预计的翻译量,以选择最具成本效益的服务。
  • 支持和文档 – 此外,还应考虑每个服务的技术支持和文档。Google Cloud AI API 翻译可能拥有更全面的文档和来自 Google 的支持。

Linguise,适用于 Laravel 网站的最佳云AI翻译服务

专业网站设计和开发服务,SEO优化

到目前为止,您已经了解为 Laravel选择翻译服务的考虑因素;上述几乎所有因素都存在于 Linguise 翻译服务中。.

Linguise是一款网站翻译服务,使用云AI翻译技术生成内容翻译。该服务可以成为翻译基于Laravel的网站的最佳解决方案。为什么呢?因为Linguise解决了上述考虑因素。

  • Linguise 拥有 完美的翻译质量。 尽管翻译准确率会根据语言对的不同而有所不同,但 Linguise
  • Linguise 还与超过40个CMS和网站构建工具集成,以及与像Laravel这样的基于PHP的网站集成Laravel
  • 虽然它可以自动翻译,但 Linguise 有一个实时编辑器,可以用来编辑翻译结果。这样,翻译结果就可以根据业务偏好进行调整。.
  • 多语言页面的加载时间仅比原始语言页面长 5%。.
  • 我们的服务提供三种套餐,价格从每月15美元到45美元不等。虽然是付费服务,但我们也提供为期30天的免费试用期,翻译字数限制为60万字。.
  • 最后, Linguise 支持所有形式的客户帮助,包括指南文章、文档、产品新闻、YouTube视频教程和7*24小时支持聊天。.

从以上几点来看, Linguise 可以成为 Laravel的云 AI 翻译技术解决方案。.

准备好探索新市场了吗?试试我们的自动翻译服务,免费试用1个月,无风险,不需要信用卡!

结论

在本文中,我们探讨了为 Laravel 网络应用实施 Google Cloud AI API 翻译和 Google 翻译之间的主要区别。.

谷歌云AI API翻译在准确性和高精度翻译需求方面表现出色。然而,该服务需要更复杂的配置,并且比谷歌翻译更昂贵。另一方面,谷歌翻译提供了易于集成的优势,但其准确性和自定义选项存在局限性。.

Linguise 成为与 Laravel 网站兼容的替代云 AI 翻译服务。凭借几乎与人工翻译相匹配的准确率、翻译编辑器选项、快速加载时间和全面的客户支持, Linguise 成为您 Laravel 网站的优秀翻译解决方案。.

如果您想尝试 Linguise,您可以 注册一个免费账户 并享受为期 30 天的试用期,翻译字数限制为 600,000 字。访问 linguise.com 获取更多信息!

您可能也有兴趣阅读

不要错过!
订阅我们的新闻通讯

接收有关网站自动翻译、国际SEO等的新闻!

Invalid email address
试试看,每月仅需一次,您可以随时取消订阅。.

别忘了分享您的电子邮箱!

我们不能保证您会赢得彩票,但我们可以承诺提供一些有关翻译的有趣信息新闻和偶尔的折扣。.

不要错过!
Invalid email address