summaryrefslogtreecommitdiff
path: root/src/node/hooks/i18n.js
blob: 882e51569abc95a5046ec8bcefcd92192d78d54f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
var languages = require('languages4translatewiki')
  , fs = require('fs')
  , path = require('path')
  , express = require('express')

var localesPath = __dirname+"/../../locales";

// Serve English strings directly with /locales.ini
var localeIndex = fs.readFileSync(localesPath+'/en.ini')+'\r\n';

exports.availableLangs = {'en': {'nativeName': 'English'}};

fs.readdir(localesPath, function(er, files) {
  files.forEach(function(locale) {
    var ext = path.extname(locale);
    locale = path.basename(locale, ext).toLowerCase();
    if(locale == 'en' || ext != '.ini') return;

    // build locale index
    localeIndex += '['+locale+']\r\n@import url(locales/'+locale+'.ini)\r\n'
    
    // add info language {nativeName, direction} to availableLangs
    exports.availableLangs[locale]=languages.getLanguageInfo(locale);
  })
})


exports.expressCreateServer = function(n, args) {

  args.app.use('/locales', express.static(localesPath));
  
  args.app.get('/locales.ini', function(req, res) {
    res.send(localeIndex);
  })
  
}