[fusion-commits] r2271 - trunk/lib

svn_fusion at osgeo.org svn_fusion at osgeo.org
Fri Nov 5 11:21:19 EDT 2010


Author: pagameba
Date: 2010-11-05 08:21:19 -0700 (Fri, 05 Nov 2010)
New Revision: 2271

Modified:
   trunk/lib/jxlib.uncompressed.js
Log:
update jxlib build.

Modified: trunk/lib/jxlib.uncompressed.js
===================================================================
--- trunk/lib/jxlib.uncompressed.js	2010-11-05 15:21:02 UTC (rev 2270)
+++ trunk/lib/jxlib.uncompressed.js	2010-11-05 15:21:19 UTC (rev 2271)
@@ -5790,7 +5790,7 @@
 
 (function(){
   
-var special = ['À','à','Ã?','á','Â','â','Ã','ã','Ä','ä','Ã…','Ã¥','Ä‚','ă','Ä„','Ä…','Ć','ć','ÄŒ','Ä?','Ç','ç', 'ÄŽ','Ä?','Ä?','Ä‘', 'È','è','É','é','Ê','ê','Ë','ë','Äš','Ä›','Ę','Ä™', 'Äž','ÄŸ','ÃŒ','ì','Ã?','í','ÃŽ','î','Ã?','ï', 'Ĺ','ĺ','Ľ','ľ','Å?','Å‚', 'Ñ','ñ','Ň','ň','Ń','Å„','Ã’','ò','Ó','ó','Ô','ô','Õ','õ','Ö','ö','Ø','ø','Å‘','Ř','Å™','Å”','Å•','Å ','Å¡','Åž','ÅŸ','Åš','Å›', 'Ť','Å¥','Ť','Å¥','Å¢','Å£','Ù','ù','Ú','ú','Û','û','Ãœ','ü','Å®','ů', 'Ÿ','ÿ','ý','Ã?','Ž','ž','Ź','ź','Å»','ż', 'Þ','þ','Ã?','ð','ß','Å’','Å“','Æ','æ','µ'];
+var special = ['À','à','Á','á','Â','â','Ã','ã','Ä','ä','Å','å','Ă','ă','Ą','ą','Ć','ć','Č','č','Ç','ç', 'Ď','ď','Đ','đ', 'È','è','É','é','Ê','ê','Ë','ë','Ě','ě','Ę','ę', 'Ğ','ğ','Ì','ì','Í','í','Î','î','Ï','ï', 'Ĺ','ĺ','Ľ','ľ','Ł','ł', 'Ñ','ñ','Ň','ň','Ń','ń','Ò','ò','Ó','ó','Ô','ô','Õ','õ','Ö','ö','Ø','ø','ő','Ř','ř','Ŕ','ŕ','Š','š','Ş','ş','Ś','ś', 'Ť','ť','Ť','ť','Ţ','ţ','Ù','ù','Ú','ú','Û','û','Ü','ü','Ů','ů', 'Ÿ','ÿ','ý','Ý','Ž','ž','Ź','ź','Ż','ż', 'Þ','þ','Ð','ð','ß','Œ','œ','Æ','æ','µ'];
 
 var standard = ['A','a','A','a','A','a','A','a','Ae','ae','A','a','A','a','A','a','C','c','C','c','C','c','D','d','D','d', 'E','e','E','e','E','e','E','e','E','e','E','e','G','g','I','i','I','i','I','i','I','i','L','l','L','l','L','l', 'N','n','N','n','N','n', 'O','o','O','o','O','o','O','o','Oe','oe','O','o','o', 'R','r','R','r', 'S','s','S','s','S','s','T','t','T','t','T','t', 'U','u','U','u','U','u','Ue','ue','U','u','Y','y','Y','y','Z','z','Z','z','Z','z','TH','th','DH','dh','ss','OE','oe','AE','ae','u'];
 
@@ -13346,8 +13346,8 @@
 
 MooTools.lang.set('ru-RU-unicode', 'Date', {
 
-	months: ['Январь', 'Февраль', 'Март', 'Ð?прель', 'Май', 'Июнь', 'Июль', 'Ð?вгуÑ?Ñ‚', 'СентÑ?брь', 'ОктÑ?брь', 'Ð?оÑ?брь', 'Декабрь'],
-	days: ['ВоÑ?креÑ?енье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'ПÑ?тница', 'Суббота'],
+	months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
+	days: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
 	//culture's date order: MM/DD/YYYY
 	dateOrder: ['date', 'month', 'year'],
 	AM: 'AM',
@@ -13386,17 +13386,17 @@
 	lessThanMinuteAgo: 'меньше минуты назад',
 	minuteAgo: 'минута назад',
 	minutesAgo: function (delta) { return  '{delta} ' + this.pluralize(delta, 'минута', 'минуты', 'минут') + ' назад'},
-	hourAgo: 'чаÑ? назад',
-	hoursAgo: function (delta) { return  '{delta} ' + this.pluralize(delta, 'чаÑ?', 'чаÑ?а', 'чаÑ?ов') + ' назад'},
+	hourAgo: 'час назад',
+	hoursAgo: function (delta) { return  '{delta} ' + this.pluralize(delta, 'час', 'часа', 'часов') + ' назад'},
 	dayAgo: 'вчера',
-	daysAgo: function (delta) { return '{delta} ' + this.pluralize(delta, 'день', 'днÑ?', 'дней') + ' назад' },
+	daysAgo: function (delta) { return '{delta} ' + this.pluralize(delta, 'день', 'дня', 'дней') + ' назад' },
 	lessThanMinuteUntil: 'меньше минуты назад',
 	minuteUntil: 'через минуту',
-	minutesUntil: function (delta) { return  'через {delta} ' + this.pluralize(delta, 'чаÑ?', 'чаÑ?а', 'чаÑ?ов') + ''},
-	hourUntil: 'через чаÑ?',
-	hoursUntil: function (delta) { return  'через {delta} ' + this.pluralize(delta, 'чаÑ?', 'чаÑ?а', 'чаÑ?ов') + ''},
+	minutesUntil: function (delta) { return  'через {delta} ' + this.pluralize(delta, 'час', 'часа', 'часов') + ''},
+	hourUntil: 'через час',
+	hoursUntil: function (delta) { return  'через {delta} ' + this.pluralize(delta, 'час', 'часа', 'часов') + ''},
 	dayUntil: 'завтра',
-	daysUntil: function (delta) { return 'через {delta} ' + this.pluralize(delta, 'день', 'днÑ?', 'дней') + '' }
+	daysUntil: function (delta) { return 'через {delta} ' + this.pluralize(delta, 'день', 'дня', 'дней') + '' }
 
 });/*
 ---
@@ -13549,11 +13549,11 @@
 	};
 
 	MooTools.lang.set('uk-UA', 'Date', {
-			months: ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'ВереÑ?ень', 'Жовтень', 'ЛиÑ?топад', 'Грудень'],
-			days: ['Ð?еділÑ?', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П\'Ñ?тницÑ?', 'Субота'],
+			months: ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'],
+			days: ['Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П\'ятниця', 'Субота'],
 			//culture's date order: DD/MM/YYYY
 			dateOrder: ['date', 'month', 'year'],
-			AM: 'до полуднÑ?',
+			AM: 'до полудня',
 			PM: 'по полудню',
 
 			shortDate: '%d/%m/%Y',
@@ -13572,15 +13572,15 @@
 			},
 			dayAgo: 'вчора',
 			daysAgo: function (delta){
-				return '{delta} ' + pluralize(delta, 'день', 'днÑ?', 'днів') + ' тому';
+				return '{delta} ' + pluralize(delta, 'день', 'дня', 'днів') + ' тому';
 			},
 			weekAgo: 'тиждень тому',
 			weeksAgo: function (delta){
 				return '{delta} ' + pluralize(delta, 'тиждень', 'тижні', 'тижнів') + ' тому';
 			},
-			monthAgo: 'міÑ?Ñ?ць тому',
+			monthAgo: 'місяць тому',
 			monthsAgo: function (delta){
-				return '{delta} ' + pluralize(delta, 'міÑ?Ñ?ць', 'міÑ?Ñ?ці', 'міÑ?Ñ?ців') + ' тому';
+				return '{delta} ' + pluralize(delta, 'місяць', 'місяці', 'місяців') + ' тому';
 			},
 			yearAgo: 'рік тому',
 			yearsAgo: function (delta){
@@ -13597,15 +13597,15 @@
 			},
 			dayUntil: 'завтра',
 			daysUntil: function (delta){
-				return 'через {delta} ' + pluralize(delta, 'день', 'днÑ?', 'днів');
+				return 'через {delta} ' + pluralize(delta, 'день', 'дня', 'днів');
 			},
 			weekUntil: 'через тиждень',
 			weeksUntil: function (delta){
 				return 'через {delta} ' + pluralize(delta, 'тиждень', 'тижні', 'тижнів');
 			},
-			monthUntil: 'через міÑ?Ñ?ць',
+			monthUntil: 'через місяць',
 			monthesUntil: function (delta){
-				return 'через {delta} ' + pluralize(delta, 'міÑ?Ñ?ць', 'міÑ?Ñ?ці', 'міÑ?Ñ?ців');
+				return 'через {delta} ' + pluralize(delta, 'місяць', 'місяці', 'місяців');
 			},
 			yearUntil: 'через рік',
 			yearsUntil: function (delta){
@@ -13636,19 +13636,19 @@
 
 MooTools.lang.set('ar', 'Form.Validator', {
 	required:'هذا الحقل مطلوب.',
-	minLength:'رجاءً إدخال {minLength}  أحرÙ? على الأقل (تم إدخال {length} أحرÙ?).',
-	maxLength:'الرجاء عدم إدخال أكثر من {maxLength} أحرÙ? (تم إدخال {length} أحرÙ?).',
-	integer:'الرجاء إدخال عدد صحيح Ù?ÙŠ هذا الحقل. أي رقم ذو كسر عشري أو مئوي (مثال 1.25 ) غير مسموح.',
-	numeric:'الرجاء إدخال قيم رقمية Ù?ÙŠ هذا الحقل (مثال "1" أو "1.1" أو "-1" أو "-1.1").',
-	digits:'الرجاء أستخدام قيم رقمية وعلامات ترقيمية Ù?قط Ù?ÙŠ هذا الحقل (مثال, رقم هاتÙ? مع نقطة أو شحطة)',
-	alpha:'الرجاء أستخدام أحرÙ? Ù?قط (ا-ÙŠ) Ù?ÙŠ هذا الحقل. أي Ù?راغات أو علامات غير مسموحة.',
-	alphanum:'الرجاء أستخدام أحرÙ? Ù?قط (ا-ÙŠ) أو أرقام (0-9) Ù?قط Ù?ÙŠ هذا الحقل. أي Ù?راغات أو علامات غير مسموحة.',
+	minLength:'رجاءً إدخال {minLength}  أحرف على الأقل (تم إدخال {length} أحرف).',
+	maxLength:'الرجاء عدم إدخال أكثر من {maxLength} أحرف (تم إدخال {length} أحرف).',
+	integer:'الرجاء إدخال عدد صحيح في هذا الحقل. أي رقم ذو كسر عشري أو مئوي (مثال 1.25 ) غير مسموح.',
+	numeric:'الرجاء إدخال قيم رقمية في هذا الحقل (مثال "1" أو "1.1" أو "-1" أو "-1.1").',
+	digits:'الرجاء أستخدام قيم رقمية وعلامات ترقيمية فقط في هذا الحقل (مثال, رقم هاتف مع نقطة أو شحطة)',
+	alpha:'الرجاء أستخدام أحرف فقط (ا-ي) في هذا الحقل. أي فراغات أو علامات غير مسموحة.',
+	alphanum:'الرجاء أستخدام أحرف فقط (ا-ي) أو أرقام (0-9) فقط في هذا الحقل. أي فراغات أو علامات غير مسموحة.',
 	dateSuchAs:'الرجاء إدخال تاريخ صحيح كالتالي {date}',
 	dateInFormatMDY:'الرجاء إدخال تاريخ صحيح (مثال, 31-12-1999)',
 	email:'الرجاء إدخال بريد إلكتروني صحيح.',
 	url:'الرجاء إدخال عنوان إلكتروني صحيح مثل http://www.google.com',
 	currencyDollar:'الرجاء إدخال قيمة $ صحيحة.  مثال, 100.00$',
-	oneRequired:'الرجاء إدخال قيمة Ù?ÙŠ أحد هذه الحقول على الأقل.',
+	oneRequired:'الرجاء إدخال قيمة في أحد هذه الحقول على الأقل.',
 	errorPrefix: 'خطأ: ',
 	warningPrefix: 'تحذير: '
 }).set('ar', 'Date', {
@@ -13735,16 +13735,16 @@
 	required:'Tato položka je povinná.',
 	minLength:'Zadejte prosím alespoň {minLength} znaků (napsáno {length} znaků).',
 	maxLength:'Zadejte prosím méně než {maxLength} znaků (nápsáno {length} znaků).',
-	integer:'Zadejte prosím celé Ä?íslo. Desetinná Ä?ísla (napÅ™. 1.25) nejsou povolena.',
-	numeric:'Zadejte jen Ä?íselné hodnoty  (tj. "1" nebo "1.1" nebo "-1" nebo "-1.1").',
-	digits:'Zadejte prosím pouze Ä?ísla a interpunkÄ?ní znaménka(například telefonní Ä?íslo s pomlÄ?kami nebo teÄ?kami je povoleno).',
+	integer:'Zadejte prosím celé číslo. Desetinná čísla (např. 1.25) nejsou povolena.',
+	numeric:'Zadejte jen číselné hodnoty  (tj. "1" nebo "1.1" nebo "-1" nebo "-1.1").',
+	digits:'Zadejte prosím pouze čísla a interpunkční znaménka(například telefonní číslo s pomlčkami nebo tečkami je povoleno).',
 	alpha:'Zadejte prosím pouze písmena (a-z). Mezery nebo jiné znaky nejsou povoleny.',
-	alphanum:'Zadejte prosím pouze písmena (a-z) nebo Ä?íslice (0-9). Mezery nebo jiné znaky nejsou povoleny.',
+	alphanum:'Zadejte prosím pouze písmena (a-z) nebo číslice (0-9). Mezery nebo jiné znaky nejsou povoleny.',
 	dateSuchAs:'Zadejte prosím platné datum jako {date}',
 	dateInFormatMDY:'Zadejte prosím platné datum jako MM / DD / RRRR (tj. "12/31/1999")',
 	email:'Zadejte prosím platnou e-mailovou adresu. Například "fred at domain.com".',
 	url:'Zadejte prosím platnou URL adresu jako http://www.google.com.',
-	currencyDollar:'Zadejte prosím platnou Ä?ástku. Například $100.00.',
+	currencyDollar:'Zadejte prosím platnou částku. Například $100.00.',
 	oneRequired:'Zadejte prosím alespoň jednu hodnotu pro tyto položky.',
 	errorPrefix: 'Chyba: ',
 	warningPrefix: 'Upozornění: ',
@@ -13757,13 +13757,13 @@
 	reqChkByName: 'Prosím vyberte {label}.',
 	match: 'Tato položka se musí shodovat s položkou {matchName}',
 	startDate: 'datum zahájení',
-	endDate: 'datum ukonÄ?ení',
+	endDate: 'datum ukončení',
 	currendDate: 'aktuální datum',
 	afterDate: 'Datum by mělo být stejné nebo větší než {label}.',
 	beforeDate: 'Datum by mělo být stejné nebo menší než {label}.',
-	startMonth: 'Vyberte poÄ?áteÄ?ní mÄ›síc.',
+	startMonth: 'Vyberte počáteční měsíc.',
 	sameMonth: 'Tyto dva datumy musí být ve stejném měsíci - změňte jeden z nich.',
-    creditcard: 'Zadané Ä?íslo kreditní karty je neplatné. Prosím opravte ho. Bylo zadáno {length} Ä?ísel.'
+    creditcard: 'Zadané číslo kreditní karty je neplatné. Prosím opravte ho. Bylo zadáno {length} čísel.'
 
 });
 /*
@@ -13790,14 +13790,14 @@
 /*
 In Chinese:
 ------------
-需�指出的是:
+需要指出的是:
 简体中文适用于中国大陆,
-�体中文适用于香港�澳门和�湾�。
-简体中文和�体中文在字体和语法上有很多的��之处。
+繁体中文适用于香港、澳门和台湾省。
+简体中文和繁体中文在字体和语法上有很多的不同之处。
 
-我�以确�简体中文语言包的准确性,
-但对于�体中文,我�以��用户�以准确的�解,但无法��语�符�他们的阅读习惯。
-如果您�能确认的�,�以�使用简体中文语言包,因为它是最通用的。
+我可以确保简体中文语言包的准确性,
+但对于繁体中文,我可以保证用户可以准确的理解,但无法保证语句符合他们的阅读习惯。
+如果您不能确认的话,可以只使用简体中文语言包,因为它是最通用的。
 
 In English:
 ------------
@@ -13816,17 +13816,17 @@
 MooTools.lang.set('zhs-CN', 'Form.Validator', {
 	required:'这是必填项。',
 	minLength:'请至少输入 {minLength} 个字符 (已输入 {length} 个)。',
-	maxLength:'最多�能输入 {maxLength} 个字符 (已输入 {length} 个)。',
-	integer:'请输入一个整数,�能包��数点。例如:"1", "200"。',
+	maxLength:'最多只能输入 {maxLength} 个字符 (已输入 {length} 个)。',
+	integer:'请输入一个整数,不能包含小数点。例如:"1", "200"。',
 	numeric:'请输入一个数字,例如:"1", "1.1", "-1", "-1.1"。',
-	digits:'这里�能接�数字和标点的输入,标点�以是:"(", ")", ".", ":", "-", "+", "#"和空格。',
-	alpha:'请输入 A-Z 的 26 个字�,�能包�空格或任何其他字符。',
-	alphanum:'请输入 A-Z 的 26 个字�或 0-9 的 10 个数字,�能包�空格或任何其他字符。',
-	dateSuchAs:'请输入�法的日期格�,如:{date}。',
-	dateInFormatMDY:'请输入�法的日期格�,例如:MM/DD/YYYY ("12/31/1999")。',
-	email:'请输入�法的电�信箱地�,例如:"fred at domain.com"。',
-	url:'请输入�法的 Url 地�,例如:http://www.google.com。',
-	currencyDollar:'请输入�法的货�符�,例如:¥',
+	digits:'这里只能接受数字和标点的输入,标点可以是:"(", ")", ".", ":", "-", "+", "#"和空格。',
+	alpha:'请输入 A-Z 的 26 个字母,不能包含空格或任何其他字符。',
+	alphanum:'请输入 A-Z 的 26 个字母或 0-9 的 10 个数字,不能包含空格或任何其他字符。',
+	dateSuchAs:'请输入合法的日期格式,如:{date}。',
+	dateInFormatMDY:'请输入合法的日期格式,例如:MM/DD/YYYY ("12/31/1999")。',
+	email:'请输入合法的电子信箱地址,例如:"fred at domain.com"。',
+	url:'请输入合法的 Url 地址,例如:http://www.google.com。',
+	currencyDollar:'请输入合法的货币符号,例如:¥',
 	oneRequired:'请至少选择一项。',
 	errorPrefix: '错误:',
 	warningPrefix: '警告:'
@@ -13835,19 +13835,19 @@
 // Traditional Chinese
 MooTools.lang.set('zht-CN', 'Form.Validator', {
 	required:'這是必填項。',
-	minLength:'請至少�入 {minLength} 個字符(已�入 {length} 個)。',
-	maxLength:'最多�能�入 {maxLength} 個字符(已�入 {length} 個)。',
-	integer:'請�入一個整數,�能包��數點。例如:"1", "200"。',
-	numeric:'請�入一個數字,例如:"1", "1.1", "-1", "-1.1"。',
-	digits:'這裡�能接�數字和標點的�入,標點�以是:"(", ")", ".", ":", "-", "+", "#"和空格。',
-	alpha:'請�入 A-Z 的 26 個字�,�能包�空格或任何其他字符。',
-	alphanum:'請�入 A-Z 的 26 個字�或 0-9 的 10 個數字,�能包�空格或任何其他字符。',
-	dateSuchAs:'請�入�法的日期格�,如:{date}。',
-	dateInFormatMDY:'請�入�法的日期格�,例如:MM/DD/YYYY ("12/31/1999")。',
-	email:'請�入�法的電�信箱地�,例如:"fred at domain.com"。',
-	url:'請�入�法的 Url 地�,例如:http://www.google.com。',
-	currencyYuan:'請�入�法的貨幣符號,例如:¥',
-	oneRequired:'請至少�擇一項。',
+	minLength:'請至少鍵入 {minLength} 個字符(已鍵入 {length} 個)。',
+	maxLength:'最多只能鍵入 {maxLength} 個字符(已鍵入 {length} 個)。',
+	integer:'請鍵入一個整數,不能包含小數點。例如:"1", "200"。',
+	numeric:'請鍵入一個數字,例如:"1", "1.1", "-1", "-1.1"。',
+	digits:'這裡只能接受數字和標點的鍵入,標點可以是:"(", ")", ".", ":", "-", "+", "#"和空格。',
+	alpha:'請鍵入 A-Z 的 26 個字母,不能包含空格或任何其他字符。',
+	alphanum:'請鍵入 A-Z 的 26 個字母或 0-9 的 10 個數字,不能包含空格或任何其他字符。',
+	dateSuchAs:'請鍵入合法的日期格式,如:{date}。',
+	dateInFormatMDY:'請鍵入合法的日期格式,例如:MM/DD/YYYY ("12/31/1999")。',
+	email:'請鍵入合法的電子信箱地址,例如:"fred at domain.com"。',
+	url:'請鍵入合法的 Url 地址,例如:http://www.google.com。',
+	currencyYuan:'請鍵入合法的貨幣符號,例如:¥',
+	oneRequired:'請至少選擇一項。',
 	errorPrefix: '錯誤:',
 	warningPrefix: '警告:'
 });
@@ -14393,40 +14393,40 @@
 */
 
 MooTools.lang.set('ru-RU-unicode', 'Form.Validator', {
-	required:'Это поле обÑ?зательно к заполнению.',
-	minLength:'ПожалуйÑ?та, введите хотÑ? бы {minLength} Ñ?имволов (Ð’Ñ‹ ввели {length}).',
-	maxLength:'ПожалуйÑ?та, введите не больше {maxLength} Ñ?имволов (Ð’Ñ‹ ввели {length}).',
-	integer:'ПожалуйÑ?та, введите в Ñ?то поле чиÑ?ло. Дробные чиÑ?ла (например 1.25) тут не разрешены.',
-	numeric:'ПожалуйÑ?та, введите в Ñ?то поле чиÑ?ло (например "1" или "1.1", или "-1", или "-1.1").',
-	digits:'Ð’ Ñ?том поле Ð’Ñ‹ можете иÑ?пользовать только цифры и знаки пунктуации (например, телефонный номер Ñ?о знаками дефиÑ?а или Ñ? точками).',
-	alpha:'Ð’ Ñ?том поле можно иÑ?пользовать только латинÑ?кие буквы (a-z). Пробелы и другие Ñ?имволы запрещены.',
-	alphanum:'Ð’ Ñ?том поле можно иÑ?пользовать только латинÑ?кие буквы (a-z) и цифры (0-9). Пробелы и другие Ñ?имволы запрещены.',
-	dateSuchAs:'ПожалуйÑ?та, введите корректную дату {date}',
-	dateInFormatMDY:'ПожалуйÑ?та, введите дату в формате ММ/ДД/ГГГГ (например "12/31/1999")',
-	email:'ПожалуйÑ?та, введите корректный емейл-адреÑ?. ДлÑ? примера "fred at domain.com".',
-	url:'ПожалуйÑ?та, введите правильную Ñ?Ñ?ылку вида http://www.google.com.',
-	currencyDollar:'ПожалуйÑ?та, введите Ñ?умму в долларах. Ð?апример: $100.00 .',
-	oneRequired:'ПожалуйÑ?та, выберите хоть что-нибудь в одном из Ñ?тих полей.',
+	required:'Это поле обязательно к заполнению.',
+	minLength:'Пожалуйста, введите хотя бы {minLength} символов (Вы ввели {length}).',
+	maxLength:'Пожалуйста, введите не больше {maxLength} символов (Вы ввели {length}).',
+	integer:'Пожалуйста, введите в это поле число. Дробные числа (например 1.25) тут не разрешены.',
+	numeric:'Пожалуйста, введите в это поле число (например "1" или "1.1", или "-1", или "-1.1").',
+	digits:'В этом поле Вы можете использовать только цифры и знаки пунктуации (например, телефонный номер со знаками дефиса или с точками).',
+	alpha:'В этом поле можно использовать только латинские буквы (a-z). Пробелы и другие символы запрещены.',
+	alphanum:'В этом поле можно использовать только латинские буквы (a-z) и цифры (0-9). Пробелы и другие символы запрещены.',
+	dateSuchAs:'Пожалуйста, введите корректную дату {date}',
+	dateInFormatMDY:'Пожалуйста, введите дату в формате ММ/ДД/ГГГГ (например "12/31/1999")',
+	email:'Пожалуйста, введите корректный емейл-адрес. Для примера "fred at domain.com".',
+	url:'Пожалуйста, введите правильную ссылку вида http://www.google.com.',
+	currencyDollar:'Пожалуйста, введите сумму в долларах. Например: $100.00 .',
+	oneRequired:'Пожалуйста, выберите хоть что-нибудь в одном из этих полей.',
 	errorPrefix: 'Ошибка: ',
 	warningPrefix: 'Внимание: '
 });
 
 //translation in windows-1251 codepage
 MooTools.lang.set('ru-RU', 'Form.Validator', {
-	required:'�òî ïîëå îáÿçàòåëüíî ê çàïîëíåíèþ.',
-	minLength:'�îæàëóéñòà, ââåäèòå õîòÿ áû {minLength} ñèìâîëîâ (Âû ââåëè {length}).',
-	maxLength:'�îæàëóéñòà, ââåäèòå íå áîëüøå {maxLength} ñèìâîëîâ (Âû ââåëè {length}).',
-	integer:'�îæàëóéñòà, ââåäèòå â ýòî ïîëå ÷èñëî. Äðîáíûå ÷èñëà (íàïðèìåð 1.25) òóò íå ðàçðåøåíû.',
-	numeric:'�îæàëóéñòà, ââåäèòå â ýòî ïîëå ÷èñëî (íàïðèìåð "1" èëè "1.1", èëè "-1", èëè "-1.1").',
+	required:'Ýòî ïîëå îáÿçàòåëüíî ê çàïîëíåíèþ.',
+	minLength:'Ïîæàëóéñòà, ââåäèòå õîòÿ áû {minLength} ñèìâîëîâ (Âû ââåëè {length}).',
+	maxLength:'Ïîæàëóéñòà, ââåäèòå íå áîëüøå {maxLength} ñèìâîëîâ (Âû ââåëè {length}).',
+	integer:'Ïîæàëóéñòà, ââåäèòå â ýòî ïîëå ÷èñëî. Äðîáíûå ÷èñëà (íàïðèìåð 1.25) òóò íå ðàçðåøåíû.',
+	numeric:'Ïîæàëóéñòà, ââåäèòå â ýòî ïîëå ÷èñëî (íàïðèìåð "1" èëè "1.1", èëè "-1", èëè "-1.1").',
 	digits:' ýòîì ïîëå Âû ìîæåòå èñïîëüçîâàòü òîëüêî öèôðû è çíàêè ïóíêòóàöèè (íàïðèìåð, òåëåôîííûé íîìåð ñî çíàêàìè äåôèñà èëè ñ òî÷êàìè).',
-	alpha:' ýòîì ïîëå ìîæíî èñïîëüçîâàòü òîëüêî ëàòèíñêèå áóêâû (a-z). �ðîáåëû è äðóãèå ñèìâîëû çàïðåùåíû.',
-	alphanum:' ýòîì ïîëå ìîæíî èñïîëüçîâàòü òîëüêî ëàòèíñêèå áóêâû (a-z) è öèôðû (0-9). �ðîáåëû è äðóãèå ñèìâîëû çàïðåùåíû.',
-	dateSuchAs:'�îæàëóéñòà, ââåäèòå êîððåêòíóþ äàòó {date}',
-	dateInFormatMDY:'�îæàëóéñòà, ââåäèòå äàòó â ôîðìàòå ÌÌ/ÄÄ/ÃÃÃà (íàïðèìåð "12/31/1999")',
-	email:'�îæàëóéñòà, ââåäèòå êîððåêòíûé åìåéë-àäðåñ. Äëÿ ïðèìåðà "fred at domain.com".',
-	url:'�îæàëóéñòà, ââåäèòå ïðàâèëüíóþ ññûëêó âèäà http://www.google.com.',
-	currencyDollar:'�îæàëóéñòà, ââåäèòå ñóììó â äîëëàðàõ. �àïðèìåð: $100.00 .',
-	oneRequired:'�îæàëóéñòà, âûáåðèòå õîòü ÷òî-íèáóäü â îäíîì èç ýòèõ ïîëåé.',
+	alpha:'Â ýòîì ïîëå ìîæíî èñïîëüçîâàòü òîëüêî ëàòèíñêèå áóêâû (a-z). Ïðîáåëû è äðóãèå ñèìâîëû çàïðåùåíû.',
+	alphanum:'Â ýòîì ïîëå ìîæíî èñïîëüçîâàòü òîëüêî ëàòèíñêèå áóêâû (a-z) è öèôðû (0-9). Ïðîáåëû è äðóãèå ñèìâîëû çàïðåùåíû.',
+	dateSuchAs:'Ïîæàëóéñòà, ââåäèòå êîððåêòíóþ äàòó {date}',
+	dateInFormatMDY:'Ïîæàëóéñòà, ââåäèòå äàòó â ôîðìàòå ÌÌ/ÄÄ/ÃÃÃÃ (íàïðèìåð "12/31/1999")',
+	email:'Ïîæàëóéñòà, ââåäèòå êîððåêòíûé åìåéë-àäðåñ. Äëÿ ïðèìåðà "fred at domain.com".',
+	url:'Ïîæàëóéñòà, ââåäèòå ïðàâèëüíóþ ññûëêó âèäà http://www.google.com.',
+	currencyDollar:'Ïîæàëóéñòà, ââåäèòå ñóììó â äîëëàðàõ. Íàïðèìåð: $100.00 .',
+	oneRequired:'Ïîæàëóéñòà, âûáåðèòå õîòü ÷òî-íèáóäü â îäíîì èç ýòèõ ïîëåé.',
 	errorPrefix: 'Îøèáêà: ',
 	warningPrefix: 'Âíèìàíèå: '
 });/*
@@ -14563,18 +14563,18 @@
 
 MooTools.lang.set('uk-UA', 'Form.Validator', {
 	required:'Це поле повинне бути заповненим.',
-	minLength:'Введіть хоча б {minLength} Ñ?имволів (Ви ввели {length}).',
-	maxLength:'КількіÑ?Ñ‚ÑŒ Ñ?имволів не може бути більше {maxLength} (Ви ввели {length}).',
-	integer:'Введіть в це поле чиÑ?ло. Дробові чиÑ?ла (наприклад 1.25) не дозволені.',
-	numeric:'Введіть в це поле чиÑ?ло (наприклад "1" або "1.1", або "-1", або "-1.1").',
-	digits:'Ð’ цьому полі ви можете викориÑ?товувати лише цифри Ñ– знаки пунктіації (наприклад, телефонний номер з знаками дефізу або з крапками).',
-	alpha:'Ð’ цьому полі можна викориÑ?товувати лише латинÑ?ькі літери (a-z). Пробіли Ñ– інші Ñ?имволи заборонені.',
-	alphanum:'Ð’ цьому полі можна викориÑ?товувати лише латинÑ?ькі літери (a-z) Ñ– цифри (0-9). Пробіли Ñ– інші Ñ?имволи заборонені.',
+	minLength:'Введіть хоча б {minLength} символів (Ви ввели {length}).',
+	maxLength:'Кількість символів не може бути більше {maxLength} (Ви ввели {length}).',
+	integer:'Введіть в це поле число. Дробові числа (наприклад 1.25) не дозволені.',
+	numeric:'Введіть в це поле число (наприклад "1" або "1.1", або "-1", або "-1.1").',
+	digits:'В цьому полі ви можете використовувати лише цифри і знаки пунктіації (наприклад, телефонний номер з знаками дефізу або з крапками).',
+	alpha:'В цьому полі можна використовувати лише латинські літери (a-z). Пробіли і інші символи заборонені.',
+	alphanum:'В цьому полі можна використовувати лише латинські літери (a-z) і цифри (0-9). Пробіли і інші символи заборонені.',
 	dateSuchAs:'Введіть коректну дату {date}.',
 	dateInFormatMDY:'Введіть дату в форматі ММ/ДД/РРРР (наприклад "12/31/2009").',
-	email:'Введіть коректну адреÑ?у електронної пошти (наприклад "name at domain.com").',
-	url:'Введіть коректне інтернет-поÑ?иланнÑ? (наприклад http://www.google.com).',
-	currencyDollar:'Введіть Ñ?уму в доларах (наприклад "$100.00").',
+	email:'Введіть коректну адресу електронної пошти (наприклад "name at domain.com").',
+	url:'Введіть коректне інтернет-посилання (наприклад http://www.google.com).',
+	currencyDollar:'Введіть суму в доларах (наприклад "$100.00").',
 	oneRequired:'Заповніть одне з полів.',
 	errorPrefix: 'Помилка: ',
 	warningPrefix: 'Увага: '
@@ -17935,7 +17935,7 @@
 		alphaLabel: 'alpha (%)'
 	},
 	notice: {
-		closeTip: 'закрыть Ñ?то Ñ?ообщение'
+		closeTip: 'закрыть это сообщение'
 	},
 	progressbar: {
 		messageText: 'Загрузка...',
@@ -17949,7 +17949,7 @@
 	},
 	'formatter.boolean': {
 		'true': 'Да',
-		'false': 'Ð?ет'
+		'false': 'Нет'
 	},
 	'formatter.currency': {
 		sign: 'Ñ€.'
@@ -17959,10 +17959,10 @@
     thousandsSeparator: ' '
 	},
 	splitter: {
-		barToolTip: 'потÑ?ни, чтобы изменить размер'
+		barToolTip: 'потяни, чтобы изменить размер'
 	},
 	panelset: {
-		barToolTip: 'потÑ?ни, чтобы изменить размер'
+		barToolTip: 'потяни, чтобы изменить размер'
 	},
 	panel: {
 		collapseTooltip: 'Свернуть/Развернуть Панель',
@@ -17970,14 +17970,14 @@
     expandLabel: 'Развернуть',
     maximizeTooltip: 'Увеличить Панель',
     maximizeLabel: 'Увеличить',
-    restoreTooltip: 'ВоÑ?Ñ?тановить Панель',
-    restoreLabel: 'ВоÑ?Ñ?тановить',
+    restoreTooltip: 'Восстановить Панель',
+    restoreLabel: 'Восстановить',
     closeTooltip: 'Закрыть Панель',
     closeLabel: 'Закрыть'
 	},
 	confirm: {
 		affirmativeLabel: 'Да',
-    negativeLabel: 'Ð?ет'
+    negativeLabel: 'Нет'
 	},
 	dialog: {
 		resizeToolTip: 'Изменить размер'
@@ -17993,7 +17993,7 @@
 		buttonText: 'Загрузка файла'
 	},
 	'plugin.resize': {
-	  tooltip: 'ПотÑ?ни, чтобы изменить, двойной щелчок длÑ? авто размера.'
+	  tooltip: 'Потяни, чтобы изменить, двойной щелчок для авто размера.'
 	},
   'plugin.editor': {
     submitButton: 'Сохранить',
@@ -18242,7 +18242,7 @@
 
 ...
  */
-// $Id: store.js 992 2010-10-07 19:28:37Z pagameba $
+// $Id: store.js 995 2010-10-25 14:47:15Z pagameba $
 /**
  * Class: Jx.Store
  *
@@ -18345,6 +18345,12 @@
      * Used to determine if the store is completely initialized.
      */
     ready: false,
+    
+    /**
+     * Property: deleted
+     * track deleted records before they are purged
+     */
+    deleted: null,
 
     /**
      * Method: init
@@ -18353,6 +18359,8 @@
     init: function () {
         this.parent();
 
+        this.deleted = [];
+        
         if ($defined(this.options.id)) {
             this.id = this.options.id;
         }
@@ -18813,9 +18821,11 @@
         // Set to Null or slice it out and compact the array???
         //this.data[index] = null;
         this.data.splice(index,1);
-        if (!$defined(this.deleted)) {
-            this.deleted = [];
-        }
+        // TODO: I moved this to a property that is always an array so I don't
+        // get an error in the save strategy.
+        // if (!$defined(this.deleted)) {
+        //     this.deleted = [];
+        // }
         this.deleted.push(record);
         this.fireEvent('storeRecordDeleted', [this, record]);
     },
@@ -19832,7 +19842,7 @@
 
 ...
  */
-// $Id: protocol.js 977 2010-09-02 18:57:42Z pagameba $
+// $Id: protocol.js 995 2010-10-25 14:47:15Z pagameba $
 /**
  * Class: Jx.Store.Protocol
  *
@@ -19854,7 +19864,13 @@
 
     parser: null,
 
-    options: {},
+    options: {
+      combine: {
+        insert: false,
+        update: false,
+        'delete': false
+      }
+    },
 
     init: function () {
         this.parent();
@@ -19914,7 +19930,19 @@
      * used to abort any of the above methods (where practical). Abstract method
      * that subclasses should implement.
      */
-    abort: $empty
+    abort: $empty,
+    /**
+     * APIMethod: combineRequests
+     * tests whether the protocol supports combining multiple records for a given operation
+     * 
+     * Parameter:
+     * operation - {String} the operation to test for multiple record support
+     * 
+     * Returns {Boolean} true if the operation supports it, false otherwise
+     */
+    combineRequests: function(op) {
+      return $defined(this.options.combine[op]) ? this.options.combine[op] : false;
+    }
 });/*
 ---
 
@@ -20037,7 +20065,7 @@
 
 ...
  */
-// $Id: protocol.ajax.js 977 2010-09-02 18:57:42Z pagameba $
+// $Id: protocol.ajax.js 995 2010-10-25 14:47:15Z pagameba $
 /**
  * Class: Jx.Store.Protocol.Ajax
  *
@@ -20082,10 +20110,29 @@
             read: null,
             update: null,
             'delete': null
+        },
+        /**
+         * Option: queue
+         * an object containing options suitable for <Request.Queue>.
+         * By default, autoAdvance is set to true and concurrent is set to 1.
+         */
+        queue: {
+          autoAdvance: true,
+          concurrent: 1
         }
     },
+    
+    queue: null,
 
     init: function() {
+        if (!$defined(Jx.Store.Protocol.Ajax.UniqueId)) {
+          Jx.Store.Protocol.Ajax.UniqueId = 1;
+        }
+      
+        this.queue = new Request.Queue({
+          autoAdvance: this.options.queue.autoAdvance,
+          concurrent: this.options.queue.concurrent
+        });
         this.parent();
     },
     /**
@@ -20099,7 +20146,8 @@
         var resp = new Jx.Store.Response(),
             temp = {},
             opts,
-            req;
+            req,
+            uniqueId = Jx.Store.Protocol.Ajax.UniqueId();
         resp.requestType = 'read';
         resp.requestParams = arguments;
 
@@ -20116,6 +20164,8 @@
 
         req = new Request(opts);
         resp.request = req;
+        
+        this.queue.addRequest(uniqueId, req);
         req.send();
 
         resp.code = Jx.Store.Response.WAITING;
@@ -20230,10 +20280,27 @@
     run: function (record, options, method) {
         var resp = new Jx.Store.Response(),
             opts,
-            req;
+            req,
+            data,
+            uniqueId = Jx.Store.Protocol.Ajax.UniqueId();
         
+        if (Jx.type(record) == 'array') {
+          if (!this.combineRequests(method)) {
+            record.each(function(r) {
+              this.run(r, options, method);
+            }, this);
+          } else {
+            data = [];
+            record.each(function(r) {
+              data.push(this.parser.encode(r));
+            }, this);
+          }
+        } else {
+          data = this.parser.encode(record);
+        }
+
         this.options.requestOptions.data = $merge(this.options.requestOptions.data, {
-          data: this.parser.encode(record)
+          data: data
         });
 
         resp.requestType = method;
@@ -20242,17 +20309,28 @@
         //set up options
         opts = $merge(this.options.requestOptions, options);
         opts.onSuccess = this.handleResponse.bind(this,resp);
-
         req = new Request(opts);
         resp.request = req;
+        this.queue.addRequest(uniqueId, req);
         req.send();
 
         resp.code = Jx.Store.Response.WAITING;
 
         return resp;
-    }
-
-});/*
+    },
+    
+});
+/**
+ * Method: uniqueId
+ * returns a unique identifier to be used with queued requests
+ */
+Jx.Store.Protocol.Ajax.UniqueId = (function() {
+  var uniqueId = 1;
+  return function() {
+    return 'req-'+(uniqueId++);
+  };
+})();
+/*
 ---
 
 name: Jx.Store.Strategy
@@ -20957,7 +21035,7 @@
 
 ...
  */
-// $Id: strategy.save.js 977 2010-09-02 18:57:42Z pagameba $
+// $Id: strategy.save.js 995 2010-10-25 14:47:15Z pagameba $
 /**
  * Class: Jx.Store.Strategy.Save 
  * 
@@ -21075,20 +21153,22 @@
         //determine the status and route based on that
         if (!this.updating && $defined(record.state)) {
             if (this.totalChanges === 0) {
-                this.store.protocol.addEvent('dataLoaded', this.bound.completed);
+                store.protocol.addEvent('dataLoaded', this.bound.completed);
             }
             this.totalChanges++;
             var ret;
             switch (record.state) {
                 case Jx.Record.UPDATE:
-                    ret = this.store.protocol.update(record);
+                    ret = store.protocol.update(record);
                     break;
                 case Jx.Record.DELETE:
-                    ret = this.store.protocol['delete'](record);
+                    ret = store.protocol['delete'](record);
                     break;
                 case Jx.Record.INSERT:
-                    ret = this.store.protocol.insert(record);
+                    ret = store.protocol.insert(record);
                     break;
+                default:
+                  break;
             }
             return ret;
         }
@@ -21113,9 +21193,27 @@
             }, this);
             records[Jx.Record.DELETE] = this.store.deleted;
             
-            records.flatten().each(function (record) {
-                this.saveRecord(null, record);
-            }, this);
+            if (!this.updating) {
+              if (this.totalChanges === 0) {
+                  store.protocol.addEvent('dataLoaded', this.bound.completed);
+              }
+              this.totalChanges += records[Jx.Record.UPDATE].length + 
+                                   records[Jx.Record.INSERT].length +
+                                   records[Jx.Record.DELETE].length;
+              if (records[Jx.Record.UPDATE].length) {
+                this.store.protocol.update(records[Jx.Record.UPDATE]);
+              }
+              if (records[Jx.Record.INSERT].length) {
+                this.store.protocol.insert(records[Jx.Record.INSERT]);
+              }
+              if (records[Jx.Record.DELETE].length) {
+                this.store.protocol['delete'](records[Jx.Record.DELETE]);
+              }
+            }
+            
+            // records.flatten().each(function (record) {
+            //     this.saveRecord(this.store, record);
+            // }, this);
         }
         
     },
@@ -21140,28 +21238,31 @@
             this.failedChanges.push(response);
         } else {
             //process the response
-            var record = response.requestParams[0];
-            if (response.requestType === 'delete') {
-                this.store.deleted.erase(record);
-            } else { 
-                if (response.requestType === 'insert' || response.requestType == 'update') {
-                    if ($defined(response.data)) {
-                        this.updating = true;
-                        $H(response.data).each(function (val, key) {
-                            var d = record.set(key, val);
-                            if (d[1] != val && $defined(response.index)) {
-                              d.unshift(response.index);
-                              record.store.fireEvent('storeColumnChanged', d);
-                            }
-                        });
-                        this.updating = false;
-                    }
-                }
-                record.state = null;
-            } 
-            this.successfulChanges.push(response);
+            var records = [response.requestParams[0]].flatten(),
+                responseData = $defined(response.data) ? [response.data].flatten() : null;
+            records.each(function(record, index) {
+              if (response.requestType === 'delete') {
+                  this.store.deleted.erase(record);
+              } else { 
+                  if (response.requestType === 'insert' || response.requestType == 'update') {
+                      if (responseData && $defined(responseData[index])) {
+                          this.updating = true;
+                          $H(responseData[index]).each(function (val, key) {
+                              var d = record.set(key, val);
+                              if (d[1] != val) {
+                                d.unshift(index);
+                                record.store.fireEvent('storeColumnChanged', d);
+                              }
+                          });
+                          this.updating = false;
+                      }
+                  }
+                  record.state = null;
+              } 
+              this.totalChanges--;
+          }, this);
+          this.successfulChanges.push(response);
         }
-        this.totalChanges--;
         if (this.totalChanges === 0) {
             this.store.protocol.removeEvent('dataLoaded', this.bound.completed);
             this.store.fireEvent('storeChangesCompleted', {
@@ -32353,7 +32454,7 @@
 
 ...
  */
-// $Id: grid.js 992 2010-10-07 19:28:37Z pagameba $
+// $Id: grid.js 995 2010-10-25 14:47:15Z pagameba $
 /**
  * Class: Jx.Grid
  *
@@ -32403,7 +32504,7 @@
 Jx.Grid = new Class({
   Family : 'Jx.Grid',
   Extends: Jx.Widget,
-  Binds: ['storeLoaded', 'clickColumnHeader', 'moveColumnHeader', 'clickRowHeader', 'moveRowHeader', 'clickCell', 'dblclickCell', 'moveCell', 'leaveGrid', 'resize', 'drawStore', 'scroll', 'addRow', 'removeRow', 'removeRows', 'updateRow'],
+  Binds: ['storeLoaded', 'clickColumnHeader', 'moveColumnHeader', 'clickRowHeader', 'moveRowHeader', 'clickCell', 'dblclickCell', 'moveCell', 'leaveGrid', 'resize', 'drawStore', 'scroll', 'addRow', 'removeRow', 'removeRows', 'updateRow', 'storeChangesCompleted'],
 
   /**
    * Property: pluginNamespace
@@ -32550,7 +32651,8 @@
       'storeRecordAdded': this.addRow,
       'storeColumnChanged': this.updateRow,
       'storeRecordRemoved': this.removeRow,
-      'storeMultipleRecordsRemoved': this.removeRows
+      'storeMultipleRecordsRemoved': this.removeRows,
+      'storeChangesCompleted': this.storeChangesCompleted
     };
     
     
@@ -32767,6 +32869,14 @@
     this.redraw();
   },
   
+  /**
+   */
+  storeChangesCompleted: function(results) {
+    if (results && results.successful) {
+      
+    }
+  },
+  
   redraw: function() {
     var store = this.store,
         template = '',
@@ -33581,7 +33691,7 @@
 
 ...
  */
-// $Id: grid.selector.js 994 2010-10-07 20:07:31Z pagameba $
+// $Id: grid.selector.js 995 2010-10-25 14:47:15Z pagameba $
 /**
  * Class: Jx.Plugin.Grid.Selector
  *
@@ -33771,6 +33881,7 @@
           tr = document.id((index >= 0 && index < r.length) ? r[index] : null);
       
       if (tr) {
+        tr.store('jxRowData', {row: index});
         if (state) {
           tr.addClass('jxGridRowSelected');
         } else {
@@ -33807,10 +33918,11 @@
                 this.checkColumn.destroy();
                 this.checkColumn = null;
             }
-        }
-        if (options.useCheckColumn) {
-            if (options.checkAsHeader) {
-                grid.row.options.headerColumn = this.oldHeaderColumn;
+            if (options.useCheckColumn) {
+                grid.removeEvent('gridDrawRow', this.updateCheckColumn);
+                if (options.checkAsHeader) {
+                    grid.row.options.headerColumn = this.oldHeaderColumn;
+                }
             }
         }
         this.grid = null;



More information about the fusion-commits mailing list