我有3种语言,所以我这样写:
Root: HKLM; Subkey: "SOFTWARE\Company\Office\Client"; ValueType: dword; ValueName: "LocaleID"; ValueData: "?"; Languages: en
Root: HKLM; Subkey: "SOFTWARE\Company\Office\Client"; ValueType: dword; ValueName: "LocaleID"; ValueData: "?"; Languages: ru
Root: HKLM; Subkey: "SOFTWARE\Company\Office4\Client"; ValueType: dword; ValueName: "LocaleID"; ValueData: "?"; Languages: ua
在该ValueData
字段中,我必须输入相应的LanguageID($0419
用于俄语,$1058
乌克兰语和$0409
英语等)。我可以手动输入这些数字,但我想知道是否有办法从其名称中提取LanguageID或其他名称。
您可以使用预处理器同时生成[Languages]
和[Registry]
条目。预处理器具有ReadIni
功能,您可以使用该功能LanguageID
从.isl
文件中读取。
#define AddLanguage(Name, File) \
"[Languages]" + NewLine + \
"Name: " + Name + "; MessagesFile: ""compiler:" + File + """" + NewLine + \
"[Registry]" + NewLine + \
"Root: HKLM; Subkey: ""SOFTWARE\Company\Office\Client""; ValueType: dword; " + \
"ValueName: ""LocaleID""; " + \
"ValueData: " + ReadIni(CompilerPath + File, "LangOptions", "LanguageID") + "; " + \
"Languages: " + Name + NewLine
#emit AddLanguage("en", "Default.isl")
#emit AddLanguage("ru", "Languages\Russian.isl")
#emit AddLanguage("uk", "Languages\Ukrainian.isl")
这将生成如下代码(为了便于阅读,添加了换行和空行):
[Languages]
Name: en; MessagesFile: "compiler:Default.isl"
[Registry]
Root: HKLM; Subkey: "SOFTWARE\Company\Office\Client"; ValueType: dword; \
ValueName: "LocaleID"; ValueData: $0409; Languages: en
[Languages]
Name: ru; MessagesFile: "compiler:Languages\Russian.isl"
[Registry]
Root: HKLM; Subkey: "SOFTWARE\Company\Office\Client"; ValueType: dword; \
ValueName: "LocaleID"; ValueData: $0419; Languages: ru
[Languages]
Name: uk; MessagesFile: "compiler:Languages\Ukrainian.isl"
[Registry]
Root: HKLM; Subkey: "SOFTWARE\Company\Office\Client"; ValueType: dword; \
ValueName: "LocaleID"; ValueData: $0422; Languages: uk
添加SaveToFile
到脚本的末尾以查看生成的代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句