C# Windows 窗体本地化测试

标签 c# winforms testing localization

我已经设置了一个 Windows 窗体项目来使用本地化,以便它支持中文和英文。我已经建立了一种在加载表单时强制使用一种或另一种语言的方法。在调用 InitializeComponent() 之前,我有一些代码可以执行此操作...

     switch (Properties.Settings.Default.SelectedLanguage)
        {
            case "":
                break;
            case "English":
                Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
                Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
                break;
            case "Chinese":
                try
                {
                    Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CHT");
                    Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CHT");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                break;   
        }

那么当 SelectedLanguage 属性设置为“Chinese”时,程序应该使用中文本地化吗?我在调试时对此进行了测试,它完全按预期工作。也就是说,当程序启动 SelectedLanguage == "Chinese"时,所有按钮和标签都显示为我输入的中文文本。当 SelectedLangugage == "English"时,所有内容都显示在我输入的英文文本中。

问题是当我安装这个程序并运行它(不是调试)时它不起作用。即使在我的开发机器上。无论将 SelectedLanguage 设置为什么,程序始终显示英语本地化。我什至在显示“Application.CurrentCulture.Name”的程序开头放了一个弹出消息框,它显示了中文文化名称(zh-CHT),但它仍然以英文显示所有内容。那么调试期间和实际运行时发生的事情有什么区别呢?我该如何解决?!?

最佳答案

确保您的本地化资源 Dll 已正确安装。

您的安装程序应将资源文件放入子文件夹中,例如

zh-CHT\AssemblyName.resources.dll

关于C# Windows 窗体本地化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4877721/

相关文章:

c# - 在 ToolStripTextBox (C#) 中检测来自剪贴板的粘贴

android - 在 uiautomator 中滑动到下一页

android - 优化 Android 测试工作

.net - 如何强制验证 Compact Framework 中的表单/控件?

kotlin - Mockk:如何模拟保存对象时生成的对象ID(答案+变量)

c# - 避免将 `in` 与结构一起使用而不会使结构成为只读而降低性能?

c# - 是否允许 native 应用程序客户端使用重定向 URI 中的任何随机可用端口?

c# - 选择最后一个 XML 节点

c++ - Visual Studio 2010 Professional for C++ Windows Form Application下更改启动窗体

c# - 使用语音命令启用和禁用语音识别