Implementierung der Google Cloud AI API-Übersetzung im Vergleich zu Google Translate für Laravel

elektronische Geräte, Schwarzweiß
Inhaltsverzeichnis

Für diejenigen unter Ihnen, die Laravel Basis besitzen, ist die Bereitstellung präziser und natürlicher Übersetzungsinhalte von großer Bedeutung, um Ihre Webseite zu übersetzen und ein gutes Benutzererlebnis zu bieten.

Glücklicherweise stehen Entwicklern mehrere automatische Übersetzungsdienste zur Verfügung, darunter Google Cloud AI API Translation und Google Translate. Beide Dienste bieten Übersetzungsfunktionen mithilfe von maschineller Übersetzung.

In diesem Artikel gehen wir auf die wichtigsten Unterschiede zwischen der Implementierung von Google Cloud AI Translation und Google Translate für Laravel -Anwendungen ein und empfehlen die besten Übersetzungsdienste für Ihre Laravel -Website.

Was ist die Google Cloud AI API-Übersetzung und Google Translate?

Bevor wir in die Diskussion einsteigen, werden wir die jeweiligen Bedeutungen der Google Cloud AI API und der Übersetzungen von Google Translate erläutern.

Google Cloud AI API-Übersetzung

Google Cloud-Server und Cloud-Speicher

Google Cloud AI API Translation ist ein fortschrittlicher automatischer Übersetzungsdienst der Google Cloud Platform. Dieser Dienst nutzt modernste Technologien der künstlichen Intelligenz (KI) und des maschinellen Lernens, um präzise und natürliche Übersetzungen von Texten, Sprachaufnahmen und Dokumenten zu liefern.

Google Cloud AI API Translation nutzt neuronale Übersetzungsmodelle auf Basis von Deep Learning. Dadurch werden sprachliche Nuancen und Kontext besser erfasst, was zu idiomatischen Übersetzungen führt, die dem tatsächlichen Sprachgebrauch entsprechen. Die Nutzung von Google Cloud AI Translation ist für bis zu 500.000 Zeichen kostenlos. Für jede weitere Million Zeichen (ab 75.000) fallen Kosten von 20 US-Dollar an. 

Google Übersetzer

Benutzeroberfläche für Übersetzungseinstellungen. Optionen für Spracheinstellungen.

Google Translate hingegen ist ein etablierter und weithin bekannter automatischer Textübersetzungsdienst. Er verwendet einen eher traditionellen statistischen Übersetzungsansatz, der Übersetzungen auf der Grundlage von Mustern und Wahrscheinlichkeiten generiert, die aus großen Trainingsdatensätzen gelernt wurden.

Obwohl Google Translate hinsichtlich Genauigkeit und Umgang mit sprachlichen Nuancen nicht so fortschrittlich ist wie die Google Cloud AI API Translation, bleibt es aufgrund seiner Benutzerfreundlichkeit und der kostenlosen Verfügbarkeit für nichtkommerzielle Zwecke eine beliebte Wahl.

Implementierung der Google Cloud AI API-Übersetzung auf Laravel

Mehrere Übersetzungsdienste, darunter Linguise , nutzen KI-Übersetzungs- Cloud-Technologie zur Übersetzung von Webseiten.

Der Sprachübersetzungsdienst nutzt unter anderem eine Cloud-KI-API. Im Folgenden sind die Implementierungsschritte für die Laravel -Website beschrieben. Wir gehen davon aus, dass Sie bereits eine fertige Laravel Projektwebsite besitzen.

Linguise Konto erstellen

Um Linguise , müssen Sie sich zunächst registrieren. Dies ist kostenlos möglich, oder Sie können ein Abonnement für einen Monat oder ein Jahr abschließen. Sie benötigen lediglich Ihre E-Mail-Adresse, Ihren Benutzernamen und Ihr Passwort.

Laravel -Websiteinformationen hinzufügen

Fügen Sie anschließend Informationen über die Website hinzu, die Sie verwenden werden, geben Sie Ihre Linguise Kontoinformationen und die Web-URL ein, wählen Sie die Laravel Plattform aus und fügen Sie die Standardsprache und die Sprache hinzu, die Sie der Website hinzufügen möchten.

 

Ladeanimation

Laden Sie anschließend das PHP-Skript über die folgende Schaltfläche herunter und speichern Sie es auf Ihrem lokalen Computer.

Laden Sie das PHP-Skript hoch und konfigurieren Sie es

Nach dem Herunterladen des Skripts entpacken Sie es und laden es in das Stammverzeichnis Ihrer Laravel Laravel Installation hoch (in der Regel dort, wo sich Ihre CMS-Dateien befinden). Stellen Sie sicher, dass der Ordner „linguise“ heißt (dies ist der Standardname nach dem Entpacken).

Navigationsmenü des Computerdateisystems

Anschließend muss der Linguise -API-Schlüssel in die Datei „…/linguise/Configuration.php“ kopiert werden, die Sie auf Ihren Server hochgeladen haben. Bearbeiten Sie die Datei und fügen Sie Ihren API-Schlüssel zwischen den Anführungszeichen ein. Ersetzen Sie dabei den Text „REPLACE_BY_YOUR_TOKEN“.

Screenshot der Codekonfiguration

Skript des Sprachumschalters einfügen

Fügen Sie als Nächstes das Sprachumschaltskript ein, das Sie vom Linguise Dashboard erhalten haben.

Skriptsprachenumschalter – Implementierung der Google Cloud AI API-Übersetzung im Vergleich zu Google Translate für Laravel

Eingefügt in die Datei front.blade.php im Verzeichnis resources/views/layouts/. Hier ist eine Vorschau des eingefügten Skripts.

Terminalfenster mit Codeausgabe

Konfigurieren Sie die .htaccess-Datei

Schließlich müssen sprachbasierte URLs in der .htaccess-Datei konfiguriert werden. Wenn Ihre Datei „RewriteBase /“ enthält, kopieren Sie einfach den folgenden Code und fügen Sie ihn nach dieser Zeile ein.

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

Fertig. Sie haben nun die Cloud-KI-API-Übersetzung erfolgreich im Linguise Dienst implementiert. Rufen Sie jetzt die Laravel Laravel wird ein Standard-Sprachumschalter angezeigt, den Sie über das Dashboard anpassen

Ein Mann mit dunklem Hintergrund, geheimnisvolle Ausstrahlung

Google Translate in Laravel implementieren

Nun werden wir versuchen, Google Translate in Laravelzu implementieren. Wir gehen davon aus, dass Sie bereits ein Laravel -Projekt erfolgreich erstellt haben und lediglich Google Translate hinzufügen müssen.

Die folgenden Installationsschritte finden Sie auch auf der offiziellen Laravel Website.

Installieren Sie das Google Translator-Paket

Um das Google Translator-Paket zu installieren, öffnen Sie die Projekt-Eingabeaufforderung und geben Sie den folgenden Befehl ein. Mit diesem Paket können Sie die Funktionen des Google Translator-Sprachpakets nutzen.

				
					composer require stichoza/google-translate-php
				
			

Einstellungen des Google Translator-Pakets

Wir müssen das „Google Übersetzerpaket“ in der Anwendung einrichten. Öffnen Sie die Datei app.php im Ordner /config, suchen Sie den Abschnitt „aliases“ und fügen Sie die folgende Codezeile hinzu.

Ein Computerterminal mit Codetext auf dem Bildschirm. Das Display zeigt verschiedene Codezeilen an.
				
					/*
|--------------------------------------------------------------------------
| 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(),

				
			

Sprachsteuerung einrichten

Sie müssen eine Sprachsteuerungsdatei wie die folgende erstellen

				
					php artisan make:controller LangController
				
			

Es wird die Datei LangController.php im Ordner /app/Http/Controllers erstellt.

Computerbildschirm mit Codezeilen
				
					<?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-Vorlagendatei erstellen

Navigieren Sie zum Ordner /resources/views und erstellen Sie dort eine Datei namens lang.blade.php. Öffnen Sie die Datei und fügen Sie den folgenden Code ein.

Abbildung von Code auf einem Computerbildschirm. Programmiertext.
				
					<!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>

				
			

Einstellungen der Sprach-Middleware

Öffnen Sie das Projektterminal und führen Sie diesen Befehl aus:

				
					php artisan make:middleware LanguageManager


				
			

Es wird eine Datei LanguageManager.php im Ordner /app/Http/Middleware erstellt, in die folgender Inhalt eingefügt wird.

Ein schwarz-weißes, pixeliges Bild. Keine klaren Details erkennbar.
				
					<?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);
    }
}

				
			

Sprach-Middleware über Kernel.php registrieren

Öffnen Sie die Datei Kernel.php im Verzeichnis /app/Http. Suchen Sie nach dem Array $middlewareGroups und navigieren Sie zum Abschnitt „web“.

Ein verschwommenes Bild von Text auf schwarzem Hintergrund. Der Text ist unleserlich.
				
					/**
 * The application's route middleware groups.
 *
 * @var array<string, array<int, class-string|string>>
 */
protected $middlewareGroups = [
    'web' => [
        
        //...

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

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

				
			

Route hinzufügen

Öffnen Sie die Datei web.php im Ordner /routes und fügen Sie diese Routen dort ein.

Web.php – Implementierung der Google Cloud AI API-Übersetzung im Vergleich zu Google Translate für Laravel
				
					//...
use App\Http\Controllers\LangController;

//...

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


				
			

Testwebsite

Führen Sie diesen Befehl im Projektterminal aus, um den Entwicklungsserver zu starten.

				
					php artisan serve
				
			

Hier sehen Sie eine Darstellung der onlinewebtutorblog.com erstellten Laravel Website.

Ein verzerrtes Bild, das anscheinend einen Computerbildschirm zeigt.

So sieht die Laravel Website aus, wenn sie ins Arabische übersetzt wird.

Fehlerhafter Computerbildschirm. Verzerrter Code und Text werden angezeigt.

Worin besteht der Unterschied zwischen der Implementierung von Google Cloud AI-Übersetzung und Google Translate auf Laravel?

Nachdem wir die einzelnen Implementierungen von Google Cloud AI und Google Translate in Laravelkennengelernt haben, werden wir die Unterschiede diskutieren.

Installations- und Konfigurationsprozess

Eine Schwarz-Weiß-Illustration. Menschen stehen neben einer großen Zielscheibe.
  • Google Cloud AI API-Übersetzung: Die Installation und Konfiguration ist komplexer, da Sie ein Projekt auf der Google Cloud Platform (GCP) erstellen, die Cloud Translation API aktivieren, ein Dienstkonto anlegen, API-Schlüssel generieren und den API-Client in Ihrer Laravel -Anwendung konfigurieren müssen. Dies umfasst mehrere Schritte und erfordert ein gültiges GCP-Konto.
  • Google Translate: Installation und Konfiguration sind deutlich einfacher. Sie müssen lediglich ein Drittanbieterpaket oder eine Bibliothek wie beispielsweise stichoza/google-translate-php über Composer installieren. Anschließend können Sie den Google Translate API-Schlüssel in der Laravel Konfigurationsdatei einrichten.

Übersetzungsgenauigkeit

Eine Gruppe von Menschen versammelte sich um einen Computer.
  • Google Cloud AI API-Übersetzung: Dank seiner Deep-Learning-Funktionen erfasst dieser Dienst komplexe sprachliche Kontexte und Nuancen besser. Dies ermöglicht eine präzisere Übersetzung von Redewendungen, bildhaften Ausdrücken und Wortspielen, die sich schwer wörtlich übersetzen lassen.
  • Google Translate hat oft Schwierigkeiten, feinere sprachliche Nuancen und den Kontext zu erfassen, wodurch die Ergebnisse steif und unnatürlich klingen. Aufgrund des statistischen Ansatzes ist die Übersetzung von Redewendungen und bildhaften Ausdrücken oft ungenauer.

Reaktionsgeschwindigkeit

Eine Rakete, die von einem Laptop und einem Mobiltelefon aus startet.
  • Google Cloud AI API-Übersetzung: Reagiert in der Regel schneller auf Übersetzungsanfragen, da optimierte neuronale maschinelle Übersetzungsmodelle , die auf Googles robuster Cloud-Infrastruktur gehostet werden. Dies ermöglicht kürzere Antwortzeiten, insbesondere bei längeren Texten oder großen Übersetzungsmengen.
  • Google Translate reagiert unter Umständen etwas langsamer auf Übersetzungsanfragen, insbesondere bei längeren Dokumenten oder Texten. Dies liegt daran, dass es einen eher traditionellen Mix aus statistischen und neuronalen Übersetzungsverfahren verwendet, der möglicherweise nicht so effizient ist wie die neuronalen Modelle der Google Cloud AI API-Übersetzung.

Anpassungs- und Steuerungsmöglichkeiten

Ein verzerrter Computerbildschirm mit Bildfehlern. Das Bild scheint beschädigt zu sein.
  • Google Cloud AI API Translation: Bietet mehr Optionen zur Anpassung und Steuerung des Übersetzungsprozesses, z. B. das Festlegen von Übersetzungseinstellungen, das Hochladen benutzerdefinierter Glossare und den Zugriff auf die Live-Editor- Oberfläche zur manuellen Bearbeitung der Übersetzungsergebnisse. Dadurch können Benutzer die Übersetzungsgenauigkeit ihren Bedürfnissen entsprechend verbessern.
  • Google Translate: Bietet eingeschränktere Anpassungs- und Kontrollmöglichkeiten. Nutzer sind auf automatische Übersetzungsergebnisse angewiesen und haben kaum Möglichkeiten, diese zu bearbeiten oder direkt anzupassen.

Erweiterte Funktionen

Computerbildschirm mit Barrierefreiheitsfunktionen und Kaffeetasse
  • Google Cloud AI API-Übersetzung: Die Google Cloud AI-Übersetzungstechnologie bietet zahlreiche fortschrittliche Funktionen wie Glossar, Modellauswahl und AutoML-Modelle. In Verbindung mit Linguise ermöglicht sie zudem erweiterte Funktionen wie den Ausschluss bestimmter Wörter (z. B. Fachbegriffe, Markennamen usw.) basierend auf Zeilen, Seiten oder URLs.
  • Google Translate: Die in Laravel kann keine Audiodateien oder andere Dokumente übersetzen. Sie kann lediglich Text auf der Website in eine andere Sprache übersetzen, ohne dass die Übersetzungsergebnisse bearbeitet werden können.
Sprachbarrieren überwinden
Verabschieden Sie sich von Sprachbarrieren und begrüßen Sie grenzenloses Wachstum! Testen Sie noch heute unseren automatischen Übersetzungsservice.

Faktoren, die Sie bei der Auswahl eines Übersetzungsdienstes für Ihre Laravel Website berücksichtigen sollten

Hier sind einige Punkte, die Sie bei der Auswahl des besten Übersetzungsdienstes für Ihre Laravel Website beachten sollten.

  • Hohe Übersetzungsgenauigkeit – Die Genauigkeit der Übersetzung ist einer der wichtigsten Faktoren. Benötigt Ihre Website besonders präzise Übersetzungen, insbesondere für komplexe Inhalte und nuancierte Formulierungen, ist die Google Cloud AI API Translation möglicherweise die bessere Wahl als Google Translate.
  • Einfache Integration und Konfiguration – Erwägen Sie die Installation und Konfiguration des Übersetzungsdienstes in Ihrer Laravel Anwendung. Google Translate lässt sich in der Regel einfacher integrieren, da es als PHP-Paket bzw. -Bibliothek verfügbar ist. Die Google Cloud AI API Translation hingegen erfordert eine komplexere Konfiguration auf der Google Cloud Platform.
  • Funktionen und Anpassungsmöglichkeiten – Wenn Sie zusätzliche Funktionen wie ein Glossar oder die Übersetzung von Fachbegriffen, Übersetzungsergebnisse des Editors oder andere Anpassungsmöglichkeiten benötigen, bietet die Google Cloud AI API Translation mehr Auswahlmöglichkeiten als Google Translate.
  • Geschwindigkeit und Reaktionszeit – Bei Anwendungen mit großem Übersetzungsvolumen oder Bedarf an schneller Antwortzeit reagiert die Google Cloud AI API Translation im Allgemeinen schneller auf Übersetzungsanfragen als Google Translate.
  • Kosten und Budget – Google Translate ist für den nicht-kommerziellen Gebrauch kostenlos, während die Google Cloud AI API Translation ein nutzungsbasiertes Abrechnungsmodell verwendet. Berücksichtigen Sie Ihr Budget und das geschätzte Übersetzungsvolumen, um den kostengünstigsten Dienst auszuwählen.
  • Support und Dokumentation – Beachten Sie auch den für die einzelnen Dienste verfügbaren technischen Support und die Dokumentation. Die Google Cloud AI API Translation bietet möglicherweise eine umfassendere Dokumentation und mehr Support von Google.

Linguise, der beste Cloud-KI-Übersetzungsdienst für Laravel Websites

Professionelle Webdesign- und Entwicklungsdienstleistungen, SEO-Optimierung

Bis hierhin kennen Sie bereits die Kriterien für die Auswahl eines Übersetzungsdienstes für Laravel; fast alle der oben genannten Faktoren sind im Übersetzungsdienst Linguise vorhanden.

Linguise ist ein Website-Übersetzungsdienst, der mithilfe von Cloud-KI-Übersetzungstechnologie Inhaltsübersetzungen erstellt. Dieser Dienst kann die optimale Lösung für die Übersetzung einer Laravel -basierten Website sein. Warum? Weil Linguise die oben genannten Aspekte berücksichtigt.

  • Linguise bietet eine perfekte Übersetzungsqualität. Obwohl die Genauigkeit je nach Sprachpaar variiert, Linguise eine Genauigkeitsrate von nahezu 97 % auf, vergleichbar mit menschlichen Übersetzern.
  • Linguise ist außerdem mit mehr als 40 CMS- und Web-Buildern integriert und unterstützt auch PHP-basierte Websites wie Laravel .
  • Linguise übersetzt zwar automatisch, verfügt aber auch über einen Live-Editor, mit dem die Übersetzungsergebnisse bearbeitet werden können. So lässt sich die Übersetzung an die jeweiligen Geschäftsanforderungen anpassen.
  • Die Ladezeit für mehrsprachige Seiten ist nur 5 % länger als die der Seiten in der Originalsprache.
  • Unser Service ist in drei Paketen von 15 bis 45 US-Dollar pro Monat erhältlich. Obwohl er kostenpflichtig ist, bieten wir auch eine kostenlose 30-tägige Testphase mit einem Übersetzungslimit von 600.000 Wörtern an.
  • Schließlich bietet Linguise alle Formen der Kundenbetreuung an, darunter Leitfäden, Dokumentationen, Produktneuigkeiten, YouTube-Video-Tutorials und einen rund um die Uhr verfügbaren Support-Chat.

Aus den oben genannten Punkten lässt sich ableiten, Linguise eine Cloud-KI-Übersetzungstechnologielösung für Laravelsein kann.

Sind Sie bereit, neue Märkte zu erkunden? Testen Sie unseren automatischen Übersetzungsdienst kostenlos mit unserer einmonatigen, risikofreien Testversion. Keine Kreditkarte erforderlich!

Fazit

In diesem Artikel haben wir die wichtigsten Unterschiede zwischen der Implementierung der Google Cloud AI API Translation und Google Translate für Laravel Webanwendungen untersucht.

Die Google Cloud AI API Translation zeichnet sich durch hohe Genauigkeit aus und ist ideal für Anwendungen mit hohem Übersetzungsbedarf. Allerdings erfordert dieser Dienst eine komplexere Konfiguration und ist teurer als Google Translate. Google Translate hingegen bietet eine einfache Integration, weist aber Einschränkungen hinsichtlich Genauigkeit und Anpassungsmöglichkeiten auf.

Linguise etabliert sich als alternativer, cloudbasierter KI-Übersetzungsdienst, der mit Laravel Websites kompatibel ist. Mit einer Genauigkeit, die nahezu menschlichen Übersetzungen entspricht, Übersetzungseditor-Optionen, kurzen Ladezeiten und umfassendem Kundensupport ist Linguise eine hervorragende Übersetzungslösung für Ihre Laravel Website.

Linguise ausprobieren möchten , können Sie sich kostenlos registrieren und 30 Tage lang eine Testphase mit einem Limit von 600.000 übersetzten Wörtern nutzen. Besuchen Sie linguise für weitere Informationen!

Vielleicht sind Sie auch an einer Lektüre interessiert

Nicht verpassen!
Abonniere unseren Newsletter

Erhalten Sie Neuigkeiten zu automatischer Website-Übersetzung, internationaler Suchmaschinenoptimierung und mehr!

Invalid email address
Probieren Sie es aus. Einmal pro Monat, und Sie können jederzeit kündigen.

Gehen Sie nicht, ohne Ihre E-Mail-Adresse mitzuteilen!

Wir können nicht garantieren, dass Sie im Lotto gewinnen, können Ihnen aber einige interessante Neuigkeiten rund um die Übersetzung und gelegentliche Rabatte versprechen.

Nicht verpassen!
Invalid email address