]> granicus.if.org Git - python/commitdiff
bpo-31159: fix language switch regex on unknown yet built languages. (#3039)
authorJulien Palard <julien@palard.fr>
Wed, 9 Aug 2017 15:01:15 +0000 (17:01 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 9 Aug 2017 15:01:15 +0000 (17:01 +0200)
This fix a regex issue (a missing non-matching group around an 'or'
list) and the specific possible case where a translation is built but
not yet in known by the picker, but not explicitly listing possible
languages in the regex.

Doc/tools/static/switchers.js

index de9e7b76f9e89c48e4693009ae3207ac06f63411..ff23202a5e0fd70c36fc77d3e4f759508fc29d13 100644 (file)
   // Returns the path segment of the language as a string, like 'fr/'
   // or '' if not found.
   function language_segment_from_url(url) {
-    var language_regexp = '\.org/(' + Object.keys(all_languages).join('|') + '/)';
+    var language_regexp = '\.org/([a-z]{2}(?:-[a-z]{2})?/)';
     var match = url.match(language_regexp);
     if (match !== null)
         return match[1];
   // Returns the path segment of the version as a string, like '3.6/'
   // or '' if not found.
   function version_segment_in_url(url) {
-    var language_segment = '(?:(?:' + Object.keys(all_languages).join('|') + ')/)';
+    var language_segment = '(?:[a-z]{2}(?:-[a-z]{2})?/)';
     var version_segment = '(?:(?:' + version_regexs.join('|') + ')/)';
     var version_regexp = '\\.org/' + language_segment + '?(' + version_segment + ')';
     var match = url.match(version_regexp);