pdf.js/external/importL10n/locales.js
Jonas Jenwald 57cd52303a Change the importl10n script to use the Beta channel, since Aurora is being removed
Since the Aurora channel is being removed, and is no longer going to be receiving updates (with the possible exception of security bugs), we need to change the target for the `gulp importl10n` command.

For more information, please refer to:
 - https://groups.google.com/forum/#!topic/firefox-dev/q4Eb5nEcfSg
 - https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/
 - https://mozilla.github.io/process-releases/draft/development_overview/
 - http://release.mozilla.org/firefox/release/2017/04/17/Dawn-Project-FAQ.html
2017-04-22 16:24:52 +02:00

97 lines
3.2 KiB
JavaScript

/* Copyright 2012 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict';
var fs = require('fs');
var https = require('https');
var path = require('path');
// Defines all languages that have a translation at mozilla-beta.
// This is used in make.js for the importl10n command.
var langCodes = [
'ach', 'af', 'ak', 'an', 'ar', 'as', 'ast', 'az', 'be', 'bg',
'bn-BD', 'bn-IN', 'br', 'bs', 'ca', 'cs', 'csb', 'cy', 'da',
'de', 'el', 'en-GB', 'en-ZA', 'eo', 'es-AR', 'es-CL', 'es-ES',
'es-MX', 'et', 'eu', 'fa', 'ff', 'fi', 'fr', 'fy-NL', 'ga-IE',
'gd', 'gl', 'gu-IN', 'he', 'hi-IN', 'hr', 'hu', 'hy-AM', 'id',
'is', 'it', 'ja', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'lg',
'lij', 'lt', 'lv', 'mai', 'mk', 'ml', 'mn', 'mr', 'ms', 'my',
'nb-NO', 'nl', 'nn-NO', 'nso', 'oc', 'or', 'pa-IN', 'pl',
'pt-BR', 'pt-PT', 'rm', 'ro', 'ru', 'rw', 'sah', 'si', 'sk',
'sl', 'son', 'sq', 'sr', 'sv-SE', 'sw', 'ta', 'ta-LK', 'te',
'th', 'tl', 'tn', 'tr', 'uk', 'ur', 'vi', 'wo', 'xh', 'zh-CN',
'zh-TW', 'zu'
];
function normalizeText(s) {
return s.replace(/\r\n?/g, '\n').replace(/\uFEFF/g, '');
}
function downloadLanguageFiles(root, langCode, callback) {
console.log('Downloading ' + langCode + '...');
// Constants for constructing the URLs. Translations are taken from the
// Beta channel as those are the most recent ones. The Nightly channel
// does not provide all translations.
var MOZ_BETA_ROOT = 'https://hg.mozilla.org/releases/l10n/mozilla-beta/';
var MOZ_BETA_PDFJS_DIR = '/raw-file/tip/browser/pdfviewer/';
// Defines which files to download for each language.
var files = ['chrome.properties', 'viewer.properties'];
var downloadsLeft = files.length;
var outputDir = path.join(root, langCode);
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir);
}
// Download the necessary files for this language.
files.forEach(function(fileName) {
var outputPath = path.join(outputDir, fileName);
var url = MOZ_BETA_ROOT + langCode + MOZ_BETA_PDFJS_DIR + fileName;
https.get(url, function(response) {
var content = '';
response.setEncoding('utf8');
response.on('data', function(chunk) {
content += chunk;
});
response.on('end', function() {
fs.writeFileSync(outputPath, normalizeText(content), 'utf8');
downloadsLeft--;
if (downloadsLeft === 0) {
callback();
}
});
});
});
}
function downloadL10n(root, callback) {
var i = 0;
(function next() {
if (i >= langCodes.length) {
if (callback) {
callback();
}
return;
}
downloadLanguageFiles(root, langCodes[i++], next);
})();
}
exports.downloadL10n = downloadL10n;