php – Joomla! – 多國語言設定

後台元件語言位置
如果我們需要依照不同語言顯示,那麼可以製作兩個檔案:
- administrator/language/zh-TW/zh-TW.com_{你的元件名稱}.ini
- 後台管理一般的顯示
- administrator/language/zh-TW/zh-TW.com_{你的元件名稱}.sys.ini
- 後台管理的 xml 顯示
前台元件語言位置
給使用者看的,則只會使用 .ini 一個檔案而已:
- language/zh-TW/zh-TW.com_{你的元件名稱}.ini
添加後台語言檔案
範例寫在 zh-TW 屬於繁體中文(正體中文),若要製作其他語系,可以替換掉語言代號。製作鍵名的時候,我們習慣大寫「COM_{你的元件名稱}_{你自訂的鍵}」。
administrator/language/zh-TW/zh-TW.com_todolist.sys.ini
1 2 3 4 5 6 7 8 9 10 11 12 |
; 請使用 UTF-8 存檔 COM_HELLOWORLD_TITLE="代辦事項" COM_HELLOWORLD_DESC="建立你的代辦事項" COM_HELLOWORLD_CHOICE="請選擇" COM_HELLOWORLD_OPT_HELLO="嗨囉" COM_HELLOWORLD_OPT_BYEBYE="掰掰" COM_HELLOWORLD_UPLOLD="請上傳" |
administrator/language/zh-TW/zh-TW.com_todolist.ini
1 2 3 4 |
; 請使用 UTF-8 存檔 COM_TODOLIST_NAME="名字" |
測試一般輸出
administrator/components/com_todolist/controllers/todolist.php
1 2 3 4 5 6 7 8 9 |
class TodoListControllerTodoList extends JControllerLegacy { public function edit() { echo JText::sprintf('COM_TODOLIST_NAME'); // => 名字 } } |
測試系統設置輸出
components/com_todolist/views/todolist/tmpl/default.xml
注意這個元件的設定檔,雖然是放在前台的 component,但是是從後台中去控制。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_HELLOWORLD_TITLE"> <message>COM_HELLOWORLD_DESC</message> </layout> <fields name="request"> <fieldset name="request"> <field name="myimage" type="media" directory="stories" label="COM_HELLOWORLD_UPLOLD" /> <field name="type" type="list" label="COM_HELLOWORLD_CHOICE" description="COM_HELLOWORLD_CHOICE" default="1"> <option value="1">COM_HELLOWORLD_OPT_HELLO</option> <option value="2">COM_HELLOWORLD_OPT_BYEBYE</option> </field> </fieldset> </fields> </metadata> |
後台 > 選單 > Main Menu > 新增,找到元件以後, xml 欄位定義的名稱也會被自動翻譯囉
添加前台語言檔案
language/zh-TW/zh-TW.com_todolist.ini
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php defined('_JEXEC') or die; class TodoListControllerForm extends JControllerLegacy { public function welcom() { echo JText::sprintf('COM_TODOLIST_WELCOME'); // => 歡迎 } } |