0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-01-13 22:41:32 -05:00
ghost/core/shared/lang/i18n.js
William Dibbern 4f2421fac7 MySQL Support
Closes #364
- Confirmed integration with local mysql installation works.
- Updated fixtures and migration with appropriate schema-conforming
values.
- Updated schema with appropriate defaults and nullable columns.
- Updated fixDates function on model base to appropriately deserialize
values coming from SQLite now that dates are stored as actual DateTime
objects/ISO strings.
- Updated default language to be 'en_US'.
2013-08-19 17:25:02 -05:00

53 lines
No EOL
1.4 KiB
JavaScript

var fs = require('fs'),
/**
* Create new Polyglot object
* @type {Polyglot}
*/
I18n;
I18n = function (ghost) {
// TODO: validate
var lang = ghost.config().defaultLang,
path = ghost.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;