mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-05-10 08:55:00 -04:00
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
var Globalize = require('globalize')
|
|
, fs = require('fs')
|
|
, path = require('path')
|
|
, eejs = require('ep_etherpad-lite/node/eejs')
|
|
, express = require('express')
|
|
, translate = require ('../utils/translate')
|
|
|
|
var localesPath = __dirname+"/../../locales"
|
|
, templatesPath = __dirname+"/../../templates";
|
|
|
|
// Serve English strings directly with /locales.ini
|
|
var localeIndex = fs.readFileSync(localesPath+'/en.ini')+'\r\n';
|
|
|
|
exports.availableLangs = {en: 'English'};
|
|
|
|
fs.readdir(localesPath, function(er, files) {
|
|
files.forEach(function(locale) {
|
|
locale = locale.split('.')[0]
|
|
if(locale.toLowerCase() == 'en') return;
|
|
|
|
// build locale index
|
|
localeIndex += '['+locale+']\r\n@import url(locales/'+locale+'.ini)\r\n'
|
|
|
|
require('globalize/lib/cultures/globalize.culture.'+locale+'.js')
|
|
var culture = Globalize.cultures[locale];
|
|
exports.availableLangs[culture.name] = culture.nativeName;
|
|
})
|
|
})
|
|
|
|
exports.expressCreateServer = function(n, args) {
|
|
|
|
args.app.use('/locales', express.static(localesPath));
|
|
|
|
args.app.get('/locales.ini', function(req, res) {
|
|
res.send(localeIndex);
|
|
});
|
|
|
|
args.app.get('/translate', function(req, res) {
|
|
res.send( eejs.require("ep_etherpad-lite/templates/translate.html", {}) );
|
|
});
|
|
|
|
args.app.get('/translate/:lang_code', function(req, res) {
|
|
var lang_code = req.params.lang_code.substr(0,2),
|
|
ids = translate.extractIDs(templatesPath);
|
|
res.charset = 'utf-8';
|
|
res.contentType('text');
|
|
res.send(translate.getTranslationINI(localesPath, lang_code, ids));
|
|
});
|
|
|
|
}
|