Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/js/jquery.i18n.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/jquery.i18n.js')
-rw-r--r--js/jquery.i18n.js102
1 files changed, 52 insertions, 50 deletions
diff --git a/js/jquery.i18n.js b/js/jquery.i18n.js
index a50e612..07e015b 100644
--- a/js/jquery.i18n.js
+++ b/js/jquery.i18n.js
@@ -1,30 +1,33 @@
-/* Copyright Bryan W Berry, 2009,
+/* Copyright Bryan W Berry, 2009,
* under the MIT license http://www.opensource.org/licenses/mit-license.php
- *
+ *
* this library is heavily influenced by the GNU LIBC library
* http://www.gnu.org/software/libc/manual/html_node/Locales.html
*/
(function($){
- // PG: Maybe put everything in namespace i18n and rename the following function $.i18n.gettext?
-
- $.i18n = function(string, locale){
- var lang = locale || $.i18n.lang;
- if (!$.i18n[lang] || !$.i18n[lang].strings){
- return string;
- }
- return $.i18n[lang].strings['default'][string]||string;
- };
-
- $.i18n.cgettext = function(context, string, locale){
- var lang = locale || $.i18n.lang;
- if (!this.i18n[lang] || !this.i18n[lang].strings){
- return string;
- }
- return this.i18n[lang].strings[context][string]||string;
- };
+ $.i18n = {};
+
+ $.i18n.gettext = function(string) {
+ var lang = $.i18n.lang;
+ if (!$.i18n[lang] || !$.i18n[lang].strings) {
+ return string;
+ }
+ return $.i18n[lang].strings[string]||string;
+ };
+
+ $.i18n.pgettext = function(context, string) {
+ var lang = $.i18n.lang;
+ if (!$.i18n[lang] ||
+ !$.i18n[lang].contextualized_strings ||
+ !$.i18n[lang].contextualized_strings[context]) {
+ return string;
+ }
+ return $.i18n[lang].contextualized_strings[context][string]||string;
+ };
// You can override this in messages.<lang>.json.
+ // We should maybe extract this from the .mo file.
$.i18n.choose_pluralized_msg = function (choices, n) {
return n == 1 ? choices[0] : choices[1];
};
@@ -40,55 +43,54 @@
n);
};
- $._ = $.i18n;
- $._c = $.i18n.cgettext;
+ $._ = $.i18n.gettext;
- $.i18n.setLocale = function (locale){
- $.i18n.lang = locale;
- };
+ $.i18n.setLocale = function (locale){
+ $.i18n.lang = locale;
+ };
- $.i18n.getLocale = function (){
- return $.i18n.lang;
- };
+ $.i18n.getLocale = function (){
+ return $.i18n.lang;
+ };
- /**
+ /**
* Converts a number to numerals in the specified locale. Currently only
* supports devanagari numerals for Indic languages like Nepali and Hindi
* @param {Number} Number to be converted
* @param {locale} locale that number should be converted to
- * @returns {String} Unicode string for localized numeral
+ * @returns {String} Unicode string for localized numeral
*/
- $.i18n._n = function(num, locale){
+ $.i18n._n = function(num, locale){
+
+ locale = locale || $.i18n.lang;
- locale = locale || $.i18n.lang;
+ if (!this.i18n[locale] || !this.i18n[locale].numeralBase ){
+ return num;
+ }
- if (!this.i18n[locale] || !this.i18n[locale].numeralBase ){
- return num;
- }
+ //48 is the base for western numerals
+ var numBase = $.i18n[$.i18n.lang].numeralBase || 48;
+ var prefix = $.i18n[$.i18n.lang].numeralPrefix || "u00";
- //48 is the base for western numerals
- var numBase = $.i18n[$.i18n.lang].numeralBase || 48;
- var prefix = $.i18n[$.i18n.lang].numeralPrefix || "u00";
-
- var convertDigit = function(digit){
- return '\\' + prefix +
- (numBase + parseInt(digit)).toString(16);
- };
-
- var charArray = num.toString().split("").map(convertDigit);
- return eval('"' + charArray.join('') + '"');
- };
+ var convertDigit = function(digit){
+ return '\\' + prefix +
+ (numBase + parseInt(digit)).toString(16);
+ };
+
+ var charArray = num.toString().split("").map(convertDigit);
+ return eval('"' + charArray.join('') + '"');
+ };
- $._n = $.i18n._n;
+ $._n = $.i18n._n;
- /* ToDo
+ /* ToDo
* implement sprintf
- * conversion functions for monetary and numeric
+ * conversion functions for monetary and numeric
* sorting functions (collation) for different locales
*/
- })(jQuery);
+})(jQuery);