/* * This file is soon to be deprecated. (bug 393634) */ var aurora_stub_installer = false; aurora_stub_installer = true; var gPlatform = PLATFORM_WINDOWS; var gCssClass = ''; var PLATFORM_OTHER = 0; var PLATFORM_WINDOWS = 1; var PLATFORM_LINUX = 2; var PLATFORM_MACOSX = 3; var PLATFORM_MAC = 4; var PLATFORM_SOLARIS = 5; var PLATFORM_ANDROID = 6; if (navigator.platform.indexOf("Win32") != -1 || navigator.platform.indexOf("Win64") != -1) { gPlatform = PLATFORM_WINDOWS; gCssClass = 'os_windows'; } else if (navigator.platform.indexOf("armv7l") != -1) { gPlatform = PLATFORM_ANDROID; gCssClass = 'os_android'; } else if (navigator.platform.indexOf("Linux") != -1) { gPlatform = PLATFORM_LINUX; gCssClass = 'os_linux'; } else if (navigator.userAgent.indexOf("Mac OS X") != -1) { gPlatform = PLATFORM_MACOSX; gCssClass = 'os_osx'; } else if (navigator.userAgent.indexOf("MSIE 5.2") != -1) { gPlatform = PLATFORM_MACOSX; gCssClass = 'os_osx'; } else if (navigator.platform.indexOf("Mac") != -1) { gPlatform = PLATFORM_MAC; // This will show up as unsupported (ie. < OS X) gCssClass = 'os_osx'; // Special case for Opera on OS X emulating IE (bug 402113) if ((navigator.userAgent.indexOf("Opera") != -1) && (navigator.userAgent.indexOf("Opera 6") == -1)) { gPlatform = PLATFORM_MACOSX; } } else if (navigator.platform.indexOf("SunOS") != -1) { gPlatform = PLATFORM_SOLARIS; gCssClass = ''; } else { gPlatform = PLATFORM_OTHER; gCssClass = ''; } /** * Gets whether or not the client is an officially unsupported platform * * Officially unsupported platforms are Windows 95, 98, ME and NT 4.x * * The regular expression matches: * * - Win16 * - Win9x * - Win95 * - Win98 * - WinNT (not followed by version or followed bu version < 5) * - Windows ME * - Windows CE * - Windows 9x * - Windows 95 * - Windows 98 * - Windows 3.1 * - Windows 4.10 * - Windows NT (not followed by version or followed by version < 5) * - Windows_95 */ var gPlatformUnsupported = /(Win(16|9[x58]|NT( [1234]| [^0-9]|[^ -]|$))|Windows ([MC]E|9[x58]|3\.1|4\.10|NT( [1234]| [^0-9]|[^ ]|$))|Windows_95)/.test(navigator.userAgent); function getPlatformName(aPlatform) { if (aPlatform == PLATFORM_WINDOWS) return "Windows"; if (aPlatform == PLATFORM_LINUX) return "Linux i686"; if (aPlatform == PLATFORM_MACOSX) return "Mac OS X"; if (aPlatform == PLATFORM_SOLARIS) return "SunOS"; if (aPlatform == PLATFORM_ANDROID) return "Android"; return "Unknown"; } function getPlatformFileSize(aPlatform, aProduct) { if (aProduct == "fx") { if (aPlatform == PLATFORM_WINDOWS) return "7.7MB"; if (aPlatform == PLATFORM_LINUX) return "9.4MB"; if (aPlatform == PLATFORM_MACOSX) return "17.6MB"; } else if (aProduct == "fxold") { if (aPlatform == PLATFORM_WINDOWS) return "7.2MB"; if (aPlatform == PLATFORM_LINUX) return "8.7MB"; if (aPlatform == PLATFORM_MACOSX) return "17.3MB"; } else if (aProduct == "fxbeta") { if (aPlatform == PLATFORM_WINDOWS) return "7.7MB"; if (aPlatform == PLATFORM_LINUX) return "9.4MB"; if (aPlatform == PLATFORM_MACOSX) return "17.6MB"; } else if (aProduct == "tb") { if (aPlatform == PLATFORM_WINDOWS) return "6.4MB"; if (aPlatform == PLATFORM_LINUX) return "10.9MB"; if (aPlatform == PLATFORM_MACOSX) return "18.7MB"; } else if (aProduct == "tbold") { if (aPlatform == PLATFORM_WINDOWS) return "6.1MB"; if (aPlatform == PLATFORM_LINUX) return "10.2MB"; if (aPlatform == PLATFORM_MACOSX) return "17.8MB"; } else if (aProduct == "tbbeta") { if (aPlatform == PLATFORM_WINDOWS) return "6.4MB"; if (aPlatform == PLATFORM_LINUX) return "10.9MB"; if (aPlatform == PLATFORM_MACOSX) return "18.7MB"; } return ""; } function getProductName(aProduct) { if (aProduct == "fx") { return "firefox"; } else if (aProduct == "fxold") { return "firefox"; } else if (aProduct == "fxbeta") { return "firefox"; } else if (aProduct == "fxaurora") { return "firefox"; } else if (aProduct == "tb") { return "thunderbird"; } else if (aProduct == "tbold") { return "thunderbird"; } else if (aProduct == "tbbeta") { return "thunderbird"; } return "Unknown"; } // "" 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. var gLanguages = { "af": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Afrikaans", localName: "Afrikaans" } }, "ach": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Acholi", localName: "Acholi" } }, "ak": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Akan", localName: "Akan" } }, "am": { "et": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Amharic", localName: "አማርኛ" } }, "an": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Aragonese", localName: "aragonés" } }, "ar": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Arabic", localName: "عربي" } }, "as": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Assamese", localName: "অসমীয়া" } }, "ast": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Asturian", localName: "Asturianu" } }, "az": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Azerbaijani", localName: "Azərbaycanca" } }, "be": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Belarusian", localName: "Беларуская" } }, "bg": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Bulgarian", localName: "Български" } }, "bn": { "bd": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Bengali (Bangladesh)", localName: "বাংলা (বাংলাদেশ)" }, "in": { fx: "3.6.28", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Bengali (India)", localName: "বাংলা (ভারত)" } }, "br": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Breton", localName: "Brezhoneg" } }, "bs": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Bosnian", localName: "Bosanski" } }, "ca": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Catalan", localName: "Català" }, "valencia": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Catalan (Valencian)", localName: "català (valencià)" } }, "cs": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Czech", localName: "Čeština" } }, "csb": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Kashubian", localName: "Kaszëbsczi" } }, "cy": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Welsh", localName: "Cymraeg" } }, "da": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Danish", localName: "Dansk" } }, "dbg": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Debug Robot", localName: "Ḓḗƀŭɠ Řǿƀǿŧ" } }, "de": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "German", localName: "Deutsch" }, "at": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "German (Austria)", localName: "Deutsch (Österreich)" }, "ch": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "German (Switzerland)", localName: "Deutsch (Schweiz)" }, "de": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "German (Germany)", localName: "Deutsch (Deutschland)" } }, "dsb": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Lower Sorbian", localName: "Dolnoserbšćina" } }, "el": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Greek", localName: "Ελληνικά" } }, "en": { "au": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "English (Australian)", localName: "English (Australian)" }, "ca": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "English (Canadian)", localName: "English (Canadian)" }, "gb": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "English (British)", localName: "English (British)" }, "nz": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "English (New Zealand)", localName: "English (New Zealand)" }, "us": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "English (US)", localName: "English (US)" }, "za": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "English (South African)", localName: "English (South African)" } }, "eo": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Esperanto", localName: "Esperanto" } }, "es": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Spanish", localName: "Español" }, "ar": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Spanish (Argentina)", localName: "Español (de Argentina)" }, "cl": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Spanish (Chile)", localName: "Español (de Chile)" }, "es": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Spanish (Spain)", localName: "Español (de España)" }, "mx": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Spanish (Mexico)", localName: "Español (de México)" } }, "et": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Estonian", localName: "Eesti keel" } }, "eu": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Basque", localName: "Euskara" } }, "fa": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Persian", localName: "فارسی" } }, "ff": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Fulah", localName: "Pulaar-Fulfulde" } }, "fi": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Finnish", localName: "suomi" } }, "fj": { "fj": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Fijian", localName: "Vosa vaka-Viti" } }, "fr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "French", localName: "Français" } }, "fur": { "it": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Friulian", localName: "Furlan" } }, "fy": { "nl": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Frisian", localName: "Frysk" } }, "ga": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Irish", localName: "Gaeilge" }, "ie": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Irish", localName: "Gaeilge" } }, "gd": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Gaelic (Scotland)", localName: "Gàidhlig" } }, "gl": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Galician", localName: "Galego" } }, "gu": { "in": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Gujarati", localName: "ગુજરાતી" } }, "he": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Hebrew", localName: "עברית" } }, "hi": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Hindi", localName: "हिन्दी" }, "in": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Hindi (India)", localName: "हिन्दी (भारत)" } }, "hr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Croatian", localName: "Hrvatski" } }, "hsb": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Upper Sorbian", localName: "Hornjoserbsce" } }, "hu": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Hungarian", localName: "magyar" } }, "hy": { "am": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Armenian", localName: "Հայերեն" } }, "id": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Indonesian", localName: "Bahasa Indonesia" } }, "is": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Icelandic", localName: "íslenska" } }, "it": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Italian", localName: "Italiano" } }, "ja": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Japanese", localName: "日本語" }, "jp": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Japanese", localName: "日本語" } }, "ka": { "-": { fx: "3.6.28", fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Georgian", localName: "ქართული" } }, "kk": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Kazakh", localName: "Қазақ" } }, "km": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Khmer", localName: "ខ្មែរ" } }, "kn": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Kannada", localName: "ಕನ್ನಡ" } }, "ko": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Korean", localName: "한국어" } }, "ku": { "-": { fx: "3.6.28", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Kurdish", localName: "Kurdî" } }, "la": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Latin", localName: "Latina" } }, "lg": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Luganda", localName: "Luganda" } }, "lij": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Ligurian", localName: "Ligure" } }, "lo": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Lao", localName: "ພາສາລາວ" } }, "lt": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Lithuanian", localName: "lietuvių kalba" } }, "lv": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Latvian", localName: "Latviešu" } }, "mai": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Maithili", localName: "मैथिली মৈথিলী" } }, "mg": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Malagasy", localName: "Malagasy" } }, "mi": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Maori (Aotearoa)", localName: "Māori (Aotearoa)" } }, "mk": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Macedonian", localName: "Македонски" } }, "ml": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Malayalam", localName: "മലയാളം" } }, "mn": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Mongolian", localName: "Монгол" } }, "mr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Marathi", localName: "मराठी" } }, "ms": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Malay", localName: "Melayu" } }, "my": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Burmese", localName: "မြန်မာဘာသာ" } }, "nb": { "no": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Norwegian (Bokmål)", localName: "Norsk bokmål" } }, "ne": { "np": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Nepali", localName: "नेपाली" } }, "nn": { "no": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Norwegian (Nynorsk)", localName: "Norsk nynorsk" } }, "nl": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Dutch", localName: "Nederlands" } }, "nr": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Ndebele, South", localName: "isiNdebele" } }, "nso": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Northern Sotho", localName: "Sepedi" } }, "oc": { "-": { fx: "3.6.28", fxold: null, fxbeta: null, fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Occitan (Lengadocian)", localName: "occitan (lengadocian)" } }, "or": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Oriya", localName: "ଓଡ଼ିଆ" } }, "pa": { "in": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Punjabi", localName: "ਪੰਜਾਬੀ" } }, "pl": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Polish", localName: "Polski" } }, "pt": { "br": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Portuguese (Brazilian)", localName: "Português (do Brasil)" }, "pt": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Portuguese (Portugal)", localName: "Português (Europeu)" } }, "ro": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Romanian", localName: "română" } }, "rm": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Romansh", localName: "rumantsch" } }, "ru": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Russian", localName: "Русский" } }, "rw": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Kinyarwanda", localName: "Ikinyarwanda" } }, "sa": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Sanskrit", localName: "संस्कृत" } }, "sah": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Sakha", localName: "Сахалыы" } }, "si": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Sinhala", localName: "සිංහල" } }, "sk": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Slovak", localName: "slovenčina" } }, "sl": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Slovenian", localName: "Slovenščina" } }, "son": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Songhai", localName: "Soŋay" } }, "sq": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Albanian", localName: "Shqip" } }, "sr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Serbian", localName: "Српски" }, "latn": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Serbian", localName: "Srpski" } }, "ss": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Siswati", localName: "siSwati" } }, "st": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Southern Sotho", localName: "Sesotho" } }, "sv": { "se": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Swedish", localName: "Svenska" } }, "sw": { "-": { fx: null, fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Swahili", localName: "Kiswahili" } }, "ta": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Tamil", localName: "தமிழ்" }, "in": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Tamil (India)", localName: "தமிழ் (இந்தியா)" }, "lk": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: "24.3.0", tbold: null, tbbeta: null, name: "Tamil (Sri Lanka)", localName: "தமிழ் (இலங்கை)" } }, "te": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Telugu", localName: "తెలుగు" } }, "th": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Thai", localName: "ไทย" } }, "tn": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Tswana", localName: "Setswana" } }, "tr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Turkish", localName: "Türkçe" } }, "ts": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Tsonga", localName: "Xitsonga" } }, "tt": { "ru": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Tatar", localName: "Tatarça" } }, "uk": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Ukrainian", localName: "Українська" } }, "ur": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Urdu", localName: "اُردو" } }, "ve": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Venda", localName: "Tshivenḓa" } }, "vi": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Vietnamese", localName: "Tiếng Việt" } }, "wo": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Wolof", localName: "Wolof" } }, "x": { "testing": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Testing", localName: "Ŧḗşŧīƞɠ" } }, "xh": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Xhosa", localName: "isiXhosa" } }, "zh": { "cn": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Chinese (Simplified)", localName: "中文 (简体)" }, "tw": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Chinese (Traditional)", localName: "正體中文 (繁體)" } }, "zu": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Zulu", localName: "isiZulu" } } }; function getDownloadURLForProduct(product, version) { return "https://download.mozilla.org/?product="; } // Get a downloadURL given a locale and platform. // The optional boolean is used when we want to get the download.mozilla.org // link that points directly to Bouncer. function getDownloadURLForLanguage(aLangID, aPlatform, directLink) { var abCD = aLangID.abCD; var product = getProductName(aLangID.product); var version = aLangID[aLangID.product]; // If this is Android we need to use the direct link if (aPlatform === PLATFORM_ANDROID && aLangID.product === "fxaurora") { return getDownloadURLForAuroraForLanguage('firefox-' + aLangID.fxaurora, aLangID.fxaurora, aLangID.abCD, aPlatform); } // If we are testing the site locally, or if we explicitly asked for it, // give the direct download URL. if (window.location.protocol == "file:" || directLink == true) { var url = getDownloadURLForProduct(product, version); // Otherwise give the download page URL. } else { var url = "/products/download.html?product="; } // bug 874982 // special case for stub installer if ((aLangID.product === 'fxbeta' || aLangID.product === 'fx') //&& abCD === 'en-US' // uncomment if we have to revert to en-US only && aPlatform === PLATFORM_WINDOWS) { version = 'stub'; if (aLangID.product === 'fxbeta') { version = 'beta-' + version; } } url += product + "-" + version; if (typeof gDownloadFunnelCake != 'undefined') { url += gDownloadFunnelCake; } url +="&os="; if (aPlatform == PLATFORM_WINDOWS) { url += "win"; } else if (aPlatform == PLATFORM_LINUX) { url += "linux"; } else if (aPlatform == PLATFORM_MACOSX) { url += "osx"; if (abCD == "ja-JP") abCD = "ja-JPM"; if (abCD == "ja") abCD = "ja-JP-mac"; } else if (aPlatform == PLATFORM_SOLARIS) { return "http://opensolaris.org/os/community/desktop/communities/mozilla/development/"; } else { return "http://www.mozilla.com/" + abCD + "/" + product + "/all.html"; } url += "&lang=" + abCD; if (aLangID.product == "fxaurora" || aLangID.product == "fxbeta") { url +="&channel=" + aLangID.product; } return url; } function getDownloadURLForAuroraForLanguage(aProduct, aVersion, aLocale, aPlatform) { var os_file_ext; var url; if (aPlatform == PLATFORM_WINDOWS || aPlatform == 'win') { os_file_ext = "win32.installer.exe"; if (aurora_stub_installer && aLocale == "en-US") { os_file_ext = "win32.installer-stub.exe"; } } else if (aPlatform == PLATFORM_LINUX || aPlatform == 'linux') { os_file_ext = "linux-i686.tar.bz2"; } else if (aPlatform == PLATFORM_MACOSX || aPlatform == 'osx') { os_file_ext = "mac.dmg"; if (aLocale == "ja") { aLocale = "ja-JP-mac"; } } if (aPlatform == PLATFORM_ANDROID || aPlatform == 'android') { url = "https://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mozilla-aurora-android"; if (aLocale == "en-US") { url += "/en-US/fennec-"; } else { url += "-l10n/fennec-"; } url += "29.0a2." + aLocale + "." + "android-arm.apk"; } else { // Force en-US locale for now, when we fix other language replace it with "locale" if (aLocale == "en-US") { url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/"; } else { url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora-l10n/"; } url += aProduct + "." + aLocale + "." + os_file_ext; } return url; } function LanguageID(aAB, aCD, aProduct, aBuild) { if (aCD == "-") this.abCD = aAB; else this.abCD = aAB + "-" + aCD.toUpperCase(); this.product = aProduct; for (var prop in aBuild) this[prop] = aBuild[prop]; } function buildValidForPlatform(aLangID, aPlatform) { var product = getProductName(aLangID.product); var version = aLangID[aLangID.product]; if ((aLangID.abCD == "gu-IN" || (aLangID.abCD == "pa-IN" && ((product == "firefox" && version < "2.0.0.1") || (product == "thunderbird" && version < "2.0.0.0")))) && (aPlatform == PLATFORM_MACOSX)) return false; return true; } function getLanguageIDs(aProduct) { 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"][aProduct]; var bestVersion = ""; var ids = []; if (gLanguages[languageCode]) { var region; var build; var langid; for (region in gLanguages[languageCode]) { build = gLanguages[languageCode][region]; if (build[aProduct] && regionCode == region) { langid = new LanguageID(languageCode, regionCode, aProduct, build); if (buildValidForPlatform(langid, gPlatform)) { ids[ids.length] = langid; bestVersion = build[aProduct]; } } } // We have a localized build for this language, but not this region. // Show all available regions and let the user pick. if (bestVersion != currentVersion) { var bestRegionVersion = ""; for (region in gLanguages[languageCode]) { build = gLanguages[languageCode][region]; if (build[aProduct] > bestVersion) { langid = new LanguageID(languageCode, region, aProduct, build); if (buildValidForPlatform(langid, gPlatform)) { ids[ids.length] = langid; if (build[aProduct] > bestRegionVersion) bestRegionVersion = build[aProduct]; } } } if (bestRegionVersion > bestVersion) bestVersion = bestRegionVersion; } } // Bug 373796 -- Norwegian users need to be offered both nb-NO and nn-NO if (regionCode == "no") { if (languageCode == "nb") { ids[ids.length] = new LanguageID("nn", regionCode, aProduct, gLanguages["nn"][regionCode]); } if (languageCode == "nn") { ids[ids.length] = new LanguageID("nb", regionCode, aProduct, gLanguages["nb"][regionCode]); } } // Offer the en-US version if it has a higher version than the locale if (bestVersion != currentVersion) { ids[ids.length] = new LanguageID("en", "us", aProduct, gLanguages["en"]["us"]); } return ids; } function writeDownloadItem(aLanguageID) { var item = gDownloadItemTemplate; if (aLanguageID.product == "fxaurora") { item = item.replace(/%DOWNLOAD_URL%/g, getDownloadURLForAuroraForLanguage('firefox-' + aLanguageID.fxaurora, aLanguageID.fxaurora, aLanguageID.abCD, gPlatform)); item = item.replace(/%BOUNCER_URL%/g, getDownloadURLForAuroraForLanguage('firefox-' + aLanguageID.fxaurora, aLanguageID.fxaurora, aLanguageID.abCD, gPlatform)); } else { item = item.replace(/%DOWNLOAD_URL%/g, getDownloadURLForLanguage(aLanguageID, gPlatform)); item = item.replace(/%BOUNCER_URL%/g, getDownloadURLForLanguage(aLanguageID, gPlatform, true)); } item = item.replace(/%VERSION%/g, aLanguageID[aLanguageID.product]); item = item.replace(/%PLATFORM_NAME%/g, getPlatformName(gPlatform)); item = item.replace(/%LANGUAGE_NAME%/g, aLanguageID.name); item = item.replace(/%FILE_SIZE%/g, getPlatformFileSize(gPlatform, aLanguageID.product)); item = item.replace(/%CSS_CLASS%/g, gCssClass); document.writeln(item); } function writeDownloadItemForAndroid(aProduct) { var aLanguageID = new LanguageID("en", "us", aProduct, gLanguages["en"]["us"]); var item = gDownloadItemTemplate; item = item.replace(/%DOWNLOAD_URL%/g, 'https://market.android.com/details?id=org.mozilla.firefox'); item = item.replace(/%BOUNCER_URL%/g, 'https://market.android.com/details?id=org.mozilla.firefox'); item = item.replace(/%VERSION%/g, aLanguageID[aLanguageID.product]); item = item.replace(/%PLATFORM_NAME%/g, getPlatformName(gPlatform)); item = item.replace(/%LANGUAGE_NAME%/g, ""); item = item.replace(/%FILE_SIZE%/g, getPlatformFileSize(gPlatform, aLanguageID.product)); item = item.replace(/%CSS_CLASS%/g, gCssClass); document.writeln(item); } function writeDownloadItems(aProduct) { // Show the dynamic links if (gPlatform == PLATFORM_MAC) { document.writeln(gDownloadItemMacOS9); } else if (gPlatform == PLATFORM_OTHER) { document.writeln(gDownloadItemOtherPlatform); } else if (gPlatform == PLATFORM_ANDROID && aProduct == "fx") { writeDownloadItemForAndroid(aProduct); } else { var languageIDs = getLanguageIDs(aProduct); for (var i = 0; i < languageIDs.length; ++i) writeDownloadItem(languageIDs[i]); } } function do_download(link) { // get product var matches = link.match(/product=([^&]+)/); if (matches != null && matches.length > 1) { if (matches[1] == 'fx') { var product = 'firefox'; } else if (matches[1] == 'fxold') { var product = 'firefox'; } else if (matches[1] == 'fxbeta') { var product = 'firefox'; } else if (matches[1] == 'fxaurora') { var product = 'firefox'; } else if (matches[1] == 'tb') { var product = 'thunderbird'; } else if (matches[1] == 'tbold') { var product = 'thunderbird'; } else if (matches[1] == 'tbbeta') { var product = 'thunderbird'; } else { var product = 'firefox'; } } else { var product = 'firefox'; } // If we have IE, use a new window to push the download. // We have to do this because other methods did not work in IE. if (navigator.appVersion.indexOf('MSIE') != -1) { if (gPlatformUnsupported && product == 'firefox') { var unsupportedLink = link.replace(/\/products\/download\.html/, '/firefox/unsupported-systems.html'); // redirect to unsupported platform page window.location = unsupportedLink; } else { // start the download window.open(link, 'download_window', 'toolbar=0,location=no,directories=0,status=0,scrollbars=0,resizeable=0,width=1,height=1,top=0,left=0'); window.focus(); } } }