Board logo

标题: [系统相关] [分享]批处理版AppLocale [打印本页]

作者: caruko    时间: 2011-6-16 18:20     标题: [分享]批处理版AppLocale

本帖最后由 caruko 于 2011-6-16 21:04 编辑

经常接触 日、韩、台等非简体中文文档的人,或者经常玩国外非Unicode编码的游戏的人,一定知道AppLocale这个小程序,该程序可以以指定的语言运行非Unicode程序。

假如一个文本文件采用BIG5编码,系统当前的ANSI代码页是GBK。打开这个文件,就会显示乱码。
但是使用以下BAT代码,可以无需更改“控制面板--区域”设置,也无需安装AppLocale程序。

假如要使用日语的Locale设置打开a.txt,代码如下:
  1. @ECHO OFF
  2. SET AL_CS=1
  3. SET __COMPAT_LAYER=#ApplicationLocale
  4. SET ApplocaleID=0411
  5. start notepad.exe a.txt
复制代码
其中ApplocaleID的值是 16 进制的LCID值,LCID表如下:
  1. 语言 LCID 16进制值
  2. 阿拉伯语(沙特阿拉伯) 1025 0x0401
  3. 中文(香港) 3076 0x0c04
  4. 中文(中国) 2052 0x0804
  5. 中文(台湾) 1028 0x0404
  6. 克罗地亚语 1050 0x041A
  7. 捷克语 1029 0x0405
  8. 丹麦语 1030 0x0406
  9. 荷兰语(标准) 1043 0x0413
  10. 英语(英国) 1033 0x0409
  11. 爱沙尼亚 1061 0x0425
  12. 芬兰 1035 0x040B
  13. 法国(标准) 1036 0x040C
  14. 德语(标准)1031 0x0407
  15. 希腊 1032 0x0408
  16. 希伯莱语 1037 0x040D
  17. 匈牙利语 1038 0x040E
  18. 意大利语(标准) 1040 0x0410
  19. 日语 1041 0x0411
  20. 韩语 1042 0x0412
  21. 拉脱维亚语 1062 0x0426
  22. 立陶宛语 1063 0x0427
  23. 挪威语(博克马尔语) 1044 0x0414
  24. 波兰语 1045 0x0415
  25. 葡萄牙语(巴西) 1046 0x0416
  26. 葡萄牙语(葡萄牙) 2070 0x0816
  27. 罗马尼亚语 1048 0x0418
  28. 俄语 1049 0x0419
  29. 斯洛伐克语 1051 0x041B
  30. 斯洛文尼亚语 1060 0x0424
  31. 西班牙语(现代风格) 3082 0x0C0A
  32. 瑞典语 1053 0x041D
  33. 泰语 1054 0x041E
  34. 土耳其语 1055 0x041F
复制代码

作者: qzwqzw    时间: 2011-6-16 19:44

在以下链接中看到了类似的内容
谈谈Windows程序中的字符编码
http://www.fmddlmyy.cn/text7.html

可惜在我的环境下始终无法测试成功
不知道楼主测试过结果如何?
作者: user_    时间: 2011-6-16 20:00

在以下链接中看到了类似的内容
谈谈Windows程序中的字符编码
http://www.fmddlmyy.cn/text7.html

可惜在我的环境下始终无法测试成功
不知道楼主测试过结果如何?
qzwqzw 发表于 2011-6-16 19:44

貌似链接失效
“Bad Request (Invalid Hostname)”
作者: 523066680    时间: 2011-6-16 20:03

在寻找绝版游戏的5年时间里(不知道游戏名称,惨),谷歌上找到了一个伙伴也在搜,跟他探讨关键词,
后来用游戏中的三个物品去搜,搜到了答案。
结果日文版的,他告诉我applocale可以转中文
(这个过程NB不…… 五年,一个读书时玩的角色扮演游戏,《复活邪神2》)
作者: qzwqzw    时间: 2011-6-16 20:33

3# user_
那是原作者的网站链接
可能是临时故障吧

不过还好
同样的标题可以Google一堆链接
可惜没有几个标注原作者的

所以我不想你的知识被湮灭
那就放开让人去转载吧
作者: caruko    时间: 2011-6-16 20:48

嗯,我的确是在一篇不知道转了多少次的文章里看到了AppLocale的汇编说明,就是改了2个环境变量。
LCID表自己搜了一下,转了一下16进制。
作者: qzwqzw    时间: 2011-6-16 20:55

那么楼主竟是测试通过了
确认不需要安装AppLocale吗?
作者: caruko    时间: 2011-6-16 21:04

好吧,经测试,的确少了一个变量。
已修改。
测试成功的代码如下:
  1. @ECHO OFF
  2. SET AL_CS=1
  3. SET __COMPAT_LAYER=#ApplicationLocale
  4. SET AppLocaleID=0411
  5. start "" E:\仙境传说单机版\Config.exe
复制代码

作者: caruko    时间: 2011-6-16 21:10

测试图片如下:

左边的是使用 0411 日文环境,右边是简体中文环境。
作者: caruko    时间: 2011-6-16 21:22

好吧,结果发现,卸载AppLocale后,无法做到以上了。
看来,AppLocale机制可能没这么简单。
这贴删了?
作者: 523066680    时间: 2011-6-16 21:29

好吧,结果发现,卸载AppLocale后,无法做到以上了。
看来,AppLocale机制可能没这么简单。
这贴删了?
caruko 发表于 2011-6-16 21:22

留着纪念。毕竟俺花了心思回帖的……
繁体中文如何?
作者: caruko    时间: 2011-6-16 21:33

繁体中文也没问题,设为0404就可以。
只是还是必须安装AppLocale。
只是起到用BAT来代替AppLocale来启动程序。
作者: dennisle    时间: 2011-6-16 21:33

本帖最后由 dennisle 于 2011-6-16 21:34 编辑

"SET AL_CS=1"
請教樓主加了這一行有何用意?
之前玩國服跑跑卡丁車也寫過這東西,
那時沒加這一行也能正常運行!!
  1. @echo off
  2. set __COMPAT_LAYER=#ApplicationLocale
  3. set AppLocaleID=0804
  4. start "" D:\Games\Gamania\PopKart\M01\KartRider.exe
复制代码

作者: Hello123World    时间: 2011-6-17 21:33

4楼在说冷笑话吗,applocale以前用来玩全面战争时用过,转字体。
作者: qzwqzw    时间: 2011-6-18 10:02

14楼也是在说冷笑话吗?
AppLocale应该是字符集编码的兼容层工具吧
主要是用来运行各种异类字符集的应用程序的

话说楼主有必要在编辑一下顶楼
把那句“也无需安装AppLocale程序”改一下
免得想我一样的朋友空高兴一场




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2