From 95f1dc6e600813e44c7d2d94a3a4a8605f2613f6 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 24 Jan 2014 18:08:54 +0100 Subject: [PATCH] improve(translation): allow for data interpolation --- public/js/app.js | 7 +++++-- src/middleware.js | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/public/js/app.js b/public/js/app.js index 6ffb1bf987..cacc646f3d 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -11,8 +11,11 @@ if(window.env.language && window.env.language.momentLang && window.env.language. moment.lang(window.env.language.momentLangCode); } -window.env.t = function(string){ - return (window.env.translations[string] || window.env.translations.stringNotFound); +window.env.t = function(stringName, vars){ + var string = window.env.translations[stringName]; + if(!string) return window._.template(window.env.translations.stringNotFound, {string: stringName}); + + return vars === undefined ? string : window._.template(string, vars); } window.habitrpg = angular.module('habitrpg', diff --git a/src/middleware.js b/src/middleware.js index b45b805dba..6ae2af370e 100644 --- a/src/middleware.js +++ b/src/middleware.js @@ -187,8 +187,11 @@ module.exports.locals = function(req, res, next) { avalaibleLanguages: avalaibleLanguages, language: language, translations: translations[language.code], - t: function(string){ - return (translations[language.code][string] || translations[language.code].stringNotFound); + t: function(stringName, vars){ + var string = translations[language.code][stringName]; + if(!string) return _.template(translations[language.code].stringNotFound, {string: stringName}); + + return vars === undefined ? string : _.template(string, vars); }, siteVersion: siteVersion }