Windows Vista引入了三个伪区域的概念:
Pseudo Locale Locale Name LCID =================== =========== ====== Base qps-ploc 0x0501 Mirrored qps-mirr 0x09ff East Asian-language qps-asia 0x05fe
启用Base语言环境非常有用,因为您可以检查应用程序是否使用当前语言环境来格式化date,时间,数字,金钱等项目。
例如,当前的语言环境设置为Base时 ,date将被格式化为:
[Шěđлеśđαỳ!!!],8ōf[Μäŕςћ!!]ōf2006
Windows的构build实际上是在伪造的 ,然后本地化为英语:
使用这些语言环境的另一个值:它testing您的应用程序不会假设16位PRIMARYLANGID
由以下内容组成:
当实际上PRIMARYLANGID是 :
或graphics:
+-----------------------+-------------------------+ | Sublanguage ID | Primary Language ID | +-----------------------+-------------------------+ 15 10 9 0 bit
这三个伪区域终于走到了第8位的末端(微软已经为打破越野车应用而疲惫不堪)。
我如何在Windows中启用伪区域设置?
我如何在Windows中启用伪区域设置?
最初,三个伪区域在“控制面板”中不可见 :
请注意,NLS不会自动枚举伪区域或将其公开在控制面板的区域和语言选项部分。 只有在注册表中设置了值时,它们才是可枚举的。
通过添加一些注册表项来启用它们:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Locale] "00000501"="1" "000009ff"="d" "000005fe"="7"
哪些可以在RegEdit中完成:
然后,您可以转到“控制面板”中的“ 区域和语言选项 ”:
并选择伪区域设置:
三种不同的伪区域用于测试3种语言环境:
基础 qps-ploc
语言环境用于类似英语的伪本地化。 它的字符串是英文字符串的较长版本,使用非拉丁文和重音字符而不是普通脚本。 另外,简单的拉丁字符串应该按照与本地区相反的顺序进行排序
镜像 qpa-mirr
用于从右到左的伪数据,这是另一个感兴趣的测试领域。
东亚 qps-asia
旨在利用大型CJK字符库,这对于测试也很有用。
警告:不要尝试更改“系统区域设置” :
到一个新的伪区域:
否则重启后:
Windows将无法启动:
唯一的解决方法是从故障恢复控制台手动编辑注册表 ; 恢复旧en-US
语言环境。
伪区域的使用用于在软件中查找本地化错误。 不幸的是,这也会让你在别人的软件中发现错误; 包括微软的:
与其他语言环境( Microsoft Connect )一起提供时,SQL server Management Studio 1崩溃:
Microsoft Excel将不再允许您输入函数(用于分隔参数的逗号不再有效)
Visual Studio将不再允许您编辑逗号分隔的属性
SQL server Management Studio关系图设计器报告错误
.NET在日期和时间格式上有一个错误,显示22////11////2011 4::::42::::53 P̰̃M]
Windows事件查看器:
任务计划程序:
SQL server管理工作室:
祝愿微软能够把自己的产品用于食品。
1 10.50.1617.0
更新4 // 10/2012:
尝试在SQL server Management Studio中编辑表的前200行 :
执行的SQL语句SELECT TOP(200)…
错误源:Microsoft.Sqlserver.Management.DataTools
错误消息:对象引用未设置为对象的实例
通过将负号符号从--
改为-
来修复。
您还可以更改Internet Explorer的Accept-Languages
来请求qps-ploc
语言:
您可以使用它来测试您的网站是否支持psuedo-locale,并检查是否有缺失的本地化:
你可以看到我在这个示例网站中遗漏了两位文本。
它看起来像而不是修复.NET,SQL server,Excel等的本地化错误,微软在Windows 10中更改了伪语言环境来掩盖错误:
| Item | Windows 7 | Windows 10 | |-----------------------|--------------------------|-----------------------| | Locale Identifier | 0x0501 (1281) | 0x0501 (1281) | | Locale Name | qps-ploc | qps-ploc | | Example Number | --123,,4567,,8901 | -123,,4567,,8901 | | Example Currency | --$$123,,4567,,8901..00 | -$123,,4567,,8901.000 | | Example Float | --123,,4567,,8901..00 | -123,,4567,,8901.000 | | Example Date | 9//08//2015 | 9/8/2015 | | Example Time | 9::51::17 АΜ | 9:45:09 | | Example DateTime | 9//08//2015 9::51::17 АΜ | 9/8/2015 9:45 | | LOCALE_SLANGUAGE | Pseudo Language (Pseudo) | Pseudo (Pseudo) | | LOCALE_SENGLANGUAGE | Pseudo Language | Pseudo | | LOCALE_SDECIMAL | .. | . | | LOCALE_SCURRENCY | $$ | $ | | LOCALE_SMONDECIMALSEP | .. | . | | LOCALE_SDATE | // | / | | LOCALE_STIME | :: | : | | LOCALE_SSHORTDATE | d//MM//yyyy | d/MM/yy | | LOCALE_STIMEFORMAT | h::mm::ss tt | H:mm:ss | | LOCALE_ITIME | 0 | 1 | | LOCALE_ICENTURY | 1 | 0 | | LOCALE_SNEGATIVESIGN | -- | - |
我可以理解,不想修复你的错误,因为你太懒了,太难了。 但是你应该被迫为所有人看到你的耻辱。
相反,你要指出并试图隐藏你的失败。 那太糟糕了。