A predefined list of localizable columns introduced

This commit is contained in:
Simon Rozman 2016-09-16 18:51:47 +02:00
parent 2dd92906e3
commit d49be836da
2 changed files with 199 additions and 49 deletions

196
IDT.js
View File

@ -136,6 +136,156 @@ function IDT(path)
} }
IDT.prototype.isLocalizable = function(col)
{
// Test against predefined list of columns.
switch (this.table.toLowerCase()) {
case "actiontext":
switch (this.columns[col].toLowerCase()) {
case "description":
case "template" : return true;
}
break;
case "control":
switch (this.columns[col].toLowerCase()) {
case "text":
case "help": return true;
}
break;
case "controlevent":
switch (this.columns[col].toLowerCase()) {
case "argument": return true;
}
break;
case "customaction":
switch (this.columns[col].toLowerCase()) {
case "target": return true;
}
break;
case "dialog":
switch (this.columns[col].toLowerCase()) {
case "title": return true;
}
break;
case "directory":
switch (this.columns[col].toLowerCase()) {
case "defaultdir": return true;
}
break;
case "error":
switch (this.columns[col].toLowerCase()) {
case "message": return true;
}
break;
case "feature":
switch (this.columns[col].toLowerCase()) {
case "title" :
case "description": return true;
}
break;
case "file":
switch (this.columns[col].toLowerCase()) {
case "filename":
case "language": return true;
}
break;
case "launchcondition":
switch (this.columns[col].toLowerCase()) {
case "description": return true;
}
break;
case "media":
switch (this.columns[col].toLowerCase()) {
case "diskprompt": return true;
}
break;
case "progid":
switch (this.columns[col].toLowerCase()) {
case "description": return true;
}
break;
case "property":
switch (this.columns[col].toLowerCase()) {
case "value": return true;
}
break;
case "publishcomponent":
switch (this.columns[col].toLowerCase()) {
case "appdata": return true;
}
break;
case "radiobutton":
switch (this.columns[col].toLowerCase()) {
case "text":
case "help": return true;
}
break;
case "registry":
switch (this.columns[col].toLowerCase()) {
case "value": return true;
}
break;
case "scheduledtask":
switch (this.columns[col].toLowerCase()) {
case "displayname":
case "description": return true;
}
break;
case "serviceinstall":
switch (this.columns[col].toLowerCase()) {
case "displayname":
case "description": return true;
}
break;
case "shortcut":
switch (this.columns[col].toLowerCase()) {
case "name" :
case "description": return true;
}
break;
case "uitext":
switch (this.columns[col].toLowerCase()) {
case "text": return true;
}
break;
case "verb":
switch (this.columns[col].toLowerCase()) {
case "command" :
case "argument": return true;
}
break;
case "wlanprofile":
switch (this.columns[col].toLowerCase()) {
case "name": return true;
}
break;
}
// Is this column localizable according to its type?
return this.types[col].charAt(0).toLowerCase() == "l";
}
IDT.prototype.save = function(path) IDT.prototype.save = function(path)
{ {
// Build output IDT file in memory. // Build output IDT file in memory.
@ -182,8 +332,8 @@ IDT.prototype.save = function(path)
// SIG // MIIXmAYJKoZIhvcNAQcCoIIXiTCCF4UCAQExCzAJBgUr // SIG // MIIXmAYJKoZIhvcNAQcCoIIXiTCCF4UCAQExCzAJBgUr
// SIG // DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB // SIG // DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
// SIG // gjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIBAAIB // SIG // gjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIBAAIB
// SIG // AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFDK3v7xPfQA4 // SIG // AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFFHlJC6w9pgr
// SIG // KZZoKH2KE80Twx3HoIISyDCCA+4wggNXoAMCAQICEH6T // SIG // unXsafHb3Kze3WGyoIISyDCCA+4wggNXoAMCAQICEH6T
// SIG // 6/t8xk5Z6kuad9QG/DswDQYJKoZIhvcNAQEFBQAwgYsx // SIG // 6/t8xk5Z6kuad9QG/DswDQYJKoZIhvcNAQEFBQAwgYsx
// SIG // CzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENh // SIG // CzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENh
// SIG // cGUxFDASBgNVBAcTC0R1cmJhbnZpbGxlMQ8wDQYDVQQK // SIG // cGUxFDASBgNVBAcTC0R1cmJhbnZpbGxlMQ8wDQYDVQQK
@ -337,30 +487,30 @@ IDT.prototype.save = function(path)
// SIG // OWQwCQYFKw4DAhoFAKBwMBAGCisGAQQBgjcCAQwxAjAA // SIG // OWQwCQYFKw4DAhoFAKBwMBAGCisGAQQBgjcCAQwxAjAA
// SIG // MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG // SIG // MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG
// SIG // AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3 // SIG // AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3
// SIG // DQEJBDEWBBT3K5DzXHaaaztTUWYcKscHz5goHTANBgkq // SIG // DQEJBDEWBBQq1dLcVq9BbKV5KMQ98reQvMJINjANBgkq
// SIG // hkiG9w0BAQEFAASCAQBCIQ7y8ZVmNZke0OJsfe38h/25 // SIG // hkiG9w0BAQEFAASCAQCEQ8DUukR0gIlI0xVrhSIbTkOg
// SIG // VCuB1bCSqiqF7+el2gXbKcQSMSpbF+PqG6HjtzMiFncJ // SIG // Igjh6jIeChBUVtvhjJUusK0k7PuAocrhfORC5g4DiuGY
// SIG // myApTJ+AyBh8ScoRwa+XoOeIV+TPwW2UKy1FUUJ7TAi7 // SIG // TWkFhgNZFD2Koi8VwG4Ex8nU5gAX280BOSDM7tPVm1nv
// SIG // /R7LhYq2xuhcAt6S0kxXy/qDJhhhPSXovi1d1dlNHINT // SIG // 58y5PaxMETlx4HteDjSz9f4cdmRHz+rLtjRiL2WCmn5N
// SIG // wPy9yPeTqD8eSug3xYvt6rsKtQEqJyITIjeU4YIQWDDw // SIG // jFfHzLfbvq/zdv/1d3ZcQv5stvM26oGRhsxJi9F+2/jQ
// SIG // UfdCLhybrtbvyZ881KICrkol/u3DzPF6L9CiHayFYXUO // SIG // o6363vmhiXfpOTdYORaH+KnzH3wuCTa72T65tqO3n+N+
// SIG // ToJOGPiGOAedHLWFpFG0QdYZvQogtzZcYuFtZWbTx/ud // SIG // 7R3Is3hi6K3Eca3YcLq60FNTy0dOrYBYiqKl9PvkZZ54
// SIG // SSXr5BOydkUZ0qjAQoIWuUZbdhGfPoVGQOPUzQVChKYj // SIG // 7xw8QdNVBVxs9wBXT2XZCGmbQ72JLMuwnX3Nnra0HXj3
// SIG // yn/1DQrfoYICCzCCAgcGCSqGSIb3DQEJBjGCAfgwggH0 // SIG // 8aTHXhQuoYICCzCCAgcGCSqGSIb3DQEJBjGCAfgwggH0
// SIG // AgEBMHIwXjELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5 // SIG // AgEBMHIwXjELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5
// SIG // bWFudGVjIENvcnBvcmF0aW9uMTAwLgYDVQQDEydTeW1h // SIG // bWFudGVjIENvcnBvcmF0aW9uMTAwLgYDVQQDEydTeW1h
// SIG // bnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIENBIC0g // SIG // bnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIENBIC0g
// SIG // RzICEA7P9DjI/r81bgTYapgbGlAwCQYFKw4DAhoFAKBd // SIG // RzICEA7P9DjI/r81bgTYapgbGlAwCQYFKw4DAhoFAKBd
// SIG // MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZI // SIG // MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZI
// SIG // hvcNAQkFMQ8XDTE2MDkxNjEyMzczMlowIwYJKoZIhvcN // SIG // hvcNAQkFMQ8XDTE2MDkxNjE2NTAyM1owIwYJKoZIhvcN
// SIG // AQkEMRYEFHa81Osey4h4aGVWL2y16ek6c50BMA0GCSqG // SIG // AQkEMRYEFAnKqIQVMxZDqD0uAifxOwHFk/BnMA0GCSqG
// SIG // SIb3DQEBAQUABIIBAIyk3446yLyAYUB/wxL7SYuRdyBQ // SIG // SIb3DQEBAQUABIIBADBE8FVrbFQGv080T3L0rMSvz8E4
// SIG // zVPGxWbW73lgTAPzWMqWVtkEOPEe1z6T1us5Ss9OFQ8g // SIG // 2AEck2JAIvVXN0JZ603FlZiwO709lVxszK3v8MfFwd1N
// SIG // P3VbDUfvIxNA2q0a2Z+GgS8tyrlQK1WswLdv11mmVmGa // SIG // 0YFqIXWfmTU9G3k2EoSSAck+iDOQAkTOnKT6gP00TxHj
// SIG // c4+FG5pZu0KEHkzAhTfq6H6DPg+fz46OTCyxYaNIYzHp // SIG // rKQqiWKe8VPVLwJqXg6HfpX4Ap1udQI0C/iSWENsGJIO
// SIG // azs8tyylmjFS9jEo57Fo+Px23ISqEmBsGVx8vEMY0+N7 // SIG // sO6Oo6lEeboysT/n6OZEbSVHpWwTeCDUQt6NLv/otT7R
// SIG // UOh1sVj8XTHrZi9DHAvs+JX1o5XcYW+9tRiQshrXgba6 // SIG // hUjy/r5G31i0zbt1nBLsxsXT2WN/B0czdQWfLzD327AA
// SIG // QVSb21e5G7lPMPWD1tGLfbCqKhDYqHFCy5RnQbfYaWTh // SIG // 57DcLuuGNgF2Jt38XOfbmAqYZjD8eoWW2XCdj3J5P/LB
// SIG // ZnjfmfQ9+/2MWbRdFNqscheuMcasYaEQWFsTiMV/p7D6 // SIG // Ft7I/ZIWpL+qSSUJtVX6l2OCHkPzEUYHDbxauj4ieB4E
// SIG // MP2TGpo= // SIG // LjGbE0k=
// SIG // End signature block // SIG // End signature block

52
MSI.wsf
View File

@ -512,12 +512,12 @@
if (idt_dst != null && (key in idt_dst.data)) { if (idt_dst != null && (key in idt_dst.data)) {
// We found a record in both IDT files. // We found a record in both IDT files.
for (var col in idt_src.types) for (var col in idt_src.types)
if (idt_src.types[col].charAt(0).toUpperCase() == "L" && idt_src.data[key][col] != "") if (idt_src.isLocalizable(col) && idt_src.data[key][col] != "")
po.push(idt_src.data[key][col], idt_dst.data[key][col], false, "#: " + idt_src_path + ":" + idt_src.linenum[key]); po.push(idt_src.data[key][col], idt_dst.data[key][col], false, "#: " + idt_src_path + ":" + idt_src.linenum[key]);
} else { } else {
// The record is available in the source IDT file only (or there is no destination IDT). // The record is available in the source IDT file only (or there is no destination IDT).
for (var col in idt_src.types) for (var col in idt_src.types)
if (idt_src.types[col].charAt(0).toUpperCase() == "L" && idt_src.data[key][col] != "") if (idt_src.isLocalizable(col) && idt_src.data[key][col] != "")
po.push(idt_src.data[key][col], "", false, "#: " + idt_src_path + ":" + idt_src.linenum[key]); po.push(idt_src.data[key][col], "", false, "#: " + idt_src_path + ":" + idt_src.linenum[key]);
} }
} }
@ -567,7 +567,7 @@
// Translate records. // Translate records.
for (var key in idt_src.data) { for (var key in idt_src.data) {
for (var col in idt_src.types) { for (var col in idt_src.types) {
if (idt_src.types[col].charAt(0).toUpperCase() == "L" && idt_src.data[key][col] != "") if (idt_src.isLocalizable(col) && idt_src.data[key][col] != "")
idt_src.data[key][col] = po.translate(idt_src.data[key][col]); idt_src.data[key][col] = po.translate(idt_src.data[key][col]);
} }
} }
@ -609,8 +609,8 @@
** SIG ** MIIXmAYJKoZIhvcNAQcCoIIXiTCCF4UCAQExCzAJBgUr ** SIG ** MIIXmAYJKoZIhvcNAQcCoIIXiTCCF4UCAQExCzAJBgUr
** SIG ** DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB ** SIG ** DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
** SIG ** gjcCAR4wJAIBAQQQcAVhGs441BGiowAQS9NQkAIBAAIB ** SIG ** gjcCAR4wJAIBAQQQcAVhGs441BGiowAQS9NQkAIBAAIB
** SIG ** AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFBFS1Dc0BFx7 ** SIG ** AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFEuDcHZyRyXZ
** SIG ** 6vYeYiyIGC1cPCcBoIISyDCCA+4wggNXoAMCAQICEH6T ** SIG ** zF25+zdkgilPy7bQoIISyDCCA+4wggNXoAMCAQICEH6T
** SIG ** 6/t8xk5Z6kuad9QG/DswDQYJKoZIhvcNAQEFBQAwgYsx ** SIG ** 6/t8xk5Z6kuad9QG/DswDQYJKoZIhvcNAQEFBQAwgYsx
** SIG ** CzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENh ** SIG ** CzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENh
** SIG ** cGUxFDASBgNVBAcTC0R1cmJhbnZpbGxlMQ8wDQYDVQQK ** SIG ** cGUxFDASBgNVBAcTC0R1cmJhbnZpbGxlMQ8wDQYDVQQK
@ -764,31 +764,31 @@
** SIG ** OWQwCQYFKw4DAhoFAKBwMBAGCisGAQQBgjcCAQwxAjAA ** SIG ** OWQwCQYFKw4DAhoFAKBwMBAGCisGAQQBgjcCAQwxAjAA
** SIG ** MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG ** SIG ** MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG
** SIG ** AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3 ** SIG ** AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3
** SIG ** DQEJBDEWBBS+6SF1g2JrK4rp+O3L8qwB8cicdDANBgkq ** SIG ** DQEJBDEWBBTOklb60U5Cei+o8kkwNkAo539ocDANBgkq
** SIG ** hkiG9w0BAQEFAASCAQAUJ11IjJjmGNrCZkBHUPzPUspV ** SIG ** hkiG9w0BAQEFAASCAQBHQ/9ubHkHX3l29kS5kE0Gx7U0
** SIG ** 9z7eS08u30ORQ4Rl9otiIg4HJUeEfnQyG2O3w1xmOvwJ ** SIG ** /vyXYN5KvRQ7I2cfTg1zgPbDyXos7RZ9EJjCXO98JVk6
** SIG ** w1qeAgNttl4+Bj2mUBY8QFLy0HubXMLEPQBDTZ7f/pSg ** SIG ** OFbmDbnMQbnR3kfxREJSWprYJRv718Sj4hFitqcdzPW6
** SIG ** yYE+pSqciCGCYrAFWkucH/ui0S/gfxZnBbM9K1AjRDRW ** SIG ** lyvLqKZwX0GN3/ipBV39T9P4YhXCDfJ5IEEbOSMnEqha
** SIG ** B9oMbRx9yY2URqHachNKZ+LTGBPhVuiLy245Nw4uuLe8 ** SIG ** McdHFAInOHEWKGDwGw7nWX+OgQmDYBpsCd1riFvqtG5N
** SIG ** i9bX2kEV8XPUSanko0mtY7h06b4n2b90Buby+4TId9hC ** SIG ** XotE4X8fjoh20tMJ4D0qfg41Hpwz27eicRT86uoOGWJA
** SIG ** BerBnjrAbYS0c+Ra3GMURtCbGbAzmg8ixR/kg0IPF1wu ** SIG ** D+ffSDHQ2lCCrGYJNuYXOoiSYDbBfV1tR47KvWT0Tfmb
** SIG ** QNqrhnw2yWJXhnTEZm5HPQVYISl8QkO3TFcfHBxkb/Oe ** SIG ** 8vhzLwDUuUjHNVRjUBsD/sFbhfbK+hVEM7yDBuLoHWz5
** SIG ** QRR/NYwboYICCzCCAgcGCSqGSIb3DQEJBjGCAfgwggH0 ** SIG ** aj0m6uzooYICCzCCAgcGCSqGSIb3DQEJBjGCAfgwggH0
** SIG ** AgEBMHIwXjELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5 ** SIG ** AgEBMHIwXjELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5
** SIG ** bWFudGVjIENvcnBvcmF0aW9uMTAwLgYDVQQDEydTeW1h ** SIG ** bWFudGVjIENvcnBvcmF0aW9uMTAwLgYDVQQDEydTeW1h
** SIG ** bnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIENBIC0g ** SIG ** bnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIENBIC0g
** SIG ** RzICEA7P9DjI/r81bgTYapgbGlAwCQYFKw4DAhoFAKBd ** SIG ** RzICEA7P9DjI/r81bgTYapgbGlAwCQYFKw4DAhoFAKBd
** SIG ** MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZI ** SIG ** MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZI
** SIG ** hvcNAQkFMQ8XDTE2MDkxNjEyMzgwM1owIwYJKoZIhvcN ** SIG ** hvcNAQkFMQ8XDTE2MDkxNjE2NTAyNVowIwYJKoZIhvcN
** SIG ** AQkEMRYEFASd3svY6QexmPrwyTgYM37i8CbtMA0GCSqG ** SIG ** AQkEMRYEFP/2E5ukiLIl+izsl9m1nHfxcfIHMA0GCSqG
** SIG ** SIb3DQEBAQUABIIBAA5YzP22hUvXvFxoEB/NGRSxYN1r ** SIG ** SIb3DQEBAQUABIIBAA+YrwcmRrAGzn5oELl5IHsYHShQ
** SIG ** ruCy/XfTOs6MaML1by7TpUR0ID6NxEibSEiL8LdjKl1F ** SIG ** 3W5chZ1yUqwRU/LK6oo/cCk8bUseldq8PHV67axnVCzX
** SIG ** eQUksNz3i7knlXzjbt76IWJIwszJg1kfhvpnBOk+lIW+ ** SIG ** aLlOOGXOggKIxB+s6vzcDZ7aJv/ssOU2GOFSXZoe78yV
** SIG ** Yl75P+Is3XO/6B7W2S9zon8qlLg8aK3pjBvq/bCfhqrB ** SIG ** 4hGzOMYpULHz/OT6s4oD1oP/7JOcjd1XMK8L+trxJrJm
** SIG ** jY8IbgTY4nv5onMF4WaC5/MXI6/N2Eb6RWuH2Ywd7xlk ** SIG ** BkJpc0f0B/EjBDcOialxi3KPftdQxEqHFet1Fbk02rCR
** SIG ** qiahhIey5Z8IZLuEVAH+PiZV89wf23t/OnmhKcgkNwHU ** SIG ** 7a51w5fjLgkLwrEL8LF5g6iYBl0w2wlvldYh+ZrbJ1YU
** SIG ** 7fe8PUq8H+2LB+kA43JWmgDoy5rjTxgr6u/KGBIn4wVg ** SIG ** ATOYbfcD7H3Cu/XJUsFc+UBgQGA2unWxNa5F84crcmxV
** SIG ** +WqvhbRk/EF994ZtE5vMg4lqMTOiUmvJoTJVOZd6pQlL ** SIG ** 0xQXnTLtuI06xLRBlmehNhWlV6olkWDYYa/OEaLDRBeq
** SIG ** K7/akzU= ** SIG ** lb0K1jM=
</signature> </signature>
</package> </package>