mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-06 22:40:14 -05:00
b920662790
to standardise getting paths and absolute URLs. Easy to extend for other configurations we may need.
54 lines
No EOL
1.4 KiB
JavaScript
54 lines
No EOL
1.4 KiB
JavaScript
var fs = require('fs'),
|
|
config = require('../../server/config'),
|
|
/**
|
|
* Create new Polyglot object
|
|
* @type {Polyglot}
|
|
*/
|
|
I18n;
|
|
|
|
I18n = function (ghost) {
|
|
|
|
// TODO: validate
|
|
var lang = ghost.settings('defaultLang'),
|
|
path = config.paths().lang,
|
|
langFilePath = path + lang + '.json';
|
|
|
|
return function (req, res, next) {
|
|
|
|
if (lang === 'en_US') {
|
|
// TODO: do stuff here to optimise for en
|
|
|
|
// Make jslint empty block error go away
|
|
lang = 'en_US';
|
|
}
|
|
|
|
/** TODO: potentially use req.acceptedLanguages rather than the default
|
|
* TODO: handle loading language file for frontend on frontend request etc
|
|
* TODO: switch this mess to be promise driven */
|
|
fs.stat(langFilePath, function (error) {
|
|
if (error) {
|
|
console.log('No language file found for language ' + lang + '. Defaulting to en_US');
|
|
lang = 'en_US';
|
|
}
|
|
|
|
fs.readFile(langFilePath, function (error, data) {
|
|
if (error) {
|
|
throw error;
|
|
}
|
|
|
|
try {
|
|
data = JSON.parse(data);
|
|
} catch (e) {
|
|
throw e; // TODO: do something better with the error here
|
|
}
|
|
|
|
ghost.polyglot().extend(data);
|
|
|
|
next();
|
|
});
|
|
});
|
|
};
|
|
};
|
|
|
|
|
|
module.exports.load = I18n; |