程式資訊
- 程式 ID:
LANGUAGE - 所屬子系統:A.系統資料
- 狀態:stable
多語系資料維護¶
功能簡介¶
「多語系資料維護」維護系統介面文字的翻譯對照表:每一支程式(ProgramClass)底下,把畫面上會出現的文字(欄位名稱、下拉選項、訊息等)逐一登錄成 KeyValue → 五種語言 的對照列。一筆主檔對應一支程式並指定其文字「種類(Type)」,明細則是該程式所有要翻譯的字串。
資料存在 Twork_sys_vw_languagem(主檔)與 Twork_sys_vw_languaged(明細)兩張 View。系統執行時依使用者選用的語系,從這份對照表取對應欄(English/TraditionalChinese/SimplifiedChinese/Japanese/Vietnamese)顯示介面文字。
這支表單通常由系統管理員或導入顧問使用,用於:
- 為新程式建立介面文字的翻譯。
- 補上某語系缺漏的翻譯。
- 透過
Export/Import把整支程式的翻譯打包成 XML,在不同資料庫之間搬移。
與終端使用者語系切換的差別
本頁是維護翻譯來源資料,不是切換目前介面語言。實際顯示哪一種語言由登入後的語系設定決定,這裡只負責提供每個 KeyValue 在各語言下要顯示的字串。
前置需求¶
- 權限:A.系統資料 →
多語系資料維護的瀏覽/新增/修改/刪除權限。 - 基礎資料:
| 資料 | 影響什麼 |
|---|---|
| 程式代號(ProgramClass) | 主檔主鍵,決定這批翻譯屬於哪一支程式;輸入錯誤會掛在不存在的程式上而不顯示 |
| XML 交換檔目錄 | Import 讀檔、Export 寫檔的位置(系統參數設定的 XML 目錄) |
| 各語系翻譯字串 | 該語系下實際顯示的介面文字;某語系欄留白則該語系顯示空字串 |
操作步驟¶
新增一支程式的翻譯¶
- 從主選單開啟 A.系統資料 → 多語系資料維護。
- 在 ProgramClass 欄輸入程式代號(主鍵)。
- 選擇 Type(文字種類),新增時預設帶
1 Program。 - 在下方明細格線逐列輸入:
- KeyValue:這段文字的識別鍵(必填,否則該列存檔時被略過)。
- ViewName/TableName:所屬畫面/資料表名稱(用於分群與避免重複鍵)。
- English/TraditionalChinese/SimplifiedChinese/Japanese/Vietnamese:各語系翻譯。
- 按工具列的
儲存。
修改/刪除¶
- 用工具列查詢功能帶出既有程式的翻譯。
- 直接在明細格線修改各語系文字後
儲存。 - 要刪除某列翻譯時,先清空該列 KeyValue 再執行刪除(見欄位連動與附加功能的刪除規則)。
匯出翻譯(Export)¶
- 帶出(或新增)要匯出的程式翻譯。
- 按畫面右上的
Export。 - 系統把目前主檔+明細整批標記為新增資料並寫入資料庫對照表,完成後顯示
Export Ok。
匯入翻譯(Import)¶
- 確認 XML 交換檔目錄下已放妥
_languagemModel.xml與_languagedModel.xml。 - 按畫面右上的
Import。 - 系統讀取這兩個 XML 檔並寫入對照表,完成後跳出匯入結果訊息。
注意
Export 會把目前畫面上的主/明細全部標記為新增後寫回資料表(重新植入該程式的翻譯),不是另存成檔案的「另存新檔」。請在確認資料正確後再執行。
欄位說明¶
主檔¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| ProgramClass | ✔ | 程式代號,主鍵(TsPrimaryKeyTextBox),最長 60 字 |
| Type | — | 文字種類下拉,新增時預設 1 Program;可選 1 Program/2 Table/3 DropDown/8 Message/9 Other |
明細¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| LineNo_ | — | 列號,唯讀,系統自動編 |
| ViewName | — | 所屬畫面名稱,最長 60 字 |
| TableName | — | 所屬資料表名稱,最長 60 字;與 ProgramClass、KeyValue 一起作為重複檢查鍵 |
| KeyValue | ✔ | 文字識別鍵,最長 100 字;留白的列存檔時略過、且為可刪除狀態 |
| English | — | 英文,最長 200 字 |
| TraditionalChinese | — | 繁體中文,最長 50 字 |
| SimplifiedChinese | — | 簡體中文,最長 50 字 |
| Japanese | — | 日文,最長 100 字 |
| Vietnamese | — | 越南文,最長 100 字 |
Type 對照
Type 用來標示這支程式的翻譯屬於哪一類介面文字:Program(程式畫面文字)、Table(資料表欄位)、DropDown(下拉選項)、Message(訊息)、Other(其他)。
欄位連動與附加功能¶
這一節整理「輸入某欄位/按某按鈕後,系統會做什麼」,全部來自實際程式碼。
-
新增主檔時自動帶 Type=Program 當你新增一筆主檔,系統會把 Type 預設為
1 Program(SetNewData將LanguageType設為 1)。需要其他種類時自行改選下拉。 -
存檔時擋重複鍵 按
儲存時,系統會把每一筆明細的「ProgramClass + TableName + KeyValue」組成檢查鍵(其中 TableName、KeyValue 轉小寫比對,ProgramClass 維持原樣)。若有兩列產生相同的鍵,存檔被擋並提示<KeyValue> is Duplicate。標記為刪除的列與 KeyValue 留白的列不參與檢查。要排除重複,請確認同一程式同一 TableName 下沒有重覆的 KeyValue。 -
明細刪除有條件 明細列只有在 KeyValue 為空白時才可刪除(
NeedDeleteFunction以 KeyValue 是否空白判定)。已填 KeyValue 的列若要移除,需先清空 KeyValue。 -
Export按鈕:整批重新植入對照表 按Export時,系統會:- 把主檔每一列標記為新增(
SysRowStatus = A)並把pkid歸零。 - 把明細每一列標記為新增(
增刪修 = A)並把pkid、linkid歸零。 - 以新增模式把主/明細打包上傳到
_languagem/_languaged對應的資料表。 - 顯示
Export Ok。
因為所有列都被當成新增,效果等於把目前畫面上的翻譯重新寫入資料表。
- 把主檔每一列標記為新增(
-
Import按鈕:從 XML 匯入翻譯 按Import時,系統會:- 取得本程式對應的資料表清單(
_languagem、_languaged)。 - 從系統參數設定的 XML 交換檔目錄載入
_languagemModel.xml與_languagedModel.xml。 - 將兩個 XML 內容透過上傳元件以新增方式寫入對照表。
- 跳出匯入結果訊息框顯示處理結果。
若目錄下缺少對應的 XML 檔,匯入會失敗或無資料寫入。
- 取得本程式對應的資料表清單(
小技巧
要把一支程式的翻譯從測試庫搬到正式庫:在來源庫帶出該程式後按 Export(產生對照資料)並把 XML 交換檔複製到目標機,再到目標庫按 Import。
尚未提供的功能
本表單目前僅提供新增/修改/刪除/查詢與 XML 匯入匯出,沒有列印(GetReports/報表來源)或簽核流程的程式實作。畫面上的 Auditor/AuditDate/IsApproved/WorkflowCode 等為主檔內建的審核/工作流程欄位,本表單未提供對應操作介面。
常見問題¶
存檔時跳出「is Duplicate」是什麼意思?
表示同一支程式、同一 TableName 下出現了重複的 KeyValue(TableName 與 KeyValue 比對時不分大小寫)。請找出重複的那兩列,修改其中一列的 KeyValue 或 TableName,再重新存檔。
某一列翻譯刪不掉?
明細列只有在 KeyValue 空白時才允許刪除。請先把該列的 KeyValue 清空,再執行刪除。
輸入了翻譯但畫面上的文字沒變?
請確認:1)ProgramClass 與該程式實際的代號一致;2)KeyValue 與畫面元件取用的識別鍵相符;3)目前登入使用的語系,對應欄(例如繁中對 TraditionalChinese)有填值。對應欄留白時該語系會顯示空字串。
按 Import 沒有任何資料進來?
匯入是讀系統 XML 交換檔目錄下的 _languagemModel.xml 與 _languagedModel.xml。請確認這兩個檔已放在正確目錄、檔名正確且內容非空。
Export 之後資料怎麼好像被重寫了?
這是正常行為。Export 會把目前畫面的主/明細全部當成新增資料重新寫入對照表(並重置內部主鍵),並非把資料另存成檔案。請在資料確認無誤後再按。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/A-System/images/):
language-step1.png— 主檔區(ProgramClass、Type 下拉)與右上 Export/Import 按鈕全貌language-step2.png— 明細格線(KeyValue 與五語系欄位)language-step3.png— 存檔擋重複鍵的提示訊息