วิธีแปลไฟล์ CSV
TABLE OF CONTENTS
CSV ดูเหมือนจะง่าย แต่การแปลอาจเกิดข้อผิดพลาดได้อย่างรวดเร็ว: คอลัมน์อาจเลื่อน ตำแหน่งเครื่องหมายคำพูดอาจเสีย อักขระที่ไม่ใช่ละตินอาจกลายเป็นตัวอักษรผิดเพี้ยน หรือรหัส ID อาจถูก “แปล” เป็นสิ่งที่ใช้งานไม่ได้ คู่มือนี้จะแสดงขั้นตอนการทำงานที่ปลอดภัยและใช้งานได้จริงสำหรับการแปลไฟล์ CSV โดยรักษาโครงสร้างไว้ พร้อมรายการตรวจสอบ QA และวิธีแก้ไขปัญหาทั่วไป
หากคุณต้องการตัวเลือกที่ง่ายที่สุด ให้ใช้เครื่องมือแปลที่รองรับ CSV (วิธีที่ 1) แทนการคัดลอกข้อความ CSV ไปยังเครื่องมือแปลข้อความทั่วไป
ก่อนนำเข้าไฟล์ที่แปลแล้ว ให้ดำเนินการตามรายการตรวจสอบ QA ในคู่มือนี้เพื่อจับปัญหาคอลัมน์/การเข้ารหัสตั้งแต่เนิ่นๆ
สิ่งที่ทำให้การแปล CSV ยุ่งยาก
CSV เป็นข้อความธรรมดา แต่มีข้อกำหนดโครงสร้างดังนี้:
- ตัวคั่น: โดยปกติคือเครื่องหมายจุลภาค (
,) บางครั้งใช้เครื่องหมายอัฒภาค (;) ในบางภูมิภาค - เครื่องหมายคำพูด: ค่าข้อความอาจถูกล้อมด้วยเครื่องหมายคำพูดคู่ (
"). หากมีเครื่องหมายคำพูดภายในค่า ต้อง escape (โดยทั่วไปใช้"") - บรรทัดใหม่ภายในเซลล์: สามารถใช้ได้ แต่ต้องล้อมเซลล์ด้วยเครื่องหมายคำพูดอย่างถูกต้อง
- การเข้ารหัส: ไฟล์ของคุณอาจเป็น UTF‑8, UTF‑8 พร้อม BOM หรือการเข้ารหัสแบบเก่า
- ประเภทข้อมูลผสม: ตัวเลข วันที่ SKU รหัส ID URL และตัวแปร placeholder มักต้องคงเดิม
เครื่องมือแปลที่มองว่า CSV เป็น “แค่ข้อความ” อาจแก้ไขอักขระโครงสร้างโดยไม่ได้ตั้งใจ (ตัวคั่น/เครื่องหมายคำพูด/บรรทัดใหม่) หรือเปลี่ยนประเภทข้อมูล (วันที่/ตัวเลข) ส่งผลให้การนำเข้าเสียหาย
ก่อนเริ่มต้น
ขั้นตอนง่ายๆ เหล่านี้ช่วยป้องกันปัญหาการแปล CSV ส่วนใหญ่:
-
สำรองไฟล์ไว้ก่อน
- บันทึก
file.csv→file.original.csv - หาก CSV มีข้อมูลลูกค้า ให้ลบหรือทำข้อมูลสำคัญให้เป็นนิรนามก่อนอัปโหลดไปยังที่ใดก็ตาม
- บันทึก
-
ระบุฟิลด์ที่ “ห้ามแปล” ฟิลด์เหล่านี้ต้องคงเดิม:
- รหัส ID, คีย์, SKU, หมายเลขคำสั่งซื้อ
- URL, อีเมล, เส้นทางไฟล์
- Placeholder และตัวแปร (
{name},{{amount}},%s,:count) - แท็ก, ค่า enum, รหัสสถานะภายใน (
PAID,REFUNDED) - ฟิลด์ใดๆ ที่ใช้โดยโค้ด (API keys, JSON blobs, HTML snippets)
- หากไม่แน่ใจ ดูที่: /what-not-to-translate
-
ยืนยันตัวคั่น, กฎการใช้เครื่องหมายอัญประกาศ และการจบบรรทัด
- หากคุณเปิดไฟล์ CSV แล้ว “ดูเหมือนมีแค่คอลัมน์เดียว” อาจเป็นเพราะตัวคั่นไม่ถูกต้อง
- ไฟล์ CSV ทั่วไปจะใช้ตัวคั่น
,และเครื่องหมายอัญประกาศ"(ดู RFC 4180: https://www.rfc-editor.org/rfc/rfc4180)
-
ยืนยันการเข้ารหัสไฟล์
- แนะนำให้ใช้ UTF‑8 สำหรับเนื้อหาหลายภาษา
- หากคุณจะเปิดไฟล์ CSV ที่แปลแล้วใน Excel บน Windows อาจจำเป็นต้องใช้ UTF‑8 with BOM เพื่อป้องกันปัญหาตัวอักษรแสดงผลผิดเพี้ยน
- ข้อมูลพื้นฐานเกี่ยวกับ BOM: https://unicode.org/faq/utf_bom.html
-
ไม่บังคับแต่แนะนำ: เพิ่ม
row_idที่คงที่ สำหรับไฟล์ CSV ที่จะนำกลับเข้าใช้งานหรือจับคู่ในภายหลัง ให้เพิ่มคอลัมน์คีย์ที่ไม่ซ้ำกัน (เช่นrow_id) เพื่อให้คุณสามารถตรวจสอบได้ว่าแถวไม่ได้ถูกจัดเรียงใหม่
วิธีที่ 1 — ตัวแปลภาษาออนไลน์ที่รองรับ CSV (แนะนำ)
ตัวแปลภาษาออนไลน์ที่รองรับ CSV จะมองไฟล์ CSV เป็นข้อมูลที่มีโครงสร้าง ไม่ใช่ “แค่ข้อความ” ดังนั้นจึงมีโอกาสน้อยที่จะทำให้ตัวคั่น, เครื่องหมายอัญประกาศ หรือรูปแบบแถว/คอลัมน์เสียหาย ควรตรวจสอบตามรายการ QA ทุกครั้งก่อนนำเข้าไฟล์
เปรียบเทียบตัวเลือกแบบเป็นกลาง
| ตัวเลือก | จุดแข็ง | ข้อแลกเปลี่ยน | เหมาะสำหรับ |
|---|---|---|---|
| OpenL CSV Translator Online | ออกแบบมาสำหรับโครงสร้าง CSV; อัปโหลด/ดาวน์โหลดรวดเร็ว | เวิร์กโฟลว์แบบอัปโหลด; ไม่เหมาะกับข้อมูลที่มีความอ่อนไหว | ร่างแปล CSV ที่รวดเร็วและเชื่อถือได้ |
| DeepL / Google Cloud / AWS Translate (API) | ทำงานอัตโนมัติได้; คุณภาพดี; เหมาะกับกระบวนการแบบแบทช์ | ต้องใช้วิศวกรรม + การจัดการ CSV อย่างระมัดระวัง | ทีมที่แปลไฟล์จำนวนมาก |
| CAT tools (Smartling, Lokalise, Phrase, ฯลฯ) | การจัดการคำศัพท์/QA, การทำงานร่วมกัน | ต้องตั้งค่ามากขึ้น + มีค่าใช้จ่าย | การแปลผลิตภัณฑ์/UI ในระดับใหญ่ |
| สูตรในสเปรดชีต (Sheets/Excel) | ไม่ต้องใช้เครื่องมือเพิ่มเติม | ง่ายต่อการจัดรูปแบบอัตโนมัติหรือทำให้ CSV เสียหาย | ไฟล์ขนาดเล็กที่มีความเสี่ยงต่ำเท่านั้น |
ข้อจำกัดและหมายเหตุ
- ห้ามอัปโหลดข้อมูลที่เป็นความลับซึ่งคุณไม่ได้รับอนุญาตให้แชร์ หากจำเป็น ให้ส่งออกไฟล์ CSV ที่ผ่านการลบข้อมูลสำคัญออกก่อน
- หากระบบของคุณต้องการชื่อหัวคอลัมน์เฉพาะ อย่าแปลแถวหัวคอลัมน์
- ตรวจสอบรายการ QA checklist ทุกครั้งก่อนนำเข้าไฟล์ CSV ที่แปลแล้ว
- หากคุณใช้เครื่องมือออนไลน์ ให้ตรวจสอบขีดจำกัดการอัปโหลดและรูปแบบไฟล์ที่รองรับในหน้าของเครื่องมือนั้น
ขั้นตอนทีละขั้น
-
เปิดเครื่องมือ
- ตัวอย่าง: https://doc.openl.io/translate/csv
-
เลือกภาษา
- เลือกภาษาปลายทางที่คุณต้องการ
-
อัปโหลดไฟล์ CSV ของคุณ
- อัปโหลดหรือลากและวางไฟล์
.csvของคุณ - หากไฟล์ CSV ของคุณมีหลายคอลัมน์ข้อความ ตัวแปลจะแปลเฉพาะเนื้อหาโดยคงตัวคั่นและเครื่องหมายอัญประกาศไว้ตามเดิม
- อัปโหลดหรือลากและวางไฟล์
-
ดาวน์โหลดไฟล์ CSV ที่แปลแล้ว
- บันทึกไฟล์โดยใช้ชื่อที่ชัดเจน เช่น
products_es.csv
- บันทึกไฟล์โดยใช้ชื่อที่ชัดเจน เช่น
แนวทางปฏิบัติที่ดีที่สุดเพื่อผลลัพธ์ที่ดีกว่า
- แปลเฉพาะคอลัมน์ที่ผู้ใช้เห็น: ชื่อสินค้า คำอธิบาย ข้อความใน UI หมายเหตุสำหรับลูกค้า
- คงรหัสให้คงเดิม: อย่าแปล
status,type,sku,category_id,url,handle
วิธีที่ 2 — Google Sheets หรือ Excel
เวิร์กโฟลว์นี้สามารถใช้ได้ แต่มีโอกาสสูงที่จะเปลี่ยนรูปแบบ ตัวคั่น หรือประเภทข้อมูลโดยไม่ตั้งใจ
Google Sheets (ไฟล์ขนาดเล็ก)
-
นำเข้าไฟล์ CSV
- Google Sheets → ไฟล์ → นำเข้า → อัปโหลด
- หากข้อมูลของคุณแสดงในคอลัมน์เดียว ให้เลือก ตัวคั่น ที่ถูกต้อง (comma หรือ semicolon)
-
ป้องกันคอลัมน์ “do not translate”
- จัดรูปแบบคอลัมน์ ID เป็น ข้อความธรรมดา ก่อน (เช่น SKU, order id) เพื่อป้องกัน
00123→123
- จัดรูปแบบคอลัมน์ ID เป็น ข้อความธรรมดา ก่อน (เช่น SKU, order id) เพื่อป้องกัน
-
แปลเฉพาะคอลัมน์เป้าหมาย
- ใช้
=GOOGLETRANSLATE(A2,"en","es")ในคอลัมน์ ใหม่ จากนั้น คัดลอก → วางแบบพิเศษ → เฉพาะค่า - อย่าใช้สูตรแปลในคอลัมน์ที่มี URL, ตัวแปร, โค้ด หรือสูตร
- ใช้
-
ส่งออก
- ไฟล์ → ดาวน์โหลด → ค่าแบ่งด้วยจุลภาค (.csv) (Google Sheets ส่งออกเป็น UTF‑8)
Excel (Windows) — วิธีนำเข้าและส่งออก UTF‑8 อย่างถูกต้อง
Excel เป็นจุดที่เกิดข้อผิดพลาดในการเข้ารหัสบ่อยที่สุด ใช้ขั้นตอนเหล่านี้เพื่อหลีกเลี่ยงปัญหาตัวอักษรผิดเพี้ยนและตัวคั่น
A) นำเข้า CSV โดยไม่ให้ตัวอักษรผิดเพี้ยน
- Data → From Text/CSV
- ในหน้าต่างนำเข้า:
- File Origin / Encoding: เลือก 65001: Unicode (UTF‑8) (ข้อความอาจแตกต่างกันตามเวอร์ชัน)
- Delimiter: Comma (
,) หรือ Semicolon (;) ให้ตรงกับไฟล์ของคุณ
- คลิก Load (หรือ Transform Data หากต้องการบังคับให้คอลัมน์ ID เป็น Text)
B) ส่งออกเป็น UTF‑8 (และเมื่อใดควรใช้ BOM)
- File → Save As
- สำหรับ Save as type ให้เลือก:
- CSV UTF‑8 (Comma delimited) (*.csv) (แนะนำสำหรับข้อความหลายภาษา)
- หากระบบปลายทางไม่รองรับ BOM ให้ส่งออก UTF‑8 โดยไม่มี BOM ด้วยสคริปต์ (ดู “Batch Processing”) หรือบันทึกใหม่ด้วย code editor
ข้อผิดพลาดที่พบบ่อย
- Auto-formatting: ตารางอาจแปลง ID เช่น
00123เป็น123 - Date conversion:
2026-01-09อาจแสดงผลต่างกันและส่งออกไม่ตรงกัน - Delimiter changes: การส่งออกอาจเปลี่ยนเป็น
;ตามการตั้งค่าภูมิภาค
หากคุณใช้วิธีนี้ ส่วน QA ด้านล่างเป็นสิ่งจำเป็น
ขั้นตอนการทำงานขั้นสูง — ตารางคำแปล
หาก CSV ของคุณมีข้อมูลที่ต้อง “แปล” และ “ไม่ต้องแปล” ผสมกัน ให้สร้าง translation table แยกต่างหากเพื่อไม่ให้การแปลแตะต้องฟิลด์ที่ละเอียดอ่อน
ขั้นตอนที่ 1: สร้างตารางคำแปล
สร้าง CSV (หรือชีต) ใหม่ เช่น:
| row_id | field | source_text | context | translated_text |
|---|---|---|---|---|
| 101 | product_title | Wireless Mouse | E-commerce product title | เมาส์ไร้สาย |
| 101 | product_desc | Silent clicks, 2-year battery | Short description | คลิกเงียบ แบตเตอรี่ใช้งานได้ 2 ปี |
| 102 | product_title | USB-C Charger | E-commerce product title | ที่ชาร์จ USB-C |
| 102 | product_desc | Fast charging for phones and tablets | Short description | ชาร์จเร็วสำหรับโทรศัพท์และแท็บเล็ต |
| 103 | product_title | Stainless Steel Water Bottle | Product title | ขวดน้ำสแตนเลสสตีล |
| 103 | product_desc | BPA-free, keeps drinks cold 24h | Short description | ปราศจาก BPA รักษาความเย็นเครื่องดื่มได้นาน 24 ชั่วโมง |
| 104 | product_title | Noise-Canceling Headphones | Product title | หูฟังตัดเสียงรบกวน |
| 104 | product_desc | Over-ear, Bluetooth 5.3 | Short description | แบบครอบหู, Bluetooth 5.3 |
ขั้นตอนที่ 2: แปลเฉพาะ source_text
แปลคอลัมน์ source_text ด้วยเวิร์กโฟลว์ที่คุณเลือก แล้วใส่ผลลัพธ์ลงใน translated_text (โดยทั่วไปแล้วเครื่องมือแปลออนไลน์ที่รองรับ CSV มักปลอดภัยกว่าสเปรดชีต)
ขั้นตอนที่ 3: นำคำแปลกลับไปแมป
เชื่อม (join) ด้วย row_id + field แล้วเขียนข้อความที่แปลแล้วกลับไปยังชุดข้อมูลต้นฉบับ วิธีนี้ช่วยให้มั่นใจว่า ID ราคา และฟิลด์ของระบบจะไม่ผ่านการแปล
ตัวอย่าง (Python + pandas)
import pandas as pd
# Original data (keep types stable; treat IDs as strings)
orig = pd.read_csv("products.csv", dtype=str, keep_default_na=False)
# Translation table after translation
tt = pd.read_csv("translation_table_es.csv", dtype=str, keep_default_na=False)
# Reshape to one row per row_id (wide format)
wide = (
tt.pivot(index="row_id", columns="field", values="translated_text")
.add_suffix("__translated")
.reset_index()
)
merged = orig.merge(wide, on="row_id", how="left")
# Write back (example fields)
merged["product_title"] = merged["product_title__translated"].where(
merged["product_title__translated"].ne(""), merged["product_title"]
)
merged["product_desc"] = merged["product_desc__translated"].where(
merged["product_desc__translated"].ne(""), merged["product_desc"]
)
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”)
#### ตัวอย่าง (SQL join/update pattern)
```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 <> '';
การประมวลผลแบบกลุ่ม (หลายไฟล์ CSV)
ถ้าคุณต้องการแปลไฟล์ CSV จำนวนมาก ให้หลีกเลี่ยงขั้นตอนสเปรดชีตแบบแมนนวลและใช้กระบวนการที่ทำซ้ำได้:
-
มาตรฐานอินพุต
- แปลงเป็น UTF‑8 (หรือ UTF‑8 with BOM หากตัวนำเข้าของคุณต้องการ)
- ตรวจสอบให้แน่ใจว่าแต่ละไฟล์มีคีย์ที่เสถียร (
row_id/id) สำหรับการแมป
-
สร้างตารางการแปลต่อไฟล์
- ดึงเฉพาะฟิลด์ที่ต้องแปลออกมาใน
translation_table_<file>.csv - เก็บคอลัมน์
source_fileหากคุณต้องการตารางรวมสำหรับทุกไฟล์
- ดึงเฉพาะฟิลด์ที่ต้องแปลออกมาใน
-
แปลตาราง
- ใช้เวิร์กโฟลว์ API หรือเครื่องมือที่รองรับ CSV ทีละไฟล์
-
เชื่อมผลลัพธ์กลับ + ส่งออก
- แมปโดยใช้
row_id + field(และsource_fileถ้าใช้) - ส่งออกด้วยการเข้ารหัสที่ระบบปลายทางของคุณต้องการ
- แมปโดยใช้
ลูปเริ่มต้นแบบมินิมอล (ประมวลผลหลายไฟล์อย่างสม่ำเสมอ):
for f in ./input/*.csv; do
base="$(basename "$f" .csv)"
# 1) extract translation table (implement per your schema)
# 2) translate translation_table_${base}.csv -> translation_table_${base}_translated.csv
# 3) join back and export ${base}_translated.csv
echo "Processed: $base"
done
เช็คลิสต์ QA หลังการแปล
หลังจากที่คุณดาวน์โหลดไฟล์ CSV ที่แปลแล้ว ให้ตรวจสอบดังนี้ก่อนนำเข้า:
การตรวจสอบอย่างรวดเร็ว
- เปรียบเทียบจำนวนแถว (macOS/Linux):
wc -l file.original.csv file.translated.csv - ตรวจสอบความสอดคล้องของตัวคั่นโดยการเปิดไฟล์ในโปรแกรมแก้ไขข้อความธรรมดาและยืนยันว่าตัวคั่นเหมือนกัน
- ตัวเลือกเพิ่มเติม: ตรวจสอบจำนวนคอลัมน์ที่สอดคล้องกันด้วย 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
หากคุณพบข้อผิดพลาด Unicode decode error ให้แปลง CSV เป็น UTF-8 ก่อน หรือทดลองใช้ 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
การตรวจสอบโครงสร้าง
- จำนวนแถวไม่เปลี่ยนแปลง: มีจำนวนแถวข้อมูลเท่ากับไฟล์ต้นฉบับ
- จำนวนคอลัมน์ไม่เปลี่ยนแปลง: แต่ละแถวมีจำนวนคอลัมน์เท่ากัน
- ตัวคั่นไม่เปลี่ยนแปลง: เครื่องหมาย comma หรือ semicolon ต้องตรงกับที่ใช้ในโปรแกรมนำเข้า
- เครื่องหมายอัญประกาศถูกต้อง: ฟิลด์ที่มี comma/บรรทัดใหม่ ต้องมีเครื่องหมายอัญประกาศอย่างถูกต้อง
การตรวจสอบความถูกต้องของข้อมูล
- IDs และ keys ไม่เปลี่ยนแปลง: เปรียบเทียบ
sku,id,row_id,handle - URLs/emails ไม่เปลี่ยนแปลง: ไม่มีช่องว่างเพิ่ม ไม่มีการแปลโดเมน
- ตัวเลขคงเดิม: ราคา ปริมาณ ทศนิยม ต้องเหมือนเดิม
- Placeholders คงเดิม:
{name},{{count}},%s,:valueต้องไม่ถูกเปลี่ยนแปลง
การตรวจสอบคุณภาพการแปล
- คำศัพท์เฉพาะสม่ำเสมอ: คำสำคัญของสินค้าได้รับการแปลแบบเดียวกันในแต่ละแถว
- ความยาวข้อความเหมาะสม: ป้าย UI ไม่ยาวเกินไป (สำคัญสำหรับแอปพลิเคชัน)
- ไม่มีคำต้นฉบับหลงเหลือ: ตรวจสอบคำที่ควรแปลไม่เหลืออยู่
การแก้ไขปัญหาทั่วไปของการแปลไฟล์ CSV
1) คอลัมน์เคลื่อนที่หลังการแปล
อาการ
- โปรแกรมนำเข้าระบุว่า “จำนวนคอลัมน์ไม่ถูกต้อง”
- ค่าปรากฏอยู่ใต้หัวข้อที่ไม่ถูกต้อง
สาเหตุที่เป็นไปได้
- ฟิลด์ที่แปลมีเครื่องหมายอัญประกาศ (
") ที่ไม่ได้ escape - ฟิลด์ที่แปลมีเครื่องหมายจุลภาค/ขึ้นบรรทัดใหม่แต่ไม่ได้ใส่อัญประกาศอย่างถูกต้อง
วิธีแก้ไข
- ตรวจสอบให้แน่ใจว่า CSV ใช้กฎการใส่อัญประกาศที่ถูกต้อง (ใส่อัญประกาศคู่รอบฟิลด์; อัญประกาศภายใน escape เป็น
"") - แปลใหม่โดยใช้ workflow ที่รองรับ CSV (แทนการแปลข้อความ CSV ตรงๆ)
2) ตัวอักษรแปลกปลอม (mojibake) เช่น ???? หรือ é
สาเหตุที่เป็นไปได้
- การเข้ารหัสผิดขณะส่งออก/นำเข้า (UTF‑8 กับ legacy)
วิธีแก้ไข
- ส่งออกเป็น UTF‑8
- หากใช้ Excel บน Windows ให้ลองใช้ UTF‑8 with BOM
- หลีกเลี่ยงการคัดลอก/วางด้วยตนเองที่อาจเปลี่ยนการเข้ารหัส
3) เลขศูนย์นำหน้าหายไป (00123 → 123)
สาเหตุที่เป็นไปได้
- โปรแกรมตารางคำนวณปรับรูปแบบอัตโนมัติ (Excel/Sheets)
วิธีแก้ไข
- กำหนดให้คอลัมน์รหัสเป็นข้อความก่อนแก้ไข/ส่งออก
- ควรแปลด้วย workflow ที่รองรับ CSV ซึ่งจะไม่เปลี่ยนชนิดข้อมูลของคุณ
4) วันที่หรือทศนิยมเปลี่ยนรูปแบบ
ตัวอย่าง
1,234.56กลายเป็น1.234,562026-01-09กลายเป็น09/01/2026
วิธีแก้ไข
- อย่าแปลคอลัมน์ตัวเลข/วันที่
- ให้ค่าคงรูปแบบที่เครื่องอ่านได้; ปรับรูปแบบแสดงผลใน UI layer ของคุณ ไม่ใช่ในข้อมูลดิบ
5) ปัญหาด้านความปลอดภัย: CSV injection (สูตร Excel)
หากเซลล์ที่แปลขึ้นต้นด้วย =, +, - หรือ @ การเปิดไฟล์ใน Excel อาจประมวลผลเป็นสูตร
วิธีแก้ไข
- สำหรับ CSV ที่จะเปิดในโปรแกรมตารางคำนวณ ให้ escape เซลล์ที่เสี่ยงโดยเติมอัญประกาศเดี่ยว (
') ข้างหน้า หรือ sanitize ขณะส่งออก - พิจารณาตัดอักขระสูตรนำหน้าออกจากข้อความที่ผู้ใช้ให้มาก่อนแปล/นำเข้า
- อ้างอิง: https://owasp.org/www-community/attacks/CSV_Injection
คำถามที่พบบ่อย (FAQ)
จะแปล CSV อย่างไรโดยไม่ทำให้คอลัมน์เสีย?
ใช้ workflow ที่รองรับ CSV และตรวจสอบโครงสร้างก่อนนำเข้า:
- แปลด้วยวิธีที่รองรับ CSV (Method 1)
- รัน “Quick checks” + QA checklist เพื่อตรวจสอบจำนวนแถว/คอลัมน์และการใส่อัญประกาศที่ถูกต้อง
- หาก CSV ของคุณมีทั้งฟิลด์สำคัญและข้อความที่แสดงต่อผู้ใช้ ให้ใช้ “ขั้นตอนการทำงานขั้นสูง — ตารางคำแปล”
ฉันสามารถแปลเฉพาะคอลัมน์เดียวในไฟล์ CSV ได้หรือไม่?
ได้ วิธีที่ปลอดภัยที่สุดคือสร้างตารางแปล (row_id + source_text + context) แล้วแปลเฉพาะส่วนนั้น จากนั้นจึงแมปกลับเข้าไป วิธีนี้จะช่วยป้องกันการเปลี่ยนแปลง ID และฟิลด์ตัวเลขโดยไม่ได้ตั้งใจ
ฉันควรแปลแถวหัวตารางหรือไม่?
ขึ้นอยู่กับกรณีการใช้งานของคุณ:
- แปลหัวตาราง หากไฟล์ CSV จะถูกอ่านโดยมนุษย์ (รายงาน, ไฟล์ส่งออก)
- ไม่ต้องแปลหัวตาราง หากระบบ/เครื่องมือของคุณต้องการชื่อฟิลด์เฉพาะ (นำเข้าอีคอมเมิร์ซ, ฐานข้อมูล, แอปพลิเคชัน)
ไฟล์ CSV ของฉันใช้เครื่องหมายเซมิโคลอน (;) แทนเครื่องหมายคอมมา แบบนี้ใช้ได้ไหม?
ได้ แต่ต้องแน่ใจว่าเครื่องมือ/ตัวนำเข้าของคุณใช้ตัวคั่นเดียวกันอย่างสม่ำเสมอ หลายภูมิภาคในยุโรปใช้เซมิโคลอนเป็นค่าเริ่มต้น ความไม่ตรงกันของตัวคั่นเป็นสาเหตุที่พบบ่อยที่ทำให้การนำเข้า CSV ล้มเหลว
ฉันควรจัดการข้อความหลายบรรทัด (ขึ้นบรรทัดใหม่) ในเซลล์อย่างไร?
เซลล์หลายบรรทัดสามารถใช้ใน CSV ได้ แต่ต้องใส่เครื่องหมายคำพูดอย่างถูกต้อง หากเนื้อหาที่แปลมีการขึ้นบรรทัดใหม่ แนะนำให้ใช้เครื่องมือแปลที่รองรับ CSV โดยเฉพาะ เพื่อป้องกันการแบ่งแถวผิดพลาด
เครื่องมือ
- OpenL CSV Translator Online (ตัวอย่างเครื่องมือที่รองรับ CSV): https://doc.openl.io/translate/csv
- สำหรับการทำงานกับ Excel: ดูเพิ่มเติมที่ “How to Translate Excel Online”: /how-to-translate-excel-online
- สำหรับเนื้อหา Markdown: “How to Translate Markdown”: /how-to-translate-markdown
- หากคุณต้องการกฎเกี่ยวกับสิ่งที่ไม่ควรแปล: “What Not to Translate”: /what-not-to-translate
สรุป
เพื่อแปลไฟล์ CSV อย่างปลอดภัย ควรรักษาโครงสร้าง (ตัวคั่น, เครื่องหมายคำพูด, การเข้ารหัส) และปกป้องฟิลด์ที่ “ไม่ควรแปล” (ID, URL, ตัวแทน, ตัวเลข) ควรใช้กระบวนการที่รองรับ CSV แล้วตรวจสอบด้วย QA checklist ก่อนนำเข้า


