我正在开发的产品有美国版和英国版。我们的英国测试服务器上有一项服务无法获取正确的 resx 文件。通过代码追踪后,我们将正确的 CurrentCulture 设置为“en-GB”,但 CurrentUICulture 仍然是“en-US”。
显然我们没有正确设置某些内容。如何从美国机器正确设置英国虚拟机?
这是在 Windows Server 2003 上
答案1
来自 MS 知识库文章这里:
1 按开始 -> 设置 -> 控制面板 -> 区域选项。
2 从“您的本地(位置)”列表框中,选择适当的位置来设置用户本地(包括日期、货币、时间、数字等格式)
3 从“设置默认”按钮中,选择操作系统的默认语言,例如,如果您选择阿拉伯语作为默认语言,则 ANSI 应用程序将正确显示阿拉伯语文本。
4 按“OK”按钮然后重新启动。
笔记:更改系统区域设置将在系统重启后生效,而仅更改用户区域设置则不需要重新启动系统。
更改系统区域设置需要区域设置系统管理权限,而更改用户区域设置则不需要。
我想选择“英语(英国)”就能得到你想要的。
答案2
我今天正在这样做,但方向相反 - 从英国到美国和加拿大。可能的问题是控制面板选项“将所有设置应用于当前用户帐户和默认用户配置文件”将仅更新 .DEFAULT 和 S-1-5-18(本地系统帐户)。您的大多数服务将在 S-1-5-19(本地服务)和 S-1-5-20(网络服务 -完整列表在这里)。
我所做的是:
- 使用控制面板将系统默认设置为所需的区域设置
- 打开 regedit 并导航至
HKEY_Users\S-1-5-18\Control Panel\International
- 确认所需的本地显示在右侧面板中,如果没有,请返回 1 或尝试重新启动或做其他事情
- 右键单击左侧面板中的 International 键并将其导出到 S-1-5-18.reg 文件
- 复制该文件并将其重命名为 S-1-5-19.reg
- 在记事本中打开 S-1-5-19.reg,并将 S-1-5-18 的两个实例替换为 S-1-5-19
- 重复 5 和 6,但 S-1-5-20 除外
- 导入 S-1-5-19.reg 和 S-1-5-20.reg(双击并确定)
- 重启服务器
如果您打算做很多这样的工作,您可能还需要导出一些具有美国设置的注册表文件 - 我现在有一套针对英国、美国和加拿大的注册表文件,因此我可以通过双击和重新启动来切换我的虚拟机。
答案3
如果它是虚拟服务器,那么为什么不从头开始设置一个新的虚拟服务器,并在安装时将所有位置详细信息设置为英国?如果其他一切都失败了,那么这可能会节省您查找错误设置的时间。如果这不起作用,我猜可能是您的代码中的其他地方导致了问题。