Browse Source

try adding template-processed download.js (for now with a different name) and seamonkey_versions.json

Unknown 14 years ago
parent
commit
a050ef1197
4 changed files with 227 additions and 0 deletions
  1. 3 0
      etc/ttree.cfg
  2. 2 0
      lib/config.tmpl
  3. 220 0
      src/download2.jst
  4. 2 0
      src/seamonkey_versions.json

+ 3 - 0
etc/ttree.cfg

@@ -45,6 +45,7 @@ copy = \.sh$
 #    accept = \.tt2$
 
 accept = \.html$
+accept = \.jst$
 accept = \.tmpl$
 
 # options to rewrite files suffixes (htm => html, tt2 => html)
@@ -52,6 +53,8 @@ accept = \.tmpl$
 #    suffix htm=html
 #    suffix tt2=html
 
+suffix jst=js
+
 # options to define dependencies between templates
 #
     #depend *=sidebar

+ 2 - 0
lib/config.tmpl

@@ -23,3 +23,5 @@
 
 [% betaversion = $releaseversion %]
 [% betaname = $releasename %]
+
+[% develversion = '2.1a1pre' %]

+ 220 - 0
src/download2.jst

@@ -0,0 +1,220 @@
+var gPlatform = PLATFORM_WINDOWS;
+
+var PLATFORM_OTHER    = 0;
+var PLATFORM_WINDOWS  = 1;
+var PLATFORM_LINUX    = 2;
+var PLATFORM_MACOSX   = 3;
+var PLATFORM_MAC      = 4;
+
+if (navigator.platform.indexOf("Win32") != -1)
+  gPlatform = PLATFORM_WINDOWS;
+else if (navigator.platform.indexOf("Linux") != -1)
+  gPlatform = PLATFORM_LINUX;
+else if (navigator.userAgent.indexOf("Mac OS X") != -1)
+  gPlatform = PLATFORM_MACOSX;
+else if (navigator.userAgent.indexOf("MSIE 5.2") != -1)
+  gPlatform = PLATFORM_MACOSX;
+else if (navigator.platform.indexOf("Mac") != -1)
+  gPlatform = PLATFORM_MAC;
+else
+  gPlatform = PLATFORM_OTHER;
+
+// "" for a version means it should be "Not Yet Available" on all.html,
+// null means it should not be listed
+// A region code of "-" means that no region code should be used.
+// Last JS-based revision on mozilla.com was
+// http://viewvc.svn.mozilla.org/vc/projects/mozilla.com/trunk/js/download.js?revision=5420&view=markup
+var gLanguages = {
+  "af":  { "za": { version: null,      betaversion: null,     name: "Afrikaans",                localName: "Afrikaans" } },
+  "ast": { "es": { version: null,      betaversion: null,     name: "Asturian",                 localName: "Asturianu" } },
+  "ar":  { "-":  { version: null,      betaversion: null,     name: "Arabic",                   localName: "\u0639\u0631\u0628\u064A" } },
+  "be":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Belarusian",               localName: "\u0411\u0435\u043B\u0430\u0440\u0443\u0441\u043A\u0430\u044F" } },
+  "bg":  { "-":  { version: null,      betaversion: null,     name: "Bulgarian",                localName: "\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438" } },
+  "br":  { "fr": { version: null,      betaversion: null,     name: "Breton",                   localName: "Brezhoneg" } },
+  "ca":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Catalan",                  localName: "Catal\u00E0" } },
+  "cs":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Czech",                    localName: "\u010Ce\u0161tina" } },
+  "cy":  { "gb": { version: null,      betaversion: null,     name: "Welsh",                    localName: "Cymraeg" } },
+  "da":  { "-":  { version: null,      betaversion: null,     name: "Danish",                   localName: "Dansk" } },
+  "de":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "German",                   localName: "Deutsch" } },
+  "el":  { "-":  { version: null,      betaversion: null,     name: "Greek",                    localName: "\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AE" } },
+  "en":  { "us": { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "English",                  localName: "English" },
+           "gb": { version: null,      betaversion: null,     name: "English (British)",        localName: "English (British)" } },
+  "es":  { "ar": { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Spanish (Latin American)", localName: "Espa\u00F1ol (de Am\u00E9rica)" },
+           "es": { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Spanish (Spain)",          localName: "Espa\u00F1ol (de Espa\u00F1a)" } },
+  "eu":  { "-":  { version: null,      betaversion: null,     name: "Basque",                   localName: "Euskara" } },
+  "fi":  { "-":  { version: null,      betaversion: null,     name: "Finnish",                  localName: "Suomi" } },
+  "fr":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "French",                   localName: "Fran\u00e7ais" } },
+  "fy":  { "nl": { version: null,      betaversion: null,     name: "Frisian",                  localName: "Frysk" } },
+  "ga":  { "ie": { version: null,      betaversion: null,     name: "Irish",                    localName: "Gaeilge" } },
+  "gl":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Galician",                 localName: "Galego" } },
+  "gu":  { "in": { version: null,      betaversion: null,     name: "Gujarati",                 localName: "\u0A97\u0AC1\u0A9C\u0AB0\u0ABE\u0AA4\u0AC0" } },
+  "he":  { "-":  { version: null,      betaversion: null,     name: "Hebrew",                   localName: "\u05E2\u05D1\u05E8\u05D9\u05EA" } },
+  "hu":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Hungarian",                localName: "Magyar" } },
+  "hy":  { "am": { version: null,      betaversion: null,     name: "Armenian",                 localName: "\u0540\u0561\u0575\u0565\u0580\u0565\u0576" } },
+  "it":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Italian",                  localName: "Italiano" } },
+  "ja":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Japanese",                 localName: "\u65e5\u672c\u8a9e" } },
+  "ka":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Georgian",                 localName: "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8" } },
+  "ko":  { "-":  { version: null,      betaversion: null,     name: "Korean",                   localName: "\uD55C\uAD6D\uC5B4" } },
+  "lt":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Lithuanian",               localName: "Lietuvi\u0173" } },
+  "mk":  { "-":  { version: null,      betaversion: null,     name: "Macedonian",               localName: "\u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0441\u043A\u0438" } },
+  "mn":  { "-":  { version: null,      betaversion: null,     name: "Mongolian",                localName: "\u041C\u043E\u043D\u0433\u043E\u043B" } },
+  "nb":  { "no": { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Norwegian (Bokm\u00E5l)",  localName: "Norsk bokm\u00E5l" } },
+  "nn":  { "no": { version: null,      betaversion: null,     name: "Norwegian (Nynorsk)",      localName: "Norsk nynorsk" } },
+  "nl":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Dutch",                    localName: "Nederlands" } },
+  "pa":  { "in": { version: null,      betaversion: null,     name: "Punjabi",                  localName: "\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40" } },
+  "pl":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Polish",                   localName: "Polski" } },
+  "pt":  { "br": { version: null,      betaversion: null,     name: "Portuguese (Brazilian)",   localName: "Portugu\u00EAs (do Brasil)" },
+           "pt": { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Portuguese (Portugal)",    localName: "Portugu\u00EAs (Europeu)" } },
+  "ro":  { "-":  { version: null,      betaversion: null,     name: "Romanian",                 localName: "Rom\u00E2n\u0103" } },
+  "ru":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Russian",                  localName: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439" } },
+  "sk":  { "-":  { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Slovak",                   localName: "Slovensk\u00FD" } },
+  "sl":  { "-":  { version: null,      betaversion: null,     name: "Slovenian",                localName: "Slovensko" } },
+  "sq":  { "-":  { version: null,      betaversion: null,     name: "Albanian",                 localName: "Shqipe" } },
+  "sv":  { "se": { version: "[% releaseversion %]",   betaversion: "[% betaversion %]",  name: "Swedish",                  localName: "Svenska" } },
+  "tr":  { "-":  { version: null,      betaversion: "[% releaseversion %]",  name: "Turkish",                  localName: "T\u00FCrk\u00E7e" } },
+  "zh":  { "cn": { version: null,      betaversion: null,     name: "Chinese (Simplified)",     localName: "\u4E2D\u6587 (\u7B80\u4F53)" },
+           "tw": { version: null,      betaversion: null,     name: "Chinese (Traditional)",    localName: "\u6b63\u9ad4\u4e2d\u6587 (\u7E41\u9AD4)" } }
+};
+
+function LanguageID(aAB, aCD, aBuild)
+{
+  if (aCD == "-")
+    this.abCD = aAB;
+  else
+    this.abCD = aAB + "-" + aCD.toUpperCase();
+  for (var prop in aBuild)
+    this[prop] = aBuild[prop]
+}
+
+function buildValidForPlatform(aLangID, aPlatform)
+{
+  if ((aLangID.abCD == "gu-IN" || aLangID.abCD == "pa-IN") &&
+      aPlatform == PLATFORM_MACOSX)
+    return false;
+
+  return true;
+}
+
+function getLanguageID(betaversion)
+{
+  var verName = "version";
+  if (betaversion)
+    verName = "betaversion";
+
+  var language = "";
+  if (navigator.language)
+    language = navigator.language;
+  else if (navigator.userLanguage)
+    language = navigator.userLanguage;
+  else if (navigator.systemLanguage)
+    language = navigator.systemLanguage;
+
+  // Convert "en" to "en-US" as well since en-US build is the canonical
+  // translation, and thus better tested.
+  if (language == "" || language == "en")
+    language = "en-US";
+
+  // Konqueror uses '_' where other browsers use '-'.
+  if (language.indexOf("_") != -1)
+    language = language.split("_").join("-");
+
+  language = language.toLowerCase();
+  var languageCode = language.split("-")[0];
+  var regionCode = language.split("-")[1];
+
+  // String comparison actually works for version numbers.
+  var currentVersion = gLanguages["en"]["us"][verName];
+  var bestVersion = "";
+  var id = null;
+
+  if (gLanguages[languageCode]) {
+    var region;
+    var build;
+    var langid;
+
+    for (region in gLanguages[languageCode]) {
+      build = gLanguages[languageCode][region];
+      if (build[verName] && regionCode == region) {
+        langid = new LanguageID(languageCode, regionCode, build);
+        if (buildValidForPlatform(langid, gPlatform)) {
+          id = langid;
+          bestVersion = build[verName];
+        }
+      }
+    }
+
+    // We have a localized build for this language, but not this region.
+    // use the first available region with the highest version
+
+    if (bestVersion != currentVersion) {
+      var bestRegionVersion = "";
+      for (region in gLanguages[languageCode]) {
+        build = gLanguages[languageCode][region];
+        if (build[verName] > bestVersion) {
+          langid = new LanguageID(languageCode, region, build);
+          if (buildValidForPlatform(langid, gPlatform) &&
+              (build[verName] > bestRegionVersion)) {
+            id = langid;
+            bestRegionVersion = build[verName];
+          }
+        }
+      }
+      if (bestRegionVersion > bestVersion)
+        bestVersion = bestRegionVersion;
+    }
+  }
+  if (bestVersion != currentVersion) {
+    id = new LanguageID("en", "us", gLanguages["en"]["us"]);
+  }
+
+  return id;
+}
+
+function highlightDownload(aIdBase, betaversion)
+{
+  if (gPlatform == PLATFORM_WINDOWS) {
+    document.getElementById(aIdBase + "-win").className = "main";
+    document.getElementById(aIdBase + "-linux").style.display = "none";
+    document.getElementById(aIdBase + "-mac").style.display = "none";
+  }
+  else if (gPlatform == PLATFORM_LINUX) {
+    document.getElementById(aIdBase + "-win").style.display = "none";
+    document.getElementById(aIdBase + "-linux").className = "main";
+    document.getElementById(aIdBase + "-mac").style.display = "none";
+  }
+  else if (gPlatform == PLATFORM_MACOSX) {
+    document.getElementById(aIdBase + "-win").style.display = "none";
+    document.getElementById(aIdBase + "-linux").style.display = "none";
+    document.getElementById(aIdBase + "-mac").className = "main";
+  }
+  else {
+    document.getElementById(aIdBase + "-win").style.display = "none";
+    document.getElementById(aIdBase + "-linux").style.display = "none";
+    document.getElementById(aIdBase + "-mac").style.display = "none";
+    document.getElementById(aIdBase + "-other").className = "main";
+  }
+
+  // see if we need to change download box for localized version
+  var languageID = getLanguageID(betaversion);
+  if (languageID.abCD != "en-US") {
+    // Japanese for Mac needs special rules
+    var mac_abCD = languageID.abCD;
+    if (mac_abCD == "ja-JP")
+        mac_abCD = "ja-JPM";
+    if (mac_abCD == "ja")
+        mac_abCD = "ja-JP-mac";
+
+    // download URLs - we only support bouncer URLs here!
+    document.getElementById(aIdBase + "-win-link").href =
+      document.getElementById(aIdBase + "-win-link").href.replace(/lang=en-US/, "lang=" + languageID.abCD);
+    document.getElementById(aIdBase + "-linux-link").href =
+      document.getElementById(aIdBase + "-linux-link").href.replace(/lang=en-US/, "lang=" + languageID.abCD);
+    document.getElementById(aIdBase + "-mac-link").href =
+      document.getElementById(aIdBase + "-mac-link").href.replace(/lang=en-US/, "lang=" + languageID.abCD);
+
+    // download language name
+    document.getElementById(aIdBase + "-win-lang").firstChild.data = languageID.name;
+    document.getElementById(aIdBase + "-linux-lang").firstChild.data = languageID.name;
+    document.getElementById(aIdBase + "-mac-lang").firstChild.data = languageID.name;
+  }
+}

+ 2 - 0
src/seamonkey_versions.json

@@ -0,0 +1,2 @@
+[%- wrap = false -%]
+{"LATEST_SEAMONKEY_VERSION":"[% releaseversion %]","LATEST_SEAMONKEY_MILESTONE_VERSION":"[% betaversion %]","LATEST_SEAMONKEY_DEVEL_VERSION":"[% develversion %]"}