2009-09-22 48 views
1

我目前正在本地化一個表單。不過,我對於如何正確做到這一點有點困惑。爲什麼在設計器中更改文化時不會自動創建本地化資源文件?

我認爲可以自動將控制屬性導出到資源文件,但似乎這是一個手動任務。

我目前的做法是添加所有類型爲String並且可寫入資源文件的控件屬性。這通過遞歸枚舉窗體上的所有控件和子控件並反射屬性。

但這似乎有些複雜,我不知道其他人是如何做到這一點的。

所以我的問題: 什麼是在控制文本本地化中使用資源文件的最佳做法?

編輯:我明白我做錯了什麼。我認爲Displaytext會自動複製到每個資源文件中。但是,似乎只有已更改的字段才被複制。因此基本上,我將語言設置爲特定設置,爲所有控件更改DisplayText,並且當我將語言更改回(默認)時,更改將被保存。

感謝您的任何/所有評論。

回答

3

那麼,實際上本地化表單並不難。您將「Localizable」屬性設置爲「true」。這會導致窗體上控件的所有可本地化屬性被遷移到資源文件中。當前資源文件是獨立於語言環境的文件。然後,您可以在表單屬性中選擇另一種語言,並將所有控制字幕和文本替換爲其翻譯的變體。這會導致創建和使用適當的與區域相關的資源文件。

您可以選擇在該接口通過Thread.CurrentThread設置的CurrentCulture和性能的CurrentUICulture語言顯示:

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB"); 
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB"); 

接口西港島線相應的調整。

+0

用翻譯替換所有控制字幕都有竅門,謝謝! – 2009-09-22 10:19:23

1

它已經這樣做了。

在Form或UserControl設計器中打開Localizable。

現在改變你的語言(也在設計器中),並自動創建合適的langXXX.resx。

+0

從我讀的所有東西中,這似乎是實現它的方法,但是我的控件的Text屬性沒有出現在Resource文件的任何位置。 – 2009-09-22 09:52:46

+0

如果您構建自己的自定義控件,則必須爲需要本地化的屬性(如顯示文本,圖標等)設置Localizable屬性。爲此,只需在屬性聲明上方放置'[Localizable(true)]'。 – Joey 2009-09-22 09:58:37

+0

我明白了,但即使標準,按鈕,單選按鈕,組框等標準控件也不會出現在資源文件中。也許我做錯了什麼...... – 2009-09-22 10:02:37

1

您只需將表單設置爲可本地化(在屬性面板中將Localizable設置爲true)。那麼你只需要選擇你想要本地化的語言。所有必需的資源文件都是自動生成的

相關問題