Yerleşik yapay zeka ile çeviri

Yayınlanma tarihi: 12 Kasım 2024

Yerel yapay zeka modellerini kullanarak tarayıcıdaki metni çevirmek için Chrome'da Translator API'yi kullanın.

Web siteniz, dünya genelindeki kitlelere erişilebilir olması için web sitesi içeriğini zaten birden fazla dilde sunuyor olabilir. Kullanıcılar, Translator API ile ana dillerinde katkıda bulunabilir. Örneğin, kullanıcılar destek sohbetlerine kendi ana dillerinde katılabilir ve siteniz, kullanıcının cihazından çıkmadan önce bu sohbeti destek temsilcilerinizin kullandığı dile çevirebilir. Bu sayede tüm kullanıcılar sorunsuz, hızlı ve kapsayıcı bir deneyim yaşar.

Web'deki içeriğin çevrilmesi genellikle bir bulut hizmetinin kullanılmasını gerektiriyordu. Öncelikle kaynak içerik, çeviriyi hedef dile çalıştıran bir sunucuya yüklenir. Ardından, ortaya çıkan metin indirilir ve kullanıcıya döndürülür. Çeviriyi istemcide çalıştırarak sunucu gezilerinin gerektirdiği zamandan ve çeviri hizmetinin barındırma maliyetinden tasarruf edersiniz.

Kullanılabilirlik

Seçilen hedef dil her zaman bilinse de bazı durumlarda (ör. kullanıcı tarafından oluşturulan içerik) kaynak dil bilinmeyebilir. Bu tür durumlarda Translator API teklifi hem Translator API'yi hem de orijinal deneme sürümünde de kullanılabilen Language Detector API'yi içerir. Bu API'leri birlikte kullanmak için her iki kaynak denemesine de kaydolun.

Özellik algılama

Translator API'nin desteklenip desteklenmediğini belirlemek için aşağıdaki özellik algılama snippet'ini çalıştırın.

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

Dil çifti desteğini kontrol etme

Çeviri, isteğe bağlı olarak indirilen dil paketleriyle yönetilir. Dil paketi, belirli bir dile ait bir sözlük gibidir. Bu paketler, bir dil çiftinin desteklenip desteklenmediğini belirlemenize olanak tanıyan asenkron canTranslate() işleviyle eşlenir.

canTranslate() işlevi için iki alanı olan bir options parametresi gerekir:

  • sourceLanguage: Metnin geçerli dili.
  • targetLanguage: Metnin çevrileceği son dil.

BCP 47 dil kısa kodlarını dize olarak kullanın. Örneğin, İspanyolca için 'es' veya Fransızca için 'fr'.

await translation.canTranslate({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});
// 'readily'

canTranslate() işlevi aşağıdaki sonuçlardan herhangi birini döndürebilir:

  • no: Bu tarayıcı istendiği şekilde çeviri yapamaz.
  • readily: Tarayıcı, istenen şekilde çeviri yapabilir.
  • after-download: Tarayıcı, çeviriyi ancak ilgili modeli veya dil paketlerini indirdikten sonra gerçekleştirebilir.

downloadprogress etkinliğini kullanarak indirme işleminin ilerleme durumunu dinleyebilirsiniz:

translator.ondownloadprogress = progressEvent => {
  updateDownloadProgressBar(progressEvent.loaded, progressEvent.total);
};

İndirme başarısız olursa downloadprogress etkinlikleri yayınlanmayı durdurur ve ready sözlüğü reddedilir.

Çevirmeni oluşturma ve çalıştırma

Çevirmen oluşturmak için translation.createTranslator() işlevini ayarlayın. canTranslate() gibi, biri sourceLanguage, diğeri targetLanguage için olmak üzere iki alan içeren bir seçenekler parametresi gerektirir.

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

Çevirmeniniz hazır olduğunda metninizi çevirmek için eşzamansız translate() işlevini çağırın.

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

Kaynak denemesinde sınırlamalar

Kaynak denemesi sırasında aşağıdaki sınırlamalar geçerlidir.

Desteklenen dil çiftleri

Şu anda çeviri için en fazla üç dil paketi indirilebilir. Kullanıcı gizliliği konusunda yüksek standartları korurken gelecekteki sürümlerde desteklenen dillerin kapsamını genişletmeye kararlıyız. İhtiyacınız olan dil çiftinin desteklenip desteklenmediğini canTranslate() işleviyle onaylayabilirsiniz.

Daha seyrek kullanılan belirli dil çiftleri parmak izi için kullanılabilir. Örneğin, İngilizce ve İspanyolca arasında çeviri yapmak, Galce ve Katalanca gibi daha az yaygın diller arasında çeviri yapmaktan daha yaygındır. Daha az yaygın bir dil çifti, kullanıcı tanımlama için bir veri noktası olarak kabul edilebilir.

Kaynak denemesi sırasında, kullanıcı gizliliğini korumak için çevrilebilecek dil çiftlerini sınırlıyoruz. Dil çiftleri aşağıdaki ölçütleri karşılamalıdır:

  • Hem kaynak hem de hedef dil, Chrome'da tercih edilen diller olarak ayarlanır.
  • Alternatif olarak, dillerden biri Chrome'da tercih edilen dil olarak ayarlanmış, diğeri ise aşağıdaki popüler diller arasındadır:
    • İngilizce (en)
    • Çince (Mandarin) (zh; basitleştirilmiş) veya Tayvan Mandarini (zh-Hant; geleneksel)
    • Japonca (ja)
    • Portekizce (pt)
    • Rusça (ru)
    • İspanyolca (es)
    • Türkçe (tr)
    • Hintçe (hi)
    • Vietnamca (vi)
    • Bengalce (bn)

Yerel test için dil kısıtlamalarını atlama

Yerel prototipleme için Chrome'u --disable-features=TranslationAPIAcceptLanguagesCheck komut satırı seçeneğiyle çalıştırarak bu kontrolleri atlayabilirsiniz. Alternatif olarak, chrome://flags/#translation-api öğesini Dil paketi sınırı olmadan etkinleştir olarak ayarlayın.

Dil paketlerini manuel olarak yüklemek ve kaldırmak için chrome://on-device-translation-internals/ adresini ziyaret edin.

Sıralı çeviriler

Çeviriler sırayla işlenir. Çevrilmesi için büyük miktarda metin gönderirseniz önceki çeviriler tamamlanana kadar sonraki çeviriler engellenir.

Çeviri isteklerinizin en iyi şekilde yanıtlanması için bunları gruplandırın ve çevirinin devam ettiğini belirtmek üzere döner simge gibi bir yükleme arayüzü gösterin.

Web işçisinin kullanılabilirliği

Kaynak denemesi sırasında Translator API yalnızca ana mesaj dizisinden desteklenir. API yaygın olarak kullanıma sunulduğunda web işçilerinde bu özelliği desteklemeyi planlıyoruz.

Demo

Çevirmen ve Dil Dedektörü API oyun alanında Language Detector API ile birlikte kullanılan Translate API'yi görebilirsiniz.

Standartlaştırma çalışması

Tarayıcılar arası uyumluluğu sağlamak için Translator API'yi standartlaştırmaya çalışıyoruz.

API önerimiz topluluktan destek aldı ve daha fazla tartışma için W3C Web Incubator Topluluğu'na taşındı. Chrome ekibi, W3C Teknik Mimari Grubu'ndan geri bildirim istemiş ve Mozilla ve WebKit'ten standart pozisyonlarını sormuştur.

Katılma ve geri bildirim paylaşma

Kaynak denemesine katılarak Translator API'yi hemen test etmeye başlayın ve geri bildirimlerinizi paylaşın. Geri bildiriminiz, bu API'nin ve tüm yerleşik yapay zeka API'lerinin gelecekteki sürümlerini nasıl oluşturacağımızı ve uygulayacağımızı doğrudan etkileyebilir.