อย่าใช้วิธีแบบ Array เลยครับ มัน manage ยาก เรื่องของ Key Language ลองศึกษาการเก็บ ภาษาเป็น ไฟล์ mo ดู โดยใช้ความสามารถ gettext ของ PHP
ยกตัวอย่างเช่นพวกเว็บใหญ่ๆ ที่ต้องทยอยแปล จะทำงานแบบนี้ครับ
_e('Hello I am Tee++');
โดยถ้าไม่เจอ ตัวแปลใน ภาษานั้นๆ ก็จะ echo key ออกมาเลย ซึ่ง key มันจะไม่เหมือน array คือ key เป็นคำได้เลย ดังนั้นเวลาแปล ไม่มี เราก็จะรู้ทันที เพราะมันจะไม่เป็นค่า "ว่างๆ" แต่จะ echo key มาใช้งาน
นอกจากนี้ยังมีอีกหลายวิธี ซึ่งทำงานคล้ายๆ กัน อาทิเช่น
1. cvs
2. xml
3. ini
4. Qt
ซึ่งจริงๆ แล้วเราแทบจะไม่ต้องเขียนอะไรมากเพราะเรามี "Zend_Translate" นั่นเอง อิอิ
http://framework.zend.com/manu...en/zend.translate.adapter.html 
สำหรับ ใครที่จะใช้ mo มันจะทำงาน แบบ compile ครับ เราต้องสร้าง .po มา compile เป็น mo และควรจะใช้ร่วมกับ Zend_Cache
ซึ่งตัว PO ปกติแล้วเค้าใช้ POEDIT กัน
http://www.poedit.net/ 
ตัวอย่าง PO ก่อน compile เป็น MO
en/language.po
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Tee <[email protected]>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "ภาพแทนตัว"
msgstr "Avatar"
msgid "อีเมล์"
msgstr "Email"
msgid "รหัสผ่าน"
msgstr "Password"
msgid "รหัสผ่านปัจจุบัน"
msgstr "Current Password"
msgid "จำฉันไว้ในระบบ"
msgstr "Remember me"
msgid "เข้าสู่ระบบ"
msgstr "Log In"
th/language.po
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Tee <[email protected]>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "ภาพแทนตัว"
msgstr "ภาพแทนตัว"
msgid "อีเมล์"
msgstr "อีเมล์"
msgid "รหัสผ่าน"
msgstr "รหัสผ่าน"
msgid "รหัสผ่านปัจจุบัน"
msgstr "รหัสผ่านปัจจุบัน"
msgid "จำฉันไว้ในระบบ"
msgstr "จำฉันไว้ในระบบ"
msgid "เข้าสู่ระบบ"
msgstr "เข้าสู่ระบบ"
** พอดีภาษาหลักผมคือ Thai ก็เลยมี msgid เป็นไทย ซึ่งจริงๆแล้ว ผมไม่ต้องทำชุดไทยก็ได้ แต่อยากทำไว้ เป็น prototype เท่านั้นเอง **
อีกอย่างคือ ยัดมันเข้าไปหมดเลยครับ ไม่ต้องแยกไฟล์ ไม่ต้องแยก module มี สัก 10000 line ก็ไม่เป็นไร แต่ที่สำคัญทำเสร็จ มันจะต้องอยู่ใน memcached แล้ว ต่อมาเรียกโหลดจาก memory จะทำงานได้เร็วมากครับ