17 puan yazan xguru 2024-05-03 | 4 yorum | WhatsApp'ta paylaş
  • Asimetrik yerelleştirme: Doğal çeviri için yalnızca gerektiğinde cinsiyet/büyük-küçük harf kullanır. İfade gücü, kaynak dilin dil bilgisiyle sınırlı değildir
  • Kademeli iyileştirme: Her çeviri bağımsız olarak yönetilir ve diğer yerelleri etkilemez. Diğer dilleri etkilemeden çeviriler yinelemeli olarak geliştirilebilir
  • Çeşitli özellikler: Tarih, saat ve sayı biçimlendirme. Çoğul kategorileri. Çift yönlü destek. Kullanıcı biçimlendirmesi. Okunması kolay söz dizimi. Çalışma zamanında çeviri ve yeniden çeviri. Güçlü hata yönetimi
  • Apache lisanslı açık kaynak. Sunucu uygulamaları JS, Python ve Rust ile sunulur; ayrıca React binding'leri de sağlanır

Fluent neden oluşturuldu

  • Yazılım yerelleştirmesine uzun süredir, İngilizce metne bire bir eşlenen çeviri şeklindeki eski bir paradigma hakim
  • Kaynak dilin dil bilgisi, çevirinin ifade gücünü sınırlar
  • Bu paradigmayı değiştirmek için Fluent oluşturuldu
    • Çevirmenler, geliştiriciden izin istemeden dillerinin tüm ifade gücünü kullanabilmelidir
    • Fluent'te çeviriler asimetriktir. İngilizce basit bir string, başka bir dilde karmaşık ve çok varyantlı bir çeviriye eşlenebilir
  • Fluent kullanıldığında, kaynak dilden bağımsız olarak çeşitli dillerin dil bilgisi ve üslup gereksinimleri karşılanabilir
  • Bağımsızdır
    • Bir dilin gelişmiş mantığın avantajlarından yararlanması, bunu uygulamak için diğer yerelleştirmelerin de gerekmesini ifade etmez
    • Her yerelleştirme, çevirinin ne kadar karmaşık hale geleceğini kendi başına kontrol eder

4 yorum

 
yangeok 2024-05-09

Vay, eski 1:1 eşleştirme paradigmasından uzaklaşıyor olması gerçekten çok ilginç.

 
iolothebard 2024-05-03

JavaScript'e özel, kırpılmış bir gettext sürümü.

 
xguru 2024-05-03

https://github.com/projectfluent/fluent/wiki/Fluent-vs-gettext

Böyle söyleyince bu projeyi fazla hafife almış oluyorsunuz.

 
iolothebard 2024-05-13

Yanıt çok özensiz(?) olduğu için size öyle görünmüş olabilir. Biraz daha özenli yazmayı deneyeceğim.

Karşılaştırma tablosunun sonuçta kimin karşılaştırıldığına göre belirlendiği için çok büyük bir anlamı yok ama,

Benim onu zayıflatılmış bir sürüm gibi hissetmemin nedeni... uzun yıllar boyunca pek çok kişinin katkısıyla gettext üzerinde biriken birikime saygı duyulmuyormuş gibi gelmesi.

gettext'in sadece C diliyle çalıştığı söylenmiş ama başlıca diller arasında gettext'i desteklemeyen hangi dil var?
Kelime dizilişi sorununu dikkate alıp anahtar tabanlı parametreler kullandığı söylenmiş ama her dilin sözlüğü yerleşik olarak temel yapılar arasında yok; böyle dillerde ek bir yöntem (örneğin Java'da Map gibi) gerekmiş oluyor. gettext konum tabanlıdır ama kelime dizilişindeki değişiklikler de düşünülmüştür.

Biraz uzun uzun yazdım ama,
aslında... en başından beri hoşuma gitmeyen şey ${...} değil de {$...} olmasıydı^^

Kişisel olarak "tekerleği yeniden icat etmeyi" çok severim ama dünyada daha önce hiç olmayan bir tekerlek icat etmiş gibi övünmeyi pek iyi bulmuyorum.