Skip to content

LTN/Plone

Sections
Personal tools
You are here: Home » Members » poonlap's Home » cetdict

cetdict

Command line English - Thai DICTionary

cetdict คืออะไร

cetdict คือโปรแกรมพจนานุกรม อังกฤษ-ไทย โดยมีอินเทอร์เฟสเป็นบรรทัดคำสั่ง. สามารถหาคำศัพท์ภาษาอังกฤษได้ 2 แบบคือแบบ command line mode และ interactive mode. อ่านเบื้องหลังและความคิด, ถ้าคุณสนใจ.

คุณสมบัติ

  • แปลคำศัพท์ต่อเนื่องหลายคำในทีเดียว
  • ใช้ได้ทั้งเป็นคำสั่งในเชลล์และเชิงโต้ตอบ
  • ใช้สะดวกและรวดเร็วในเชลล์
  • ใช้คุณสมบัติของไลบรารี readline สามารถทำ word completion, history และแก้ไขบรรทัดคำสั่งได้แบบ bash.
  • ตรวจและแสดงคำที่น่าจะเป็นไปได้ (spell check) ถ้าหาคำไม่เจอ.
  • แสดงผลประกอบด้วยสี (ANSI color terminal)

ความต้องการพื้นฐาน

  • เทอร์มินอลเอมิวเลเตอร์ที่สามารถแสดงภาษาไทยได้
  • Perl และ Perl module ต่อไปนี้
    • DB_File
    • Term::ReadLine
    • Term::ReadLine::Gnu
    • Term::ANSIColor

ดาว์นโหลด

วิธีการติดตั้ง

การติดตั้งแบบอัตโนมัติ

$ tar xzvf cetdict-0.01.tar.gz
$ su
# cd cetdict-0.01
# ./install.sh
เชลล์สคริปต์ install.sh จะตรวจสอบ perl module ถ้าไม่มีก็จะอินสตอลล์ให้โดยอัตโนมัติ.

การติดตั้งด้วยมือ

  1. กระจายไฟล์ที่ดาว์นโหลดมา
    $ tar xzvf cetdict-0.01.tar.gz
    
  2. เป็น root
    $ su
    #
    
  3. Perl module
    การติดตั้ง perl module ทำได้โดยใช้โปรแกรม perl ดังนี้.
    # perl -MCPAN -e shell
    
    โปรแกรมจะถามคำถามเพื่อตั้งค่าต่างๆ. ตอบคำถามด้วยค่าปริยายโดยการกด Enter คีย์เฉยๆก็ได้.

    เมื่อตอบคำถามหมดแล้วก็จะมีพรอมต์ "cpan>" ปรากฏให้. ตัวอย่างถ้าต้องการติดตั้ง perl module Term::ReadLine::Gnu ก็สั่งคำสั่ง.

    cpan> install Term::ReadLine::Gnu
    
    Perl จะดาว์นโหลด, คอมไพล์ และติดตั้ง module ให้โดยอัตโนมัติ.
  4. ก็อปปี้ข้อมูลพจนานุกรม
    ข้อมูลพจนานุกรมอยู่ในไฟล์ dictdata.db ซึ่งไฟล์นี้เป็นไฟล์ฐานข้อมูลแบบ Berkley DB. ไฟล์นี้เอามาจากโครงการ KDictThai. เนื้อหาของข้อมูลมาจากโครงการ HopeDict

    ให้สร้างไดเรกทอรี /usr/share/dict/th และก็อปปี้ไฟล์นี้ไปไว้ที่นั่น.

    # mkdir -p /usr/share/dict/th
    # cp dictdata.db /usr/share/dict/th
    

  5. สร้าง man page
    # pod2man cetdict | gzip > /usr/share/man/man1/cetdict.1.gz
    

  6. ก็อปปี้ตัวโปรแกรม
    # cp cetdict /usr/bin
    

ตัวอย่างการใช้

แบบบรรทัดคำสั่ง

ถ้าเป็นคำที่มีช่องไฟคั่นเช่น "red hat". ให้หาคำศัพท์ดังนี้.

$ cetdict "red hat"
การจับกลุ่มโดยใช้เครื่องหมาย double quote นี้ใช้ในโหมดเชิงโต้ตอบไม่ได้ (บั๊ก).

แบบเชิงโต้ตอบ

  • คำสั่ง "\help".

  • หาคำแปล

  • เติมเต็มคำ (word completion)

    ตัวอย่างเช่นป้อนคำ "dic" แล้วกดคีย์ Tab Tab (สองครั้ง) ก็จะเติมเต็มคำที่เป็นไปได้ให้. ถ้าไม่มีคำซ้ำแล้วก็จะเติมเต็มคำให้จนหมด. เช่นพิมพ์ "dictiona" แล้วกด Tab ก็จะได้ "dictionary" โดยอัตโนมัติ.

  • แสดงคำที่ถูกต้องถ้าไม่เจอคำที่ต้องการหา

  • ดูคำรายการคำที่มีอยู่ในพจนานุกรมทั้งหมด (M-? หรือ Tab Tab)

  • ดูศัพท์และคำแปลทั้งหมด (มีบั๊ก) (M-* Enter)

  • ดูจำนวนคำศัพท์ของแต่ละตัวอักษร (เช่น a Tab Tab, b Tab Tab, ...)

  • ดูศัพท์และคำแปลของคำที่ขึ้นต้นด้วยอักษร k. (k M-* Enter)
  • key binding ทั่วไปที่ใช้บ่อย (readline)

    key bindingคำสั่งความหมาย
    C-pprevious-historyหาศัพท์บรรทัดที่แล้ว
    C-nnext-historyหาศัพท์บรรทัดต่อไป
    C-lclear-screenเคลียร์หน้าจอ
    Tabcompleteเติมเต็มคำ
    Tab Tabpossible-completionsแสดงส่วนเติมเต็มที่เป็นไปได้
    M-?possible-completionsแสดงส่วนเติมเต็มที่เป็นไปได้
    M-*insert-completionsเติมส่วนเติมเต็มที่เป็นไปได้ทั้งหมด
    C-abeginning-of-lineไปต้นบรรทัด
    C-eend-of-lineไปท้ายบรรทัด
    C-fforward-charเลื่อนเคอร์เซอร์ไปข้างหน้า
    C-bbackward-charเลื่อนเคอร์เซอร์ไปข้างหลัง
    C-kkill-lineลบจากเคอร์เซอร์ไปจนสุดบรรทัด
    C-ddelete-charลบอักขระหนึ่งตัว
    M-ddelete-wordลบคำ
    M-fforward-wordเลื่อนเคอร์เซอร์ไปข้างหน้าหนึ่งคำ
    M-bbackward-charเลื่อนเคอร์เซอร์ไปข้างหลังหนึ่งคำ

    C-p คือกดคีย์ Control ค้างไว้แล้วกดคีย์ p ตาม. M-f คือกดคีย์ Esc ทีหนึ่ง (ปล่อย) แล้วกดคีย์ f ตาม.

  • cetdict ใน gnome-terminal ที่ใช้ฟอนต์ไทย (TlwgMono) และ encoding ไทย (TIS-620).

Credits

ต้องทำ(น่าทำ)

  • ใช้ autoconf, automake ในการติดตั้ง
  • ติดต่อกับพจนานุกรม Longdo ผ่านทางเน็ตเวิร์ก.
  • มีพจนานุกรมเป็นข้อมูลส่วนตัว
  • ปรับค่าต่างๆได้เช่นเลือกแหล่งข้อมูล.
  • ทำการแสดงผลให้ดีกว่านี้ี้ี้
  • ไฟล์ประวัติค้นหาคำ
  • ค้นหาด้วย regular expression
  • XML
  • ทำเป็น Perl module

รายการปรารถนา

  • ข้อมูลพจนานุกรม ไทย - อังกฤษ (LEXiTRON data?)

ติดต่อสอบถาม

TLWG Developer channel

Created by poonlap
Last modified 2005-06-01 02:36 PM

modular

Posted by ott at 2004-06-02 02:17 PM

แจ๋วครับ :) กะจะแยกส่วน engine กับ interface ออกมามั้ยครับ เผื่อใครอยากทำ front end อื่นในอนาคต เช่น GUI-based, หรือ ให้จาก application ใดๆ เรียกใช้ได้ กำลังคิดว่า ถ้าใช้งาน application เช่น อ่าน mail, ถ้า select text ส่วนที่ไม่เข้าใจ แล้วกดเมาส์ขวา มีแบบ "เปิดพจนานุกรม" ให้เลือกเลยก็คงดี

ถ้าเชื่อมกับลองดูได้ก็เจ๋งเลยครับ :) เช่น โหลด update คำใหม่ๆ จาก server (http://longdo.ex.nii.ac.jp/?download=1) หรือ contribute คำใหม่กลับไปยัง Longdo

 

Powered by Plone

This site conforms to the following standards: