تاریخ انتشار: 13 نوامبر 2024، آخرین به روز رسانی: 20 می 2025
توضیح دهنده | وب | برنامه های افزودنی | وضعیت کروم | قصد |
---|---|---|---|---|
MDN | مشاهده کنید | قصد حمل |
از Translator API در کروم برای ترجمه متن با مدل های هوش مصنوعی ارائه شده در مرورگر استفاده کنید.
وب سایت شما ممکن است از قبل محتوای وب سایت را به چندین زبان ارائه دهد تا برای مخاطبان جهانی قابل دسترسی باشد. با استفاده از Translator API، کاربران می توانند به زبان اول خود مشارکت کنند. برای مثال، کاربران میتوانند در چتهای پشتیبانی به زبان اول خود شرکت کنند و سایت شما میتواند قبل از خروج از دستگاه کاربر، آن را به زبانی که نمایندگان پشتیبانی شما استفاده میکنند ترجمه کند. این یک تجربه روان، سریع و فراگیر برای همه کاربران ایجاد می کند.
ترجمه محتوا در وب معمولاً نیاز به استفاده از سرویس ابری دارد. ابتدا محتوای مبدأ روی سرور آپلود میشود که ترجمه را به زبان مقصد اجرا میکند، سپس متن به دست آمده دانلود شده و به کاربر بازگردانده میشود. با اجرای ترجمه بر روی مشتری، در زمان مورد نیاز سفرهای سرور و هزینه میزبانی سرویس ترجمه صرفه جویی می کنید.
شروع کنید
Translator API از Chrome 138 stabil در دسترس است. ابتدا تشخیص ویژگی را اجرا کنید تا ببینید آیا مرورگر از Translator API پشتیبانی می کند یا خیر.
if ('Translator' in self) {
// The Translator API is supported.
}
در حالی که همیشه زبان مقصد ترجمه را می دانید، ممکن است همیشه زبان مبدأ را ندانید. در چنین مواردی، می توانید از زبان شناساگر API استفاده کنید.
دانلود مدل
Translator API از مدلی استفاده می کند که برای تولید خلاصه هایی با کیفیت بالا آموزش داده شده است. API در Chrome تعبیه شده است و اولین باری که یک وب سایت از این 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 لیست شده را برای تعیین اندازه مدل باز کنید.
برای تعیین اینکه آیا مدل آماده استفاده است، تابع Translator.availability()
ناهمزمان را فراخوانی کنید. اگر پاسخ به availability()
downloadable
است، به پیشرفت دانلود گوش دهید تا کاربر را از پیشرفت آن مطلع کنید، زیرا ممکن است زمان بر باشد.
const availability = await Translator.availability();
پشتیبانی از جفت زبان را بررسی کنید
ترجمه با بستههای زبان مدیریت میشود که در صورت تقاضا دانلود میشوند. یک بسته زبان مانند یک فرهنگ لغت برای یک زبان خاص است.
-
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
متوقف می شود و وعده ready
رد می شود.
مترجم را ایجاد و اجرا کنید
برای ایجاد یک مترجم، فعال شدن کاربر را بررسی کنید و تابع create()
ناهمزمان را فراخوانی کنید. تابع create()
Translator به یک پارامتر گزینه با دو فیلد نیاز دارد، یکی برای 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 مشاهده کنید.
خط مشی مجوز، iframes، و کارگران وب
بهطور پیشفرض، Translator API فقط برای پنجرههای سطح بالا و iframeهای همان مبدا در دسترس است. دسترسی به API را می توان با استفاده از ویژگی Permission Policy allow=""
به iframe های متقاطع واگذار کرد:
<!--
The hosting site at 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>
به دلیل پیچیدگی ایجاد یک سند مسئول برای هر کارگر به منظور بررسی وضعیت خط مشی مجوزها، API مترجم در حال حاضر در Web Workers در دسترس نیست.
تلاش برای استانداردسازی
ما در حال کار برای استانداردسازی API Translator برای سازگاری بین مرورگرها هستیم.
Translator API و Language Detector API توسط گروه کاری W3C WebML پذیرفته شده است. ما از موزیلا و WebKit برای موقعیت های استاندارد آنها خواسته ایم.
بازخورد را به اشتراک بگذارید
ما می خواهیم ببینیم شما چه چیزی می سازید. وب سایت ها و برنامه های کاربردی وب خود را با ما در X ، YouTube و LinkedIn به اشتراک بگذارید.
برای بازخورد در مورد اجرای Chrome، یک گزارش اشکال یا یک درخواست ویژگی ارسال کنید.