在 C# 中實現資源本地化
問題:
儘管嘗試過多種本地化方法,但仍無法實現預期的功能。問題出現在類庫中,目標是創建 .resx 文件,根據線程區域性返回相應的值。如何才能實現這一目標?
解答:
1. 添加資源文件:
右鍵點擊項目“屬性”,選擇“添加 -> 新建項...”,然後選擇“資源文件”,命名為“strings.resx”。這將作為默認資源文件。
2. 定義字符串資源:
在 .resx 文件中,創建一個具有有意義名稱的字符串資源(例如,名稱為“Hello”,值為“Hello”)。保存資源文件。
3. 添加系統引用:
包含以下命名空間的引用:
4. 代碼示例:
執行以下代碼將“Hello”打印到控制台:
<code class="language-csharp">Console.WriteLine(Properties.strings.Hello);</code>
5. 創建其他資源文件(可選):
為了實現不同語言的本地化,可以使用特定語言代碼創建其他資源文件(例如,法語為“strings.fr.resx”)。添加相同的字符串資源,但使用翻譯後的值。
6. 操作 CurrentUICulture:
要切換本地化資源,請使用以下代碼:
<code class="language-csharp">Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fr-FR"); Console.WriteLine(Properties.strings.Hello); // 输出: "Salut"</code>
7. 回退機制:
如果找不到特定區域性的資源文件,系統將回退到默認資源文件或更通用的資源文件。
8. 細粒度本地化:
為特定語言區域創建資源文件(例如,法國法語為“strings.fr-FR.resx”)。為該區域的唯一字符串添加資源,而共享字符串可以保留在更通用的資源文件中(例如,“strings.fr.resx”)。
以上是如何使用.RESX文件在C#類庫中本地化資源?的詳細內容。更多資訊請關注PHP中文網其他相關文章!