none
關於多語系應用程式開發 RRS feed

  • 問題

  • 各位先進您好

     

    想請教關於多語系應用程式開發的問題

     

    目前 我知道 從表單 的 language 屬性 可以讓表單切換 不同的語系

     

    但是 在程式中, 一直研究不出來 如何 如何改變引用的資源檔

     

     

    我用msdn的範例 寫入一個資源檔 並讀出

     

     rm = ResourceManager.CreateFileBasedResourceManager("MyResource", ".", Nothing)

     myString = rm.GetObject("MyText")

    但是 卻找不出他建立的資源檔是那一個

     

    我用以下的語法,卻只能引用  專案屬性的那個字串資源檔

     

    im culture As String = My.Application.UICulture.Name
            My.Application.ChangeUICulture("fr-FR")
            MsgBox(My.Resources.Message)
            My.Application.ChangeUICulture(culture)

     

     

    我想請問 不同語系的資源檔 在程式中 我如何去引用

     

    讓他在不同的語言 選擇 對應的 資源檔的字串來使用

     

    研究了兩三天msdn的內容 實在還是搞不懂

     

    麻煩各位先進 指導一下,謝謝

     

     

     

     

    2007年8月10日 上午 03:10

解答

所有回覆

  •  

    當然 我想過一個權宜措施,那就是用vb6的方式

    既然 能夠引用 應用程式的字串資源

     

    把應用程式資源檔的名稱,如繁體 a00001 開始 簡體 a10001 開始

    用這樣的方式 暫時 是可以解決兩個語言的切換

     

    但畢竟不是很理想

     

    vb 可以 讀取不同的資源檔,只是研究不出來怎麼切換不同的資源檔

    還望各位先進指教一下.謝謝

     

     

    2007年8月10日 上午 03:31
  • 2007年8月10日 上午 03:32
    版主
  •  

    謝謝

    這篇我有搜尋到

    也看了好幾次

    但還是搞不定

     

    引述:

    3. 自行新增各國的 Resource File, 再輸入多國語言字串, 程式一開始利用 ResourceManager Class 及 LCID 去 Load 相對應的 Resource File, 再用 GetString Method 去設定每個控制項的 Text。這方法的好處是多國語言字串就直接包含在執行檔裡了, 比較適合小軟體。

     

     

    我可以新增其他語系的resx檔

    但不知道怎麼 引用

    目前 我只能 引用到 專案的那個資源檔

     

    '上文中的 "去 Load 相對應的 Resource File"

     

    不知道如何 來載入 另一個資源檔進來

     

     

     

     

     

     

    2007年8月10日 上午 03:39
  • Dear Sir

    有去看過.Net Magezine那篇文章嗎?裡面有提到資源檔的部分,或是你對該程式碼有疑問的地方是?
    2007年8月10日 上午 03:53
    版主
  •  

    不好意思

     

    .Net Magezine 這一篇是 論壇內的討論嗎?

    我沒搜尋到.

     

    2007年8月10日 上午 04:02
  •  chih.ching 寫信:

     

    不好意思

     

    .Net Magezine 這一篇是 論壇內的討論嗎?

    我沒搜尋到.

     

     

    很有名的電子週刊網站:http://www.netmag.com.tw/

    2007年8月10日 上午 05:47
    版主
  • Hi,

    上面那個連結中有一篇提到

    引述

    詳細的實做
    您可以 恆逸網站 國際中文電子版各
    撰寫多國語言程式  N020800701  
    許老師有寫過這一篇,有實做,您可以參考看看!

     

     

    .Net Magezine的網址

    http://www.netmag.com.tw/default.aspx

    可能要經過註冊,之後用全文檢索去找 N020800701
    2007年8月10日 上午 05:49
    版主
  •  

    感謝 感謝

    我上去研究一下

     

    2007年8月10日 上午 06:21
  •  

    大哥! 要再麻煩您指導一下

     

    不大理解 命名空間的概念

     

    我新增一個 ResourcesTW.resx 放在 專案目錄內

    並且 用新增項目 把這個資源檔加到專案內

     

    Dim rm As New ResourceManager("Resources.ResourcesTW", [Assembly].GetExecutingAssembly())

     

    在上述 "Resources.ResourcesTW" 是名稱空間.資源檔名稱

     

    這樣設對嗎?

     

    快搞定了 , 再多一點點概念 就成了

     

    2007年8月10日 上午 07:25
  •  

    忘了問一點, 資源檔 是否 在 vb2005 Express 版本 無效

    沒有 resources  這個目錄

     

    錯誤訊息是:

    在磁碟上找不到任何適用特定文化特性或中性文化特性的資源。

    baseName: long  locationInfo: <null>  fileName: long.resources

    2007年8月10日 上午 08:16