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

تاریخ انتشار: 13 نوامبر 2024، آخرین به روز رسانی: 20 می 2025

توضیح دهنده وب برنامه های افزودنی وضعیت کروم قصد
MDN کروم 138 کروم 138 مشاهده کنید قصد حمل

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

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

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

شروع کنید

Translator API از Chrome 138 stabil در دسترس است. ابتدا تشخیص ویژگی را اجرا کنید تا ببینید آیا مرورگر از Translator API پشتیبانی می کند یا خیر.

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

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

الزامات سخت افزاری را بررسی کنید

الزامات زیر برای برنامه‌نویسان و کاربرانی که ویژگی‌ها را با استفاده از این APIها در Chrome اجرا می‌کنند، وجود دارد. سایر مرورگرها ممکن است شرایط عملیاتی متفاوتی داشته باشند.

زبان شناساگر و API های مترجم در کروم روی دسکتاپ کار می کنند. این API ها روی دستگاه های تلفن همراه کار نمی کنند. Prompt API، Summarizer API، Writer API، و Rewriter API در Chrome کار می‌کنند که شرایط زیر رعایت شود:

  • سیستم عامل : ویندوز 10 یا 11؛ macOS 13+ (ونتورا و به بعد)؛ یا لینوکس Chrome for Android، iOS، و ChromeOS هنوز توسط APIهایی که از Gemini Nano استفاده می‌کنند پشتیبانی نمی‌شوند.
  • فضای ذخیره سازی : حداقل 22 گیگابایت فضای خالی در حجمی که نمایه Chrome شما را در بر می گیرد.
  • GPU : به طور دقیق بیش از 4 گیگابایت VRAM.
  • شبکه : داده های نامحدود یا اتصال نامحدود.

اندازه دقیق Gemini Nano ممکن است با به‌روزرسانی مدل توسط مرورگر متفاوت باشد. برای تعیین اندازه فعلی، از chrome://on-device-internals دیدن کنید و به وضعیت مدل بروید. مسیر File لیست شده را برای تعیین اندازه مدل باز کنید.

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

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

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

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

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

availability() availability یک وعده با مقادیر زیر برمی گرداند:

  • "unavailable" : این پیاده سازی از ترجمه یا تشخیص زبان زبان های داده شده پشتیبانی نمی کند.
  • "downloadable" : پیاده سازی از ترجمه یا تشخیص زبان زبان های داده شده پشتیبانی می کند، اما برای ادامه دانلود نیاز است. دانلود ممکن است مدل مرورگر باشد.
  • "downloading" : پیاده سازی از ترجمه یا تشخیص زبان زبان های داده شده پشتیبانی می کند. مرورگر در حال تکمیل دانلود مداوم است، به عنوان بخشی از ایجاد شی مرتبط.
  • "available" : پیاده سازی از ترجمه یا تشخیص زبان زبان های داده شده پشتیبانی می کند و هر بارگیری مورد نیاز قبلاً کامل شده است.

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

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

اگر دانلود ناموفق باشد، رویدادهای downloadprogress متوقف می شود و وعده ready رد می شود.

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

برای ایجاد یک مترجم، تابع create() ناهمزمان را فراخوانی کنید. به یک پارامتر گزینه با دو فیلد نیاز دارد، یکی برای 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);
}

ترجمه های متوالی

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

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

نسخه ی نمایشی

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

تلاش برای استانداردسازی

ما در حال کار برای استانداردسازی API مترجم هستیم تا از سازگاری بین مرورگرها اطمینان حاصل کنیم.

پیشنهاد API ما پشتیبانی جامعه را دریافت کرد و برای بحث بیشتر به گروه انجمن انکوباتور وب W3C منتقل شد. تیم کروم از گروه معماری فنی W3C بازخورد درخواست کرد و از موزیلا و WebKit برای موقعیت‌های استانداردشان درخواست کرد.

شما می توانید با پیوستن به گروه انجمن انکوباتور وب در تلاش استانداردها شرکت کنید.

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

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

برای بازخورد در مورد اجرای Chrome، یک گزارش اشکال یا یک درخواست ویژگی ارسال کنید.