Cara Menerjemahkan File CSV
TABLE OF CONTENTS
CSV tampak sederhana, tetapi proses penerjemahannya bisa cepat bermasalah: kolom bisa bergeser, tanda kutip rusak, karakter non-Latin menjadi kacau, atau ID malah “diterjemahkan” menjadi sesuatu yang tidak bisa digunakan. Panduan ini menunjukkan alur kerja yang aman dan praktis untuk menerjemahkan file CSV sambil menjaga strukturnya, dilengkapi dengan daftar periksa QA dan solusi untuk masalah umum.
Jika Anda ingin opsi paling sederhana, gunakan penerjemah yang paham CSV (Metode 1) daripada menyalin teks CSV ke penerjemah teks umum.
Sebelum Anda mengimpor file hasil terjemahan, jalankan daftar periksa QA dalam panduan ini untuk mendeteksi masalah kolom/pengodean sejak awal.
Mengapa Penerjemahan CSV Itu Rumit
CSV memang berupa teks biasa, tetapi memiliki aturan struktur:
- Pemisah: biasanya koma (
,), kadang titik koma (;) di beberapa lokal. - Tanda kutip: nilai teks bisa dibungkus tanda kutip ganda (
"). Tanda kutip di dalam nilai harus di-escape (umumnya""). - Baris baru di dalam sel: diperbolehkan, asalkan sel tersebut dikutip dengan benar.
- Pengodean: file Anda bisa saja UTF‑8, UTF‑8 dengan BOM, atau pengodean lama.
- Tipe data campuran: angka, tanggal, SKU, ID, URL, dan placeholder sering kali harus tetap tidak berubah.
Alat penerjemah yang memperlakukan CSV sebagai “hanya teks” bisa saja tanpa sengaja mengubah karakter struktur (pemisah/tanda kutip/baris baru) atau mengubah tipe data (tanggal/angka), sehingga menyebabkan impor menjadi rusak.
Sebelum Memulai
Langkah cepat berikut mencegah sebagian besar kerusakan pada penerjemahan CSV:
-
Buat salinan cadangan
- Simpan
file.csv→file.original.csv. - Jika CSV berisi data pelanggan, hapus atau anonimisasi kolom sensitif sebelum mengunggah ke mana pun.
- Simpan
-
Identifikasi kolom yang “tidak boleh diterjemahkan” Biarkan kolom berikut tetap apa adanya:
- ID, key, SKU, nomor pesanan
- URL, email, path file
- Placeholder dan variabel (
{name},{{amount}},%s,:count) - Tag, nilai enum, kode status internal (
PAID,REFUNDED) - Kolom apa pun yang digunakan oleh kode (API key, JSON blob, potongan HTML)
- Jika Anda ragu, lihat: /what-not-to-translate
-
Konfirmasi pemisah, aturan kutipan, dan akhiran baris
- Jika Anda membuka CSV dan “terlihat seperti satu kolom”, kemungkinan pemisahnya salah.
- CSV standar biasanya menggunakan pemisah
,dan kutipan". (lihat RFC 4180: https://www.rfc-editor.org/rfc/rfc4180).
-
Konfirmasi encoding
- Disarankan menggunakan UTF‑8 untuk konten multibahasa.
- Jika Anda akan membuka CSV terjemahan di Excel pada Windows, Anda mungkin perlu UTF‑8 dengan BOM agar karakter tidak rusak.
- Penjelasan tentang BOM: https://unicode.org/faq/utf_bom.html
-
Opsional tapi direkomendasikan: tambahkan
row_idyang stabil Untuk CSV yang akan diimpor ulang atau dicocokkan di kemudian hari, tambahkan kolom kunci unik (misal,row_id) agar Anda bisa memastikan baris tidak berubah urutan.
Metode 1 — Penerjemah online yang mendukung CSV (direkomendasikan)
Penerjemah yang mendukung CSV memperlakukan CSV sebagai data terstruktur, bukan “hanya teks”, sehingga lebih kecil kemungkinan merusak pemisah, kutipan, atau tata letak baris/kolom. Selalu jalankan daftar periksa QA sebelum mengimpor.
Perbandingan opsi netral
| Opsi | Kelebihan | Kekurangan | Terbaik untuk |
|---|---|---|---|
| OpenL CSV Translator Online | Dibuat khusus untuk struktur CSV; unggah/unduh cepat | Proses berbasis unggah; kurang cocok untuk data sensitif | Draf CSV cepat dan andal |
| DeepL / Google Cloud / AWS Translate (API) | Bisa diotomasi; kualitas baik; cocok untuk batch pipeline | Butuh rekayasa + penanganan CSV yang hati-hati | Tim yang menerjemahkan banyak file |
| CAT tools (Smartling, Lokalise, Phrase, dll.) | Terminologi/QA, kolaborasi | Lebih banyak pengaturan + biaya | Lokalisasi produk/UI skala besar |
| Rumus spreadsheet (Sheets/Excel) | Tidak perlu alat tambahan | Mudah salah format atau merusak CSV | File kecil, risiko rendah saja |
Batasan dan catatan
- Jangan unggah data sensitif yang tidak diizinkan untuk dibagikan. Jika perlu, ekspor terlebih dahulu file CSV yang sudah disaring.
- Jika sistem Anda memerlukan nama header tertentu, jangan terjemahkan baris header.
- Selalu jalankan daftar periksa QA sebelum mengimpor CSV yang sudah diterjemahkan.
- Jika Anda menggunakan alat daring, periksa batas unggahan dan format yang didukung di halaman alat tersebut.
Langkah demi langkah
-
Buka alatnya
-
Pilih bahasa
- Pilih bahasa target Anda.
-
Unggah file CSV Anda
- Unggah atau seret dan lepas file
.csvAnda. - Jika CSV Anda berisi beberapa kolom teks, penerjemah akan menerjemahkan kontennya sambil menjaga pemisah dan tanda kutip tetap aman.
- Unggah atau seret dan lepas file
-
Unduh CSV yang sudah diterjemahkan
- Simpan dengan nama yang jelas seperti
products_es.csv.
- Simpan dengan nama yang jelas seperti
Praktik terbaik untuk hasil yang lebih baik
- Terjemahkan hanya kolom yang terlihat oleh pengguna: judul produk, deskripsi, string antarmuka, catatan untuk pelanggan.
- Jaga kode tetap stabil: jangan terjemahkan
status,type,sku,category_id,url,handle.
Metode 2 — Google Sheets atau Excel
Alur kerja ini bisa digunakan, tetapi lebih mudah terjadi perubahan format, pemisah, atau tipe data secara tidak sengaja.
Google Sheets (file kecil)
-
Impor CSV
- Google Sheets → File → Impor → Unggah.
- Jika data Anda muncul dalam satu kolom, pilih pemisah yang benar (koma atau titik koma).
-
Lindungi kolom “jangan diterjemahkan”
- Format kolom ID sebagai Teks biasa terlebih dahulu (misal: SKU, order id) untuk mencegah
00123→123.
- Format kolom ID sebagai Teks biasa terlebih dahulu (misal: SKU, order id) untuk mencegah
-
Terjemahkan hanya kolom target
- Gunakan
=GOOGLETRANSLATE(A2,"en","es")di kolom baru, lalu Salin → Tempel khusus → Hanya nilai. - Jangan jalankan rumus terjemahan pada kolom yang berisi URL, placeholder, kode, atau rumus.
- Gunakan
-
Ekspor
- File → Download → Nilai yang dipisahkan koma (.csv) (Google Sheets mengekspor dalam UTF‑8).
Excel (Windows) — cara impor dan ekspor UTF‑8 dengan benar
Excel adalah tempat kesalahan encoding paling sering terjadi. Ikuti langkah-langkah berikut untuk menghindari karakter kacau dan masalah pemisah.
A) Impor CSV tanpa karakter kacau
- Data → From Text/CSV
- Pada dialog impor:
- File Origin / Encoding: pilih 65001: Unicode (UTF‑8) (penamaan bisa berbeda tergantung versi)
- Delimiter: Koma (
,) atau Titik koma (;) sesuai dengan file Anda
- Klik Load (atau Transform Data jika Anda perlu memaksa kolom ID menjadi Text)
B) Ekspor sebagai UTF‑8 (dan kapan menggunakan BOM)
- File → Save As
- Untuk Save as type, pilih:
- CSV UTF‑8 (Comma delimited) (*.csv) (disarankan untuk teks multibahasa)
- Jika sistem downstream Anda menolak BOM, ekspor UTF‑8 tanpa BOM menggunakan skrip (lihat “Batch Processing”) atau simpan ulang dengan editor kode.
Kesalahan umum
- Auto-formatting: spreadsheet dapat mengubah ID seperti
00123menjadi123. - Konversi tanggal:
2026-01-09bisa tampil berbeda dan diekspor tidak konsisten. - Perubahan delimiter: ekspor bisa berubah menjadi
;tergantung pengaturan lokal.
Jika Anda menggunakan metode ini, bagian QA di bawah ini wajib diikuti.
Alur Kerja Lanjutan — Translation Table
Jika CSV Anda berisi campuran data “diterjemahkan” dan “tidak diterjemahkan”, buat tabel terjemahan terpisah agar proses terjemahan tidak menyentuh kolom sensitif.
Langkah 1: Buat translation table
Buat CSV (atau sheet) baru seperti berikut:
| row_id | field | source_text | context | translated_text |
|---|---|---|---|---|
| 101 | product_title | Wireless Mouse | E-commerce product title | Mouse Nirkabel |
| 101 | product_desc | Silent clicks, 2-year battery | Short description | Klik senyap, baterai tahan 2 tahun |
| 102 | product_title | USB-C Charger | E-commerce product title | Charger USB-C |
| 102 | product_desc | Fast charging for phones and tablets | Short description | Pengisian daya cepat untuk ponsel dan tablet |
| 103 | product_title | Stainless Steel Water Bottle | Product title | Botol Minum Stainless Steel |
| 103 | product_desc | BPA-free, keeps drinks cold 24h | Short description | Bebas BPA, minuman tetap dingin 24 jam |
| 104 | product_title | Noise-Canceling Headphones | Product title | Headphone Peredam Kebisingan |
| 104 | product_desc | Over-ear, Bluetooth 5.3 | Short description | Over-ear, 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”)
#### Contoh (pola join/update SQL)
```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 <> '';
Pemrosesan Batch (beberapa file CSV)
Jika Anda perlu menerjemahkan banyak file CSV, hindari langkah manual di spreadsheet dan gunakan pipeline yang dapat diulang:
-
Standarisasi input
- Normalisasi ke UTF‑8 (atau UTF‑8 dengan BOM jika importer Anda membutuhkannya).
- Pastikan setiap file memiliki kunci yang stabil (
row_id/id) untuk pemetaan.
-
Hasilkan tabel terjemahan per file
- Ekstrak hanya kolom yang perlu diterjemahkan ke dalam
translation_table_<file>.csv. - Tambahkan kolom
source_filejika Anda ingin satu tabel gabungan untuk semua file.
- Ekstrak hanya kolom yang perlu diterjemahkan ke dalam
-
Terjemahkan tabel
- Gunakan workflow API atau alat yang mendukung CSV, file per file.
-
Gabungkan hasil + ekspor
- Peta berdasarkan
row_id + field(dansource_filejika digunakan). - Ekspor dengan encoding yang diharapkan oleh sistem downstream Anda.
- Peta berdasarkan
Loop starter minimal (proses banyak file secara konsisten):
for f in ./input/*.csv; do
base="$(basename "$f" .csv)"
# 1) ekstrak tabel terjemahan (implementasi sesuai skema Anda)
# 2) terjemahkan translation_table_${base}.csv -> translation_table_${base}_translated.csv
# 3) gabungkan kembali dan ekspor ${base}_translated.csv
echo "Processed: $base"
done
Daftar Periksa QA Pasca-Terjemahan
Setelah Anda mengunduh CSV hasil terjemahan, lakukan pengecekan berikut sebelum mengimpor:
Pemeriksaan cepat
- Bandingkan jumlah baris (macOS/Linux):
wc -l file.original.csv file.translated.csv - Periksa konsistensi delimiter dengan membuka file di editor teks biasa dan memastikan pemisah terlihat sama.
- Opsional: verifikasi jumlah kolom yang konsisten dengan Python:
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
Jika Anda mendapatkan error Unicode decode, ubah CSV ke UTF-8 terlebih dahulu, atau coba utf-8-sig:
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
Pemeriksaan Struktur
- Jumlah baris tidak berubah: jumlah baris data sama dengan file asli.
- Jumlah kolom tidak berubah: setiap baris memiliki jumlah kolom yang sama.
- Delimiter tidak berubah: koma vs titik koma konsisten dengan importer Anda.
- Kutipan valid: kolom dengan koma/baris baru tetap dikutip dengan benar.
Pemeriksaan Integritas Data
- ID dan kunci tidak berubah: bandingkan
sku,id,row_id,handle. - URL/email tidak berubah: tidak ada spasi tambahan, domain tidak diterjemahkan.
- Angka terjaga: harga, jumlah, desimal tetap sama.
- Placeholder terjaga:
{name},{{count}},%s,:valuetetap utuh.
Pemeriksaan Kualitas Terjemahan
- Terminologi konsisten: istilah produk utama diterjemahkan dengan cara yang sama di seluruh baris.
- Batas panjang dihormati: label UI tidak terlalu panjang (penting untuk aplikasi).
- Tidak ada sisa campuran bahasa: periksa kata sumber umum yang seharusnya diterjemahkan.
Pemecahan Masalah Umum pada Terjemahan CSV
1) Kolom bergeser setelah diterjemahkan
Gejala
- Importer Anda mengatakan “jumlah kolom salah”
- Nilai muncul di bawah header yang salah
Penyebab yang mungkin
- Kolom terjemahan berisi tanda kutip yang tidak di-escape (
") - Kolom terjemahan berisi koma/baris baru tetapi tidak dikutip dengan benar
Solusi
- Pastikan CSV menggunakan aturan kutipan yang benar (tanda kutip ganda di sekitar kolom; tanda kutip di dalam kolom di-escape sebagai
""). - Terjemahkan ulang dengan alur kerja yang memahami CSV (bukan menerjemahkan teks CSV mentah).
2) Karakter rusak (mojibake) seperti ???? atau é
Penyebab yang mungkin
- Encoding salah saat ekspor/impor (UTF‑8 vs encoding lama)
Solusi
- Ekspor sebagai UTF‑8.
- Jika menggunakan Excel di Windows, coba UTF‑8 dengan BOM.
- Hindari copy/paste manual yang bisa mengubah encoding.
3) Angka nol di depan hilang (00123 → 123)
Penyebab yang mungkin
- Pemformatan otomatis spreadsheet (Excel/Sheets)
Solusi
- Perlakukan kolom ID sebagai teks sebelum mengedit/mengekspor.
- Lebih baik menerjemahkan dengan alur kerja yang memahami CSV agar data tidak berubah tipe.
4) Format tanggal atau desimal berubah
Contoh
1,234.56menjadi1.234,562026-01-09menjadi09/01/2026
Solusi
- Jangan terjemahkan kolom angka/tanggal.
- Biarkan nilai tetap bisa dibaca mesin; lokalisa format tampilan di lapisan UI, bukan di data mentah.
5) Masalah keamanan: injeksi CSV (rumus Excel)
Jika kolom terjemahan dimulai dengan =, +, -, atau @, membuka file di Excel bisa menjalankan rumus.
Solusi
- Untuk CSV yang akan dibuka di spreadsheet, escape kolom berisiko dengan menambahkan tanda kutip tunggal (
') di depan atau sanitasi saat ekspor. - Pertimbangkan untuk menghapus karakter rumus di awal dari teks yang diberikan pengguna sebelum terjemahan/impor.
- Referensi: https://owasp.org/www-community/attacks/CSV_Injection
FAQ
Bagaimana cara menerjemahkan CSV tanpa merusak kolom?
Gunakan alur kerja yang memahami CSV dan verifikasi struktur sebelum impor:
- Terjemahkan dengan metode yang memahami CSV (Metode 1)
- Jalankan “Quick checks” + daftar QA untuk memastikan jumlah baris/kolom dan kutipan valid
- Jika CSV Anda mencampur kolom sensitif dan teks untuk pengguna, gunakan “Advanced Workflow — Translation Table”
Bisakah saya menerjemahkan hanya satu kolom dalam CSV?
Bisa. Cara paling aman adalah membuat tabel terjemahan (row_id + source_text + context), hanya menerjemahkan bagian itu, lalu memetakan kembali hasilnya. Ini mencegah perubahan tidak sengaja pada ID dan kolom numerik.
Perlukah saya menerjemahkan baris header?
Tergantung kebutuhan Anda:
- Terjemahkan header jika CSV akan dibaca oleh manusia (laporan, ekspor).
- Jangan terjemahkan header jika sistem/importer Anda membutuhkan nama kolom tertentu (impor e-commerce, basis data, aplikasi).
CSV saya menggunakan titik koma (;) alih-alih koma. Apakah itu boleh?
Boleh, asalkan alat/importer Anda selalu menggunakan pemisah yang sama. Banyak lokal Eropa memang menggunakan titik koma secara default. Ketidaksesuaian delimiter adalah penyebab umum gagalnya impor CSV.
Bagaimana cara menangani teks multibaris (line break) dalam sel?
Sel multibaris diperbolehkan dalam CSV, tetapi harus diberi tanda kutip dengan benar. Jika hasil terjemahan Anda mengandung line break, sangat disarankan menggunakan penerjemah yang paham CSV agar tidak terjadi pemecahan baris yang tidak diinginkan.
Alat
- OpenL CSV Translator Online (contoh alat yang paham CSV): https://doc.openl.io/translate/csv
- Untuk alur kerja Excel: lihat juga “Cara Menerjemahkan Excel Online”: /how-to-translate-excel-online
- Untuk konten Markdown: “Cara Menerjemahkan Markdown”: /how-to-translate-markdown
- Jika Anda butuh aturan tentang apa yang tidak boleh diterjemahkan: “Apa yang Tidak Boleh Diterjemahkan”: /what-not-to-translate
Ringkasan
Agar menerjemahkan file CSV dengan aman, jaga struktur (delimiter, tanda kutip, encoding) dan lindungi kolom “jangan diterjemahkan” (ID, URL, placeholder, angka). Utamakan alur kerja yang paham CSV, lalu verifikasi dengan daftar periksa QA sebelum impor.


