跳轉到

程式資訊

  • 程式 IDLANGUAGE
  • 所屬子系統:A.系統資料
  • 狀態:stable

多語系資料維護

功能簡介

「多語系資料維護」維護系統介面文字的翻譯對照表:每一支程式(ProgramClass)底下,把畫面上會出現的文字(欄位名稱、下拉選項、訊息等)逐一登錄成 KeyValue → 五種語言 的對照列。一筆主檔對應一支程式並指定其文字「種類(Type)」,明細則是該程式所有要翻譯的字串。

資料存在 Twork_sys_vw_languagem(主檔)與 Twork_sys_vw_languaged(明細)兩張 View。系統執行時依使用者選用的語系,從這份對照表取對應欄(English/TraditionalChinese/SimplifiedChinese/Japanese/Vietnamese)顯示介面文字。

這支表單通常由系統管理員或導入顧問使用,用於:

  1. 為新程式建立介面文字的翻譯。
  2. 補上某語系缺漏的翻譯。
  3. 透過 Export / Import 把整支程式的翻譯打包成 XML,在不同資料庫之間搬移。

與終端使用者語系切換的差別

本頁是維護翻譯來源資料,不是切換目前介面語言。實際顯示哪一種語言由登入後的語系設定決定,這裡只負責提供每個 KeyValue 在各語言下要顯示的字串。

前置需求

  • 權限:A.系統資料 → 多語系資料維護 的瀏覽/新增/修改/刪除權限。
  • 基礎資料
資料 影響什麼
程式代號(ProgramClass) 主檔主鍵,決定這批翻譯屬於哪一支程式;輸入錯誤會掛在不存在的程式上而不顯示
XML 交換檔目錄 Import 讀檔、Export 寫檔的位置(系統參數設定的 XML 目錄)
各語系翻譯字串 該語系下實際顯示的介面文字;某語系欄留白則該語系顯示空字串

操作步驟

新增一支程式的翻譯

  1. 從主選單開啟 A.系統資料 → 多語系資料維護。
  2. ProgramClass 欄輸入程式代號(主鍵)。
  3. 選擇 Type(文字種類),新增時預設帶 1 Program
  4. 在下方明細格線逐列輸入:
    1. KeyValue:這段文字的識別鍵(必填,否則該列存檔時被略過)。
    2. ViewNameTableName:所屬畫面/資料表名稱(用於分群與避免重複鍵)。
    3. EnglishTraditionalChineseSimplifiedChineseJapaneseVietnamese:各語系翻譯。
  5. 按工具列的 儲存

修改/刪除

  1. 用工具列查詢功能帶出既有程式的翻譯。
  2. 直接在明細格線修改各語系文字後 儲存
  3. 要刪除某列翻譯時,先清空該列 KeyValue 再執行刪除(見欄位連動與附加功能的刪除規則)。

匯出翻譯(Export)

  1. 帶出(或新增)要匯出的程式翻譯。
  2. 按畫面右上的 Export
  3. 系統把目前主檔+明細整批標記為新增資料並寫入資料庫對照表,完成後顯示 Export Ok

匯入翻譯(Import)

  1. 確認 XML 交換檔目錄下已放妥 _languagemModel.xml_languagedModel.xml
  2. 按畫面右上的 Import
  3. 系統讀取這兩個 XML 檔並寫入對照表,完成後跳出匯入結果訊息。

注意

Export 會把目前畫面上的主/明細全部標記為新增後寫回資料表(重新植入該程式的翻譯),不是另存成檔案的「另存新檔」。請在確認資料正確後再執行。

欄位說明

主檔

欄位 必填 說明/格式/預設
ProgramClass 程式代號,主鍵(TsPrimaryKeyTextBox),最長 60 字
Type 文字種類下拉,新增時預設 1 Program;可選 1 Program2 Table3 DropDown8 Message9 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 ProgramSetNewDataLanguageType 設為 1)。需要其他種類時自行改選下拉。

  • 存檔時擋重複鍵儲存 時,系統會把每一筆明細的「ProgramClass + TableName + KeyValue」組成檢查鍵(其中 TableName、KeyValue 轉小寫比對,ProgramClass 維持原樣)。若有兩列產生相同的鍵,存檔被擋並提示 <KeyValue> is Duplicate。標記為刪除的列與 KeyValue 留白的列不參與檢查。要排除重複,請確認同一程式同一 TableName 下沒有重覆的 KeyValue。

  • 明細刪除有條件 明細列只有在 KeyValue 為空白時才可刪除(NeedDeleteFunction 以 KeyValue 是否空白判定)。已填 KeyValue 的列若要移除,需先清空 KeyValue。

  • Export 按鈕:整批重新植入對照表Export 時,系統會:

    1. 把主檔每一列標記為新增(SysRowStatus = A)並把 pkid 歸零。
    2. 把明細每一列標記為新增(增刪修 = A)並把 pkidlinkid 歸零。
    3. 以新增模式把主/明細打包上傳到 _languagem / _languaged 對應的資料表。
    4. 顯示 Export Ok

    因為所有列都被當成新增,效果等於把目前畫面上的翻譯重新寫入資料表。

  • Import 按鈕:從 XML 匯入翻譯Import 時,系統會:

    1. 取得本程式對應的資料表清單(_languagem_languaged)。
    2. 從系統參數設定的 XML 交換檔目錄載入 _languagemModel.xml_languagedModel.xml
    3. 將兩個 XML 內容透過上傳元件以新增方式寫入對照表。
    4. 跳出匯入結果訊息框顯示處理結果。

    若目錄下缺少對應的 XML 檔,匯入會失敗或無資料寫入。

小技巧

要把一支程式的翻譯從測試庫搬到正式庫:在來源庫帶出該程式後按 Export(產生對照資料)並把 XML 交換檔複製到目標機,再到目標庫按 Import

尚未提供的功能

本表單目前僅提供新增/修改/刪除/查詢與 XML 匯入匯出,沒有列印(GetReports/報表來源)或簽核流程的程式實作。畫面上的 AuditorAuditDateIsApprovedWorkflowCode 等為主檔內建的審核/工作流程欄位,本表單未提供對應操作介面。

常見問題

存檔時跳出「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/):

  1. language-step1.png — 主檔區(ProgramClass、Type 下拉)與右上 Export/Import 按鈕全貌
  2. language-step2.png — 明細格線(KeyValue 與五語系欄位)
  3. language-step3.png — 存檔擋重複鍵的提示訊息