aboutsummaryrefslogtreecommitdiff
path: root/js/lib/languages.js
diff options
context:
space:
mode:
authorewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-11-14 11:33:29 +0000
committerewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-11-14 11:33:29 +0000
commitc9f5c056862553d5102d1dfb7d964ea449573d59 (patch)
tree1b005cf7858d8358d76ed3ed8966170a6d4bab99 /js/lib/languages.js
parent72a4b251503eeb2ae4cc8efdea1f522817652406 (diff)
downloadelgg-c9f5c056862553d5102d1dfb7d964ea449573d59.tar.gz
elgg-c9f5c056862553d5102d1dfb7d964ea449573d59.tar.bz2
Refs #2538: Added vsprintf support to elgg.echo. Added unit tests for normalize_url, added prototype definitions for Array#forEach for compatibility with IE.
git-svn-id: http://code.elgg.org/elgg/trunk@7313 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'js/lib/languages.js')
-rw-r--r--js/lib/languages.js51
1 files changed, 27 insertions, 24 deletions
diff --git a/js/lib/languages.js b/js/lib/languages.js
index 640764282..82cfa7a01 100644
--- a/js/lib/languages.js
+++ b/js/lib/languages.js
@@ -1,3 +1,4 @@
+/*globals vsprintf*/
/**
* Provides language-related functionality
*/
@@ -7,13 +8,13 @@ elgg.config.language = 'en';
elgg.add_translation = function(lang, translations) {
elgg.provide('elgg.config.translations.' + lang);
-
+
$.extend(elgg.config.translations[lang], translations);
};
/**
* Load the translations for the given language.
- *
+ *
* If no language is specified, the default language is used.
* @param {string} language
* @return {XMLHttpRequest}
@@ -38,41 +39,43 @@ elgg.reload_all_translations = function(language) {
*/
elgg.get_language = function() {
var user = elgg.get_loggedin_user();
-
+
if (user && user.language) {
return user.language;
}
-
+
return elgg.config.language;
};
/**
* Translates a string
- *
- * @param {String} key The string to translate
+ *
+ * @param {String} key The string to translate
+ * @param {Array} argv vsprintf support
* @param {String} language The language to display it in
+ *
* @return {String} The translation
*/
-elgg.echo = function(key, language) {
- var translations,
- dlang = elgg.get_language();
-
- language = language || dlang;
-
- translations = elgg.config.translations[language];
- if (translations && translations[key]) {
- return translations[key];
- }
-
- if (language === dlang) {
- return undefined;
+elgg.echo = function(key, argv, language) {
+ //elgg.echo('str', 'en')
+ if (elgg.isString(argv)) {
+ language = argv;
+ argv = [];
}
-
- translations = elgg.config.translations[dlang];
- if (translations && translations[key]) {
- return translations[key];
+
+ //elgg.echo('str', [...], 'en')
+ var translations = elgg.config.translations,
+ dlang = elgg.get_language(),
+ map;
+
+ language = language || dlang;
+ argv = argv || [];
+
+ map = translations[language] || translations[dlang];
+ if (map && map[key]) {
+ return vsprintf(map[key], argv);
}
-
+
return undefined;
};