İçindekiler
Geliştiriciler İçin Online Çeviri Araçları: Google Translate'in Ötesinde
Google Translate, hızlı çeviriler için başvurulan araçtır; ancak çok dilli uygulamalar geliştiren geliştiricilerin çok daha yetenekli araçlara ihtiyacı vardır. Tüketici çeviri araçları API erişiminden yoksundur, JSON veya YAML dosyaları gibi yapılandırılmış içerikleri işleyemez ve geliştirme iş akışlarıyla entegrasyon imkânı sunmaz. Bu kılavuz, geliştiricilerin üretim ortamında gerçekten kullandığı çeviri araçlarını ele alır — çeviri API'lerinden ve i18n yönetim platformlarından açık kaynaklı kütüphanelere ve CLI otomasyonuna kadar.
Temel Çıkarımlar
- Tüketici çeviri araçları yazılım geliştirme için tasarlanmamıştır. Geliştiricilerin üretim uygulamaları için ihtiyaç duyduğu API erişimi, yapılandırılmış dosya desteği ve iş akışı entegrasyonundan yoksundurlar.
- Çeviri API'leri (DeepL, Google Cloud Translation, Amazon Translate) makine çevirisi motorlarına programatik erişim sağlar; ancak bunlar bulmacının yalnızca bir parçasıdır — çeviri dosyalarını yönetmek ve dağıtmak için hâlâ ek araçlara ihtiyacınız vardır.
- i18n yönetim platformları, çeviri, iş birliği ve dağıtımı tek bir iş akışında birleştirerek JSON/YAML dosyalarını repolar arasında manuel olarak yönetme ihtiyacını ortadan kaldırır.
- Açık kaynaklı kütüphaneler, uluslararasılaştırmanın çalışma zamanı tarafını (dize enterpolasyonu, çoğullaştırma, tarih biçimlendirme) ele alır; ancak tek başlarına çeviri yönetimi sorununu çözmezler.
- Eksiksiz bir çeviri hattı, çıkarmayı, çeviriyi, incelemeyi ve dağıtımı mevcut CI/CD iş akışınıza entegre eder.
Geliştiricilerin Neden Özel Çeviri Araçlarına İhtiyacı Var
Geliştiricilerin özel çeviri araçlarına ihtiyacı vardır çünkü Google Translate gibi tüketici ürünleri, bir yazılım projesinde birden fazla yerel ayarda binlerce yapılandırılmış anahtar-değer çifti yönetmek için değil, anlık metin çevirisi için tasarlanmıştır. Geliştirici araçları; API erişimi, dosya formatı desteği (JSON, YAML, XLIFF), sürüm kontrolü entegrasyonu ve tüketici araçlarının sunmadığı otomatik iş akışları sağlar.
Tüketici çeviri araçlarını yazılım geliştirmede kullanmaya çalıştığınızda neler aksar:
Yapılandırılmış dosya desteği yok. Uygulamanız, çevirileri navigation.menu.settings gibi iç içe geçmiş anahtarlarla JSON, YAML veya XLIFF dosyalarında saklar. Tüketici araçları ham metni çevirir — yapılandırılmış çeviri dosyalarını ayrıştıramaz, koruyamaz veya çıktı olarak veremez.
API erişimi veya otomasyon yok. Bir çeviri web sitesine metin kopyalayıp yapıştırmak ölçeklenmez. Uygulamanızda düzinelerce yerel ayarda yüzlerce veya binlerce çeviri anahtarı olduğunda, programatik erişime ihtiyaç duyarsınız.
Bağlam koruması yok. save gibi bir anahtar "dosyayı kaydet" veya "para tasarrufu yap" anlamına gelebilir. Tüketici araçları, doğru çeviriyi belirleyen kullanıcı arayüzü bağlamı olmadan yalnızca metni çevirir.
İş birliği iş akışı yok. Profesyonel çeviri; çevirmenler, inceleyenler ve geliştiricileri kapsar. Tüketici araçlarının çeviri incelemesi, onay iş akışları veya çevirmen atamalarına ilişkin herhangi bir kavramı yoktur.
Sürüm kontrolü entegrasyonu yok. Çeviriler, JSON dosyaları olarak reponuzda yaşadığında, git iş akışlarını anlayan araçlara ihtiyaç duyarsınız — dallanma, pull request'ler ve çeviri dosyaları için birleştirme çakışması çözümü.
AI'ın çeviri araçları ortamını nasıl değiştirdiğine daha geniş bir bakış için 2026'daki en iyi AI çeviri araçları kılavuzumuza bakın.
Geliştirici Çeviri Araçları Kategorileri
Geliştirici çeviri ekosistemi, her biri sorunun farklı bir bölümünü çözen dört kategoriye ayrılır. Üretim uygulamalarının çoğu, birden fazla kategorideki araçları birlikte kullanır.
Çeviri API'leri
Çeviri API'leri, makine çevirisi motorlarına programatik erişim sağlar. Kaynak metni kabul eder ve HTTP uç noktaları aracılığıyla çevrilmiş metni döndürürler; bu da onları toplu çevirileri otomatikleştirmek veya uygulamanıza çeviri özellikleri eklemek için ideal kılar.
DeepL API, özellikle Avrupa dilleri için doğal ses veren çeviriler üretmesiyle tanınır. Hem ücretsiz (ayda 500.000 karakter) hem de Pro katmanı sunar. API; tutarlı terminoloji uygulamak için sözlükleri, belge çevirisini (PDF, DOCX) ve resmi ile gayri resmi yazım biçimlerini ayırt eden diller için biçimsellik kontrolünü destekler.
curl -X POST 'https://api-free.deepl.com/v2/translate' \
-H 'Authorization: DeepL-Auth-Key YOUR_KEY' \
-d 'text=Save changes' \
-d 'target_lang=DE'
# Response: { "translations": [{ "text": "Änderungen speichern" }] }
Google Cloud Translation iki katmanda sunulur: doğrudan metin çevirisi için Temel sürüm (v2) ve sözlük desteği, toplu çeviri, AutoML aracılığıyla özel modeller ve uyarlanabilir çeviri ekleyen Gelişmiş sürüm (v3). 130'dan fazla dili destekler — herhangi bir büyük API'nin en geniş kapsamı.
curl -X POST \
'https://translation.googleapis.com/language/translate/v2' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{"q": "Save changes", "target": "de", "source": "en"}'
Amazon Translate, AWS ekosistemiyle sıkı sıkıya entegre olur. Özel terminolojiyi, özel çeviri modelleri eğitmek için paralel verileri ve gerçek zamanlı veya toplu çeviri modlarını destekler. Halihazırda AWS altyapısı üzerine kurulu ekipler için doğal bir seçimdir.
Azure Translator, Microsoft'un Bilişsel Hizmetler paketinin bir parçasıdır. Öne çıkan özellikler arasında alternatif çeviriler için sözlük araması, komut dosyaları arasında transliterasyon ve belge çevirisi yer alır. Daha karmaşık dil iş akışları oluşturmak için Azure'un daha geniş AI hizmetleriyle entegre olur.
i18n Yönetim Platformları
Çeviri API'leri makine çevirisi adımını üstlenirken, i18n yönetim platformları tüm iş akışını yönetir: kod tabanınızdan dizeleri çıkarmak, bunları çeviri için göndermek (insan veya makine), inceleme ve onayı yönetmek ve çevirileri reponuza geri senkronize etmek.
better-i18n, i18n yönetimine API öncelikli bir yaklaşım benimser. Çeviri anahtarlarını programatik olarak yönetmek için SDK sağlar, kod tabanınızla otomatik senkronizasyonu destekler ve uygulama çevirilerinizin yanı sıra yerelleştirilmiş pazarlama içeriğini yönetmek için Content SDK sunar. Platform, geliştirici iş akışları etrafında tasarlanmıştır — CLI araçları, CI/CD entegrasyonu ve TypeScript öncelikli API.
Crowdin, 40'tan fazla dosya formatını destekleyen ve güçlü bir entegrasyon pazarı sunan en köklü platformlardan biridir. Mobil uygulamalar için kablosuz güncelleme teslimatı, bağlamsal çeviri düzenleme (çevirmenler dizeleri gerçek kullanıcı arayüzünüzde oluşturulmuş olarak görür) ve birden fazla sağlayıcıyla makine çevirisi entegrasyonu sağlar.
Lokalise, temiz bir API, push/pull iş akışları için CLI aracı ve iOS, Android ve web çerçeveleri için yerel entegrasyonlarla geliştirici deneyimine odaklanır. Kod için git dallanmasına benzer şekilde çeviri projeleri için dallanmayı destekler.
Phrase (eski adıyla Memsource + Phrase), bir çeviri yönetim sistemi (TMS) ile geliştirici odaklı dize yönetim platformunu birleştirir. Profesyonel çevirmenlerin ve geliştiricilerin aynı projeler üzerinde iş birliği yapması gereken kurumsal ortamlarda özellikle güçlüdür.
Geleneksel TMS platformları ile modern AI destekli yaklaşımların ayrıntılı karşılaştırması için çeviri yazılımı karşılaştırmamıza bakın.
Açık Kaynaklı Kütüphaneler
Açık kaynaklı i18n kütüphaneleri, uygulamanızdaki uluslararasılaştırmanın çalışma zamanı tarafını ele alır. Çeviri dosyalarını yükler, değişkenleri enterpole eder, çoğullaştırma kurallarını işler, tarihleri ve sayıları yerel ayar kurallarına göre biçimlendirir ve çevrilmiş içeriği oluşturmak için React hook'ları veya Vue direktifleri sağlar.
i18next, en yaygın benimsenen JavaScript i18n kütüphanesidir. React (react-i18next), Vue, Angular ve Node.js için resmi bağlamalarla çerçeveden bağımsızdır. Çevirileri mantıksal gruplara bölmek için ad alanlarını, çeviri paketlerinin geç yüklenmesini ve arka uç yükleme, önbelleğe alma ve dil algılama için eklentileri destekler.
import i18next from 'i18next';
await i18next.init({
lng: 'de',
resources: {
de: {
translation: {
save: 'Änderungen speichern',
items: '{{count}} Artikel',
items_plural: '{{count}} Artikel'
}
}
}
});
i18next.t('save'); // "Änderungen speichern"
i18next.t('items', { count: 5 }); // "5 Artikel"
react-intl (FormatJS), uluslararasılaştırma için React bileşenleri ve hook'ları sağlar. Platformlar arasında yaygın olarak desteklenen ICU mesaj sözdizimi standardını kullanır. Tarih, sayı ve göreli zaman biçimlendirmede özellikle güçlüdür.
vue-i18n, Vue uygulamaları için standart i18n kütüphanesidir. Karmaşık enterpolasyonlar için $t işlevi, <i18n-t> bileşeni ve çevirileri bileşenlerle birlikte konumlandırmak için SFC (Tek Dosya Bileşeni) özel blokları sağlar.
next-intl, Next.js için özel olarak tasarlanmış olup sunucu ve istemci bileşen desteği, ara katman tabanlı yerel ayar yönlendirmesi ve tip güvenli mesaj erişimi sağlar. Hem Pages Router hem de App Router ile iyi çalışır.
CLI Araçları ve Otomasyon
CLI araçları, yerel geliştirme ortamınız ile çeviri yönetim platformunuz arasındaki boşluğu kapatır. Kaynak koddan yeni dizelerin çıkarılmasını, bunların bir çeviri platformuna gönderilmesini ve tamamlanan çevirilerin reponuza geri çekilmesini yönetirler.
i18next-parser, çeviri işlevi çağrıları (t('key')) için kaynak kodunuzu tarar ve bunları çeviri dosyalarına çıkarır. Birden fazla çıktı formatını destekler ve eksik çevirileri erken yakalamak için derleme sürecinizin bir parçası olarak çalıştırılabilir.
# Extract translation keys from source code
npx i18next-parser 'src/**/*.{ts,tsx}'
FormatJS CLI (@formatjs/cli), react-intl kullanan React bileşenlerinden ICU mesajlarını çıkarır, bunları üretim kullanımı için derler ve çıkarılan mesajları çeviri platformlarına aktarabilir.
# Extract messages from React components npx formatjs extract 'src/**/*.tsx' --out-file lang/en.json # Compile messages for production npx formatjs compile lang/de.json --out-file compiled/de.json
Platforma özgü CLI'lar (Crowdin CLI, Lokalise CLI veya better-i18n CLI gibi), çevirileri reponuz ile platform arasında senkronize eder. Genellikle git hook'larına veya CI hatlarına entegre olan push (kaynak dizeleri yükle) ve pull (çevirileri indir) komutlarını desteklerler.
Karşılaştırma: Geliştirici Odaklı Çeviri API'leri
Bir çeviri API'si seçmek, dil kapsamı ihtiyaçlarınıza, entegrasyon gereksinimlerinize ve bütçenize bağlıdır. Aşağıdaki tablo, geliştiricilerle ilgili temel boyutlarda büyük çeviri API'lerini karşılaştırmaktadır.
Not: Fiyatlandırma bilgileri yaklaşıktır ve değişebilir. Güncel fiyatlar için her sağlayıcının fiyatlandırma sayfasını kontrol edin.
| Özellik | DeepL API | Google Cloud Translation (v3) | Amazon Translate | Azure Translator |
|---|---|---|---|---|
| Desteklenen diller | 30+ | 130+ | 75+ | 130+ |
| Ücretsiz katman | Ayda 500K karakter | 10$ kredi (yeni kullanıcılar) | Ayda 2M karakter (12 ay) | Ayda 2M karakter |
| Özel sözlükler | Evet | Evet | Evet (özel terminoloji) | Evet |
| Belge çevirisi | Evet (PDF, DOCX, PPTX) | Evet (toplu mod) | Hayır | Evet |
| Özel modeller | Hayır | Evet (AutoML) | Evet (paralel veri) | Evet (Custom Translator) |
| Biçimsellik kontrolü | Evet | Hayır | Evet | Hayır |
| Toplu çeviri | Evet (belge API) | Evet | Evet | Evet |
| SDK dilleri | Python, Node.js, .NET, Java | Tüm büyük diller | Tüm büyük diller (AWS SDK) | Tüm büyük diller |
| REST API | Evet | Evet | Evet | Evet |
| Hız sınırlaması | Plana göre değişir | Proje başına kotalar | Hesap başına limitler | Abonelik başına |
API Kullanım Kalıpları
Bir çeviri API'sini geliştirici iş akışına entegre etmek için tipik bir kalıp — JSON yerel ayar dosyasını programatik olarak çevirmek:
import fs from 'node:fs';
// Load source locale file
const sourceStrings = JSON.parse(
fs.readFileSync('locales/en.json', 'utf-8')
);
// Translate each value via API
async function translateLocaleFile(strings, targetLang, apiKey) {
const translated = {};
for (const [key, value] of Object.entries(strings)) {
const response = await fetch('https://api-free.deepl.com/v2/translate', {
method: 'POST',
headers: {
'Authorization': `DeepL-Auth-Key ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
text: [value],
target_lang: targetLang.toUpperCase(),
}),
});
const data = await response.json();
translated[key] = data.translations[0].text;
}
return translated;
}
// Generate German locale file
const deStrings = await translateLocaleFile(sourceStrings, 'de', process.env.DEEPL_API_KEY);
fs.writeFileSync('locales/de.json', JSON.stringify(deStrings, null, 2));
Bu yaklaşım ilk çeviriler için işe yarar; ancak üretim kullanımı için değişiklik algılama (yalnızca yeni veya değiştirilen anahtarları çevir), önbelleğe alma, yeniden denemelerle hata işleme ve dağıtımdan önce insan incelemesi eklemeniz gerekir.
Çeviri Hattı Oluşturma
Bir üretim çeviri hattı, kod tabanınızdaki kaynak dizelerden her hedef yerel ayardaki incelenmiş, dağıtılmış çevirilere akışı otomatikleştirir. İşte çoğu ekibin benimsediği mimari kalıp:
Kaynak Kod → Dize Çıkarma → Çeviri Platformu → Çeviri (API + İnsan İncelemesi) → Repoya Çekme → Derleme & Dağıtım
Adım 1: Dize Çıkarma
Otomatik çıkarma, çeviri işlevi çağrıları için kaynak kodunuzu tarar ve bir kaynak yerel ayar dosyası oluşturur. Bu, ana dala her gönderimde CI hattınızda çalışır.
# .github/workflows/i18n-extract.yml
name: Extract Translation Strings
on:
push:
branches: [main]
paths: ['src/**']
jobs:
extract:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Extract strings
run: npx i18next-parser 'src/**/*.{ts,tsx}'
- name: Check for new keys
run: |
if git diff --quiet locales/en.json; then
echo "No new translation keys found"
else
echo "New keys detected, pushing to translation platform"
npx better-i18n push --source locales/en.json
fi
Adım 2: Çeviri ve İnceleme
Yeni dizeler çeviri platformuna geçtiğinde, başlangıç taslakları için makine çevirisi ve kalite güvencesi için insan incelemesinin bir kombinasyonu aracılığıyla çevrilebilirler. Çoğu platform bunu otomatik bir iş akışı olarak yapılandırmayı destekler: yeni dizeler hemen makine tarafından çevrilir, ardından insan incelemesi için kuyruğa alınır.
Adım 3: Çekme ve Dağıtım
Ayrı bir CI işi, tamamlanan çevirileri çeker ve güncellenmiş yerel ayar dosyalarıyla bir pull request açar. Bu, çeviri güncellemelerini normal kod inceleme akışınızda tutar.
# .github/workflows/i18n-pull.yml
name: Pull Translations
on:
schedule:
- cron: '0 6 * * 1' # Weekly on Monday morning
workflow_dispatch: # Allow manual trigger
jobs:
pull:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Pull translations
run: npx better-i18n pull --output locales/
- name: Create PR if changes exist
run: |
if ! git diff --quiet locales/; then
git checkout -b i18n/update-translations
git add locales/
git commit -m "chore(i18n): update translations"
git push -u origin i18n/update-translations
gh pr create \
--title "chore(i18n): update translations" \
--body "Automated translation update from better-i18n"
fi
Adım 4: Doğrulama
Üretime ulaşmadan önce sorunları yakalamak için CI hattınıza çeviri doğrulaması ekleyin:
# Validate that all locales have the same keys as the source
npx better-i18n validate --source locales/en.json --locales locales/
# Check for:
# - Missing keys in target locales
# - Untranslated strings (still in source language)
# - Placeholder mismatches ({name} in source but missing in translation)
# - Excessively long translations that might break UI layouts
better-i18n Geliştirici Çevirisini Nasıl Basitleştirir
better-i18n, çeviri yönetiminin mevcut geliştirici iş akışlarına uyması gerektiği ilkesi etrafında tasarlanmıştır; geliştiricilerin ayrı bir sisteme uyum sağlamasını gerektirmez.
SDK öncelikli yaklaşım. @better-i18n/sdk, çevirileri programatik olarak yönetmek için bir TypeScript istemcisi sağlar. Rutin işlemler için manuel gösterge paneli etkileşimi gerekmeden, doğrudan betiklerden veya CI hatlarından anahtarlar oluşturabilir, çevirileri güncelleyebilir ve değişiklikleri yayınlayabilirsiniz.
import { createClient } from '@better-i18n/sdk';
const client = createClient({
project: 'my-org/my-app',
apiKey: process.env.BETTER_I18N_API_KEY,
});
// Create new translation keys programmatically
await client.keys.create([
{ key: 'onboarding.welcome', value: 'Welcome to the app' },
{ key: 'onboarding.setup', value: 'Let\'s get you set up' },
]);
// Fetch translations for a locale
const translations = await client.translations.get({ locale: 'de' });
Pazarlama sayfaları için Content SDK. Uygulama dizelerinin ötesinde, Content SDK (@better-i18n/content) blog yazıları, pazarlama sayfaları ve belgeler gibi yerelleştirilmiş uzun biçimli içeriği yönetir. Bu, uygulama çevirilerinizin ve pazarlama içeriğinizin aynı iş akışıyla aynı platformda bulunduğu anlamına gelir.
CLI entegrasyonu. better-i18n CLI, git hook'ları ve CI/CD hatlarıyla entegre olan push, pull ve validate komutlarını destekler. Yeni anahtarları göndermek ve tamamlanan çevirileri çekmek, dağıtım betiğinizdeki tek bir komut haline gelir.
Reponuzla senkronizasyon. Otomatik senkronizasyon, repodaki yerel ayar dosyalarınızı platformda tamamlanan çevirilerle güncel tutar. Bir çevirmen bir grup çeviriyi bitirdiğinde, bunlar otomatik olarak bir pull request aracılığıyla reponuza senkronize edilebilir.
SSS
Geliştiriciler için en doğru çeviri API'si hangisidir?
Tüm dil çiftlerinde tek bir "en doğru" API yoktur. DeepL, Avrupa dillerinde (İngilizce, Almanca, Fransızca, İspanyolca vb.) yüksek kaliteli çeviriler için sıklıkla öne çıkarılır. Google Cloud Translation, en geniş dil yelpazesini destekler ve Asya ile sağdan sola yazılan diller dahil çeşitli dil çiftlerinde iyi performans gösterir. Üretim uygulamaları için en iyi yaklaşım, belirli içeriğinizi hedef dil çiftlerinizde test etmektir — doğruluk, dil kombinasyonuna ve içerik alanına göre önemli ölçüde değişir.
CI/CD hattımda çevirileri nasıl otomatikleştirebilirim?
Standart yaklaşım iki bölümlü bir iş akışıdır: (1) ana dalınıza gönderimlerinde çalışan, kaynak kodu yeni çeviri anahtarları için tarayan ve bunları çeviri platformunuza ileten bir çıkarma işi ve (2) bir programda (günlük veya haftalık) çalışan, tamamlanan çevirileri indiren ve güncellenmiş yerel ayar dosyalarıyla bir pull request açan bir çekme işi. Çoğu i18n platformu, CI entegrasyonu için tasarlanmış push ve pull komutlarını destekleyen CLI araçları sağlar. Eksiksiz GitHub Actions örnekleri için yukarıdaki "Çeviri Hattı Oluşturma" bölümüne bakın.
Google Translate API üretim uygulamaları için yeterince iyi mi?
Google Cloud Translation API (özellikle ücretsiz tüketici Google Translate web sitesinden farklı olan Gelişmiş v3 katmanı) birçok şirket tarafından üretimde kullanılmaktadır. Tutarlı terminoloji uygulamak için özel sözlükleri, büyük hacimleri işlemek için toplu çeviriyi ve alana özgü içeriğinizde özel çeviri modelleri eğitmek için AutoML'yi destekler. Ancak, kullanıcıya yönelik içerik için çoğu ekip makine çevirisini insan incelemesiyle birleştirir. Makine çevirisi ilk taslağı sağlar ve profesyonel çevirmenler veya iki dilli ekip üyeleri, dağıtımdan önce doğruluk, ton ve bağlam açısından inceler.