aboutsummaryrefslogtreecommitdiff
path: root/js/lib/languages.js
diff options
context:
space:
mode:
authorewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-11-02 16:06:53 +0000
committerewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-11-02 16:06:53 +0000
commit441c9e85dcb824dba2a44657a31fa29ad71a4ee1 (patch)
treee3558477d639a95bb5a24807d2a8174c73e1ac83 /js/lib/languages.js
parent99b267a9fc4b023e54a9d2c8ec9bd9fe42a32e54 (diff)
downloadelgg-441c9e85dcb824dba2a44657a31fa29ad71a4ee1.tar.gz
elgg-441c9e85dcb824dba2a44657a31fa29ad71a4ee1.tar.bz2
Refs #2538: Moved js directory to elgg root.
git-svn-id: http://code.elgg.org/elgg/trunk@7189 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'js/lib/languages.js')
-rw-r--r--js/lib/languages.js83
1 files changed, 83 insertions, 0 deletions
diff --git a/js/lib/languages.js b/js/lib/languages.js
new file mode 100644
index 000000000..3231cf77d
--- /dev/null
+++ b/js/lib/languages.js
@@ -0,0 +1,83 @@
+/**
+ * Provides language-related functionality
+ */
+elgg.provide('elgg.config.translations');
+
+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}
+ */
+elgg.reload_all_translations = function(language) {
+ var lang = language || elgg.get_language();
+ elgg.getJSON('_css/js.php', {
+ data: {
+ 'js': 'languages/'+lang,
+ 'viewtype': 'default',
+ 'lastcache': elgg.config.lastcache
+ },
+ success: function(json) {
+ elgg.add_translation(lang, json);
+ }
+ });
+};
+
+/**
+ * Get the current language
+ * @return {String}
+ */
+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} 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;
+ }
+
+ translations = elgg.config.translations[dlang];
+ if (translations && translations[key]) {
+ return translations[key];
+ }
+
+ return undefined;
+};
+
+elgg.config.translations.init = function() {
+ elgg.reload_all_translations();
+};
+
+elgg.register_event_handler('boot', 'system', elgg.config.translations.init); \ No newline at end of file