← Makalelere Geri Dön
Web 2026-04-17 · rev. 2026-05-10 ProtoMedia

Onlarca dili konuşan bir site, çevirmensiz

Otomatik olarak İtalyancadan çevrildi · orijinalini oku

Bu sayfaların altında çalışan çeviri sistemini nasıl oluşturduğumuz: İhtiyaç duyulduğunda yapay zeka, her zaman önbellek, algılanan bekleme yok.

Geleneksel i18n Sorunu

Yıllarca bir web sitesinin uluslararasılaştırılması, küçük bir iş akışı macerasıydı: .po dosyaları, insan çevirmenler, unutulan anahtarlar, "Almanca hala eksik" olduğu için geciken dağıtımlar. Bir dil eklemek zaman ve para kazandırıyordu; on dil eklemek ise herhangi bir küçük şirket için söz konusu bile değildi.

Son nesil LLM'ler ile otomatik çeviri kalitesi, bir kurumsal site için (edebiyat için değil) yeterli bir noktaya ulaştı. Soru artık "otomatik olarak çevirebilir miyiz?" değil, "kullanıcı deneyimini bozmadan nasıl entegre ederiz?"

Mimari, Kısaca

Site statik olarak İtalyanca olarak sunulmaktadır. Bir kullanıcı başka bir dil seçtiğinde, üç MongoDB koleksiyonu üzerinde çalışan küçük bir motor devreye girer:

  • i18n_base: kaynak metinler, seçilen dilde (şu anda İtalyanca), her biri kendi dil bildirimine, web sitesinde nerede ve neden göründüğünün açıklamasına (çeviri kalitesi için çok önemli), tonuna ve karakter sınırına sahip. Bu açıklama, LLM'ye gönderilen istemin bir parçası haline gelir ve böylece LLM bir düğme mi yoksa bir paragraf mı çevirdiğini bilir.
  • i18n_human: bazı sayfalar için LLM çıktısı yerine editoryal kalite istediğimizde, elle düzenlenmiş çeviriler. Otomatik önbelleğe göre önceliği vardır ve kaynak metin değiştiğinde otomatik olarak "işaretlenir".
  • i18n_cache: zaten oluşturulmuş çeviriler, (alan, dil) olarak indekslenmiş. Her giriş, oluşturulma anındaki temel metnin zaman damgasını saklar.
  • articoli_i18n: bu makale gibi daha uzun içerikler için aynı mantık uygulanır.

Yeni bir dile ilk erişimde sistem, LLM'den yalnızca gerçekten eksik alanları ister, yanıtı önbelleğe kaydeder ve tarayıcıya döndürür. Sonraki ziyaretlerde aynı dil, daha fazla AI çağrısı olmadan anında gelir.

İşe Yarayacak Geçersizleştirme

Önbellek, düzenli bir yanılgıdır: "Benim gerçeğim bu" der, ta ki biri onu çürütene kadar. Burada çürütme mekanizması basittir: her önbelleğe alınmış çeviri, onu oluşturan temel metnin zaman damgasını depolar. İtalyanca metni değiştirdiğinizde ve updated_at değerini güncellediğinizde, o alanın tüm dillerdeki tüm çevirileri otomatik olarak eski hale gelir ve gerektiğinde yeniden oluşturulur. Manuel zincirleme reaksiyon yok, boşaltılacak önbellek yok.

Beklemeyen Kullanıcı

En ilginç kısım çeviri değil - nasıl gösterildiği. Dil değiştirildiğinde, tarayıcı her bir güncelleme bloğunun yanında küçük yükleyicilerle bir İtalyanca sayfa ile karşılaşır. Tek bir çağrıda her şeyi birlikte çevirmek cazip geliyor: basit, temiz ve kullanıcıyı LLM bitirene kadar herhangi bir değişiklik görmeden beklemeye mahkum ediyor.

Biz ters yönde ilerledik. Metinler bölümlere (navbar, gövde, altbilgi) göre gruplandırılır ve her biri üç alandan oluşan mikro gruplara ayrılır. Çağrılar sırayla başlar: önce birkaç saniyede görünen navbar'daki birkaç alan - kullanıcı bir şeylerin olduğunu görür ve okumaya başlar. Okurken, gövdenin ilk parçası, sonra ikincisi ve son olarak altbilgi gelir.

Kısaca ders: Algılanan hız, toplam hız değildir. Bir parçayı bir seferde, görünen sırayla çevirmek, daha erken bitirmekten daha önemlidir.

Gece Çalışması

Bir önbelleğin tek gerçek düşmanı ilk ziyarettir. İlk Alman kullanıcı, tüm gelecekteki çevirilerin bedelini öder ve aklında kalan da onun deneyimidir. Sorunu ortadan kaldırmak (veya neredeyse), arka planda çalışan bir görev her dakika uyanır, henüz tamamlanmamış diller arasında en çok beklenen dili seçer, çevrilmemiş bir metin alır ve onu LLM'den geçirir. Bir sonraki dakika, bir sonraki. Birkaç gün içinde en yaygın diller zaten hazır hale gelir.

Gece görevi ikinci bir iş de yapar: şüpheli kalitedeki çevirileri otomatik olarak gözden geçirir ve bunları farklı bir AI modeliyle yeniden dener. Diller arasındaki uyum önemli olduğunda, vasat bir çeviri vasat kalmaz.

Eğer günün ilk Alman'ıysanız ve sistem hala önbelleği tamamlıyorken gelirseniz, yine de sizi meşgul edecek aşamalı yükleme vardır. Eğer ikinciyseniz, fark bile etmezsiniz.

Elde Edilenler

Çevirmensiz, yönetilecek dosyası olmayan, bir dil eklemek için dağıtım gerektirmeyen çok dilli bir site. Kullanıcı bir kod girer — ja, ca, eu, istediğini — ve sayfa çevrilir. İkinci seferde anlıdır. Üçüncü seferde ise muhtemelen zaten biz geldik, doğru zamanda bir görev tarafından çevrilmiş ve hiç uyumayan bir görev.

Bu sayfa, eğer Almanca, İspanyolca veya Korece olarak okuyorsanız, hiçbir zaman bir çevirmen tarafından yazılmamıştır. Yalnızca bir LLM tarafından bir kez çevrildi ve o zamandan beri önbellekten hizmet verilmektedir. Şu anda okuduğunuz şey, eğer İtalyanca ise elle yazılmıştır.

Bu mimariyi sitenize taşımakla ilgileniyor musunuz? Konuşalım.

Bize Ulaşın

Görüşünüz var mı? Bize yazın

Bu mesaj sadece bize ulaşıyor. Yorumunuz ilgi çekiciyse makalenin altına yayınlayabiliriz, ancak öncelikle değerlendirdikten sonra. term

Yazarken tarayıcınız ufak bir hesaplama yapıyor: Bu, üçüncü taraf hizmeti kullanmadan veya trafik ışıklarını tanımanızı istemeden spam'i engelleme yöntemimizdir. Sizden hiçbir şey istenmiyor ve herhangi bir veri bu siteden çıkmıyor.