mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-04 01:29:21 +00:00
refactor(i18n): refactor & fix
This commit is contained in:
parent
62637cf676
commit
b887127fb0
4 changed files with 20 additions and 12 deletions
|
|
@ -88,7 +88,8 @@ api.registerUser = function(req, res, next) {
|
|||
timestamps: {created: +new Date(), loggedIn: +new Date()}
|
||||
}
|
||||
};
|
||||
user.language = req.language; // User language detected from browser, not saved
|
||||
newUser.preferences = {};
|
||||
newUser.preferences.language = req.language; // User language detected from browser, not saved
|
||||
user = new User(newUser);
|
||||
|
||||
// temporary for conventions
|
||||
|
|
@ -258,7 +259,9 @@ api.setupPassport = function(router) {
|
|||
if (user) return cb(null, user);
|
||||
|
||||
user = new User({
|
||||
language: req.language, // User language detected from browser, not saved
|
||||
preferences: {
|
||||
language: req.language // User language detected from browser, not saved
|
||||
},
|
||||
auth: {
|
||||
facebook: req.user,
|
||||
timestamps: {created: +new Date(), loggedIn: +new Date()}
|
||||
|
|
|
|||
|
|
@ -65,9 +65,10 @@ var getUserLanguage = function(req, res, next){
|
|||
var getFromUser = function(user){
|
||||
var lang;
|
||||
if(user && user.preferences.language && translations[user.preferences.language]){
|
||||
lang = _.find(avalaibleLanguages, {code: user.preferences.language}) || 'en';
|
||||
lang = user.preferences.language;
|
||||
}else{
|
||||
lang = _.find(avalaibleLanguages, {code: getFromBrowser()}) || 'en';
|
||||
var preferred = getFromBrowser();
|
||||
lang = translations[preferred] ? preferred : 'en';
|
||||
}
|
||||
req.language = lang;
|
||||
next();
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ var getManifestFiles = function(page){
|
|||
}
|
||||
|
||||
module.exports.locals = function(req, res, next) {
|
||||
var language = req.language;
|
||||
var language = _.find(i18n.avalaibleLanguages, {code: req.language});
|
||||
var isStaticPage = req.url.split('/')[1] === 'static'; // If url contains '/static/'
|
||||
|
||||
// Load moment.js language file only when not on static pages
|
||||
|
|
|
|||
|
|
@ -352,21 +352,25 @@ UserSchema.pre('save', function(next) {
|
|||
if (this.isNew){
|
||||
//TODO for some reason this doesn't work here: `_.merge(this, shared.content.userDefaults);`
|
||||
var self = this;
|
||||
|
||||
_.each('habits', 'dailys', 'todos', 'rewards', 'tags', function(taskType){
|
||||
self.taskType = _.map(shared.content.userDefaults[taskType], function(task){
|
||||
_.each(['habits', 'dailys', 'todos', 'rewards', 'tags'], function(taskType){
|
||||
self[taskType] = _.map(shared.content.userDefaults[taskType], function(task){
|
||||
var newTask = task;
|
||||
|
||||
// Render task's text and notes in user's language
|
||||
newTask.text = task.text(this.language);
|
||||
newTask.notes = task.notes(this.language);
|
||||
if(taskType === 'tags'){
|
||||
// tasks automatically get id=helpers.uuid() from TaskSchema id.default, but tags are Schema.Types.Mixed - so we need to manually invoke here
|
||||
newTask.id = shared.uuid();
|
||||
newTask.name = task.name(self.preferences.language);
|
||||
}else{
|
||||
newTask.text = task.text(self.preferences.language);
|
||||
newTask.notes = task.notes(self.preferences.language);
|
||||
}
|
||||
|
||||
return newTask;
|
||||
});
|
||||
});
|
||||
|
||||
// tasks automatically get id=helpers.uuid() from TaskSchema id.default, but tags are Schema.Types.Mixed - so we need to manually invoke here
|
||||
_.each(this.tags, function(tag){tag.id = shared.uuid();})
|
||||
this.preferences.language = undefined;
|
||||
}
|
||||
|
||||
//this.markModified('tasks');
|
||||
|
|
|
|||
Loading…
Reference in a new issue