ตั้งค่า Locale และภาษาญี่ปุ่นบน Ubuntu: คู่มือฉบับสมบูรณ์สำหรับมือใหม่ถึงมืออาชีพ

目次

1. บทนำ

ในการใช้งาน Ubuntu หรือ Linux อื่น ๆ การตั้งค่า “locale” (โลเคล) ถือว่ามีความสำคัญมาก โลเคลคือระบบที่ปรับแต่งภาษา การแสดงวันที่และเวลา สัญลักษณ์สกุลเงิน การใช้จุดทศนิยมและลูกน้ำ ฯลฯ ให้เหมาะสมกับวัฒนธรรมและข้อกำหนดของแต่ละประเทศหรือภูมิภาค

ตัวอย่างเช่น หลังจากติดตั้ง Ubuntu ใหม่ ๆ ระบบจะตั้งค่าเป็นภาษาอังกฤษเป็นหลัก ข้อความระบบ แอปพลิเคชัน รูปแบบวันที่หรือตัวเลขอาจไม่คุ้นเคยสำหรับคนญี่ปุ่น หากต้องการเปลี่ยนเป็นภาษาญี่ปุ่นหรือรูปแบบที่คุ้นเคย จำเป็นต้องตั้งค่า “locale”

ไม่ว่าจะใช้ Ubuntu ในการตั้งค่าเซิร์ฟเวอร์ ใช้งานเดสก์ท็อปทั่วไป หรือในสภาพแวดล้อมเสมือน เช่น WSL (Windows Subsystem for Linux) หรือ Docker การตั้งค่าโลเคลอย่างถูกต้องจะช่วยป้องกันปัญหาอักษรแสดงผิด (文字化け) และช่วยให้ใช้งานภาษาญี่ปุ่นได้ราบรื่นขึ้น

บทความนี้จะอธิบายหน้าที่ วิธีตั้งค่า locale และวิธีแก้ไขปัญหาที่พบบ่อยใน Ubuntu อย่างเป็นระบบ เหมาะสำหรับทั้งผู้เริ่มต้นใช้งาน Ubuntu และผู้ที่ต้องการปรับแต่ง locale ในสภาพแวดล้อมที่มีอยู่

侍エンジニア塾

2. ตรวจสอบสถานะปัจจุบัน (เฟสตรวจสอบ)

ก่อนเปลี่ยนการตั้งค่า locale ใน Ubuntu ควรตรวจสอบสถานะปัจจุบันเสียก่อน ส่วนนี้จะอธิบายวิธีตรวจสอบและคำสั่งที่ใช้งานได้จริง

วิธีพื้นฐานที่สุดคือใช้คำสั่ง locale ในเทอร์มินัล เพื่อดูรายละเอียด locale ที่ใช้งานอยู่ รายการที่แสดงหลัก ๆ มีดังนี้

LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
...

“LANG” คือค่าโลเคลหลักของระบบ ส่วน “LC_” คือการตั้งค่าของแต่ละหมวด เช่น ตัวอักษร ตัวเลข วันที่ ข้อความ เป็นต้น หากเห็น “ja_JP.UTF-8” ใน “LANG” หรือ “LC_MESSAGES” แสดงว่าสภาพแวดล้อมภาษาญี่ปุ่นถูกใช้งาน

หากต้องการดูรายการโลเคลทั้งหมดที่มีในระบบ ให้ใช้คำสั่งนี้

locale -a

คำสั่งนี้จะแสดงโลเคลทั้งหมดที่ติดตั้งในระบบ ให้ตรวจสอบว่ามี “ja_JP.UTF-8” หรือโลเคลภาษาญี่ปุ่นในรายการหรือไม่

ถ้าไม่มีโลเคลภาษาญี่ปุ่น หรือคำสั่ง “locale” แสดงค่าเป็นภาษาอังกฤษหรือต่างไปจากที่คาดไว้ ให้ดำเนินการตามขั้นตอนถัดไปเพื่อเพิ่มหรือปรับเปลี่ยนโลเคล

3. กรณีไม่มีโลเคลภาษาญี่ปุ่น

หาก locale -a ไม่มี “ja_JP.UTF-8” หรือการแสดงผลภาษาญี่ปุ่นผิดปกติ จำเป็นต้องเพิ่มและเปิดใช้งานโลเคลภาษาญี่ปุ่น ขั้นตอนดังนี้

ในการใช้งานโลเคลภาษาญี่ปุ่น จำเป็นต้องติดตั้งแพ็คเกจ “language-pack-ja” หรือ “locales” ถ้าไม่มีแพ็คเกจเหล่านี้จะไม่สามารถใช้โลเคลภาษาญี่ปุ่นได้

ติดตั้งแพ็คเกจที่จำเป็น

เปิดเทอร์มินัลแล้วรันคำสั่งต่อไปนี้เพื่อติดตั้งแพ็คเกจที่เกี่ยวข้องกับภาษาญี่ปุ่น

sudo apt update
sudo apt install language-pack-ja

บางกรณีควรติดตั้ง locales ด้วยเพื่อความสมบูรณ์

sudo apt install locales

สร้างโลเคลภาษาญี่ปุ่น

เมื่อแพ็คเกจติดตั้งเสร็จแล้ว ให้สร้างโลเคลด้วยคำสั่งนี้

sudo locale-gen ja_JP.UTF-8

จากนั้น “ja_JP.UTF-8” จะปรากฏในผลลัพธ์ของ locale -a

นำไปใช้ (Apply) โลเคล

เพียงติดตั้งหรือสร้างโลเคลอาจยังไม่เพียงพอ ให้ใช้คำสั่ง update-locale เพื่อกำหนดโลเคลหลักเป็นภาษาญี่ปุ่น

sudo update-locale LANG=ja_JP.UTF-8

เมื่อกำหนดเสร็จ โลเคลภาษาญี่ปุ่นจะถูกใช้งานทุกครั้งที่เปิดเทอร์มินัลหรือเข้าสู่ระบบใหม่

4. การสร้างและเปิดใช้งานโลเคล

หลังจากทำให้ใช้งานโลเคลภาษาญี่ปุ่นได้แล้ว ขั้นต่อไปคือสร้างและเปิดใช้งานโลเคลทั่วทั้งระบบด้วยคำสั่งต่าง ๆ

การสร้างโลเคล

โดยทั่วไป การรัน sudo locale-gen ja_JP.UTF-8 ก็เพียงพอ แต่ในบางกรณีอาจต้องแก้ไขไฟล์ /etc/locale.gen ด้วยตนเอง

  1. เปิด /etc/locale.gen ด้วย text editor (เช่น nano)
   sudo nano /etc/locale.gen
  1. ค้นหาแถวที่มี “ja_JP.UTF-8 UTF-8” และลบ “#” ที่อยู่ข้างหน้าออกหากมี
  2. บันทึกไฟล์และปิด editor
  3. จากนั้นสร้างข้อมูลโลเคลใหม่
   sudo locale-gen

เปิดใช้งานโลเคล

จากนั้นใช้คำสั่ง update-locale เพื่อกำหนดโลเคลหลัก

sudo update-locale LANG=ja_JP.UTF-8

คำสั่งนี้จะอัปเดตไฟล์ /etc/default/locale โดยอัตโนมัติ

หากต้องการกำหนดค่าหลาย environment variable สามารถใช้รูปแบบนี้ได้

sudo update-locale LANG=ja_JP.UTF-8 LC_TIME=ja_JP.UTF-8 LC_MESSAGES=ja_JP.UTF-8

ช่วงเวลาที่การตั้งค่าจะมีผล

หากคำสั่งยังไม่แสดงผลทันที ให้ลองออกจากระบบแล้วเข้าสู่ระบบใหม่ หรือรีสตาร์ทเครื่องเซิร์ฟเวอร์ เพื่อให้ค่าใหม่มีผล

5. ตั้งค่าระดับระบบ vs ระดับผู้ใช้

ใน Ubuntu สามารถตั้งค่า locale ได้ทั้งในระดับระบบทั้งหมด หรือรายผู้ใช้ เลือกวิธีที่เหมาะสมกับการใช้งานของคุณ

ตั้งค่าระดับระบบ

ถ้าต้องการให้ผู้ใช้ทุกคนใช้โลเคลเดียวกัน ให้แก้ไขไฟล์ /etc/default/locale หรือใช้คำสั่ง update-locale เช่น

sudo update-locale LANG=ja_JP.UTF-8

จะเปลี่ยนค่าเริ่มต้นเป็นภาษาญี่ปุ่นสำหรับผู้ใช้ทุกคนที่ล็อกอิน

ตั้งค่าระดับผู้ใช้

ถ้าต้องการให้ผู้ใช้บางรายใช้โลเคลที่ต่างกัน ให้แก้ไขไฟล์ใน home directory เช่น ~/.pam_environment

  1. เข้าสู่ระบบด้วยผู้ใช้เป้าหมาย เปิดไฟล์ด้วยคำสั่ง
   nano ~/.pam_environment
  1. เพิ่มบรรทัดนี้ลงไป
   LANG=ja_JP.UTF-8

สามารถเพิ่ม LC_* อื่น ๆ ตามต้องการ

การตั้งค่านี้จะมีผลเฉพาะเวลาล็อกอินด้วยผู้ใช้ดังกล่าว เช่น เซิร์ฟเวอร์ที่มีผู้ใช้หลายคน สามารถตั้งให้ admin เป็นอังกฤษ ผู้ใช้ทั่วไปเป็นญี่ปุ่น ฯลฯ

ใช้คำสั่ง localectl

ในระบบที่ใช้ systemd สามารถตั้งค่าหรือดูค่าโลเคลด้วยคำสั่ง localectl

sudo localectl set-locale LANG=ja_JP.UTF-8

คำสั่งนี้มีผลกับทั้งระบบ สะดวกสำหรับเปลี่ยนแปลงอย่างรวดเร็ว

6. การตั้งค่าผ่าน GUI (Ubuntu Desktop / GNOME)

หากใช้ Ubuntu Desktop สามารถตั้งค่าโลเคลผ่าน GUI ได้โดยไม่ต้องใช้คำสั่ง

ขั้นตอนเปลี่ยนโลเคลผ่านเมนูตั้งค่า

  1. เปิด “Settings” จากเมนูด้านซ้ายหรือมุมล่างซ้าย
  2. เลือก “Region & Language” หรือ “ภูมิภาคและภาษา”
  3. ในหัวข้อ “Language” เลือก “ภาษาญี่ปุ่น (Japanese)”
  4. ในหัวข้อ “Formats” ให้เลือก “ญี่ปุ่น” หรือ “ภาษาญี่ปุ่น” เพื่อปรับวันที่ สกุลเงิน ฯลฯ ให้เป็นแบบญี่ปุ่น
  5. หลังเปลี่ยนระบบอาจขอให้รีสตาร์ทหรือออกจากระบบแล้วเข้าสู่ระบบใหม่

การตั้งค่า IME (Input Method)

เพื่อใช้งานป้อนภาษาญี่ปุ่นได้สะดวก ให้ตั้งค่า IME เช่น “Fcitx5” หรือ “IBus” ซึ่งมาพร้อมกับ engine เช่น “Mozc” หรือ “Anthy”

  • เข้า “Settings” → “Region & Language” → “Input Sources” แล้วเพิ่ม “ญี่ปุ่น (Mozc)”
  • สลับภาษาได้ด้วยคีย์ลัด (เช่น Super + Space)

แก้ไขปัญหาการแสดงผลผิดหรือภาษาญี่ปุ่นไม่แสดง

ถ้าตั้งค่าภาษาที่ GUI แล้วยังมีปัญหา เช่น แสดงภาษาญี่ปุ่นไม่ได้หรืออักษรแสดงผิด ให้ตรวจสอบดังนี้

  • ติดตั้งแพ็คเกจฟอนต์ญี่ปุ่น เช่น fonts-noto-cjk
  • บางแอปต้องตั้งค่าภาษาที่แอปโดยตรง
  • รีสตาร์ทหรือออกจากระบบใหม่เพื่อให้ค่ามีผล

7. ตรวจสอบการตั้งค่าและการแก้ไขปัญหา

หลังตั้งค่า locale ควรตรวจสอบว่าการตั้งค่ามีผลจริงหรือไม่ และรู้วิธีแก้ปัญหาเบื้องต้นกรณีมีปัญหา

ตรวจสอบผลการตั้งค่า

เปิดเทอร์มินัลแล้วใช้คำสั่งนี้เพื่อตรวจสอบโลเคลปัจจุบัน

locale

ถ้าค่า LANG และ LC_* ต่าง ๆ เป็น “ja_JP.UTF-8” แสดงว่าใช้โลเคลญี่ปุ่นถูกต้อง

ถ้าอยากดูโลเคลที่มีในระบบอีกครั้ง ใช้คำสั่ง

locale -a

หากมี “ja_JP.UTF-8” ในรายการ แสดงว่าติดตั้งโลเคลภาษาญี่ปุ่นแล้ว

ตรวจสอบรูปแบบวันที่และตัวเลข

การตั้งค่า locale มีผลต่อการแสดงวันที่ ตัวเลข ฯลฯ ตัวอย่าง ใช้คำสั่งนี้เพื่อดูวันที่

date

ถ้าแสดงผลเป็นภาษาญี่ปุ่น แสดงว่าตั้งค่า locale สำเร็จ

ปัญหาที่พบบ่อยและวิธีแก้

1. ปัญหาอักษรแสดงผิด (文字化け)

  • อาจเกิดจากไม่มีฟอนต์ภาษาญี่ปุ่น ติดตั้งด้วย sudo apt install fonts-noto-cjk

2. การตั้งค่าโลเคลไม่ถูกนำไปใช้

  • หลังเปลี่ยนค่าแล้วให้ลองออกจากระบบหรือรีสตาร์ท
  • ถ้ายังไม่ได้ ให้ใช้คำสั่ง source /etc/default/locale เพื่อโหลดค่าใหม่

3. มีบางส่วนเป็นภาษาอังกฤษปะปน

  • อาจเกิดจาก LC_* บางตัวไม่ถูกตั้งค่า หรือแอปต้องตั้งค่าภาษาต่างหาก
  • ใช้ sudo update-locale LC_ALL=ja_JP.UTF-8 เพื่อให้ค่าทั้งหมดเป็นญี่ปุ่น

4. กรณี Docker หรือ WSL

  • แต่ละสภาพแวดล้อมอาจต้องมีขั้นตอนเฉพาะ (ดูรายละเอียดในส่วนถัดไป)

วิธีตรวจสอบและแก้ปัญหาข้างต้นจะช่วยแก้ปัญหาเกี่ยวกับ locale ส่วนใหญ่ได้

8. การตั้งค่า locale ใน Docker / WSL

ปัจจุบัน Ubuntu มักถูกใช้ใน Docker หรือ WSL (Windows Subsystem for Linux) ด้วย การตั้งค่า locale ในสภาพแวดล้อมเหล่านี้มีความสำคัญและมีข้อแตกต่างเล็กน้อย

การตั้งค่า locale ใน Docker

ใน Dockerfile ควรติดตั้งแพ็คเกจที่จำเป็นและสร้าง locale โดยระบุไว้ชัดเจน เช่น

FROM ubuntu:24.04

RUN apt-get update && 
    apt-get install -y language-pack-ja locales && 
    locale-gen ja_JP.UTF-8 && 
    update-locale LANG=ja_JP.UTF-8

ENV LANG=ja_JP.UTF-8
ENV LANGUAGE=ja_JP:ja
ENV LC_ALL=ja_JP.UTF-8

ด้วยการตั้งค่านี้ จะใช้ภาษาญี่ปุ่นในคอนเทนเนอร์ได้
นอกจากนี้ การกำหนด environment variable ขณะเรียกใช้งานแอปช่วยให้แน่ใจว่าใช้ภาษาญี่ปุ่นได้

การตั้งค่า locale ใน WSL

WSL คือฟีเจอร์สำหรับใช้งาน Linux บน Windows มักเกิดปัญหาเกี่ยวกับ locale ได้ แต่สามารถตั้งค่าแบบเดียวกับ Ubuntu ปกติได้ดังนี้

  1. ติดตั้งแพ็คเกจที่จำเป็น
   sudo apt update
   sudo apt install language-pack-ja locales
  1. สร้างและเปิดใช้โลเคล
   sudo locale-gen ja_JP.UTF-8
   sudo update-locale LANG=ja_JP.UTF-8
  1. เพิ่ม environment variable ใน .bashrc หรือ .profile เช่น
   export LANG=ja_JP.UTF-8
   export LANGUAGE=ja_JP:ja
   export LC_ALL=ja_JP.UTF-8

การแก้ปัญหาอักษรแสดงผิดหรือป้อนภาษาญี่ปุ่นไม่ได้

  • ใน WSL ควรตั้งค่าฟอนต์บน Windows Terminal ให้รองรับภาษาญี่ปุ่น
  • ใน Docker ถ้าใช้ image ที่เล็ก อาจต้องติดตั้ง fonts เพิ่มด้วย apt-get install fonts-noto-cjk

ด้วยขั้นตอนนี้ จะสามารถใช้งาน locale ใน Docker/WSL ได้อย่างสมบูรณ์

9. FAQ (คำถามที่พบบ่อย)

รวบรวมคำถามและคำตอบที่พบบ่อยเกี่ยวกับการตั้งค่า locale ใน Ubuntu เพื่อช่วยแก้ปัญหาและปรับแต่งการใช้งาน

Q1. คำสั่ง locale -a ไม่มี “ja_JP.UTF-8” ต้องทำอย่างไร?
A. แสดงว่ายังไม่ได้สร้างโลเคลภาษาญี่ปุ่น ให้ติดตั้งแพ็คเกจ language-pack-ja และ locales แล้วสร้างโลเคลดังนี้

sudo apt update
sudo apt install language-pack-ja locales
sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8

หลังจากนั้นรัน locale -a อีกครั้งควรเห็น “ja_JP.UTF-8”

Q2. เปลี่ยน locale แล้วค่ากลับไม่เปลี่ยน เกิดจากอะไร?
A. บางครั้งต้องออกจากระบบ/รีสตาร์ทก่อนค่าจะมีผล หากยังไม่ได้ ให้ตรวจสอบ environment variable และไฟล์ /etc/default/locale หรือ ~/.pam_environment

Q3. แสดงภาษาญี่ปุ่นในเทอร์มินัลหรือแอปผิดปกติ ต้องทำอย่างไร?
A. ส่วนใหญ่เกิดจากไม่มีฟอนต์ภาษาญี่ปุ่น ติดตั้ง fonts-noto-cjk ด้วยคำสั่งนี้

sudo apt install fonts-noto-cjk

อย่าลืมตั้งค่าฟอนต์ในเทอร์มินัลหรือ editor ด้วย

Q4. ถ้ามีโลเคลหลายแบบ จะเลือกอันไหน?
A. ลำดับความสำคัญคือ “LC_ALL > LC_* > LANG”
หากต้องการตั้งค่าชั่วคราวใช้

export LC_ALL=ja_JP.UTF-8

ถ้าต้องการถาวรให้แก้ไข /etc/default/locale หรือ ~/.pam_environment

Q5. ตั้งค่าใน Docker/WSL เหมือนกับ Ubuntu ปกติไหม?
A. โดยทั่วไปเหมือนกัน แต่ Docker ต้องระบุขั้นตอนชัดเจนใน Dockerfile ส่วน WSL ควรระวังการตั้งค่าฟอนต์บน Windows ด้วย
ดูรายละเอียดในหัวข้อ Docker/WSL

Q6. ตั้งค่าภาษาผ่าน GUI แล้วบางส่วนยังเป็นอังกฤษ?
A. อาจเกิดจากแอปหรือส่วนของระบบที่ไม่มีการแปลภาษาญี่ปุ่น หรือบางแอปต้องตั้งค่าภาษาแยกเอง ตรวจสอบการตั้งค่าของแต่ละแอป

FAQ เหล่านี้จะช่วยคลายข้อสงสัยเกี่ยวกับ locale ใน Ubuntu หากมีคำถามพิเศษเพิ่มเติม สามารถสอบถามในคอมเมนต์หรือเพจสนับสนุนได้

10. สรุป

บทความนี้อธิบายการตั้งค่า locale (โลเคล) บน Ubuntu ตั้งแต่พื้นฐาน วิธีทำญี่ปุ่น การแก้ไขปัญหา และกรณี Docker/WSL

locale ไม่ได้เป็นเพียงแค่การตั้งค่าภาษา แต่ยังรวมถึงรูปแบบวันที่ ตัวเลข สกุลเงิน และ encoding ต่าง ๆ ด้วย หากตั้งค่าได้ถูกต้องจะช่วยให้ใช้งาน Ubuntu ได้อย่างราบรื่นและสะดวกขึ้นมาก

โดยเฉพาะการใช้งานภาษาญี่ปุ่น โลเคล “ja_JP.UTF-8” จำเป็นมาก ทั้งแบบตั้งค่าผ่าน command line, GUI หรือระดับผู้ใช้ ก็เลือกให้เหมาะกับการใช้งาน
อ่าน FAQ ประกอบเพื่อแก้ปัญหาเฉพาะหน้าได้อย่างรวดเร็ว

หวังว่าบทความนี้จะเป็นประโยชน์กับผู้ใช้ที่ต้องการตั้งค่าภาษาญี่ปุ่นบน Ubuntu ทุกท่าน