İçeriğe git
Rozet

Başlık

Alt Başlık

Başlık

Paragraf1

Paragraf2

Paragraf3

Başlık

Paragraf1

Paragraf2

Paragraf3

Başlık

Alt Başlık

Dil Ayarı Tanımlayıcıları (BCP 47)

en-US veya zh-Hans-CN gibi BCP 47 etiketleri dil, yazı sistemi ve bölge bilgilerini içerir. Bu etiketler her uluslararasılaştırma sisteminin temelini oluşturur ve hangi çevirilerin, biçimlerin ve kuralların geçerli olacağını belirler.

Unicode ve UTF-8

Unicode, her yazı sistemindeki her karaktere benzersiz bir kod noktası atar. UTF-8, web'de en yaygın kullanılan kodlamadır ve dil ne olursa olsun metnin doğru şekilde görüntülenmesini sağlar.

Çeviri Anahtarları

Çeviri anahtarları, dil ayarına özgü dizelere eşlenen sabit tanımlayıcılardır. Kaynak kodunuzu çevrilebilir içerikten ayırarak, geliştirme ve çeviri işlemlerinin eşzamanlı olarak yürütülmesini sağlar.

Çoğullaşma (Yoğun Bakım Ünitesi)

Dillerin çoğul kuralları birbirinden farklıdır — İngilizce’de iki biçim varken, Arapça’da altı biçim vardır. ICU MessageFormat, çoğulları, cinsiyeti ve belirli ifadeleri tek bir sözdizimiyle işler.

RTL Desteği

Arapça, İbranice ve diğer yazı sistemleri sağdan sola okunur. RTL desteği için mizanpajların aynalanması, simgelerin yönünün tersine çevrilmesi ve sol/sağ yerine CSS mantıksal özelliklerinin kullanılması gerekir.

Tarih / Numara / Para birimi

Tarih, sayı ve para birimleri yerel ayarlara göre değişiklik gösterir. Intl API ve date-fns gibi kütüphaneler, yerel ayarlara duyarlı biçimlendirme özelliği sunar; bu sayede 1.000,50, Almancada 1.000,50 olarak görüntülenir.

Rozet

Başlık

Alt Başlık

JSON

Web uygulamaları (React, Vue, Angular) için en popüler seçenektir. İnsan tarafından okunabilir ve düzenli anahtar yapıları için iç içe geçirmeyi destekler. Yerleşik çoğullaşma standardı bulunmadığından, ICU MessageFormat gibi kütüphaneler bu boşluğu doldurur.

XLIFF

Araçlar arasında çeviri alışverişi için XML tabanlı endüstri standardı. Tüm profesyonel TMS platformları tarafından desteklenir. Ayrıntılı ancak zengin özelliklere sahiptir; notlar, durum takibi ve meta veriler için yerleşik destek sunar.

PO/POT (Gettext)

Python, PHP ve Ruby ekosistemlerinde kullanılan klasik açık kaynak formatı. Özel çoğul biçimleri sözdizimi ile yerleşik çoğul desteği. Çevirmenler ve çeviri araçları tarafından yaygın olarak desteklenir.

ARB

Uygulama Kaynak Paketi, Flutter ve Dart'ın standart formatıdır. JSON tabanlı olup ICU mesaj sözdizimini destekler; çoğullar ve seçimler için yerel destek sağlar. Flutter'ın gen-l10n araçları tarafından kullanılır.

.strings / .stringsdict

iOS ve macOS geliştirme için Apple platformuna özgü formatlar. .strings dosyası basit anahtar-değer çiftlerini işlerken, .stringsdict dosyası çoğullaşma kuralları için XML plist yapısını kullanır.

.resx

C# ve VB.NET uygulamaları için kullanılan .NET kaynak dosyası biçimi. XML tabanlı olup Visual Studio araçlarıyla güçlü bir entegrasyona sahiptir. Dizgiler, resimler ve diğer varlıklar için türlendirilmiş kaynakları destekler.

Başlık

Alt Başlık

1

Kod Tabanınızı Denetleyin

Sabit kodlanmış tüm metin dizelerini, tarih biçimlerini ve yerel ayarlara bağlı kalıpları belirleyin. Hangi bileşenlerin ve sayfaların, çıkarılması gereken kullanıcıya yönelik metinler içerdiğini belirleyin.

2

Dizgileri Dışa Aktar

Kullanıcılara yönelik tüm metinleri yapılandırılmış kaynak dosyalarına (JSON, XLIFF veya PO) taşıyın. Satır içi dizeleri, anahtarlara başvuruda bulunan çeviri işlev çağrılarıyla değiştirin.

3

Araçlarınızı Seçin

Çerçeveniz için bir i18n kütüphanesi ve işbirliği amacıyla bir çeviri yönetim sistemi (TMS) seçin; ayrıca insan, yapay zeka veya karma çeviri iş akışlarından birini tercih edin.

4

Entegre Et ve Gönder

i18n kütüphanenizi yönlendirme ve görüntüleme süreçlerine entegre edin, otomatik senkronizasyon için TMS'nizi CI/CD'ye bağlayın ve hızlı dağıtım için yerel ayar paketlerini CDN üzerinden dağıtın.

Rozet

Başlık

Alt Başlık

Geliştirici Entegrasyonu

CLI araçlarını, SDK desteğini, Git tabanlı iş akışlarını ve CI/CD kancalarını değerlendirin. En iyi TMS platformları, çevirilerin kod değişiklikleriyle otomatik olarak senkronize kalması için doğrudan geliştirme sürecinize entegre olur.

Çeviri Belleği

Çeviri belleği, daha önce onaylanmış çevirileri saklar ve benzer ya da özdeş dizeler için öneri sunar. Bu, çeviri maliyetini düşürür, teslim süresini hızlandırır ve ürününüz genelinde tutarlılığı korur.

İşbirliği Özellikleri

İnceleme iş akışlarını, satır içi yorumları, paylaşılan sözlükleri ve onay zincirlerini arayın. Bu özellikler, çevirmenlerin, inceleyicilerin ve geliştiricilerin darboğaz ya da yanlış iletişim olmadan birlikte çalışmasını sağlar.

Yapay Zeka ve Otomasyon

Modern TMS platformları makine çevirisi önerileri, otomatik kalite kontrolleri, toplu işlemler ve akıllı yönlendirme sunar. Yapay zeka destekli iş akışları, çeviri kalitesini korurken manuel çabayı azaltır.

Başlık

Alt Başlık

Dize Birleştirme

Parçaları birleştirerek cümle oluşturmak, söz dizimi farklı olan dillerde sorunlara yol açar. Bunun yerine yer tutucular içeren ICU MessageFormat'ı kullanın.

Sabit kodlanmış dizeler

Kullanıcılara yönelik metinleri doğrudan kaynak koduna yerleştirmek, kodda değişiklik yapılmadan çeviriyi imkansız hale getirir. Her bir metin dizesini en başından itibaren kod dışına taşıyın.

Çoğulları göz ardı etmek

Tekil ve çoğul için kullanılan basit if/else yapısı yalnızca İngilizce'de işe yarar. Birçok dilde, uygun ICU çoğul kuralları gerektiren birden fazla çoğul biçimi vardır.

Sonradan Yapılan Çeviri

Ürün piyasaya sürüldükten sonra uluslararasılaştırma özelliğini sonradan eklemek, maliyetli bir yeniden yapılandırma gerektirir. Başlangıçtan itibaren uluslararasılaştırmaya uygun tasarım yapmak, zamandan tasarruf sağlar ve mimari borç oluşmasını önler.

Rozet

Başlık

Alt Başlık

  • Kullanıcılara yönelik tüm metinler kaynak dosyalarına taşınmıştır
  • Yerel ayar algılama özelliği eklendi (tarayıcı, URL, kullanıcı tercihi)
  • Tüm hedef diller için çoğul hale getirme işlemi ICU MessageFormat ile gerçekleştirilmiştir
  • Tarih, saat, sayı ve para birimi biçimlendirmeleri için Intl API veya eşdeğer bir yöntem kullanılır
  • RTL düzen desteği, CSS mantıksal özellikleriyle test edildi
  • Eksik çeviriler için yapılandırılmış yedek dil ayarı
  • Çeviri anahtarları tutarlı bir adlandırma kuralına uyar
  • CI iş akışı, eksik veya kullanılmayan çeviri anahtarlarının bulunmadığını doğrular

Başlık

Alt Başlık

  • Sözde
  • Görsel
  • Otomatik
  • Dilbilimsel
  • Genişleme
Rozet

Başlık

Alt Başlık

i18n ile L10n arasındaki fark nedir?

Uluslararasılaştırma (i18n), yazılımın birden fazla dil ve bölgeyi destekleyebilmesi için tasarlanmasına yönelik mühendislik sürecidir. Yerelleştirme (L10n) ise metinlerin çevrilmesi, biçimlerin ayarlanması ve kültürel uygunluğun sağlanması dahil olmak üzere, söz konusu yazılımın belirli bir yerel ayara uyarlanmasına yönelik içerik sürecidir. i18n, kod tabanınızda tek seferlik bir işlemdir; L10n ise desteklediğiniz her yerel ayar için gerçekleştirilir.

Hangi i18n kütüphanesini kullanmalıyım?

En uygun kütüphane, kullandığınız çerçeveye göre değişir. React için react-intl (FormatJS) ve react-i18next en yaygın olarak kullanılanlardır. Vue geliştiricileri genellikle vue-i18n'i kullanır. Angular, Transloco gibi topluluk kaynaklı seçeneklerin yanı sıra yerleşik i18n desteğine sahiptir. Svelte projeleri ise svelte-i18n'i kullanır. Her seçeneği, paket boyutu, ICU desteği ve render modelinizle ne kadar iyi entegre olduğu açısından değerlendirin.

Başlangıçta kaç dilde hizmet vermeliyim?

Mevcut kullanıcı verilerinize veya hedef pazar araştırmalarınıza dayanarak, öncelikle iki ya da üç adet yüksek etki yaratacak dille başlayın. Bu, i18n mimarinizi, çeviri iş akışınızı ve kalite kontrol sürecinizi yönetilebilir bir ölçekte test etmenizi sağlar. Güvenilir bir iş akışı oluşturduktan sonra, analitik verileri kullanarak bir sonraki aşamada hangi dilleri ekleyeceğinize öncelik vererek, diğer dillere de genişleyin.

Uygulamam için makine çevirisini kullanabilir miyim?

Hibrit bir yaklaşım oldukça etkili olabilir: İlk taslaklar ve hacimli, kritik önemi düşük içerikler için makine çevirisini kullanın; ardından pazarlama metinleri, hata mesajları ve hukuki metinler gibi kalitenin kritik öneme sahip metinleri insan çevirmenlere inceletin. Modern sinir ağı tabanlı makine çevirisi önemli ölçüde gelişmiştir, ancak nüanslar, marka sesi ve kültürel doğruluk açısından insan denetimi hâlâ vazgeçilmezdir.

Yalancı yerelleştirme nedir?

Sözde yerelleştirme, metnin anlamını değiştirmeden metni aksanlı veya genişletilmiş karakterlerle değiştiren (örneğin, "Hello" ifadesini "[~Hellllo~]" haline getiren) bir test tekniğidir. Bu teknik, geliştiricilerin gerçek çeviriler hazır olmadan önce sabit kodlanmış dizeleri, metin kesintilerini ve mizanpaj sorunlarını tespit etmelerine yardımcı olur. Çoğu uluslararasılaştırma (i18n) kütüphanesi ve TMS aracı, sözde yerelleştirilmiş çıktının otomatik olarak oluşturulmasını destekler.

Dinamik içeriğin yerelleştirilmesini nasıl yapabilirim?

Dizgileri birleştirmek yerine, yer tutucular için ICU MessageFormat yer tutucularını kullanın (ör. 'Merhaba, {name}'). Çoğullar için, her dilin kurallarına uyum sağlayan ICU çoğul sözdizimini kullanın. Dilbilgisi kuralları dilden dile farklılık gösterdiğinden, cümleleri parçalardan oluşturmaktan kaçının. Zengin metinlerde, çevirmenlerin işaretlemeyi bozmadan HTML öğelerinin sırasını değiştirebilmelerini sağlayan etiketli yer tutucular kullanın.

Başlık

Alt Başlık