Improved web page translation selection based on browser information.
Ylian Saint-Hilaire committed
Mar 24, 2022 at 14:14 UTC
a8c100be2450a71afe6eeeda735bcf76030ac313
36 files changed
+16
-4
agents/MeshCmd-signed.exe
Binary files a/agents/MeshCmd-signed.exe and b/agents/MeshCmd-signed.exe differ
agents/MeshCmd64-signed.exe
Binary files a/agents/MeshCmd64-signed.exe and b/agents/MeshCmd64-signed.exe differ
agents/MeshService-signed.exe
Binary files a/agents/MeshService-signed.exe and b/agents/MeshService-signed.exe differ
agents/MeshService.exe
Binary files a/agents/MeshService.exe and b/agents/MeshService.exe differ
agents/MeshService64-signed.exe
Binary files a/agents/MeshService64-signed.exe and b/agents/MeshService64-signed.exe differ
agents/MeshService64.exe
Binary files a/agents/MeshService64.exe and b/agents/MeshService64.exe differ
agents/agents-old/MeshCmd-signed.exe
Binary files /dev/null and b/agents/agents-old/MeshCmd-signed.exe differ
agents/agents-old/MeshCmd64-signed.exe
Binary files /dev/null and b/agents/agents-old/MeshCmd64-signed.exe differ
agents/agents-old/MeshService-signed.exe
Binary files /dev/null and b/agents/agents-old/MeshService-signed.exe differ
agents/agents-old/MeshService.exe
Binary files /dev/null and b/agents/agents-old/MeshService.exe differ
agents/agents-old/MeshService64-signed.exe
Binary files /dev/null and b/agents/agents-old/MeshService64-signed.exe differ
agents/agents-old/MeshService64.exe
Binary files /dev/null and b/agents/agents-old/MeshService64.exe differ
agents/agents-old/meshagent_aarch64
renamed
agents/agents-old/meshagent_aarch64-cortex-a53
renamed
agents/agents-old/meshagent_arm
renamed
agents/agents-old/meshagent_arm-linaro
renamed
agents/agents-old/meshagent_armhf
renamed
agents/agents-old/meshagent_armhf2
renamed
agents/agents-old/meshagent_freebsd_x86-64
renamed
agents/agents-old/meshagent_linux-armada370-hf
renamed
agents/agents-old/meshagent_mips
renamed
agents/agents-old/meshagent_mips24kc
renamed
agents/agents-old/meshagent_mipsel24kc
renamed
agents/agents-old/meshagent_openbsd_x86-64
renamed
agents/agents-old/meshagent_openwrt_x86_64
renamed
agents/agents-old/meshagent_osx-arm-64
renamed
agents/agents-old/meshagent_osx-universal-64
renamed
agents/agents-old/meshagent_osx-x86-64
renamed
agents/agents-old/meshagent_pogo
renamed
agents/agents-old/meshagent_poky
renamed
agents/agents-old/meshagent_poky64
renamed
agents/agents-old/meshagent_x86
renamed
agents/agents-old/meshagent_x86-64
renamed
agents/agents-old/meshagent_x86-64_nokvm
renamed
agents/agents-old/meshagent_x86_nokvm
renamed
webserver.js
+16
-4
@@ -7724,12 +7724,24 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
7724
if (user && user.llang) { delete user.llang; obj.db.SetUser(user); } // Clear user 'last language' used if needed. Since English is the default, remove "last language".
7725
break;
7726
}
7727
- if (fileOptions[acceptLanguages[i]] != null) {
7727
+
7728
+ // See if a language (like "fr-ca") or short-language (like "fr") matches an available translation file.
7729
+ var foundLanguage = null;
7730
+ if (fileOptions[acceptLanguages[i]] != null) { foundLanguage = acceptLanguages[i]; } else {
7731
+ const ptr = acceptLanguages[i].indexOf('-');
7732
+ if (ptr >= 0) {
7733
+ const shortAcceptedLanguage = acceptLanguages[i].substring(0, ptr);
7734
+ if (fileOptions[shortAcceptedLanguage] != null) { foundLanguage = shortAcceptedLanguage; }
7735
+ }
7736
+ }
7737
+
7738
+ // If a language is found, render it.
7739
+ if (foundLanguage != null) {
7740
// Found a match. If the file no longer exists, default to English.
7729
- obj.fs.exists(fileOptions[acceptLanguages[i]] + '.handlebars', function (exists) {
7730
- if (exists) { args.lang = acceptLanguages[i]; res.render(fileOptions[acceptLanguages[i]], args); } else { args.lang = 'en'; res.render(filename, args); }
7741
+ obj.fs.exists(fileOptions[foundLanguage] + '.handlebars', function (exists) {
7742
+ if (exists) { args.lang = foundLanguage; res.render(fileOptions[foundLanguage], args); } else { args.lang = 'en'; res.render(filename, args); }
7743
});
7732
- if (user && (user.llang != acceptLanguages[i])) { user.llang = acceptLanguages[i]; obj.db.SetUser(user); } // Set user 'last language' used if needed.
7744
+ if (user && (user.llang != foundLanguage)) { user.llang = foundLanguage; obj.db.SetUser(user); } // Set user 'last language' used if needed.
7745
return;
7746
}
7747
}