تنفيذ ترجمة واجهة برمجة تطبيقات الذكاء الاصطناعي في جوجل كلاود مقابل جوجل ترنسليت لـ Laravel

أجهزة إلكترونية، بالأبيض والأسود
جدول المحتويات

لأولئك الذين يملكون مواقع ويب تستند إلى Laravel, من المهم جدًا توفير محتوى ترجمة دقيق وطبيعي لـ ترجمة موقع الويب الخاص بك وتقديم تجربة مستخدم جيدة.

لحسن الحظ ، تتوفر العديد من خدمات الترجمة التلقائية لمساعدة المطورين على التغلب على هذا التحدي ، بما في ذلك ترجمة جوجل كلاود AI API وجوجل ترجمة. تقدم كلتا الخدمتين قدرات ترجمة باستخدام تقنية الآلة.

في هذا المقال، سنستكشف الاختلافات الرئيسية بين تنفيذ ترجمة واجهة برمجة تطبيقات الذكاء الاصطناعي في جوجل كلاود وجوجل ترنسليت لتطبيقات Laravel ونوصي بأفضل خدمات الترجمة لموقعك Laravel على الويب.

ما هي ترجمة واجهة برمجة تطبيقات الذكاء الاصطناعي في جوجل كلاود & جوجل ترنسليت؟

قبل الدخول في المناقشة، سنناقش المعاني الخاصة بترجمة واجهة برمجة تطبيقات الذكاء الاصطناعي في جوجل كلاود وجوجل ترنسليت.

ترجمة واجهة برمجة تطبيقات الذكاء الاصطناعي في جوجل كلاود

خادم جوجل كلاود وتخزين السحابة

ترجمة Google Cloud AI API هي خدمة ترجمة آلية متقدمة خدمة الترجمة الآلية المقدمة من منصة Google Cloud. تستفيد هذه الخدمة من أحدث تقنيات الذكاء الاصطناعي (AI) والتعلم الآلي لتقديم ترجمات دقيقة وطبيعية للنصوص والصوت والوثائق.

تستخدم ترجمة Google Cloud AI API نماذج ترجمة عصبية تستند إلى التعلم العميق، مما يسمح لها بالتقاط الفروق الدقيقة في اللغة والسياق بشكل أفضل، وتقديم ترجمات أكثر تعبيراً تتماشى مع الاستخدام الفعلي للغة. بالإضافة إلى ذلك، فإن استخدام ترجمة Google Cloud AI لما يصل إلى 500,000 حرف مجاني، بينما ستتحمل تكلفة قدرها 20 دولارًا لكل مليون حرف للـ 75,000 حرف التالية. 

ترجمة جوجل

واجهة إعدادات الترجمة. خيارات إعدادات اللغة.

وفي الوقت نفسه، تُعتبر جوجل ترنسليت خدمة ترجمة نصية آلية معروفة على نطاق واسع وذات تاريخ طويل. تستخدم نهجًا تقليديًا للترجمة الإحصائية، مما يولد ترجمات بناءً على الأنماط والاحتمالات المستفادة من مجموعات بيانات التدريب الكبيرة.

على الرغم من أنها ليست متقدمة مثل ترجمة Google Cloud AI API من حيث الدقة ومعالجة الفروق اللغوية، تظل Google Translate خيارًا شائعًا بسبب سهولة استخدامها وتوافرها المجاني للاستخدام غير التجاري.

تنفيذ ترجمة Google Cloud AI API على Laravel

تستخدم العديد من خدمات الترجمة، بما في ذلك Linguise، تقنية ترجمة الذكاء الاصطناعي السحابية لترجمة المواقع الإلكترونية.

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.

إنشاء حساب Linguise

لاستخدام Linguise، يجب عليك تسجيل حساب أولاً. يمكنك القيام بذلك مجانًا أو الاشتراك لمدة شهر أو سنة. أنت فقط بحاجة إلى تقديم معلومات مثل البريد الإلكتروني واسم المستخدم وكلمة المرور.

إضافة معلومات موقع Laravel

بعد ذلك، أضف معلومات حول الموقع الذي ستستخدمه، وأدخل معلومات حسابك على Linguise وعنوان URL الخاص بك، وحدد منصة Laravel ، وأضف اللغة الافتراضية واللغة التي تريد إضافتها إلى الموقع.

 

تحميل الرسوم المتحركة

ثم قم بتنزيل البرنامج النصي لـ PHP عبر الزر التالي واحفظه على جهاز الكمبيوتر المحلي الخاص بك.

تحميل وتكوين البرنامج النصي PHP

بعد تنزيل البرنامج النصي، قم بفك ضغطه ورفعه إلى المجلد الجذر حيث يتم تثبيت Laravel . تأكد من أنه موجود في جذر تثبيت Laravel (عادةً حيث توجد ملفات CMS الخاصة بك). تأكد من تسمية المجلد "linguise" (الاسم الافتراضي عند فك ضغط المجلد).

قائمة تنقل نظام الملفات بالكمبيوتر

ثم، يجب نسخ مفتاح Linguise API إلى ملف …/linguise/Configuration.php الذي قمت برفعه إلى الخادم. قم بتحرير الملف والصق مفتاح API بين علامات الاقتباس، واستبدل النص REPLACE_BY_YOUR_TOKEN.

لقطة شاشة لتكوين الشفرة

أدخل سكربت تبديل اللغة

التالي، أدخل البرنامج النصي لتبديل اللغة الذي حصلت عليه من لوحة تحكم Linguise

مفتاح تبديل اللغة - تنفيذ ترجمة Google Cloud AI API مقابل ترجمة Google لـ Laravel

أدخل إلى ملف front.blade.php في دليل resources/views/layouts/. هنا معاينة للسكربت المدرج.

نافذة طرفية مع إخراج الشفرة

تكوين .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. الآن، يمكنك التحقق من موقع Laravel. سيظهر مفتاح لغة افتراضي، ويمكنك تخصيص مفتاح اللغة لـ Laravel عبر لوحة التحكم.

رجل مع خلفية مظلمة، جو غامض

تنفيذ ترجمة جوجل على Laravel

الآن سنحاول تنفيذ مترجم جوجل في Laravel. هنا نفترض أنك قمت بإنشاء مشروع Laravel بنجاح وتحتاج فقط إلى إضافة مترجم جوجل.

يمكنك أيضًا العثور على خطوات التثبيت التالية على الموقع الرسمي لـ Laravel.

تثبيت حزمة مترجم جوجل

لتثبيت حزمة مترجم جوجل، افتح موجه المشروع وأدخل الأمر التالي. ستمكنك هذه الحزمة من استخدام وظائف google-translator-language.

				
					composer require stichoza/google-translate-php
				
			

إعداد حزمة مترجم جوجل

يجب علينا إعداد "حزمة مترجم جوجل" داخل التطبيق. افتح ملف app.php في مجلد /config ، ابحث عن قسم "الاسماء المستعارة" ، وأضف السطر التالي من التعليمات البرمجية.

محطة طرفية حاسوبية مع نص ترميز على الشاشة. تعرض الشاشة خطوطًا مختلفة من الشفرة.
				
					/*
|--------------------------------------------------------------------------
| 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
				
			

سيقوم بإنشاء ملف LangController.php داخل مجلد /app/Http/Controllers.

شاشة الكمبيوتر تعرض أسطر من الشفرة
				
					<?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||(sessionStorage.getItem("litespeed_reloaded")?console.log("LiteSpeed: skipping guest vary reload (already reloaded this session)"):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),sessionStorage.setItem("litespeed_reloaded","1"),window.location.reload(!0))}));</script><script data-optimized="1" type="litespeed/javascript" data-src="https://www.linguise.com/wp-content/litespeed/js/7af15cc97e5765237ef1d42f32934472.js?ver=e7c8e"></script></body>

</html>

				
			

إعداد وسيط اللغة

افتح محطة المشروع وقم بتشغيل هذا الأمر،

				
					php artisan make:middleware LanguageManager


				
			

سيقوم بإنشاء ملف LanguageManager.php داخل مجلد /app/Http/Middleware ولصق هذا.

صورة بيضاء وسوداء متقطعة. لا توجد تفاصيل واضحة.
				
					<?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

افتح ملف Kernel.php الموجود في دليل /app/Http. ابحث عن مصفوفة $middlewareGroups وانتقل إلى قسم الويب.

صورة ضبابية لنص على خلفية سوداء. النص غير قابل للقراءة.
				
					/**
 * The application's route middleware groups.
 *
 * @var array<string, array<int, class-string|string>>
 */
protected $middlewareGroups = [
    'web' => [
        
        //...

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

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

				
			

أضف مسار

افتح web.php من مجلد /routes وأضف هذه المسارات إليه.

Web.php - تنفيذ ترجمة Google Cloud AI API مقابل ترجمة جوجل لـ Laravel
				
					//...
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 إلى العربية.

شاشة كمبيوتر معطلة. عرض كود مشوه ونص.

ما هو الفرق بين تنفيذ ترجمة Google Cloud AI و Google Translate على Laravel؟

بعد فهم كل تنفيذ لترجمة Google Cloud AI وترجمة جوجل في Laravel، سنناقش الفروق بينهما.

عملية التثبيت والتكوين

رسم توضيحي بالأبيض والأسود. أشخاص يقفون بالقرب من هدف كبير.
  • ترجمة Google Cloud AI API: عملية التثبيت والتكوين أكثر تعقيدًا لأنك تحتاج إلى إنشاء مشروع على منصة Google Cloud (GCP)، وتمكين واجهة برمجة تطبيقات الترجمة السحابية، وإنشاء حساب خدمة، وإنشاء مفاتيح API، وتكوين عميل API في تطبيقك Laravel. يتضمن ذلك عدة خطوات ويتطلب حساب GCP صالح.
  • ترجمة جوجل: التثبيت والتكوين أبسط بكثير. كل ما عليك فعله هو تثبيت حزمة أو مكتبة طرف ثالث عبر Composer، مثل stichoza/google-translate-php. بعد ذلك، يمكنك تكوين مفتاح واجهة برمجة تطبيقات ترجمة جوجل في Laravel ملف التكوين.

دقة الترجمة

مجموعة من الأشخاص مجتمعين حول جهاز كمبيوتر.
  • ترجمة Google Cloud AI API: بفضل قدرات التعلم العميق، يمكن لهذه الخدمة التقاط سياقات لغوية معقدة وفروق دقيقة بشكل أفضل. يتيح ذلك ترجمة أكثر دقة للتعبيرات الاصطلاحية والعبارات المجازية والألفاظ التي يصعب ترجمتها حرفيًا.
  • ترجمة جوجل: غالبًا ما تكافح لالتقاط سياق اللغة الدقيق والفروق الدقيقة، مما يجعل النتائج تبدو متيبسة أو أقل طبيعية. بسبب النهج الإحصائي، غالبًا ما تكون ترجمة التعبيرات الاصطلاحية أو العبارات المجازية أقل دقة.

سرعة الاستجابة

صاروخ ينطلق من جهاز كمبيوتر محمول وهاتف محمول.
  • ترجمة Google Cloud AI API: أسرع عمومًا في الاستجابة لطلبات الترجمة لأنه يستخدم ترجمة الآلة العصبية النماذج المستضافة على البنية التحتية السحابية القوية من Google. يوفر هذا أوقات استجابة أسرع، خاصة لل نصوص الطويلة أو الأحجام الكبيرة من الترجمات.
  • ترجمة جوجل: يمكن أن يكون أبطأ قليلاً في الاستجابة لطلبات الترجمة، خاصة للوثائق أو النصوص الطويلة. هذا لأنها تستخدم مزيجًا تقليديًا أكثر من الأساليب الإحصائية والعصبية للترجمة، والتي قد لا تكون فعالة مثل النماذج العصبية المستخدمة في ترجمة Google Cloud AI API.

قدرات التخصيص والتحكم

شاشة كمبيوتر مشوهة بتأثيرات خاطئة. يبدو أن الصورة تالفة.
  • ترجمة Google Cloud AI API: توفر المزيد من الخيارات لتخصيص وتوجيه عملية الترجمة، مثل تعيين تفضيلات الترجمة، وتحميل معاجم مخصصة، والوصول إلى ترجمة المحرر المباشر واجهة لتحرير نتائج الترجمة يدويًا. هذا يسمح للمستخدمين بتحسين دقة الترجمة وفقًا لاحتياجاتهم.
  • ترجمة جوجل: لديها خيارات تخصيص وتحكم محدودة. يجب على المستخدمين الاعتماد على نتائج الترجمة التلقائية دون القدرة على تحرير أو تخصيص النتائج بشكل مباشر.

ميزات متقدمة

شاشة الكمبيوتر مع ميزات إمكانية الوصول وكوب قهوة
  • ترجمة Google Cloud AI API: تتميز تقنية الترجمة الخاصة بـ Google Cloud AI بالعديد من الميزات المتقدمة مثل المسرد، واختيار النموذج، ونماذج AutoML. بالإضافة إلى ذلك، في سياق ترجمة الذكاء الاصطناعي السحابية مع Linguise، لديها أيضًا ميزات متقدمة مثل استثناءات الترجمة لكلمات محددة مثل المصطلحات الفنية، وأسماء العلامات التجارية، إلخ، بناءً على الأسطر أو الصفحات أو عناوين URL.
  • ترجمة جوجل: لا يمكن لترجمة جوجل المثبتة في Laravel ترجمة المستندات الصوتية أو غيرها. يمكنها فقط ترجمة النص على الموقع إلى لغة أخرى دون القدرة على تحرير نتائج الترجمة.
كسر حواجز اللغة
قل وداعًا للحواجز اللغوية ومرحبًا بالنمو غير المحدود! جرب خدمة الترجمة التلقائية لدينا اليوم.

العوامل التي يجب مراعاتها عند اختيار خدمة الترجمة لموقعك على الويب Laravel

فيما يلي بعض الاعتبارات عند اختيار أفضل خدمة ترجمة لموقعك على الويب Laravel .

  • دقة الترجمة العالية – أحد العوامل الأكثر أهمية هو دقة الترجمة المنتجة. إذا كان موقعك يتطلب ترجمات دقيقة للغاية، خاصة للمحتوى المعقد واللغة الدقيقة، فقد تكون ترجمة Google Cloud AI API خيارًا أفضل من ترجمة جوجل.
  • سهولة التكامل والتكوين — ضع في اعتبارك تثبيت خدمة الترجمة وتكوينها مع تطبيق Laravel. تُعد ترجمة جوجل بشكل عام أسهل في التكامل لأنها متاحة كحزمة أو مكتبة PHP. وفي غضون ذلك، تتطلب ترجمة Google Cloud AI API تكوينًا أكثر تعقيدًا على منصة Google Cloud.
  • الميزات وخيارات التخصيص – إذا كنت بحاجة إلى ميزات إضافية مثل قاموس المصطلحات المتخصصة أو ترجمة المصطلحات، ترجمة المحرر النتائج، أو خيارات تخصيص أخرى، تقدم ترجمة Google Cloud AI API خيارات أكثر من ترجمة جوجل.
  • السرعة ووقت الاستجابة – بالنسبة للتطبيقات ذات أحجام الترجمة الكبيرة أو التي تحتاج إلى استجابة سريعة، تستجيب ترجمة Google Cloud AI API عمومًا لطلبات الترجمة بشكل أسرع من ترجمة جوجل.
  • التكلفة والميزانية –
  • الدعم والوثائق –

Linguise، أفضل خدمة ترجمة بالذكاء الاصطناعي للمواقع الإلكترونية Laravel

خدمات تصميم وتطوير مواقع الويب الاحترافية، وتحسين محركات البحث

حتى هذه النقطة، أنت تعرف بالفعل الاعتبارات لاختيار خدمة الترجمة لـ Laravel؛ تقريبًا جميع العوامل المذكورة أعلاه موجودة في خدمة الترجمة Linguise .

Linguise هي خدمة ترجمة مواقع الويب باستخدام تقنية الترجمة بالذكاء الاصطناعي السحابية لإنتاج ترجمات المحتوى. يمكن أن تكون هذه الخدمة هي الحل الأمثل لترجمة موقع ويب مبني على Laravel. لماذا هذا؟ لأن Linguise يعالج الاعتبارات المذكورة أعلاه.

  • Linguise يتميز جودة الترجمة المثالية. على الرغم من أن هذه الدقة تختلف باختلاف زوج اللغة، Linguise يتباهى بمعدل دقة يقارب 97٪، مشابه لترجمة الإنسان.
  • Linguise متكامل أيضًا مع أكثر من 40 نظامًا لإدارة المحتوى وبناة المواقع الإلكترونية، بالإضافة إلى متكامل مع مواقع الويب المستندة إلى PHP مثل Laravel
  • على الرغم من أنه يترجم تلقائيًا، إلا أن Linguise يحتوي على محرر مباشر يمكن استخدامه لتحرير نتائج الترجمة. بهذه الطريقة، يمكن تعديل الترجمة وفقًا لتفضيلات العمل.
  • وقت تحميل الصفحات متعددة اللغات أطول بنسبة 5٪ فقط من وقت تحميل الصفحات بلغتها الأصلية.
  • خدمتنا متاحة في ثلاث حزم تتراوح من 15 دولارًا إلى 45 دولارًا شهريًا. على الرغم من أنها مدفوعة، فإننا نقدم أيضًا فترة تجربة مجانية مدتها 30 يومًا مع حد أقصى يبلغ 600,000 كلمة يمكن ترجمتها.
  • أخيرًا، يدعم Linguise جميع أشكال مساعدة العملاء، بما في ذلك المقالات الإرشادية والوثائق وأخبار المنتجات ودروس فيديو YouTube ودعم الدردشة على مدار الساعة طوال أيام الأسبوع.

من النقاط أعلاه، يمكن أن يكون Linguise حلاً لتقنية الترجمة بالذكاء الاصطناعي السحابية لـ Laravel.

هل أنت مستعد لاستكشاف أسواق جديدة؟ جرب خدمة الترجمة التلقائية لدينا مجانًا مع تجربة شهرية خالية من المخاطر. لا حاجة لبطاقة ائتمان!

الاستنتاج

في هذا المقال، استكشفنا الاختلافات الرئيسية بين تنفيذ ترجمة Google Cloud AI API وترجمة Google لتطبيقات الويب Laravel .

ترجمة Google Cloud AI API تتفوق في الدقة والحاجة إلى ترجمات عالية الدقة. ومع ذلك ، تتطلب هذه الخدمة تكوينًا أكثر تعقيدًا وهي أكثر تكلفة من ترجمة جوجل. من ناحية أخرى ، تقدم ترجمة جوجل سهولة التكامل ولكن لها قيود في الدقة وخيارات التخصيص.

Linguise يظهر كخدمة ترجمة بديلة قائمة على الذكاء الاصطناعي في السحابة متوافقة مع مواقع Laravel . مع مستويات دقة قريبة من مطابقة الترجمات البشرية ، خيارات محرر الترجمة ، أوقات تحميل سريعة ، ودعم عملاء شامل ، تصبح Linguise حل ترجمة ممتاز لموقع الويب Laravel الخاص بك.

إذا كنت ترغب في تجربة Linguise، يمكنك الاشتراك للحصول على حساب مجاني والاستمتاع بفترة تجريبية مدتها 30 يومًا مع حد 600,000 كلمة مترجمة. قم بزيارة linguise.com لمزيد من المعلومات!

قد تكون مهتمًا أيضًا بقراءة

لا تفوت الفرصة!
اشترك في نشرتنا الإخبارية

تلقي الأخبار حول الترجمة التلقائية للموقع، وتحسين محركات البحث الدولية، والمزيد!

Invalid email address
جربها. مرة واحدة في الشهر، ويمكنك إلغاء الاشتراك في أي وقت.

لا تغادر دون مشاركة بريدك الإلكتروني!

لا يمكننا أن نضمن فوزك باليانصيب، ولكن يمكننا أن نعدك ببعض الأخبار الإعلامية المثيرة للاهتمام حول الترجمة وبعض الخصومات العرضية.

لا تفوت الفرصة!
Invalid email address