Bir CSV Dosyası Nasıl Çevrilir

OpenL Team 1/9/2026

TABLE OF CONTENTS

CSV basit görünebilir, ancak çevirisi hızlıca yanlış gidebilir: sütunlar kayabilir, tırnak işaretleri bozulabilir, Latin olmayan karakterler bozulabilir veya kimlikler kullanılmaz hale gelecek şekilde “çevirilebilir”. Bu rehber, yapıyı koruyarak bir CSV dosyasını güvenli ve pratik bir şekilde nasıl çevireceğinizi, ayrıca bir QA kontrol listesi ve yaygın sorunlar için çözümler sunar.

En basit seçeneği istiyorsanız, metni genel bir çeviri aracına kopyalamak yerine CSV‑uyumlu bir çeviri aracı (Yöntem 1) kullanın.

Çevrilmiş dosyayı içe aktarmadan önce, bu rehberdeki QA kontrol listesini çalıştırarak sütun/kodlama sorunlarını erken yakalayın.

CSV Çevirisini Zorlaştıran Nedir

CSV düz metindir, ancak bazı yapı kuralları içerir:

  • Ayırıcı: genellikle virgül (,), bazı yerel ayarlarda noktalı virgül (;).
  • Tırnak işaretleri: metin değerleri çift tırnak (") ile çevrili olabilir. Değerlerin içinde tırnak varsa kaçış karakteriyle yazılmalıdır (genellikle "").
  • Hücre içinde yeni satırlar: izin verilir, ancak yalnızca hücre düzgün şekilde tırnaklanmışsa.
  • Kodlama: dosyanız UTF‑8, BOM’lu UTF‑8 veya eski kodlamalar olabilir.
  • Karışık veri tipleri: sayılar, tarihler, SKU’lar, kimlikler, URL’ler ve yer tutucular genellikle değiştirilmeden kalmalıdır.

CSV’yi “sadece metin” olarak ele alan çeviri araçları, yapı karakterlerini (ayırıcılar/tırnaklar/yeni satırlar) yanlışlıkla değiştirebilir veya veri tiplerini (tarih/sayı) dönüştürebilir, bu da bozuk içe aktarmalara yol açar.

Başlamadan Önce

Bu hızlı adımlar, çoğu CSV çeviri bozulmasını önler:

  1. Yedek bir kopya oluşturun

    • file.csvfile.original.csv olarak kaydedin.
    • CSV müşteri verisi içeriyorsa, herhangi bir yere yüklemeden önce hassas alanları kaldırın veya anonimleştirin.
  2. “Çevrilmemesi gereken” alanları belirleyin Bunları değiştirmeden bırakın:

    • Kimlikler, anahtarlar, SKU’lar, sipariş numaraları
    • URL’ler, e‑posta adresleri, dosya yolları
    • Yer tutucular ve değişkenler ({name}, {{amount}}, %s, :count)
    • Etiketler, enum değerleri, dahili durum kodları (PAID, REFUNDED)
    • Kod tarafından kullanılan herhangi bir alan (API anahtarları, JSON blokları, HTML parçaları)
    • Emin değilseniz, bkz: /what-not-to-translate
  3. Ayırıcı, tırnak kuralları ve satır sonlarını doğrulayın

    • CSV dosyasını açtığınızda “tek bir sütun gibi görünüyorsa”, muhtemelen ayırıcı yanlış seçilmiştir.
    • Tipik CSV dosyaları , ayırıcı ve " tırnak işareti kullanır (bkz. RFC 4180: https://www.rfc-editor.org/rfc/rfc4180).
  4. Kodlamayı doğrulayın

    • Çok dilli içerik için UTF‑8 tercih edin.
    • Eğer çevrilmiş CSV dosyasını Windows üzerinde Excel’de açacaksanız, bozuk karakterleri önlemek için BOM’lu UTF‑8 gerekebilir.
    • BOM hakkında bilgi: https://unicode.org/faq/utf_bom.html
  5. Opsiyonel ama önerilir: sabit bir row_id ekleyin Daha sonra yeniden içe aktarılacak veya eşleştirilecek CSV’ler için, satırların sırasının değişmediğini doğrulamak amacıyla benzersiz bir anahtar sütunu (ör. row_id) ekleyin.

Yöntem 1 — CSV-destekli çevrimiçi çeviri araçları (önerilir)

CSV-destekli çeviri araçları, CSV’yi “sadece metin” değil, yapılandırılmış veri olarak ele alır; bu nedenle ayırıcıların, tırnakların veya satır/sütun düzeninin bozulma ihtimali daha düşüktür. İçe aktarmadan önce her zaman QA kontrol listesini uygulayın.

Tarafsız seçenek karşılaştırması

SeçenekGüçlü YanlarıTavizlerEn Uygun Olduğu Durum
OpenL CSV Translator OnlineCSV yapısı için tasarlanmıştır; hızlı yükleme/indirmeYükleme tabanlı iş akışı; hassas veriler için uygun değilHızlı, güvenilir CSV taslakları
DeepL / Google Cloud / AWS Translate (API)Otomatikleştirilebilir; iyi kalite; toplu iş akışlarına uygunMühendislik gerektirir + dikkatli CSV işlemesi gerekirBirçok dosyayı çeviren ekipler
CAT tools (Smartling, Lokalise, Phrase, vb.)Terim/QA, iş birliğiDaha fazla kurulum + maliyetÜrün/UI yerelleştirmesi için ölçekli kullanım
Tablo formülleri (Sheets/Excel)Ekstra araç gerekmezCSV’yi otomatik biçimlendirmek veya bozmak kolaySadece küçük, düşük riskli dosyalar

Sınırlar ve notlar

  • Paylaşmanıza izin verilmeyen hassas verileri yüklemeyin. Gerekirse önce temizlenmiş bir CSV dışa aktarın.
  • Sisteminiz belirli başlık adları gerektiriyorsa, başlık satırını çevirmeyin.
  • Çevrilmiş CSV’yi içe aktarmadan önce her zaman QA kontrol listesini çalıştırın.
  • Çevrimiçi bir araç kullanıyorsanız, araç sayfasında yükleme limitlerini ve desteklenen formatları kontrol edin.

Adım adım

  1. Aracı açın

  2. Dilleri seçin

    • Hedef dillerinizi seçin.
  3. CSV dosyanızı yükleyin

    • .csv dosyanızı yükleyin veya sürükleyip bırakın.
    • CSV’nizde birden fazla metin sütunu varsa, çevirmen içerikleri çevirirken ayırıcıları ve tırnak işaretlerini korur.
  4. Çevrilmiş CSV’yi indirin

    • products_es.csv gibi anlaşılır bir adla kaydedin.

Daha iyi sonuçlar için en iyi uygulamalar

  • Yalnızca kullanıcıya yönelik sütunları çevirin: ürün başlıkları, açıklamalar, arayüz metinleri, müşteriye yönelik notlar.
  • Kodları sabit tutun: status, type, sku, category_id, url, handle alanlarını çevirmeyin.

Yöntem 2 — Google Sheets veya Excel

Bu iş akışı çalışabilir, ancak biçimlendirme, ayırıcılar veya türleri yanlışlıkla değiştirmek daha kolaydır.

Google Sheets (küçük dosyalar)

  1. CSV’yi içe aktarın

    • Google Sheets → Dosya → İçe aktar → Yükle.
    • Verileriniz tek bir sütunda görünüyorsa, doğru ayırıcıyı seçin (virgül veya noktalı virgül).
  2. “Çevrilmeyecek” sütunları koruyun

    • Kimlik sütunlarını önce Düz metin olarak biçimlendirin (ör. SKU, sipariş id) böylece 00123123 dönüşümü önlenir.
  3. Yalnızca hedef sütunları çevirin

    • Yeni bir sütunda =GOOGLETRANSLATE(A2,"en","es") kullanın, ardından Kopyala → Özel yapıştır → Yalnızca değerler.
    • URL, yer tutucu, kod veya formül içeren sütunlarda çeviri formüllerini çalıştırmayın.
  4. Dışa aktarın

    • Dosya → İndir → Virgülle ayrılmış değerler (.csv) (Google Sheets UTF‑8 olarak dışa aktarır).

Excel (Windows) — UTF‑8’i doğru şekilde nasıl içe ve dışa aktarabilirsiniz

Excel, kodlama hatalarının en sık yaşandığı yerdir. Karakter bozulmalarını ve ayraç sorunlarını önlemek için aşağıdaki adımları kullanın.

A) Karakterler bozulmadan CSV içe aktarımı

  1. Veri → Metin/CSV’den
  2. İçe aktarma penceresinde:
    • Dosya Kaynağı / Kodlama: 65001: Unicode (UTF‑8) seçin (sürümüne göre ifadeler değişebilir)
    • Ayraç: Dosyanızla uyumlu olarak Virgül (,) veya Noktalı Virgül (;)
  3. Yükle’ye tıklayın (veya ID sütunlarını Metin olarak zorlamak istiyorsanız Verileri Dönüştür’e tıklayın)

B) UTF‑8 olarak dışa aktar (ve ne zaman BOM kullanılmalı)

  1. Dosya → Farklı Kaydet
  2. Farklı kaydet türü için şunu seçin:
    • CSV UTF‑8 (Virgülle ayrılmış) (*.csv) (çok dilli metinler için önerilir)
    • Eğer kullandığınız sistem BOM’u reddediyorsa, bir betik kullanarak (bkz. “Toplu İşlem”) veya bir kod editörü ile tekrar kaydederek BOM’suz UTF‑8 olarak dışa aktarın.

Yaygın tuzaklar

  • Otomatik biçimlendirme: hesap tabloları 00123 gibi ID’leri 123’e çevirebilir.
  • Tarih dönüşümü: 2026-01-09 farklı görüntülenebilir ve tutarsız şekilde dışa aktarılabilir.
  • Ayraç değişiklikleri: dışa aktarımlar, bölge ayarlarına bağlı olarak ;’ya geçebilir.

Bu yöntemi kullanıyorsanız, aşağıdaki QA bölümü zorunludur.

Gelişmiş İş Akışı — Çeviri Tablosu

CSV dosyanız “çevir” ve “çevirme” verilerinin bir karışımıysa, çeviri işleminin hassas alanlara asla dokunmaması için ayrı bir çeviri tablosu oluşturun.

Adım 1: Bir çeviri tablosu oluşturun

Aşağıdaki gibi yeni bir CSV (veya sayfa) oluşturun:

row_idfieldsource_textcontexttranslated_text
101product_titleWireless MouseE-commerce product titleKablosuz Mouse
101product_descSilent clicks, 2-year batteryShort descriptionSessiz tıklamalar, 2 yıl pil ömrü
102product_titleUSB-C ChargerE-commerce product titleUSB-C Şarj Cihazı
102product_descFast charging for phones and tabletsShort descriptionTelefonlar ve tabletler için hızlı şarj
103product_titleStainless Steel Water BottleProduct titlePaslanmaz Çelik Su Şişesi
103product_descBPA-free, keeps drinks cold 24hShort descriptionBPA içermez, içecekleri 24 saat soğuk tutar
104product_titleNoise-Canceling HeadphonesProduct titleGürültü Engelleyici Kulaklık
104product_descOver-ear, Bluetooth 5.3Short descriptionKulak üstü, Bluetooth 5.3

merged.drop(columns=[c for c in merged.columns if c.endswith(“__translated”)], inplace=True) merged.to_csv(“products_es.csv”, index=False, encoding=“utf-8-sig”)


#### Örnek (SQL join/güncelleme deseni)

```sql
-- translation_table(row_id, field, translated_text)
-- products(row_id, product_title, product_desc, ...)

UPDATE products p
SET product_title = t.translated_text
FROM translation_table t
WHERE p.row_id = t.row_id
  AND t.field = 'product_title'
  AND t.translated_text IS NOT NULL
  AND t.translated_text <> '';

Toplu İşleme (birden fazla CSV dosyası)

Birçok CSV dosyasını çevirmeniz gerekiyorsa, manuel tablo adımlarından kaçının ve tekrarlanabilir bir işlem hattı kullanın:

  1. Girdileri standartlaştırın

    • UTF‑8’e (veya ithalatçınızın ihtiyacı varsa BOM’lu UTF‑8’e) normalize edin.
    • Her dosyada eşleme için sabit bir anahtar (row_id / id) olduğundan emin olun.
  2. Her dosya için çeviri tabloları oluşturun

    • Sadece çevrilebilir alanları translation_table_<file>.csv dosyasına çıkarın.
    • Tüm dosyalar için tek birleştirilmiş tablo tercih ediyorsanız bir source_file sütunu tutun.
  3. Tabloları çevirin

    • Dosya bazında bir API iş akışı veya CSV uyumlu bir araç kullanın.
  4. Sonuçları geri birleştir + dışa aktar

    • row_id + field (ve kullanıldıysa source_file) ile eşleyin.
    • Sonraki sisteminizin beklediği kodlama ile dışa aktarın.

Minimal başlangıç döngüsü (birçok dosyayı tutarlı şekilde işleyin):

for f in ./input/*.csv; do
  base="$(basename "$f" .csv)"
  # 1) çeviri tablosunu çıkar (şemanıza göre uygulayın)
  # 2) translate translation_table_${base}.csv -> translation_table_${base}_translated.csv
  # 3) geri birleştir ve ${base}_translated.csv olarak dışa aktar
  echo "Processed: $base"
done

Çeviri Sonrası QA Kontrol Listesi

Çevrilmiş CSV’yi indirdikten sonra, içe aktarmadan önce şu kontrolleri yapın:

Hızlı kontroller

  • Satır sayısını karşılaştırın (macOS/Linux): wc -l file.original.csv file.translated.csv
  • Dosyayı düz metin düzenleyicisinde açarak ayırıcı tutarlılığını nokta kontrolü yapın ve ayraçların aynı göründüğünden emin olun.
  • İsteğe bağlı: Python ile tutarlı sütun sayılarını doğrulayın:
python -c "import csv,sys; p=sys.argv[1]; r=list(csv.reader(open(p,newline='',encoding='utf-8'))); print('rows',len(r),'max_cols',max(len(x) for x in r))" file.translated.csv

Eğer Unicode decode hatası alırsanız, CSV dosyasını önce UTF-8’e dönüştürün veya utf-8-sig deneyin:

python -c "import csv,sys; p=sys.argv[1]; r=list(csv.reader(open(p,newline='',encoding='utf-8-sig'))); print('rows',len(r),'max_cols',max(len(x) for x in r))" file.translated.csv

Yapı Kontrolleri

  • Satır sayısı değişmedi: orijinal ile aynı veri satırı sayısı.
  • Sütun sayısı değişmedi: her satırda aynı sütun sayısı var.
  • Ayraç değişmedi: virgül veya noktalı virgül, içe aktarıcınızla tutarlı.
  • Tırnaklar geçerli: virgül/yeni satır içeren alanlar düzgün şekilde tırnaklanmış.

Veri Bütünlüğü Kontrolleri

  • ID’ler ve anahtarlar değişmedi: sku, id, row_id, handle karşılaştırın.
  • URL’ler/e-postalar değişmedi: ek boşluk yok, alan adları çevrilmemiş.
  • Sayılar korundu: fiyatlar, miktarlar, ondalıklar aynı kaldı.
  • Yer tutucular korundu: {name}, {{count}}, %s, :value bozulmadan kaldı.

Çeviri Kalitesi Kontrolleri

  • Terim tutarlılığı: ana ürün terimleri tüm satırlarda aynı şekilde çevrildi.
  • Uzunluk kısıtlamalarına uyuldu: UI etiketleri çok uzun değil (uygulamalar için önemli).
  • Karışık dil kalıntısı yok: çevrilmesi gereken yaygın kaynak kelimeleri tarayın.

Yaygın CSV Çeviri Sorunlarını Giderme

1) Çeviriden sonra sütunlar kaydı

Belirtiler

  • İçe aktarıcı “yanlış sütun sayısı” diyor
  • Değerler yanlış başlıkların altında görünüyor

Olası nedenler

  • Çevrilen bir alan, kaçışsız bir tırnak işareti (") içeriyor
  • Çevrilen bir alan, virgül/yeni satır içeriyor ancak düzgün şekilde tırnak içine alınmamış

Çözüm

  • CSV’nin doğru tırnaklama kurallarını kullandığından emin olun (alanların etrafında çift tırnak; iç tırnaklar "" olarak kaçırılmalı).
  • Ham CSV metni çevirmek yerine, CSV’ye duyarlı bir iş akışı ile yeniden çevirin.

2) Bozulmuş karakterler (mojibake) örneğin ???? veya é

Olası nedenler

  • Dışa/içe aktarımda yanlış kodlama (UTF‑8 vs eski kodlama)

Çözüm

  • UTF‑8 olarak dışa aktarın.
  • Windows’ta Excel kullanılıyorsa, BOM’lu UTF‑8 deneyin.
  • Kodlamayı değiştirebilecek manuel kopyala/yapıştır işlemlerinden kaçının.

3) Başındaki sıfırlar kayboldu (00123123)

Olası nedenler

  • Tablo otomatik biçimlendirme (Excel/Sheets)

Çözüm

  • Düzenleme/dışa aktarma öncesinde kimlik sütunlarını metin olarak işleyin.
  • Verilerinizi yeniden yazmayan CSV’ye duyarlı bir iş akışı ile çeviriyi tercih edin.

4) Tarihler veya ondalıklar biçim değiştirdi

Örnekler

  • 1,234.561.234,56
  • 2026-01-0909/01/2026

Çözüm

  • Sayısal/tarih sütunlarını çevirmeyin.
  • Değerleri makine tarafından okunabilir tutun; yerelleştirilmiş görüntüleme biçimlerini UI katmanınızda, ham veride değil, uygulayın.

5) Güvenlik sorunu: CSV enjeksiyonu (Excel formülleri)

Çevrilen bir hücre =, +, - veya @ ile başlarsa, dosya Excel’de açıldığında formül olarak değerlendirilebilir.

Çözüm

  • Tablolarda açılacak CSV’ler için, riskli hücreleri tek tırnak (') ile önekleyerek kaçırın veya dışa aktarım sırasında temizleyin.
  • Kullanıcıdan gelen metni çeviri/içe aktarım öncesinde baştaki formül karakterlerinden arındırmayı düşünün.
  • Referans: https://owasp.org/www-community/attacks/CSV_Injection

SSS

Bir CSV’yi sütunları bozmadan nasıl çevirebilirim?

CSV’ye duyarlı bir iş akışı kullanın ve içe aktarmadan önce yapıyı doğrulayın:

  • CSV’ye duyarlı bir yöntemle çeviri yapın (Yöntem 1)
  • Satır/sütun sayıları ve geçerli tırnaklamayı doğrulamak için “Hızlı kontroller” + QA kontrol listesini çalıştırın
  • CSV’niz hassas alanlar ile kullanıcıya yönelik metni karıştırıyorsa, “Gelişmiş İş Akışı — Çeviri Tablosu”nu kullanın

Bir CSV’de yalnızca bir sütunu çevirebilir miyim?

Evet. En güvenli yöntem, bir çeviri tablosu oluşturmak (row_id + source_text + context), yalnızca bunu çevirmek ve ardından geri eşlemektir. Bu, kimliklerin ve sayısal alanların yanlışlıkla değiştirilmesini önler.

Başlık satırını çevirmeli miyim?

Kullanım amacınıza bağlıdır:

  • Başlıkları çevirin eğer CSV insanlar tarafından okunacaksa (raporlar, dışa aktarımlar).
  • Başlıkları çevirmeyin eğer sisteminiz/aktarıcınız belirli alan adlarını bekliyorsa (e-ticaret aktarımları, veritabanları, uygulamalar).

CSV’m virgül yerine noktalı virgül (;) kullanıyor. Bu sorun olur mu?

Evet, ancak aracınızın/aktarıcınızın tutarlı şekilde aynı ayırıcıyı kullandığından emin olun. Birçok Avrupa yerelinde varsayılan olarak noktalı virgül kullanılır. Ayırıcı uyumsuzluğu, CSV aktarımlarının başarısız olmasının yaygın bir nedenidir.

Hücrelerde çok satırlı metin (satır sonları) nasıl işlenir?

CSV’de çok satırlı hücrelere izin verilir, ancak bunlar düzgün şekilde tırnaklanmalıdır. Çevrilen içeriğiniz satır sonları içeriyorsa, satır kırılmalarını önlemek için CSV’yi doğru şekilde işleyebilen bir çeviri aracı kullanmanız şiddetle önerilir.

Araçlar

  • OpenL CSV Translator Online (örnek CSV uyumlu araç): https://doc.openl.io/translate/csv
  • Excel iş akışları için: ayrıca bkz. “How to Translate Excel Online”: /how-to-translate-excel-online
  • Markdown içeriği için: “How to Translate Markdown”: /how-to-translate-markdown
  • Değişmeden kalması gerekenler için kurallar gerekiyorsa: “What Not to Translate”: /what-not-to-translate

Özet

Bir CSV dosyasını güvenli şekilde çevirmek için yapıyı koruyun (ayırıcı, tırnaklar, kodlama) ve “çevirilmemesi gereken” alanları (kimlikler, URL’ler, yer tutucular, sayılar) koruyun. CSV uyumlu iş akışlarını tercih edin ve içe aktarmadan önce QA kontrol listesi ile doğrulayın.