如何本地化autorun.inf?

时间:2010-09-21 23:49:14

标签: windows localization autorun

有没有人成功创建过单页autorun.inf文件? * .inf文件的文档建议

[autorun] 
open="MyApp.exe"
icon=MyApp.exe,0
label=%AppLabel%
action=%AppAction%
[Strings]
AppLabel = "My test app"
AppAction = "Start my test app"
[Strings.0407]  ; 0407 is the language ID for German
AppLabel = "German my test app"
AppAction = "German start my test app"

应该有效。我发现该标签(显示在自动运行对话框中)显示'%AppLabel%'而不是预期的'我的测试应用'。

1 个答案:

答案 0 :(得分:2)

卡萨布兰卡在评论中联系的docs告诉我们必须如何做到这一点,不过这是一种迂回的方式。

答案在"indirect strings"。您必须将多个字符串资源添加到EXE或DLL文件中,所有这些资源都具有相同的ID但指定了不同的语言(通过LANGUAGE语句。)然后,您可以通过间接引用autorun.inf文件中的这些字符串字符串语法:@filename,-id

间接字符串的语法是@符号,后跟包含您引用的字符串资源的文件名,后跟逗号,减号,然后是您引用的字符串ID。

示例:

[autorun]
open="MyApp.exe"
icon=MyApp.exe,0
label=@MyApp.exe,-100
action=@MyApp.exe,-101

这要求您在EXE中包含一个包含所有本地化字符串的字符串表资源。它在RC文件格式中看起来像这样:

#include <winresrc.h>

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
    100 "English MyApp
    101 "English MyApp description text"
END

LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
    100 "German MyApp
    101 "German MyApp description text"
END

如果用户安装了德语版本的Windows,或者选择德语作为他的MUI语言,Windows应该使用德语字符串。任何其他语言版本都应该选择英文字符串。

相关问题