ترجمه با هوش مصنوعی داخلی

منتشر شده: ۱۳ نوامبر ۲۰۲۴، آخرین به‌روزرسانی: ۲۰ مه ۲۰۲۵

Browser Support

  • کروم: ۱۳۸.
  • لبه: پشتیبانی نمی‌شود.
  • فایرفاکس: پشتیبانی نمی‌شود.
  • سافاری: پشتیبانی نمی‌شود.

از رابط برنامه‌نویسی کاربردی مترجم در کروم برای ترجمه متن با مدل‌های هوش مصنوعی ارائه شده در مرورگر استفاده کنید.

وب‌سایت شما ممکن است از قبل محتوای وب‌سایت را به چندین زبان ارائه دهد. با استفاده از رابط برنامه‌نویسی کاربردی مترجم، کاربران می‌توانند به زبان اول خود بنویسند. به عنوان مثال، کاربران می‌توانند در چت‌های پشتیبانی به زبان اول خود شرکت کنند و سایت شما می‌تواند پیام آنها را قبل از اینکه از دستگاه کاربر خارج شود، به زبان اول نمایندگان پشتیبانی شما ترجمه کند. این یک تجربه روان، سریع و فراگیر برای همه کاربران ایجاد می‌کند.

ترجمه محتوای وب معمولاً نیاز به استفاده از یک سرویس ابری دارد. ابتدا، محتوای منبع در یک سرور آپلود می‌شود که ترجمه را به زبان مقصد اجرا می‌کند، سپس متن حاصل دانلود شده و به کاربر بازگردانده می‌شود. هنگامی که محتوا زودگذر است و نیازی به ذخیره در پایگاه داده ندارد، ترجمه سمت کلاینت در مقایسه با یک سرویس ترجمه میزبانی شده، در زمان و هزینه صرفه‌جویی می‌کند.

شروع کنید

برای بررسی اینکه آیا مرورگر از Translator API پشتیبانی می‌کند یا خیر، تشخیص ویژگی را اجرا کنید.

if ('Translator' in self) {
  // The Translator API is supported.
}

در حالی که شما همیشه زبان مقصد را برای ترجمه‌ها می‌دانید، ممکن است همیشه زبان مبدا را ندانید. در چنین مواردی، می‌توانید از API آشکارساز زبان استفاده کنید.

دانلود مدل

رابط برنامه‌نویسی کاربردی مترجم (Translate API) از یک مدل متخصص آموزش‌دیده برای تولید ترجمه‌های با کیفیت بالا استفاده می‌کند. این رابط برنامه‌نویسی کاربردی در کروم تعبیه شده است و این مدل اولین باری که یک وب‌سایت از این رابط برنامه‌نویسی کاربردی استفاده می‌کند، دانلود می‌شود.

برای تعیین اینکه آیا مدل آماده استفاده است، تابع Translator.availability() ناهمزمان را فراخوانی کنید. اگر پاسخ به availability() downloadable باشد، به پیشرفت دانلود گوش دهید تا کاربر را از پیشرفت آن مطلع کنید، زیرا ممکن است زمان ببرد.

پشتیبانی از جفت زبان را بررسی کنید

ترجمه با بسته‌های زبانی مدیریت می‌شود که بنا به تقاضا دانلود می‌شوند. یک بسته زبانی مانند یک فرهنگ لغت برای یک زبان معین است.

  • sourceLanguage : زبان فعلی متن.
  • targetLanguage : زبان نهایی که متن باید به آن ترجمه شود.

از کدهای کوتاه زبان BCP 47 به عنوان رشته استفاده کنید. برای مثال، 'es' برای اسپانیایی یا 'fr' برای فرانسوی.

const translatorCapabilities = await Translator.availability({
  sourceLanguage: 'es',
  targetLanguage: 'fr',
});
// 'available'

با استفاده از رویداد downloadprogress به پیشرفت دانلود مدل گوش دهید:

const translator = await Translator.create({
  sourceLanguage: 'es',
  targetLanguage: 'fr',
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

اگر دانلود با شکست مواجه شود، رویدادهای downloadprogress متوقف می‌شوند و promise ready رد می‌شود.

ایجاد و اجرای مترجم

برای ایجاد یک مترجم، فعال‌سازی کاربر را بررسی کنید و تابع create() به صورت ناهمزمان فراخوانی کنید. تابع create() مترجم به یک پارامتر options با دو فیلد نیاز دارد، یکی برای sourceLanguage و دیگری برای targetLanguage .

// Create a translator that translates from English to French.
const translator = await Translator.create({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

زمانی که یک مترجم داشتید، تابع translate() ناهمگام را فراخوانی کنید.

await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"

از طرف دیگر، اگر نیاز به کار با متن‌های طولانی‌تر دارید، می‌توانید از نسخه استریمینگ API نیز استفاده کنید و تابع translateStreaming() را فراخوانی کنید.

const stream = translator.translateStreaming(longText);
for await (const chunk of stream) {
  console.log(chunk);
}

ترجمه‌های ترتیبی

ترجمه‌ها به صورت متوالی پردازش می‌شوند. اگر حجم زیادی از متن را برای ترجمه ارسال کنید، ترجمه‌های بعدی تا زمان تکمیل ترجمه‌های قبلی مسدود می‌شوند.

برای بهترین پاسخ به درخواست‌هایتان، آنها را به هم تقسیم کنید و یک رابط بارگذاری ، مانند یک اسپینر، اضافه کنید تا نشان دهد که ترجمه در حال انجام است.

نسخه آزمایشی

می‌توانید رابط برنامه‌نویسی مترجم (Translate API) را که در ترکیب با رابط برنامه‌نویسی تشخیص زبان (Language Detector API) استفاده می‌شود، در بخش «مترجم و رابط برنامه‌نویسی تشخیص زبان» (Translate and Language Detector API) مشاهده کنید.

سیاست دسترسی، iframeها و Web Workerها

به طور پیش‌فرض، API مترجم فقط برای پنجره‌های سطح بالا و iframe های هم‌مبنا در دسترس است. دسترسی به API را می‌توان با استفاده از ویژگی allow="" سیاست مجوزها به iframe های بین‌مبنا واگذار کرد:

<!--
  The host site https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Translator API by
  setting the `allow="translator"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="translator"></iframe>

به دلیل پیچیدگی ایجاد یک سند مسئول برای هر worker، به منظور بررسی وضعیت سیاست مجوزها، رابط برنامه‌نویسی کاربردی مترجم (Translator API) در Web Workerها در دسترس نیست.

بازخورد را به اشتراک بگذارید

ما می‌خواهیم ببینیم شما چه چیزی می‌سازید. وب‌سایت‌ها و برنامه‌های وب خود را در X ، YouTube و LinkedIn با ما به اشتراک بگذارید.

برای بازخورد در مورد پیاده‌سازی کروم، یک گزارش اشکال یا درخواست ویژگی ثبت کنید.