Move i18n to javascript

This commit is contained in:
Blade Barringer
2015-09-28 17:33:45 -05:00
parent b8a8eff434
commit 2db4b7b7b2
4 changed files with 52 additions and 47 deletions

View File

@@ -1,44 +0,0 @@
_ = require 'lodash'
module.exports =
strings: null, # Strings for one single language
translations: {} # Strings for multiple languages {en: strings, de: strings, ...}
t: (stringName) -> # Other parameters allowed are vars (Object) and locale (String)
vars = arguments[1]
if _.isString(arguments[1])
vars = null
locale = arguments[1]
else if arguments[2]?
vars = arguments[1]
locale = arguments[2]
locale = 'en' if (!locale? or (!module.exports.strings and !module.exports.translations[locale]))
if module.exports.strings
string = module.exports.strings[stringName]
else
string =
module.exports.translations[locale] and
module.exports.translations[locale][stringName]
clonedVars = _.clone(vars) or {}
clonedVars.locale = locale
if string
try
_.template(string, (clonedVars))
catch e
'Error processing the string. Please see Help > Report a Bug.'
else
if module.exports.strings
stringNotFound = module.exports.strings.stringNotFound
else if module.exports.translations[locale]
stringNotFound =
module.exports.translations[locale] and
module.exports.translations[locale].stringNotFound
try
_.template(stringNotFound, {string: stringName})
catch e
'Error processing the string. Please see Help > Report a Bug.'

View File

@@ -1,7 +1,8 @@
moment = require('moment')
_ = require('lodash')
content = require('../dist/scripts/content/index')
i18n = require('./i18n.coffee')
i18n = require('../dist/scripts/i18n')
api = module.exports = {}
api.i18n = i18n

View File

@@ -2,8 +2,7 @@ import {each, defaults, assign} from 'lodash';
import capitalize from 'lodash.capitalize';
import camelCase from 'lodash.camelcase';
require('coffee-script');
import i18n from '../../../script/i18n.coffee';
import i18n from '../i18n';
//----------------------------------------
// Translator Helpers

49
common/script/src/i18n.js Normal file
View File

@@ -0,0 +1,49 @@
let _ = require('lodash');
module.exports = {
strings: null,
translations: {},
t: function(stringName) {
var clonedVars, e, locale, string, stringNotFound, vars;
vars = arguments[1];
if (_.isString(arguments[1])) {
vars = null;
locale = arguments[1];
} else if (arguments[2] != null) {
vars = arguments[1];
locale = arguments[2];
}
if ((locale == null) || (!module.exports.strings && !module.exports.translations[locale])) {
locale = 'en';
}
if (module.exports.strings) {
string = module.exports.strings[stringName];
} else {
string = module.exports.translations[locale] && module.exports.translations[locale][stringName];
}
clonedVars = _.clone(vars) || {};
clonedVars.locale = locale;
if (string) {
try {
return _.template(string, clonedVars);
} catch (_error) {
e = _error;
return 'Error processing the string. Please see Help > Report a Bug.';
}
} else {
if (module.exports.strings) {
stringNotFound = module.exports.strings.stringNotFound;
} else if (module.exports.translations[locale]) {
stringNotFound = module.exports.translations[locale] && module.exports.translations[locale].stringNotFound;
}
try {
return _.template(stringNotFound, {
string: stringName
});
} catch (_error) {
e = _error;
return 'Error processing the string. Please see Help > Report a Bug.';
}
}
}
};