bpo-31159: fix language switch regex on unknown yet built languages. … · python/cpython@e8e7fba (original) (raw)

Original file line number Diff line number Diff line change
@@ -21,6 +21,7 @@
21 21 var all_languages = {
22 22 'en': 'English',
23 23 'fr': 'Français',
24 +'ja': 'Japanese',
24 25 };
25 26
26 27 function build_version_select(current_version, current_release) {
@@ -109,7 +110,7 @@
109 110 // Returns the path segment of the language as a string, like 'fr/'
110 111 // or '' if not found.
111 112 function language_segment_from_url(url) {
112 -var language_regexp = '\.org/(' + Object.keys(all_languages).join('|') + '/)';
113 +var language_regexp = '\.org/([a-z]{2}(?:-[a-z]{2})?/)';
113 114 var match = url.match(language_regexp);
114 115 if (match !== null)
115 116 return match[1];
@@ -119,7 +120,7 @@
119 120 // Returns the path segment of the version as a string, like '3.6/'
120 121 // or '' if not found.
121 122 function version_segment_in_url(url) {
122 -var language_segment = '(?:(?:' + Object.keys(all_languages).join('|') + ')/)';
123 +var language_segment = '(?:[a-z]{2}(?:-[a-z]{2})?/)';
123 124 var version_segment = '(?:(?:' + version_regexs.join('|') + ')/)';
124 125 var version_regexp = '\\.org/' + language_segment + '?(' + version_segment + ')';
125 126 var match = url.match(version_regexp);