diff --git a/gulliver/js/ext/locale/ext-lang-af.js b/gulliver/js/ext/locale/ext-lang-af.js
new file mode 100644
index 000000000..f4abac34c
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-af.js
@@ -0,0 +1,185 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Afrikaans Translations
+ * by Thys Meintjes (20 July 2007)
+ */
+
+/* Ext Core translations */
+Ext.UpdateManager.defaults.indicatorText = '
Besig om te laai...
';
+
+/* Ext single string translations */
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} geselekteerde ry(e)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Maak die oortjie toe";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Die waarde in hierdie veld is foutief";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Besig om te laai...";
+}
+
+/* Javascript month and days translations */
+Date.monthNames = [
+ "Januarie",
+ "Februarie",
+ "Maart",
+ "April",
+ "Mei",
+ "Junie",
+ "Julie",
+ "Augustus",
+ "September",
+ "Oktober",
+ "November",
+ "Desember"
+];
+
+Date.dayNames = [
+ "Sondag",
+ "Maandag",
+ "Dinsdag",
+ "Woensdag",
+ "Donderdag",
+ "Vrydag",
+ "Saterdag"
+];
+
+/* Ext components translations */
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Kanselleer",
+ yes : "Ja",
+ no : "Nee"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d-m-y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Vandag",
+ minText : "Hierdie datum is vroër as die minimum datum",
+ maxText : "Hierdie dataum is later as die maximum datum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Volgende Maand (Beheer+Regs)',
+ prevText : 'Vorige Maand (Beheer+Links)',
+ monthYearText : "Kies 'n maand (Beheer+Op/Af volgende/vorige jaar)",
+ todayTip : "{0} (Spasie)",
+ format : "d-m-y",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Bladsy",
+ afterPageText : "van {0}",
+ firstText : "Eerste Bladsy",
+ prevText : "Vorige Bladsy",
+ nextText : "Volgende Bladsy",
+ lastText : "Laatste Bladsy",
+ refreshText : "Verfris",
+ displayMsg : "Wys {0} - {1} van {2}",
+ emptyMsg : 'Geen data om te wys nie'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Die minimum lengte van die veld is {0}",
+ maxLengthText : "Die maximum lengte van die veld is {0}",
+ blankText : "Die veld is verpligtend",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Die minimum waarde vir die veld is {0}",
+ maxText : "Die maximum waarde vir die veld is {0}",
+ nanText : "{0} is nie 'n geldige waarde nie"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Afgeskakel",
+ disabledDatesText : "Afgeskakel",
+ minText : "Die datum in hierdie veld moet na {0} wees",
+ maxText : "Die datum in hierdie veld moet voor {0} wees",
+ invalidText : "{0} is nie 'n geldige datum nie - datumformaat is {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Besig om te laai...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : "Hierdie veld moet 'n e-pos adres wees met die formaat 'gebruiker@domein.za'",
+ urlText : "Hierdie veld moet 'n URL wees me die formaat 'http:/'+'/www.domein.za'",
+ alphaText : 'Die veld mag alleenlik letters en _ bevat',
+ alphanumText : 'Die veld mag alleenlik letters, syfers en _ bevat'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sorteer Oplopend",
+ sortDescText : "Sorteer Aflopend",
+ lockText : "Vries Kolom",
+ unlockText : "Ontvries Kolom",
+ columnsText : "Kolomme"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Naam",
+ valueText : "Waarde",
+ dateFormat : "Y-m-j"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Trek om grootte aan te pas.",
+ collapsibleSplitTip : "Trek om grootte aan te pas. Dubbel-klik om weg te steek."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-am.js b/gulliver/js/ext/locale/ext-lang-am.js
new file mode 100644
index 000000000..195d8278a
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-am.js
@@ -0,0 +1,359 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * List compiled by Tewodros Wondimu on the extjs.com forums Oct 18, 2010.
+ *
+ * Amharic Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'እያስገባ ነዉ...
';
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} ምርጥ ረድፍ {1}";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "እያስገባ ነዉ...";
+}
+
+Date.shortMonthNames = [
+ "መስከ",
+ "ጥቅም",
+ "ህዳር",
+ "ታህሳ",
+ "ጥር",
+ "የካቲ",
+ "መጋቢ",
+ "ሚያዚ",
+ "ግንቦ",
+ "ሰኔ",
+ "ሐምሌ",
+ "ነሃሴ",
+ "ጷግሜ"
+];
+
+
+Date.monthNames = [
+ "መስከረም",
+ "ጥቅምት",
+ "ህዳር",
+ "ታህሳስ",
+ "ጥር",
+ "የካቲት",
+ "መጋቢት",
+ "ሚያዚያ",
+ "ግንቦት",
+ "ሰኔ",
+ "ሐምሌ",
+ "ነሃሴ",
+ "ጷግሜ"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ "መስከረም" : 0,
+ "ጥቅምት" : 1,
+ "ህዳር" : 2,
+ "ታህሳስ" : 3,
+ "ጥር" : 4,
+ "የካቲት" : 5,
+ "መጋቢት" : 6,
+ "ሚያዚያ" : 7,
+ "ግንቦት" : 8,
+ "ሰኔ" : 9,
+ "ሐምሌ" : 10,
+ "ነሃሴ" : 11,
+ "ጷግሜ" : 12
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "እሁድ",
+ "ሰኞ",
+ "ማክሰኞ",
+ "ዓሮብ",
+ "ሐሙስ",
+ "አርብ",
+ "ቅዳሜ"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+Date.parseCodes.S.s = "(?:st|nd|rd|th)";
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "ይሁን",
+ cancel : "ሰርዝ",
+ yes : "አዎ",
+ no : "የለም / አይ"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "ወ/ቀ/አ");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "ዛሬ",
+ minText : "ይሄ ቀን ከመጨረሻ ትንሹ ቀን በፊት ነዉ",
+ maxText : "ይሄ ቀን ከመጨረሻ ትልቁ ቀን በፊት ነዉ",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'የሚቀጥለዉ ወር(መቆጣጣሪያ ቁምፍ+ቀኝ)',
+ prevText : 'ያለፈዉ ወር(መቆጣጣሪያ ቁምፍ+ግራ)',
+ monthYearText : 'ወር ምረጥ (አመት ለመለወጥ መቆጣጣሪያ ቁምፍ+ወደላይ/ወደታች)',
+ todayTip : "{0} (የቦታ ቁልፍ)",
+ format : "d/m/Y",
+ okText : "ይሁን",
+ cancelText : "ሰርዝ",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "ገልጽ",
+ afterPageText : "የ {0}",
+ firstText : "የመጀመሪያዉ ገልጽ",
+ prevText : "ያለፈዉ ገልጽ",
+ nextText : "የሚቀጥለዉ ገልጽ",
+ lastText : "የመጨረሻዉ ገልጽ",
+ refreshText : "ከልስ",
+ displayMsg : "{0} - {1} ሲያሳይ ከ {2}",
+ emptyMsg : 'የሚታይ ዳታ የለም'
+ });
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "እባክዎን ይጠብቁ..."
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "የዚህ መስክ እሴት የተሳሳተ ነዉ";
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "የዚህ መስክ የመጨረሻ ትንሽ ርዝመት {0} ነዉ",
+ maxLengthText : "የዚህ መስክ የመጨረሻ ትልቅ ርዝመት {0} ነዉ",
+ blankText : "ይሄ መስክ አስፈላጊ ነዉ",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ decimalSeparator : ".",
+ decimalPrecision : 2,
+ minText : "የዚህ መስክ የመጨረሻ ትንሽ እሴት {0} ነዉ",
+ maxText : "የዚህ መስክ የመጨረሻ ትልቅ እሴት {0} ነዉ",
+ nanText : "{0} የተሳሳተ ቁጥር ነዉ"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "ቦዝኗል / ስራ አቁሟል",
+ disabledDatesText : "ቦዝኗል / ስራ አቁሟል",
+ minText : "እዚ እሴት ዉስጥ ያለዉ ቀን ከ{0} በሑአላ መሆን አለበት",
+ maxText : "እዚ እሴት ዉስጥ ያለዉ ቀን ከ{0} በፊት መሆን አለበት",
+ invalidText : "{0} የተሳሳተ ቀን ነዉ - በዚህ ቅርፀት መሆን አለበት {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d/m/y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "እያስገባ ነዉ...",
+ valueNotFoundText : "አልተወሰነም"
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'ይሄ እሴት ኢሜይል መሆን አለበት - በዚህ ቅርፀት መሆን አለበት "user@example.com"',
+ urlText : 'ይሄ እሴት ዩአርኤን መሆን አለበት - በዚህ ቅርፀት መሆን አለበት "http:/'+'/www.example.com"',
+ alphaText : 'ይሄ እሴት መያዝ ያለበት ቃላትና _ ብቻ ነዉ',
+ alphanumText : 'ይሄ እሴት መያዝ ያለበት ቃላት፤ ቁጥርና _ ብቻ ነዉ'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'እባኮትን ለዚ ዩአርኤን አገናኝ አስገባ:',
+ buttonTips : {
+ bold : {
+ title: 'ደማቅ (መቆጣጣሪያ ቁምፍ+B)',
+ text: 'የተመረጠዉን ጽሁፍ አድምቅ::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ italic : {
+ title: 'ሰያፍ (መቆጣጣሪያ ቁምፍ+I)',
+ text: 'የተመረጠዉን ጽሁፍ ሰያፍ አድርግ::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ underline : {
+ title: 'መስመረግርጌ (መቆጣጣሪያ ቁምፍ+U)',
+ text: 'የተመረጠዉን ጽሁፍ ከግርጌ አስምር::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ increasefontsize : {
+ title: 'ጽሁፉን አሳድግ',
+ text: 'ቅርጸ ቁምፊ አሳድገግ::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ decreasefontsize : {
+ title: 'ጽሁፉን አሳንስ',
+ text: 'ቅርጸ ቁምፊ አሳንስ::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ backcolor : {
+ title: 'ጽሁፍ ምረጥ ቀለም',
+ text: 'የተመረጠዉን ጽሁፍ ዳራ ቀለም ለዉጥ::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ forecolor : {
+ title: 'ቅርጸ ቁምፊ ቀለም',
+ text: 'የተመረጠዉን ጽሁፍ ቀለም ለዉጥ::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ justifyleft : {
+ title: 'ጽሁፍ ግራ አሰልፍ',
+ text: 'ጽሁፉን ወደግራ አሰልፍ::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ justifycenter : {
+ title: 'ጽሁፍ አማክል',
+ text: 'አርታኢዉ ላይ ጽሁፉን አማክል::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ justifyright : {
+ title: 'ጽሁፍ ቀኝ አሰልፍ',
+ text: 'ጽሁፉን ወደቀኝ አሰልፍ::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ insertunorderedlist : {
+ title: 'ነጥበ ምልክት ዝርዝር',
+ text: 'ነጥበ ምልክት ዝርዝር ጀምር::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ insertorderedlist : {
+ title: 'ቁጥራዊ ዝርዝር',
+ text: 'ቁጥራዊ ዝርዝር ጀምር::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ createlink : {
+ title: 'ገፅ አገናኝ',
+ text: 'የተመረጠዉን ጽሁፍ ገፅ አገናኝ አድርግ::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ },
+ sourceedit : {
+ title: 'ምንጭ አርትእ',
+ text: 'ወደ ምንጭ አርትእ ሁነታ ቀይር::',
+ cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "ሽቅብ ደርድር",
+ sortDescText : "ቁልቁል ደርድር",
+ columnsText : "አምዶች"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(ማንም)',
+ groupByText : 'በዚ መስክ ቦድን',
+ showGroupsText : 'በቡድን አሳይ'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "ስም",
+ valueText : "እሴት ",
+ dateFormat : "m/j/Y",
+ trueText: "እሙን",
+ falseText: "ሐሰት"
+ });
+}
+
+if(Ext.grid.BooleanColumn){
+ Ext.apply(Ext.grid.BooleanColumn.prototype, {
+ trueText : "እሙን",
+ falseText : "ሐሰት",
+ undefinedText: ' '
+ });
+}
+
+if(Ext.grid.NumberColumn){
+ Ext.apply(Ext.grid.NumberColumn.prototype, {
+ format : '0,000.00'
+ });
+}
+
+if(Ext.grid.DateColumn){
+ Ext.apply(Ext.grid.DateColumn.prototype, {
+ format : 'm/d/Y'
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "መጠን ለመቀይር ጎትት::",
+ collapsibleSplitTip : "መጠን ለመቀይር ጎትት:: ለመደበቅ ሁለቴ ጠቅ አድርግ::"
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "እዚህ መስክ ዉስጥ ያለዉ ሰዓት ከ{0} እኩል ወይም በኁላ መሆን አለበት",
+ maxText : "እዚህ መስክ ዉስጥ ያለዉ ሰዓት ከ{0} እኩል ወይም በፊት መሆን አለበት",
+ invalidText : "{0} የተሳሳተ ሰዓት ነዉ",
+ format : "g:i A",
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : "እዚህ ቡድን ዉስጥ ቢያንስ አንድ ዓይነት መምረጥ አለብህ"
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : "እዚህ ቡድን ዉስጥ ቢያንስ አንድ ዓይነት መምረጥ አለብህ"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-bg.js b/gulliver/js/ext/locale/ext-lang-bg.js
new file mode 100644
index 000000000..521eb05c0
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-bg.js
@@ -0,0 +1,279 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Bulgarian Translation
+ *
+ * By Георги Костадинов, Калгари, Канада
+ * 10 October 2007
+ * By Nedko Penev
+ * 26 October 2007
+ *
+ * (utf-8 encoding)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Зареждане...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} избрани колони";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Затвори таб";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Невалидна стойност на полето";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Зареждане...";
+}
+
+Date.monthNames = [
+ "Януари",
+ "Февруари",
+ "Март",
+ "Април",
+ "Май",
+ "Юни",
+ "Юли",
+ "Август",
+ "Септември",
+ "Октомври",
+ "Ноември",
+ "Декември"
+];
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.dayNames = [
+ "Неделя",
+ "Понеделник",
+ "Вторник",
+ "Сряда",
+ "Четвъртък",
+ "Петък",
+ "Събота"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Отмени",
+ yes : "Да",
+ no : "Не"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Днес",
+ minText : "Тази дата е преди минималната",
+ maxText : "Тази дата е след максималната",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Следващ месец (Control+Right)',
+ prevText : 'Предишен месец (Control+Left)',
+ monthYearText : 'Избери месец (Control+Up/Down за преместване по години)',
+ todayTip : "{0} (Spacebar)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Отмени",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Страница",
+ afterPageText : "от {0}",
+ firstText : "Първа страница",
+ prevText : "Предишна страница",
+ nextText : "Следваща страница",
+ lastText : "Последна страница",
+ refreshText : "Презареди",
+ displayMsg : "Показвайки {0} - {1} от {2}",
+ emptyMsg : 'Няма данни за показване'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Минималната дължина на това поле е {0}",
+ maxLengthText : "Максималната дължина на това поле е {0}",
+ blankText : "Това поле е задължително",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Минималната стойност за това поле е {0}",
+ maxText : "Максималната стойност за това поле е {0}",
+ nanText : "{0} не е валидно число"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Недостъпен",
+ disabledDatesText : "Недостъпен",
+ minText : "Датата в това поле трябва да е след {0}",
+ maxText : "Датата в това поле трябва да е преди {0}",
+ invalidText : "{0} не е валидна дата - трябва да бъде във формат {1}",
+ format : "d.m.y",
+ altFormats : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Зареждане...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Това поле трябва да бъде емейл във формат "user@example.com"',
+ urlText : 'Това поле трябва да бъде URL във формат "http:/'+'/www.example.com"',
+ alphaText : 'Това поле трябва да съдържа само букви и _',
+ alphanumText : 'Това поле трябва да съдържа само букви, цифри и _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Моля, въведете URL за връзката:',
+ buttonTips : {
+ bold : {
+ title: 'Bold (Ctrl+B)',
+ text: 'Удебелява избрания текст.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italic (Ctrl+I)',
+ text: 'Прави избрания текст курсив.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Underline (Ctrl+U)',
+ text: 'Подчертава избрания текст.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Уголеми текста',
+ text: 'Уголемява размера на шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Намали текста',
+ text: 'Намалява размера на шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Цвят на маркирания текст',
+ text: 'Променя фоновия цвят на избрания текст.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Цвят на шрифта',
+ text: 'Променя цвета на избрания текст.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Ляво подравняване',
+ text: 'Подравнява текста на ляво.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Центриране',
+ text: 'Центрира текста.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Дясно подравняване',
+ text: 'Подравнява текста на дясно.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Неномериран списък',
+ text: 'Започва неномериран списък.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Номериран списък',
+ text: 'Започва номериран списък.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Хипервръзка',
+ text: 'Превръща избрания текст в хипервръзка.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Редактиране на кода',
+ text: 'Преминаване в режим на редактиране на кода.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Подреди в нарастващ ред",
+ sortDescText : "Подреди в намаляващ ред",
+ lockText : "Заключи колона",
+ unlockText : "Отключи колона",
+ columnsText : "Колони"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Име",
+ valueText : "Стойност",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Влачете с мишката за да промените размера.",
+ collapsibleSplitTip : "Влачете с мишката за да промените размера. Чукнете два пъти за да скриете."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-ca.js b/gulliver/js/ext/locale/ext-lang-ca.js
new file mode 100644
index 000000000..27a4babe8
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-ca.js
@@ -0,0 +1,316 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Catalonian Translation by halkon_polako 6-12-2007
+ * December correction halkon_polako 11-12-2007
+ *
+ * Synchronized with 2.2 version of ext-lang-en.js (provided by Condor 8 aug 2008)
+ * by halkon_polako 14-aug-2008
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Carregant...
';
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} fila(es) seleccionada(es)";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Carregant...";
+}
+
+Date.monthNames = [
+ "Gener",
+ "Febrer",
+ "Març",
+ "Abril",
+ "Maig",
+ "Juny",
+ "Juliol",
+ "Agost",
+ "Setembre",
+ "Octubre",
+ "Novembre",
+ "Desembre"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Gen : 0,
+ Feb : 1,
+ Mar : 2,
+ Abr : 3,
+ Mai : 4,
+ Jun : 5,
+ Jul : 6,
+ Ago : 7,
+ Set : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Diumenge",
+ "Dilluns",
+ "Dimarts",
+ "Dimecres",
+ "Dijous",
+ "Divendres",
+ "Dissabte"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+Date.parseCodes.S.s = "(?:st|nd|rd|th)";
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Acceptar",
+ cancel : "Cancel·lar",
+ yes : "Sí",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Avui",
+ minText : "Aquesta data és anterior a la data mínima",
+ maxText : "Aquesta data és posterior a la data màxima",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Mes Següent (Control+Fletxa Dreta)',
+ prevText : 'Mes Anterior (Control+Fletxa Esquerra)',
+ monthYearText : 'Seleccioni un mes (Control+Fletxa a Dalt o Abaix per canviar els anys)',
+ todayTip : "{0} (Barra d'espai)",
+ format : "d/m/Y",
+ okText : " Acceptar ",
+ cancelText : "Cancel·lar",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Pàgina",
+ afterPageText : "de {0}",
+ firstText : "Primera Pàgina",
+ prevText : "Pàgina Anterior",
+ nextText : "Pàgina Següent",
+ lastText : "Darrera Pàgina",
+ refreshText : "Refrescar",
+ displayMsg : "Mostrant {0} - {1} de {2}",
+ emptyMsg : 'Sense dades per mostrar'
+ });
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "El valor d'aquest camp és invàlid";
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "El tamany mínim per aquest camp és {0}",
+ maxLengthText : "El tamany màxim per aquest camp és {0}",
+ blankText : "Aquest camp és obligatori",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ decimalSeparator : ",",
+ decimalPrecision : 2,
+ minText : "El valor mínim per aquest camp és {0}",
+ maxText : "El valor màxim per aquest camp és {0}",
+ nanText : "{0} no és un nombre vàlid"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Deshabilitat",
+ disabledDatesText : "Deshabilitat",
+ minText : "La data en aquest camp ha de ser posterior a {0}",
+ maxText : "La data en aquest camp ha de ser inferior a {0}",
+ invalidText : "{0} no és una data vàlida - ha de tenir el format {1}",
+ format : "d/m/Y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Carregant...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Aquest camp ha de ser una adreça de e-mail amb el format "user@example.com"',
+ urlText : 'Aquest camp ha de ser una URL amb el format "http:/'+'/www.example.com"',
+ alphaText : 'Aquest camp només pot contenir lletres i _',
+ alphanumText : 'Aquest camp només por contenir lletres, nombres i _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Si us plau, tecleixi la URL per l\'enllaç:',
+ buttonTips : {
+ bold : {
+ title: 'Negreta (Ctrl+B)',
+ text: 'Posa el text seleccionat en negreta.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Itàlica (Ctrl+I)',
+ text: 'Posa el text seleccionat en itàlica.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Subratllat (Ctrl+U)',
+ text: 'Subratlla el text seleccionat.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Augmentar Text',
+ text: 'Augmenta el tamany de la font de text.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Disminuir Text',
+ text: 'Disminueix el tamany de la font de text.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Color de fons',
+ text: 'Canvia el color de fons del text seleccionat.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Color de la font de text',
+ text: 'Canvia el color del text seleccionat.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Alinear a la esquerra',
+ text: 'Alinea el text a la esquerra.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrar el text',
+ text: 'Centra el text a l\'editor',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Alinear a la dreta',
+ text: 'Alinea el text a la dreta.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Llista amb vinyetes',
+ text: 'Comença una llista amb vinyetes.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Llista numerada',
+ text: 'Comença una llista numerada.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Enllaç',
+ text: 'Transforma el text seleccionat en un enllaç.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Editar Codi',
+ text: 'Canvia al mode d\'edició de codi.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordenació Ascendent",
+ sortDescText : "Ordenació Descendent",
+ columnsText : "Columnes"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Buit)',
+ groupByText : 'Agrupar Per Aquest Camp',
+ showGroupsText : 'Mostrar en Grups'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nom",
+ valueText : "Valor",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Cliqueu i arrossegueu per canviar el tamany del panell.",
+ collapsibleSplitTip : "Cliqueu i arrossegueu per canviar el tamany del panell. Doble clic per ocultar-ho."
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "L\'hora en aquest camp ha de ser igual o posterior a {0}",
+ maxText : "L\'hora en aquest camp ha de ser igual o anterior {0}",
+ invalidText : "{0} no és un hora vàlida",
+ format : "g:i A",
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : "Ha de seleccionar almenys un étem d\'aquest group"
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : "Ha de seleccionar un étem d\'aquest grup"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-cs.js b/gulliver/js/ext/locale/ext-lang-cs.js
new file mode 100644
index 000000000..557b6b570
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-cs.js
@@ -0,0 +1,311 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Czech Translations
+ * Translated by Tomáš Korčák (72)
+ * 2008/02/08 18:02, Ext-2.0.1
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Prosím čekejte...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} vybraných řádků";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zavřít záložku";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Hodnota v tomto poli je neplatná";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Prosím čekejte...";
+}
+
+Date.monthNames = [
+ "Leden",
+ "Únor",
+ "Březen",
+ "Duben",
+ "Květen",
+ "Červen",
+ "Červenec",
+ "Srpen",
+ "Září",
+ "Říjen",
+ "Listopad",
+ "Prosinec"
+];
+
+Date.shortMonthNames = {
+ "Leden" : "Led",
+ "Únor" : "Úno",
+ "Březen" : "Bře",
+ "Duben" : "Dub",
+ "Květen" : "Kvě",
+ "Červen" : "Čer",
+ "Červenec" : "Čvc",
+ "Srpen" : "Srp",
+ "Září" : "Zář",
+ "Říjen" : "Říj",
+ "Listopad" : "Lis",
+ "Prosinec" : "Pro"
+};
+
+
+Date.getShortMonthName = function(month) {
+ return Date.shortMonthNames[Date.monthNames[month]];
+};
+
+Date.monthNumbers = {
+ "Leden" : 0,
+ "Únor" : 1,
+ "Březen" : 2,
+ "Duben" : 3,
+ "Květen" : 4,
+ "Červen" : 5,
+ "Červenec" : 6,
+ "Srpen" : 7,
+ "Září" : 8,
+ "Říjen" : 9,
+ "Listopad" : 10,
+ "Prosinec" : 11
+};
+
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Neděle",
+ "Pondělí",
+ "Úterý",
+ "Středa",
+ "Čtvrtek",
+ "Pátek",
+ "Sobota"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Storno",
+ yes : "Ano",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Dnes",
+ minText : "Datum nesmí být starší než je minimální",
+ maxText : "Datum nesmí být dřívější než je maximální",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Následující měsíc (Control+Right)',
+ prevText : 'Předcházející měsíc (Control+Left)',
+ monthYearText : 'Zvolte měsíc (ke změně let použijte Control+Up/Down)',
+ todayTip : "{0} (Spacebar)",
+ format : "d.m.Y",
+ okText : " OK ",
+ cancelText : "Storno",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Strana",
+ afterPageText : "z {0}",
+ firstText : "První strana",
+ prevText : "Přecházející strana",
+ nextText : "Následující strana",
+ lastText : "Poslední strana",
+ refreshText : "Aktualizovat",
+ displayMsg : "Zobrazeno {0} - {1} z celkových {2}",
+ emptyMsg : 'Žádné záznamy nebyly nalezeny'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Pole nesmí mít méně {0} znaků",
+ maxLengthText : "Pole nesmí být delší než {0} znaků",
+ blankText : "This field is required",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Hodnota v tomto poli nesmí být menší než {0}",
+ maxText : "Hodnota v tomto poli nesmí být větší než {0}",
+ nanText : "{0} není platné číslo"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Neaktivní",
+ disabledDatesText : "Neaktivní",
+ minText : "Datum v tomto poli nesmí být starší než {0}",
+ maxText : "Datum v tomto poli nesmí být novější než {0}",
+ invalidText : "{0} není platným datem - zkontrolujte zda-li je ve formátu {1}",
+ format : "d.m.Y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Prosím čekejte...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'V tomto poli může být vyplněna pouze emailová adresa ve formátu "uživatel@doména.cz"',
+ urlText : 'V tomto poli může být vyplněna pouze URL (adresa internetové stránky) ve formátu "http:/'+'/www.doména.cz"',
+ alphaText : 'Toto pole může obsahovat pouze písmena abecedy a znak _',
+ alphanumText : 'Toto pole může obsahovat pouze písmena abecedy, čísla a znak _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Zadejte URL adresu odkazu:',
+ buttonTips : {
+ bold : {
+ title: 'Tučné (Ctrl+B)',
+ text: 'Označí vybraný text tučně.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kurzíva (Ctrl+I)',
+ text: 'Označí vybraný text kurzívou.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Podtržení (Ctrl+U)',
+ text: 'Podtrhne vybraný text.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Zvětšit písmo',
+ text: 'Zvětší velikost písma.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Zúžit písmo',
+ text: 'Zmenší velikost písma.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Barva zvýraznění textu',
+ text: 'Označí vybraný text tak, aby vypadal jako označený zvýrazňovačem.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Barva písma',
+ text: 'Změní barvu textu.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Zarovnat text vlevo',
+ text: 'Zarovná text doleva.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Zarovnat na střed',
+ text: 'Zarovná text na střed.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Zarovnat text vpravo',
+ text: 'Zarovná text doprava.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Odrážky',
+ text: 'Začne seznam s odrážkami.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Číslování',
+ text: 'Začne číslovaný seznam.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Internetový odkaz',
+ text: 'Z vybraného textu vytvoří internetový odkaz.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Zdrojový kód',
+ text: 'Přepne do módu úpravy zdrojového kódu.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Řadit vzestupně",
+ sortDescText : "Řadit sestupně",
+ lockText : "Ukotvit sloupec",
+ unlockText : "Uvolnit sloupec",
+ columnsText : "Sloupce"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Žádná data)',
+ groupByText : 'Seskupit dle tohoto pole',
+ showGroupsText : 'Zobrazit ve skupině'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Název",
+ valueText : "Hodnota",
+ dateFormat : "j.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Tahem změnit velikost.",
+ collapsibleSplitTip : "Tahem změnit velikost. Dvojklikem skrýt."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-da.js b/gulliver/js/ext/locale/ext-lang-da.js
new file mode 100644
index 000000000..9f9df632d
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-da.js
@@ -0,0 +1,297 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Danish translation
+ * By JohnF
+ * 04-09-2007, 05:28 AM
+ *
+ * Extended and modified by Karl Krukow,
+ * December, 2007.
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Henter...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} markerede rækker";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Luk denne fane";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Værdien i dette felt er ugyldig";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Henter...";
+}
+
+Date.monthNames = [
+ "januar",
+ "februar",
+ "marts",
+ "april",
+ "maj",
+ "juni",
+ "juli",
+ "august",
+ "september",
+ "oktober",
+ "november",
+ "december"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "søndag",
+ "mandag",
+ "tirsdag",
+ "onsdag",
+ "torsdag",
+ "fredag",
+ "lørdag"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Fortryd",
+ yes : "Ja",
+ no : "Nej"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "I dag",
+ minText : "Denne dato er før den tidligst tilladte",
+ maxText : "Denne dato er senere end den senest tilladte",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Næste måned (Ctrl + højre piltast)',
+ prevText : 'Forrige måned (Ctrl + venstre piltast)',
+ monthYearText : 'Vælg en måned (Ctrl + op/ned pil for at ændre årstal)',
+ todayTip : "{0} (mellemrum)",
+ format : "d/m/y",
+ okText : " OK ",
+ cancelText : "Cancel",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Side",
+ afterPageText : "af {0}",
+ firstText : "Første side",
+ prevText : "Forrige side",
+ nextText : "Næste side",
+ lastText : "Sidste side",
+ refreshText : "Opfrisk",
+ displayMsg : "Viser {0} - {1} af {2}",
+ emptyMsg : 'Der er ingen data at vise'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimum længden for dette felt er {0}",
+ maxLengthText : "Maksimum længden for dette felt er {0}",
+ blankText : "Dette felt skal udfyldes",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Mindste-værdien for dette felt er {0}",
+ maxText : "Maksimum-værdien for dette felt er {0}",
+ nanText : "{0} er ikke et tilladt nummer"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Inaktiveret",
+ disabledDatesText : "Inaktiveret",
+ minText : "Datoen i dette felt skal være efter {0}",
+ maxText : "Datoen i dette felt skal være før {0}",
+ invalidText : "{0} er ikke en tilladt dato - datoer skal angives i formatet {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Henter...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Dette felt skal være en email adresse i formatet "xxx@yyy.zzz"',
+ urlText : 'Dette felt skal være en URL i formatet "http:/'+'/xxx.yyy"',
+ alphaText : 'Dette felt kan kun indeholde bogstaver og "_" (understregning)',
+ alphanumText : 'Dette felt kan kun indeholde bogstaver, tal og "_" (understregning)'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Indtast URL:',
+ buttonTips : {
+ bold : {
+ title: 'Fed (Ctrl+B)', //Can I change this to Ctrl+F?
+ text: 'Formater det markerede tekst med fed.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursiv (Ctrl+I)',//Ctrl+K
+ text: 'Formater det markerede tekst med kursiv.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Understreg (Ctrl+U)',
+ text: 'Understreg det markerede tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Forstør tekst',
+ text: 'Forøg fontstørrelsen.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Formindsk tekst',
+ text: 'Formindsk fontstørrelsen.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Farve for tekstfremhævelse',
+ text: 'Skift baggrundsfarve for det markerede tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Skriftfarve',
+ text: 'Skift skriftfarve for det markerede tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Juster venstre',
+ text: 'Venstrestil tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centreret',
+ text: 'Centrer tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Juster højre',
+ text: 'Højrestil tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Punktopstilling',
+ text: 'Påbegynd punktopstilling.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Nummereret opstilling',
+ text: 'Påbegynd nummereret opstilling.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Lav det markerede test til et hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Kildetekstredigering',
+ text: 'Skift til redigering af kildetekst.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortér stigende",
+ sortDescText : "Sortér faldende",
+ lockText : "Lås kolonne",
+ unlockText : "Fjern lås fra kolonne",
+ columnsText : "Kolonner"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Ingen)',
+ groupByText : 'Gruppér efter dette felt',
+ showGroupsText : 'Vis i grupper' //should this be sort in groups?
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Navn",
+ valueText : "Værdi",
+ dateFormat : "j/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Træk for at ændre størrelsen.",
+ collapsibleSplitTip : "Træk for at ændre størrelsen. Dobbelt-klik for at skjule."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-de.js b/gulliver/js/ext/locale/ext-lang-de.js
new file mode 100644
index 000000000..ceb843e52
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-de.js
@@ -0,0 +1,346 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * German translation
+ * 2007-Apr-07 update by schmidetzki and humpdi
+ * 2007-Oct-31 update by wm003
+ * 2009-Jul-10 update by Patrick Matsumura and Rupert Quaderer
+ * 2010-Mar-10 update by Volker Grabsch
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Übertrage Daten ...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} Zeile(n) ausgewählt";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Diesen Tab schließen";
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "Bitte warten...";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Der Wert des Feldes ist nicht korrekt";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Übertrage Daten...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "März",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Dezember"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ "M\u00e4r" : 2,
+ Apr : 3,
+ Mai : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Okt : 9,
+ Nov : 10,
+ Dez : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Sonntag",
+ "Montag",
+ "Dienstag",
+ "Mittwoch",
+ "Donnerstag",
+ "Freitag",
+ "Samstag"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Abbrechen",
+ yes : "Ja",
+ no : "Nein"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.__number = Ext.util.Format.number;
+ Ext.util.Format.number = function(v, format) {
+ return Ext.util.Format.__number(v, format || "0.000,00/i");
+ };
+
+ Ext.util.Format.date = function(v, format) {
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Heute",
+ minText : "Dieses Datum liegt von dem erstmöglichen Datum",
+ maxText : "Dieses Datum liegt nach dem letztmöglichen Datum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : "Nächster Monat (Strg/Control + Rechts)",
+ prevText : "Vorheriger Monat (Strg/Control + Links)",
+ monthYearText : "Monat auswählen (Strg/Control + Hoch/Runter, um ein Jahr auszuwählen)",
+ todayTip : "Heute ({0}) (Leertaste)",
+ format : "d.m.Y",
+ okText : " OK ",
+ cancelText : "Abbrechen",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Seite",
+ afterPageText : "von {0}",
+ firstText : "Erste Seite",
+ prevText : "vorherige Seite",
+ nextText : "nächste Seite",
+ lastText : "letzte Seite",
+ refreshText : "Aktualisieren",
+ displayMsg : "Anzeige Eintrag {0} - {1} von {2}",
+ emptyMsg : "Keine Daten vorhanden"
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Bitte geben Sie mindestens {0} Zeichen ein",
+ maxLengthText : "Bitte geben Sie maximal {0} Zeichen ein",
+ blankText : "Dieses Feld darf nicht leer sein",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Der Mindestwert für dieses Feld ist {0}",
+ maxText : "Der Maximalwert für dieses Feld ist {0}",
+ nanText : "{0} ist keine Zahl",
+ decimalSeparator : ","
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "nicht erlaubt",
+ disabledDatesText : "nicht erlaubt",
+ minText : "Das Datum in diesem Feld muss nach dem {0} liegen",
+ maxText : "Das Datum in diesem Feld muss vor dem {0} liegen",
+ invalidText : "{0} ist kein gültiges Datum - es muss im Format {1} eingegeben werden",
+ format : "d.m.Y",
+ altFormats : "j.n.Y|j.n.y|j.n.|j.|j/n/Y|j/n/y|j-n-y|j-n-Y|j/n|j-n|dm|dmy|dmY|j|Y-n-j",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Lade Daten ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Dieses Feld sollte eine E-Mail-Adresse enthalten. Format: "user@example.com"',
+ urlText : 'Dieses Feld sollte eine URL enthalten. Format: "http:/'+'/www.example.com"',
+ alphaText : 'Dieses Feld darf nur Buchstaben enthalten und _',
+ alphanumText : 'Dieses Feld darf nur Buchstaben und Zahlen enthalten und _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Bitte geben Sie die URL für den Link ein:',
+ buttonTips : {
+ bold : {
+ title: 'Fett (Ctrl+B)',
+ text: 'Erstellt den ausgewählten Text in Fettschrift.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursiv (Ctrl+I)',
+ text: 'Erstellt den ausgewählten Text in Schrägschrift.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Unterstrichen (Ctrl+U)',
+ text: 'Unterstreicht den ausgewählten Text.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Text vergößern',
+ text: 'Erhöht die Schriftgröße.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Text verkleinern',
+ text: 'Verringert die Schriftgröße.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Text farblich hervorheben',
+ text: 'Hintergrundfarbe des ausgewählten Textes ändern.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Schriftfarbe',
+ text: 'Farbe des ausgewählten Textes ändern.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Linksbündig',
+ text: 'Setzt den Text linksbündig.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Zentrieren',
+ text: 'Zentriert den Text in Editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Rechtsbündig',
+ text: 'Setzt den Text rechtsbündig.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Aufzählungsliste',
+ text: 'Beginnt eine Aufzählungsliste mit Spiegelstrichen.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numerierte Liste',
+ text: 'Beginnt eine numerierte Liste.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Erstellt einen Hyperlink aus dem ausgewählten text.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Source bearbeiten',
+ text: 'Zur Bearbeitung des Quelltextes wechseln.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Aufsteigend sortieren",
+ sortDescText : "Absteigend sortieren",
+ lockText : "Spalte sperren",
+ unlockText : "Spalte freigeben (entsperren)",
+ columnsText : "Spalten"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Keine)',
+ groupByText : 'Dieses Feld gruppieren',
+ showGroupsText : 'In Gruppen anzeigen'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Name",
+ valueText : "Wert",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.grid.BooleanColumn){
+ Ext.apply(Ext.grid.BooleanColumn.prototype, {
+ trueText : "wahr",
+ falseText : "falsch"
+ });
+}
+
+if(Ext.grid.NumberColumn){
+ Ext.apply(Ext.grid.NumberColumn.prototype, {
+ format : '0.000,00/i'
+ });
+}
+
+if(Ext.grid.DateColumn){
+ Ext.apply(Ext.grid.DateColumn.prototype, {
+ format : 'd.m.Y'
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Ziehen, um Größe zu ändern.",
+ collapsibleSplitTip : "Ziehen, um Größe zu ändern. Doppelklick um Panel auszublenden."
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "Die Zeit muss gleich oder nach {0} liegen",
+ maxText : "Die Zeit muss gleich oder vor {0} liegen",
+ invalidText : "{0} ist keine gültige Zeit",
+ format : "H:i"
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : "Du mußt mehr als einen Eintrag aus der Gruppe auswählen"
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : "Du mußt einen Eintrag aus der Gruppe auswählen"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-el_GR.js b/gulliver/js/ext/locale/ext-lang-el_GR.js
new file mode 100644
index 000000000..98abf6053
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-el_GR.js
@@ -0,0 +1,309 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Greek translation
+ * By thesilentman (utf8 encoding)
+ * 27 Apr 2008
+ *
+ * Changes since previous (second) Version:
+ * + added Date.shortMonthNames
+ * + added Date.getShortMonthName
+ * + added Date.monthNumbers
+ * + added Ext.grid.GroupingView
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Μεταφόρτωση δεδομένων...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} Επιλεγμένες σειρές";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Κλείστε το tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Το περιεχόμενο του πεδίου δεν είναι αποδεκτό";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Μεταφόρτωση δεδομένων...";
+}
+
+Date.monthNames = [
+ "Ιανουάριος",
+ "Φεβρουάριος",
+ "Μάρτιος",
+ "Απρίλιος",
+ "Μάιος",
+ "Ιούνιος",
+ "Ιούλιος",
+ "Αύγουστος",
+ "Σεπτέμβριος",
+ "Οκτώβριος",
+ "Νοέμβριος",
+ "Δεκέμβριος"
+];
+
+Date.shortMonthNames = [
+ "Ιαν",
+ "Φεβ",
+ "Μάρ",
+ "Απρ",
+ "Μάι",
+ "Ιού",
+ "Ιού",
+ "Αύγ",
+ "Σεπ",
+ "Οκτ",
+ "Νοέ",
+ "Δεκ"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+
+Date.dayNames = [
+ "Κυριακή",
+ "Δευτέρα",
+ "Τρίτη",
+ "Τετάρτη",
+ "Πέμπτη",
+ "Παρασκευή",
+ "Σάββατο"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Άκυρο",
+ yes : "Ναι",
+ no : "Όχι"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Σήμερα",
+ minText : "Η Ημερομηνία είναι προγενέστερη από την παλαιότερη αποδεκτή",
+ maxText : "Η Ημερομηνία είναι μεταγενέστερη από την νεότερη αποδεκτή",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Επόμενος Μήνας (Control+Δεξί Βέλος)',
+ prevText : 'Προηγούμενος Μήνας (Control + Αριστερό Βέλος)',
+ monthYearText : 'Επιλογή Μηνός (Control + Επάνω/Κάτω Βέλος για μεταβολή ετών)',
+ todayTip : "{0} (ΠΛήκτρο Διαστήματος)",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Σελίδα",
+ afterPageText : "από {0}",
+ firstText : "Πρώτη Σελίδα",
+ prevText : "Προηγούμενη Σελίδα",
+ nextText : "Επόμενη Σελίδα",
+ lastText : "Τελευταία Σελίδα",
+ refreshText : "Ανανέωση",
+ displayMsg : "Εμφάνιση {0} - {1} από {2}",
+ emptyMsg : 'Δεν υπάρχουν δεδομένα'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Το μικρότερο αποδεκτό μήκος για το πεδίο είναι {0}",
+ maxLengthText : "Το μεγαλύτερο αποδεκτό μήκος για το πεδίο είναι {0}",
+ blankText : "Το πεδίο είναι υποχρεωτικό",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Η μικρότερη τιμή του πεδίου είναι {0}",
+ maxText : "Η μεγαλύτερη τιμή του πεδίου είναι {0}",
+ nanText : "{0} δεν είναι αποδεκτός αριθμός"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Ανενεργό",
+ disabledDatesText : "Ανενεργό",
+ minText : "Η ημερομηνία αυτού του πεδίου πρέπει να είναι μετά την {0}",
+ maxText : "Η ημερομηνία αυτού του πεδίου πρέπει να είναι πριν την {0}",
+ invalidText : "{0} δεν είναι έγκυρη ημερομηνία - πρέπει να είναι στη μορφή {1}",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Μεταφόρτωση δεδομένων...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Το πεδίο δέχεται μόνο διευθύνσεις Email σε μορφή "user@example.com"',
+ urlText : 'Το πεδίο δέχεται μόνο URL σε μορφή "http:/'+'/www.example.com"',
+ alphaText : 'Το πεδίο δέχεται μόνο χαρακτήρες και _',
+ alphanumText : 'Το πεδίο δέχεται μόνο χαρακτήρες, αριθμούς και _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Δώστε τη διεύθυνση (URL) για το σύνδεσμο (link):',
+ buttonTips : {
+ bold : {
+ title: 'Έντονα (Ctrl+B)',
+ text: 'Κάνετε το προεπιλεγμένο κείμενο έντονο.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Πλάγια (Ctrl+I)',
+ text: 'Κάνετε το προεπιλεγμένο κείμενο πλάγιο.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Υπογράμμιση (Ctrl+U)',
+ text: 'Υπογραμμίζετε το προεπιλεγμένο κείμενο.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Μεγέθυνση κειμένου',
+ text: 'Μεγαλώνετε τη γραμματοσειρά.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Σμίκρυνση κειμένου',
+ text: 'Μικραίνετε τη γραμματοσειρά.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Χρώμα Φόντου Κειμένου',
+ text: 'Αλλάζετε το χρώμα στο φόντο του προεπιλεγμένου κειμένου.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Χρώμα Γραμματοσειράς',
+ text: 'Αλλάζετε το χρώμα στη γραμματοσειρά του προεπιλεγμένου κειμένου.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Αριστερή Στοίχιση Κειμένου',
+ text: 'Στοιχίζετε το κείμενο στα αριστερά.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Κεντράρισμα Κειμένου',
+ text: 'Στοιχίζετε το κείμενο στο κέντρο.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Δεξιά Στοίχιση Κειμένου',
+ text: 'Στοιχίζετε το κείμενο στα δεξιά.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Εισαγωγή Λίστας Κουκίδων',
+ text: 'Ξεκινήστε μια λίστα με κουκίδες.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Εισαγωγή Λίστας Αρίθμησης',
+ text: 'Ξεκινήστε μια λίστα με αρίθμηση.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Μετατρέπετε το προεπιλεγμένο κείμενο σε Link.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Επεξεργασία Κώδικα',
+ text: 'Μεταβαίνετε στη λειτουργία επεξεργασίας κώδικα.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Αύξουσα ταξινόμηση",
+ sortDescText : "Φθίνουσα ταξινόμηση",
+ lockText : "Κλείδωμα στήλης",
+ unlockText : "Ξεκλείδωμα στήλης",
+ columnsText : "Στήλες"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Καμμία)',
+ groupByText : 'Ομαδοποίηση βάσει αυτού του πεδίου',
+ showGroupsText : 'Να εμφανίζεται στις ομάδες'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Όνομα",
+ valueText : "Περιεχόμενο",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Σύρετε για αλλαγή μεγέθους.",
+ collapsibleSplitTip : "Σύρετε για αλλαγή μεγέθους. Διπλό κλικ για απόκρυψη."
+ });
+}
+
diff --git a/gulliver/js/ext/locale/ext-lang-en.js b/gulliver/js/ext/locale/ext-lang-en.js
new file mode 100644
index 000000000..a14e97670
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-en.js
@@ -0,0 +1,346 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * English Translations
+ * updated to 2.2 by Condor (8 Aug 2008)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Loading...
';
+
+if(Ext.data.Types){
+ Ext.data.Types.stripRe = /[\$,%]/g;
+}
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} selected row{1}";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Loading...";
+}
+
+Date.monthNames = [
+ "January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+Date.parseCodes.S.s = "(?:st|nd|rd|th)";
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Cancel",
+ yes : "Yes",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "m/d/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Today",
+ minText : "This date is before the minimum date",
+ maxText : "This date is after the maximum date",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Next Month (Control+Right)',
+ prevText : 'Previous Month (Control+Left)',
+ monthYearText : 'Choose a month (Control+Up/Down to move years)',
+ todayTip : "{0} (Spacebar)",
+ format : "m/d/y",
+ okText : " OK ",
+ cancelText : "Cancel",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Page",
+ afterPageText : "of {0}",
+ firstText : "First Page",
+ prevText : "Previous Page",
+ nextText : "Next Page",
+ lastText : "Last Page",
+ refreshText : "Refresh",
+ displayMsg : "Displaying {0} - {1} of {2}",
+ emptyMsg : 'No data to display'
+ });
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "Please Wait..."
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "The minimum length for this field is {0}",
+ maxLengthText : "The maximum length for this field is {0}",
+ blankText : "This field is required",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ decimalSeparator : ".",
+ decimalPrecision : 2,
+ minText : "The minimum value for this field is {0}",
+ maxText : "The maximum value for this field is {0}",
+ nanText : "{0} is not a valid number"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disabled",
+ disabledDatesText : "Disabled",
+ minText : "The date in this field must be after {0}",
+ maxText : "The date in this field must be before {0}",
+ invalidText : "{0} is not a valid date - it must be in the format {1}",
+ format : "m/d/y",
+ altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Loading...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'This field should be an e-mail address in the format "user@example.com"',
+ urlText : 'This field should be a URL in the format "http:/'+'/www.example.com"',
+ alphaText : 'This field should only contain letters and _',
+ alphanumText : 'This field should only contain letters, numbers and _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Please enter the URL for the link:',
+ buttonTips : {
+ bold : {
+ title: 'Bold (Ctrl+B)',
+ text: 'Make the selected text bold.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italic (Ctrl+I)',
+ text: 'Make the selected text italic.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Underline (Ctrl+U)',
+ text: 'Underline the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Grow Text',
+ text: 'Increase the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Shrink Text',
+ text: 'Decrease the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Text Highlight Color',
+ text: 'Change the background color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Font Color',
+ text: 'Change the color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Align Text Left',
+ text: 'Align text to the left.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Center Text',
+ text: 'Center text in the editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Align Text Right',
+ text: 'Align text to the right.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Bullet List',
+ text: 'Start a bulleted list.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numbered List',
+ text: 'Start a numbered list.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Make the selected text a hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Source Edit',
+ text: 'Switch to source editing mode.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sort Ascending",
+ sortDescText : "Sort Descending",
+ columnsText : "Columns"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(None)',
+ groupByText : 'Group By This Field',
+ showGroupsText : 'Show in Groups'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Name",
+ valueText : "Value",
+ dateFormat : "m/j/Y",
+ trueText: "true",
+ falseText: "false"
+ });
+}
+
+if(Ext.grid.BooleanColumn){
+ Ext.apply(Ext.grid.BooleanColumn.prototype, {
+ trueText : "true",
+ falseText : "false",
+ undefinedText: ' '
+ });
+}
+
+if(Ext.grid.NumberColumn){
+ Ext.apply(Ext.grid.NumberColumn.prototype, {
+ format : '0,000.00'
+ });
+}
+
+if(Ext.grid.DateColumn){
+ Ext.apply(Ext.grid.DateColumn.prototype, {
+ format : 'm/d/Y'
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Drag to resize.",
+ collapsibleSplitTip : "Drag to resize. Double click to hide."
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "The time in this field must be equal to or after {0}",
+ maxText : "The time in this field must be equal to or before {0}",
+ invalidText : "{0} is not a valid time",
+ format : "g:i A",
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : "You must select at least one item in this group"
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : "You must select one item in this group"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-en_GB.js b/gulliver/js/ext/locale/ext-lang-en_GB.js
new file mode 100644
index 000000000..aff481fd2
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-en_GB.js
@@ -0,0 +1,322 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * English (UK) Translations
+ * updated to 2.2 by Condor (8 Aug 2008)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Loading...
';
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} selected row{1}";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Loading...";
+}
+
+Date.monthNames = [
+ "January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+Date.parseCodes.S.s = "(?:st|nd|rd|th)";
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Cancel",
+ yes : "Yes",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Today",
+ minText : "This date is before the minimum date",
+ maxText : "This date is after the maximum date",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Next Month (Control+Right)',
+ prevText : 'Previous Month (Control+Left)',
+ monthYearText : 'Choose a month (Control+Up/Down to move years)',
+ todayTip : "{0} (Spacebar)",
+ format : "d/m/Y",
+ okText : " OK ",
+ cancelText : "Cancel",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Page",
+ afterPageText : "of {0}",
+ firstText : "First Page",
+ prevText : "Previous Page",
+ nextText : "Next Page",
+ lastText : "Last Page",
+ refreshText : "Refresh",
+ displayMsg : "Displaying {0} - {1} of {2}",
+ emptyMsg : 'No data to display'
+ });
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "Please Wait..."
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "The minimum length for this field is {0}",
+ maxLengthText : "The maximum length for this field is {0}",
+ blankText : "This field is required",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ decimalSeparator : ".",
+ decimalPrecision : 2,
+ minText : "The minimum value for this field is {0}",
+ maxText : "The maximum value for this field is {0}",
+ nanText : "{0} is not a valid number"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disabled",
+ disabledDatesText : "Disabled",
+ minText : "The date in this field must be after {0}",
+ maxText : "The date in this field must be before {0}",
+ invalidText : "{0} is not a valid date - it must be in the format {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d/m/y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Loading...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'This field should be an e-mail address in the format "user@example.com"',
+ urlText : 'This field should be a URL in the format "http:/'+'/www.example.com"',
+ alphaText : 'This field should only contain letters and _',
+ alphanumText : 'This field should only contain letters, numbers and _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Please enter the URL for the link:',
+ buttonTips : {
+ bold : {
+ title: 'Bold (Ctrl+B)',
+ text: 'Make the selected text bold.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italic (Ctrl+I)',
+ text: 'Make the selected text italic.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Underline (Ctrl+U)',
+ text: 'Underline the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Grow Text',
+ text: 'Increase the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Shrink Text',
+ text: 'Decrease the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Text Highlight Color',
+ text: 'Change the background color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Font Color',
+ text: 'Change the color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Align Text Left',
+ text: 'Align text to the left.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Center Text',
+ text: 'Center text in the editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Align Text Right',
+ text: 'Align text to the right.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Bullet List',
+ text: 'Start a bulleted list.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numbered List',
+ text: 'Start a numbered list.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Make the selected text a hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Source Edit',
+ text: 'Switch to source editing mode.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sort Ascending",
+ sortDescText : "Sort Descending",
+ columnsText : "Columns"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(None)',
+ groupByText : 'Group By This Field',
+ showGroupsText : 'Show in Groups'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Name",
+ valueText : "Value",
+ dateFormat : "j/m/Y",
+ trueText: "true",
+ falseText: "false"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Drag to resize.",
+ collapsibleSplitTip : "Drag to resize. Double click to hide."
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "The time in this field must be equal to or after {0}",
+ maxText : "The time in this field must be equal to or before {0}",
+ invalidText : "{0} is not a valid time",
+ format : "g:i A",
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : "You must select at least one item in this group"
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : "You must select one item in this group"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-es.js b/gulliver/js/ext/locale/ext-lang-es.js
new file mode 100644
index 000000000..46879a3a4
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-es.js
@@ -0,0 +1,319 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Spanish/Latin American Translation by genius551v 04-08-2007
+ * Revised by efege, 2007-04-15.
+ * Revised by Rafaga2k 10-01-2007 (mm/dd/yyyy)
+ * Revised by FeDe 12-13-2007 (mm/dd/yyyy)
+ * Synchronized with 2.2 version of ext-lang-en.js (provided by Condor 8 aug 2008)
+ * by halkon_polako 14-aug-2008
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Cargando...
';
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} fila(s) seleccionada(s)";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Cargando...";
+}
+
+Date.monthNames = [
+ "Enero",
+ "Febrero",
+ "Marzo",
+ "Abril",
+ "Mayo",
+ "Junio",
+ "Julio",
+ "Agosto",
+ "Septiembre",
+ "Octubre",
+ "Noviembre",
+ "Diciembre"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Ene : 0,
+ Feb : 1,
+ Mar : 2,
+ Abr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Ago : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dic : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Domingo",
+ "Lunes",
+ "Martes",
+ "Mi\u00E9rcoles",
+ "Jueves",
+ "Viernes",
+ "S\u00E1bado"
+];
+
+Date.getShortDayName = function(day) {
+ if (day==3) return "Mié";
+ if (day==6) return "Sáb";
+ return Date.dayNames[day].substring(0, 3);
+};
+
+Date.parseCodes.S.s = "(?:st|nd|rd|th)";
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Aceptar",
+ cancel : "Cancelar",
+ yes : "S\u00ED",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hoy",
+ minText : "Esta fecha es anterior a la fecha m\u00EDnima",
+ maxText : "Esta fecha es posterior a la fecha m\u00E1xima",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Mes Siguiente (Control+Right)',
+ prevText : 'Mes Anterior (Control+Left)',
+ monthYearText : 'Seleccione un mes (Control+Up/Down para desplazar el a\u00F1o)',
+ todayTip : "{0} (Barra espaciadora)",
+ format : "d/m/Y",
+ okText : " Ok ",
+ cancelText : "Cancelar",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "P\u00E1gina",
+ afterPageText : "de {0}",
+ firstText : "Primera p\u00E1gina",
+ prevText : "P\u00E1gina anterior",
+ nextText : "P\u00E1gina siguiente",
+ lastText : "Última p\u00E1gina",
+ refreshText : "Actualizar",
+ displayMsg : "Mostrando {0} - {1} de {2}",
+ emptyMsg : 'Sin datos para mostrar'
+ });
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "El valor en este campo es inv\u00E1lido";
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "El tama\u00F1o m\u00EDnimo para este campo es de {0}",
+ maxLengthText : "El tama\u00F1o m\u00E1ximo para este campo es de {0}",
+ blankText : "Este campo es obligatorio",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ decimalSeparator : ".",
+ decimalPrecision : 2,
+ minText : "El valor m\u00EDnimo para este campo es de {0}",
+ maxText : "El valor m\u00E1ximo para este campo es de {0}",
+ nanText : "{0} no es un n\u00FAmero v\u00E1lido"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Deshabilitado",
+ disabledDatesText : "Deshabilitado",
+ minText : "La fecha para este campo debe ser posterior a {0}",
+ maxText : "La fecha para este campo debe ser anterior a {0}",
+ invalidText : "{0} no es una fecha v\u00E1lida - debe tener el formato {1}",
+ format : "d/m/Y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Cargando...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Este campo debe ser una direcci\u00F3n de correo electr\u00F3nico con el formato "usuario@dominio.com"',
+ urlText : 'Este campo debe ser una URL con el formato "http:/'+'/www.dominio.com"',
+ alphaText : 'Este campo s\u00F3lo debe contener letras y _',
+ alphanumText : 'Este campo s\u00F3lo debe contener letras, n\u00FAmeros y _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : "Por favor proporcione la URL para el enlace:",
+ buttonTips : {
+ bold : {
+ title: 'Negritas (Ctrl+B)',
+ text: 'Transforma el texto seleccionado en Negritas.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'It\u00E1lica (Ctrl+I)',
+ text: 'Transforma el texto seleccionado en It\u00E1licas.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Subrayado (Ctrl+U)',
+ text: 'Subraya el texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Aumentar la fuente',
+ text: 'Aumenta el tama\u00F1o de la fuente',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Reducir la fuente',
+ text: 'Reduce el tama\u00F1o de la fuente.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Color de fondo',
+ text: 'Modifica el color de fondo del texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Color de la fuente',
+ text: 'Modifica el color del texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Alinear a la izquierda',
+ text: 'Alinea el texto a la izquierda.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrar',
+ text: 'Centrar el texto.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Alinear a la derecha',
+ text: 'Alinea el texto a la derecha.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Lista de vi\u00F1etas',
+ text: 'Inicia una lista con vi\u00F1etas.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Lista numerada',
+ text: 'Inicia una lista numerada.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Enlace',
+ text: 'Inserta un enlace de hipertexto.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'C\u00F3digo Fuente',
+ text: 'Pasar al modo de edici\u00F3n de c\u00F3digo fuente.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordenar en forma ascendente",
+ sortDescText : "Ordenar en forma descendente",
+ columnsText : "Columnas"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Ninguno)',
+ groupByText : 'Agrupar por este campo',
+ showGroupsText : 'Mostrar en grupos'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nombre",
+ valueText : "Valor",
+ dateFormat : "j/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Arrastre para redimensionar.",
+ collapsibleSplitTip : "Arrastre para redimensionar. Doble clic para ocultar."
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "La hora en este campo debe ser igual o posterior a {0}",
+ maxText : "La hora en este campo debe ser igual o anterior a {0}",
+ invalidText : "{0} no es una hora v\u00E1lida",
+ format : "g:i A",
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : "Debe seleccionar al menos un \u00E9tem de este grupo"
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : "Debe seleccionar un \u00E9tem de este grupo"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-fa.js b/gulliver/js/ext/locale/ext-lang-fa.js
new file mode 100644
index 000000000..9be4e9588
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-fa.js
@@ -0,0 +1,273 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Farsi (Persian) translation
+ * By Mohaqa
+ * 03-10-2007, 06:23 PM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'در حال بارگذاری ...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} رکورد انتخاب شده";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "بستن";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "مقدار فیلد صحیح نیست";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "در حال بارگذاری ...";
+}
+
+Date.monthNames = [
+ "ژانویه",
+ "فوریه",
+ "مارس",
+ "آپریل",
+ "می",
+ "ژوئن",
+ "جولای",
+ "آگوست",
+ "سپتامبر",
+ "اکتبر",
+ "نوامبر",
+ "دسامبر"
+];
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.dayNames = [
+ "یکشنبه",
+ "دوشنبه",
+ "سه شنبه",
+ "چهارشنبه",
+ "پنجشنبه",
+ "جمعه",
+ "شنبه"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "تایید",
+ cancel : "بازگشت",
+ yes : "بله",
+ no : "خیر"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y/m/d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "امروز",
+ minText : "این تاریخ قبل از محدوده مجاز است",
+ maxText : "این تاریخ پس از محدوده مجاز است",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'ماه بعد (Control + Right)',
+ prevText : 'ماه قبل (Control+Left)',
+ monthYearText : 'یک ماه را انتخاب کنید (Control+Up/Down برای انتقال در سال)',
+ todayTip : "{0} (Spacebar)",
+ format : "y/m/d",
+ okText : " OK ",
+ cancelText : "Cancel",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "صفحه",
+ afterPageText : "از {0}",
+ firstText : "صفحه اول",
+ prevText : "صفحه قبل",
+ nextText : "صفحه بعد",
+ lastText : "صفحه آخر",
+ refreshText : "بازخوانی",
+ displayMsg : "نمایش {0} - {1} of {2}",
+ emptyMsg : 'داده ای برای نمایش وجود ندارد'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "حداقل طول این فیلد برابر است با {0}",
+ maxLengthText : "حداکثر طول این فیلد برابر است با {0}",
+ blankText : "این فیلد باید مقداری داشته باشد",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "حداقل مقدار این فیلد برابر است با {0}",
+ maxText : "حداکثر مقدار این فیلد برابر است با {0}",
+ nanText : "{0} یک عدد نیست"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "غیرفعال",
+ disabledDatesText : "غیرفعال",
+ minText : "تاریخ باید پس از {0} باشد",
+ maxText : "تاریخ باید پس از {0} باشد",
+ invalidText : "{0} تاریخ صحیحی نیست - فرمت صحیح {1}",
+ format : "y/m/d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "در حال بارگذاری ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'مقدار این فیلد باید یک ایمیل با این فرمت باشد "user@example.com"',
+ urlText : 'مقدار این آدرس باید یک آدرس سایت با این فرمت باشد "http:/'+'/www.example.com"',
+ alphaText : 'مقدار این فیلد باید فقط از حروف الفبا و _ تشکیل شده باشد ',
+ alphanumText : 'مقدار این فیلد باید فقط از حروف الفبا، اعداد و _ تشکیل شده باشد'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'لطفا آدرس لینک را وارد کنید:',
+ buttonTips : {
+ bold : {
+ title: 'تیره (Ctrl+B)',
+ text: 'متن انتخاب شده را تیره می کند.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'ایتالیک (Ctrl+I)',
+ text: 'متن انتخاب شده را ایتالیک می کند.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'زیرخط (Ctrl+U)',
+ text: 'زیر هر نوشته یک خط نمایش می دهد.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'افزایش اندازه',
+ text: 'اندازه فونت را افزایش می دهد.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'کاهش اندازه',
+ text: 'اندازه متن را کاهش می دهد.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'رنگ زمینه متن',
+ text: 'برای تغییر رنگ زمینه متن استفاده می شود.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'رنگ قلم',
+ text: 'رنگ قلم متن را تغییر می دهد.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'چیدن متن از سمت چپ',
+ text: 'متن از سمت چپ چیده شده می شود.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'متن در وسط ',
+ text: 'نمایش متن در قسمت وسط صفحه و رعابت سمت چپ و راست.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'چیدن متن از سمت راست',
+ text: 'متن از سمت راست پیده خواهد شد.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'لیست همراه با علامت',
+ text: 'یک لیست جدید ایجاد می کند.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'لیست عددی',
+ text: 'یک لیست عددی ایجاد می کند. ',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'لینک',
+ text: 'متن انتخاب شده را به لینک تبدیل کنید.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'ویرایش سورس',
+ text: 'رفتن به حالت ویرایش سورس.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "مرتب سازی افزایشی",
+ sortDescText : "مرتب سازی کاهشی",
+ lockText : "قفل ستون ها",
+ unlockText : "بازکردن ستون ها",
+ columnsText : "ستون ها"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "نام",
+ valueText : "مقدار",
+ dateFormat : "Y/m/d"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "درگ برای تغییر اندازه.",
+ collapsibleSplitTip : "برای تغییر اندازه درگ کنید."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-fi.js b/gulliver/js/ext/locale/ext-lang-fi.js
new file mode 100644
index 000000000..75bb760a3
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-fi.js
@@ -0,0 +1,303 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Finnish Translations
+ *
+ * 'ä' should read as lowercase 'a' with two dots on top (ä)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Ladataan...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} rivi(ä) valittu";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Sulje tämä välilehti";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Ladataan...";
+}
+
+Date.monthNames = [
+ "tammikuu",
+ "helmikuu",
+ "maaliskuu",
+ "huhtikuu",
+ "toukokuu",
+ "kesäkuu",
+ "heinäkuu",
+ "elokuu",
+ "syyskuu",
+ "lokakuu",
+ "marraskuu",
+ "joulukuu"
+];
+
+Date.getShortMonthName = function(month) {
+ //return Date.monthNames[month].substring(0, 3);
+ return (month+1) + ".";
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ if(name.match(/^(1?\d)\./)) {
+ return -1+RegExp.$1;
+ } else {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+ }
+};
+
+Date.dayNames = [
+ "sunnuntai",
+ "maanantai",
+ "tiistai",
+ "keskiviikko",
+ "torstai",
+ "perjantai",
+ "lauantai"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 2);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Peruuta",
+ yes : "Kyllä",
+ no : "Ei"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "j.n.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Tänään",
+ minText : "Tämä päivämäärä on aikaisempi kuin ensimmäinen sallittu",
+ maxText : "Tämä päivämäärä on myöhäisempi kuin viimeinen sallittu",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Seuraava kuukausi (Control+oikealle)',
+ prevText : 'Edellinen kuukausi (Control+vasemmalle)',
+ monthYearText : 'Valitse kuukausi (vaihda vuotta painamalla Control+ylös/alas)',
+ todayTip : "{0} (välilyönti)",
+ format : "j.n.Y",
+ okText : " OK ",
+ cancelText : "Peruuta",
+ startDay : 1 // viikko alkaa maanantaista
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Sivu",
+ afterPageText : "/ {0}",
+ firstText : "Ensimmäinen sivu",
+ prevText : "Edellinen sivu",
+ nextText : "Seuraava sivu",
+ lastText : "Viimeinen sivu",
+ refreshText : "Päivitä",
+ displayMsg : "Näytetään {0} - {1} / {2}",
+ emptyMsg : 'Ei tietoja'
+ });
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Tämän kentän arvo ei kelpaa";
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Tämän kentän minimipituus on {0}",
+ maxLengthText : "Tämän kentän maksimipituus on {0}",
+ blankText : "Tämä kenttä on pakollinen",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Tämän kentän pienin sallittu arvo on {0}",
+ maxText : "Tämän kentän suurin sallittu arvo on {0}",
+ nanText : "{0} ei ole numero"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Ei käytössä",
+ disabledDatesText : "Ei käytössä",
+ minText : "Tämän kentän päivämäärän tulee olla {0} jälkeen",
+ maxText : "Tämän kentän päivämäärän tulee olla ennen {0}",
+ invalidText : "Päivämäärä {0} ei ole oikeassa muodossa - kirjoita päivämäärä muodossa {1}",
+ format : "j.n.Y",
+ altFormats : "j.n.|d.m.|mdy|mdY|d|Y-m-d|Y/m/d",
+ startDay : 1 // viikko alkaa maanantaista
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Ladataan...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Syötä tähän kenttään sähköpostiosoite, esim. "etunimi.sukunimi@osoite.fi"',
+ urlText : 'Syötä tähän kenttään URL-osoite, esim. "http:/'+'/www.osoite.fi"',
+ alphaText : 'Syötä tähän kenttään vain kirjaimia (a-z, A-Z) ja alaviivoja (_)',
+ alphanumText : 'Syötä tähän kenttään vain kirjaimia (a-z, A-Z), numeroita (0-9) ja alaviivoja (_)'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Anna linkin URL-osoite:',
+ buttonTips : {
+ bold : {
+ title: 'Lihavoi (Ctrl+B)',
+ text: 'Lihavoi valittu teksti.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursivoi (Ctrl+I)',
+ text: 'Kursivoi valittu teksti.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Alleviivaa (Ctrl+U)',
+ text: 'Alleviivaa valittu teksti.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Suurenna tekstiä',
+ text: 'Kasvata tekstin kirjasinkokoa.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Pienennä tekstiä',
+ text: 'Pienennä tekstin kirjasinkokoa.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Tekstin korostusväri',
+ text: 'Vaihda valitun tekstin taustaväriä.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Tekstin väri',
+ text: 'Vaihda valitun tekstin väriä.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Tasaa vasemmalle',
+ text: 'Tasaa teksti vasempaan reunaan.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Keskitä',
+ text: 'Keskitä teksti.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Tasaa oikealle',
+ text: 'Tasaa teksti oikeaan reunaan.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Luettelo',
+ text: 'Luo luettelo.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numeroitu luettelo',
+ text: 'Luo numeroitu luettelo.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Linkki',
+ text: 'Tee valitusta tekstistä hyperlinkki.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Lähdekoodin muokkaus',
+ text: 'Vaihda lähdekoodin muokkausnäkymään.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "Odota...";
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Järjestä A-Ö",
+ sortDescText : "Järjestä Ö-A",
+ lockText : "Lukitse sarake",
+ unlockText : "Vapauta sarakkeen lukitus",
+ columnsText : "Sarakkeet"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(ei mitään)',
+ groupByText : 'Ryhmittele tämän kentän mukaan',
+ showGroupsText : 'Näytä ryhmissä'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nimi",
+ valueText : "Arvo",
+ dateFormat : "j.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Muuta kokoa vetämällä.",
+ collapsibleSplitTip : "Muuta kokoa vetämällä. Piilota kaksoisklikkauksella."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-fr.js b/gulliver/js/ext/locale/ext-lang-fr.js
new file mode 100644
index 000000000..c9c9d9d29
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-fr.js
@@ -0,0 +1,346 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * France (France) translation
+ * By Thylia
+ * 09-11-2007, 02:22 PM
+ * updated by disizben (22 Sep 2008)
+ * updated by Thylia (20 Apr 2010)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'En cours de chargement...
';
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} ligne{1} sélectionnée{1}";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "En cours de chargement...";
+}
+
+Date.shortMonthNames = [
+ "Janv",
+ "Févr",
+ "Mars",
+ "Avr",
+ "Mai",
+ "Juin",
+ "Juil",
+ "Août",
+ "Sept",
+ "Oct",
+ "Nov",
+ "Déc"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.shortMonthNames[month];
+};
+
+Date.monthNames = [
+ "Janvier",
+ "Février",
+ "Mars",
+ "Avril",
+ "Mai",
+ "Juin",
+ "Juillet",
+ "Août",
+ "Septembre",
+ "Octobre",
+ "Novembre",
+ "Décembre"
+];
+
+Date.monthNumbers = {
+ "Janvier" : 0,
+ "Février" : 1,
+ "Mars" : 2,
+ "Avril" : 3,
+ "Mai" : 4,
+ "Juin" : 5,
+ "Juillet" : 6,
+ "Août" : 7,
+ "Septembre" : 8,
+ "Octobre" : 9,
+ "Novembre" : 10,
+ "Décembre" : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[Ext.util.Format.capitalize(name)];
+};
+
+Date.dayNames = [
+ "Dimanche",
+ "Lundi",
+ "Mardi",
+ "Mercredi",
+ "Jeudi",
+ "Vendredi",
+ "Samedi"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+Date.parseCodes.S.s = "(?:er)";
+
+Ext.override(Date, {
+ getSuffix : function() {
+ return (this.getDate() == 1) ? "er" : "";
+ }
+});
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Annuler",
+ yes : "Oui",
+ no : "Non"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!Ext.isDate(v)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+ Ext.util.Format.plural = function(v, s, p) {
+ return v + ' ' + (v <= 1 ? s : (p ? p : s + 's'));
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Aujourd'hui",
+ minText : "Cette date est antérieure à la date minimum",
+ maxText : "Cette date est postérieure à la date maximum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Mois suivant (CTRL+Flèche droite)',
+ prevText : "Mois précédent (CTRL+Flèche gauche)",
+ monthYearText : "Choisissez un mois (CTRL+Flèche haut ou bas pour changer d'année.)",
+ todayTip : "{0} (Barre d'espace)",
+ okText : " OK ",
+ cancelText : "Annuler",
+ format : "d/m/y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Page",
+ afterPageText : "sur {0}",
+ firstText : "Première page",
+ prevText : "Page précédente",
+ nextText : "Page suivante",
+ lastText : "Dernière page",
+ refreshText : "Actualiser la page",
+ displayMsg : "Page courante {0} - {1} sur {2}",
+ emptyMsg : 'Aucune donnée à afficher'
+ });
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "Veuillez patienter...";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "La valeur de ce champ est invalide";
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "La longueur minimum de ce champ est de {0} caractère(s)",
+ maxLengthText : "La longueur maximum de ce champ est de {0} caractère(s)",
+ blankText : "Ce champ est obligatoire",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ decimalSeparator : ",",
+ decimalPrecision : 2,
+ minText : "La valeur minimum de ce champ doit être de {0}",
+ maxText : "La valeur maximum de ce champ doit être de {0}",
+ nanText : "{0} n'est pas un nombre valide"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Désactivé",
+ disabledDatesText : "Désactivé",
+ minText : "La date de ce champ ne peut être antérieure au {0}",
+ maxText : "La date de ce champ ne peut être postérieure au {0}",
+ invalidText : "{0} n'est pas une date valide - elle doit être au format suivant: {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "En cours de chargement...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ce champ doit contenir une adresse email au format: "usager@example.com"',
+ urlText : 'Ce champ doit contenir une URL au format suivant: "http:/'+'/www.example.com"',
+ alphaText : 'Ce champ ne peut contenir que des lettres et le caractère souligné (_)',
+ alphanumText : 'Ce champ ne peut contenir que des caractères alphanumériques ainsi que le caractère souligné (_)'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : "Veuillez entrer l'URL pour ce lien:",
+ buttonTips : {
+ bold : {
+ title: 'Gras (Ctrl+B)',
+ text: 'Met le texte sélectionné en gras.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italique (Ctrl+I)',
+ text: 'Met le texte sélectionné en italique.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Souligné (Ctrl+U)',
+ text: 'Souligne le texte sélectionné.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Agrandir la police',
+ text: 'Augmente la taille de la police.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Réduire la police',
+ text: 'Réduit la taille de la police.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Couleur de surbrillance',
+ text: 'Modifie la couleur de fond du texte sélectionné.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Couleur de police',
+ text: 'Modifie la couleur du texte sélectionné.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Aligner à gauche',
+ text: 'Aligne le texte à gauche.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrer',
+ text: 'Centre le texte.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Aligner à droite',
+ text: 'Aligner le texte à droite.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Liste à puce',
+ text: 'Démarre une liste à puce.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Liste numérotée',
+ text: 'Démarre une liste numérotée.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Lien hypertexte',
+ text: 'Transforme en lien hypertexte.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Code source',
+ text: 'Basculer en mode édition du code source.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Tri croissant",
+ sortDescText : "Tri décroissant",
+ columnsText : "Colonnes"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Aucun)',
+ groupByText : 'Grouper par ce champ',
+ showGroupsText : 'Afficher par groupes'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Propriété",
+ valueText : "Valeur",
+ dateFormat : "d/m/Y",
+ trueText : "vrai",
+ falseText : "faux"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Cliquer et glisser pour redimensionner le panneau.",
+ collapsibleSplitTip : "Cliquer et glisser pour redimensionner le panneau. Double-cliquer pour le cacher."
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "L'heure de ce champ ne peut être antérieure à {0}",
+ maxText : "L'heure de ce champ ne peut être postérieure à {0}",
+ invalidText : "{0} n'est pas une heure valide",
+ format : "H:i",
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|h a|g a|g A|gi|hi|Hi|gia|hia|g|H"
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : "Vous devez sélectionner au moins un élément dans ce groupe"
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : "Vous devez sélectionner au moins un élément dans ce groupe"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-fr_CA.js b/gulliver/js/ext/locale/ext-lang-fr_CA.js
new file mode 100644
index 000000000..04eddeee8
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-fr_CA.js
@@ -0,0 +1,218 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * France (Canadian) translation
+ * By BernardChhun
+ * 04-08-2007, 03:07 AM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'En cours de chargement...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} ligne(s) sélectionné(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fermer cette onglet";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "La valeur de ce champ est invalide";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "En cours de chargement...";
+}
+
+Date.shortMonthNames = [
+ "Janv",
+ "Févr",
+ "Mars",
+ "Avr",
+ "Mai",
+ "Juin",
+ "Juil",
+ "Août",
+ "Sept",
+ "Oct",
+ "Nov",
+ "Déc"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.shortMonthNames[month];
+};
+
+Date.monthNames = [
+ "Janvier",
+ "Février",
+ "Mars",
+ "Avril",
+ "Mai",
+ "Juin",
+ "Juillet",
+ "Août",
+ "Septembre",
+ "Octobre",
+ "Novembre",
+ "Décembre"
+];
+
+Date.monthNumbers = {
+ "Janvier" : 0,
+ "Février" : 1,
+ "Mars" : 2,
+ "Avril" : 3,
+ "Mai" : 4,
+ "Juin" : 5,
+ "Juillet" : 6,
+ "Août" : 7,
+ "Septembre" : 8,
+ "Octobre" : 9,
+ "Novembre" : 10,
+ "Décembre" : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[Ext.util.Format.capitalize(name)];
+};
+
+Date.dayNames = [
+ "Dimanche",
+ "Lundi",
+ "Mardi",
+ "Mercredi",
+ "Jeudi",
+ "Vendredi",
+ "Samedi"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Annuler",
+ yes : "Oui",
+ no : "Non"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Aujourd'hui",
+ minText : "Cette date est plus petite que la date minimum",
+ maxText : "Cette date est plus grande que la date maximum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Prochain mois (CTRL+Fléche droite)',
+ prevText : 'Mois précédent (CTRL+Fléche gauche)',
+ monthYearText : 'Choissisez un mois (CTRL+Fléche haut ou bas pour changer d\'année.)',
+ todayTip : "{0} (Barre d'espace)",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Page",
+ afterPageText : "de {0}",
+ firstText : "Première page",
+ prevText : "Page précédente",
+ nextText : "Prochaine page",
+ lastText : "Dernière page",
+ refreshText : "Recharger la page",
+ displayMsg : "Page courante {0} - {1} de {2}",
+ emptyMsg : 'Aucune donnée à afficher'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "La longueur minimum de ce champ est de {0} caractères",
+ maxLengthText : "La longueur maximum de ce champ est de {0} caractères",
+ blankText : "Ce champ est obligatoire",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "La valeur minimum de ce champ doit être de {0}",
+ maxText : "La valeur maximum de ce champ doit être de {0}",
+ nanText : "{0} n'est pas un nombre valide"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Désactivé",
+ disabledDatesText : "Désactivé",
+ minText : "La date de ce champ doit être avant le {0}",
+ maxText : "La date de ce champ doit être après le {0}",
+ invalidText : "{0} n'est pas une date valide - il doit être au format suivant: {1}",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "En cours de chargement...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ce champ doit contenir un courriel et doit être sous ce format: "usager@example.com"',
+ urlText : 'Ce champ doit contenir une URL sous le format suivant: "http:/'+'/www.example.com"',
+ alphaText : 'Ce champ ne peut contenir que des lettres et le caractère souligné (_)',
+ alphanumText : 'Ce champ ne peut contenir que des caractères alphanumériques ainsi que le caractère souligné (_)'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Tri ascendant",
+ sortDescText : "Tri descendant",
+ lockText : "Verrouillé la colonne",
+ unlockText : "Déverrouillé la colonne",
+ columnsText : "Colonnes"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Propriété",
+ valueText : "Valeur",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Cliquer et glisser pour redimensionner le panneau.",
+ collapsibleSplitTip : "Cliquer et glisser pour redimensionner le panneau. Double-cliquer pour cacher le panneau."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-gr.js b/gulliver/js/ext/locale/ext-lang-gr.js
new file mode 100644
index 000000000..0e9cc8cbc
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-gr.js
@@ -0,0 +1,175 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Greek (Old Version) Translations by Vagelis
+ * 03-June-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Öüñôùóç...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} åðéëåãìÝíç(åò) ãñáììÞ(Ýò)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Êëåßóôå áõôÞ ôçí êáñôÝëá";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Ç ôéìÞ óôï ðåäßï äåí åßíáé Ýãêõñç";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Öüñôùóç...";
+}
+
+Date.monthNames = [
+ "ÉáíïõÜñéïò",
+ "ÖåâñïõÜñéïò",
+ "ÌÜñôéïò",
+ "Áðñßëéïò",
+ "ÌÜéïò",
+ "Éïýíéïò",
+ "Éïýëéïò",
+ "Áýãïõóôïò",
+ "ÓåðôÝìâñéïò",
+ "Ïêôþâñéïò",
+ "ÍïÝìâñéïò",
+ "ÄåêÝìâñéïò"
+];
+
+Date.dayNames = [
+ "ÊõñéáêÞ",
+ "ÄåõôÝñá",
+ "Ôñßôç",
+ "ÔåôÜñôç",
+ "ÐÝìðôç",
+ "ÐáñáóêåõÞ",
+ "ÓÜââáôï"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "ÅíôÜîåé",
+ cancel : "Áêýñùóç",
+ yes : "Íáé",
+ no : "¼÷é"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "ì/ç/Å");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "ÓÞìåñá",
+ minText : "Ç çìåñïìçíßá áõôÞ åßíáé ðñéí ôçí ìéêñüôåñç çìåñïìçíßá",
+ maxText : "Ç çìåñïìçíßá áõôÞ åßíáé ìåôÜ ôçí ìåãáëýôåñç çìåñïìçíßá",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Åðüìåíïò ÌÞíáò (Control+Right)',
+ prevText : 'Ðñïçãïýìåíïò ÌÞíáò (Control+Left)',
+ monthYearText : 'ÅðéëÝîôå ÌÞíá (Control+Up/Down ãéá ìåôáêßíçóç óôá Ýôç)',
+ todayTip : "{0} (Spacebar)",
+ format : "ì/ç/Å"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Óåëßäá",
+ afterPageText : "áðü {0}",
+ firstText : "Ðñþôç óåëßäá",
+ prevText : "Ðñïçãïýìåíç óåëßäá",
+ nextText : "Åðüìåíç óåëßäá",
+ lastText : "Ôåëåõôáßá óåëßäá",
+ refreshText : "ÁíáíÝùóç",
+ displayMsg : "ÅìöÜíéóç {0} - {1} áðü {2}",
+ emptyMsg : 'Äåí âñÝèçêáí åããñáöÝò ãéá åìöÜíéóç'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Ôï åëÜ÷éóôï ìÝãåèïò ãéá áõôü ôï ðåäßï åßíáé {0}",
+ maxLengthText : "Ôï ìÝãéóôï ìÝãåèïò ãéá áõôü ôï ðåäßï åßíáé {0}",
+ blankText : "Ôï ðåäßï áõôü åßíáé õðï÷ñåùôïêü",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Ç åëÜ÷éóôç ôéìÞ ãéá áõôü ôï ðåäßï åßíáé {0}",
+ maxText : "Ç ìÝãéóôç ôéìÞ ãéá áõôü ôï ðåäßï åßíáé {0}",
+ nanText : "{0} äåí åßíáé Ýãêõñïò áñéèìüò"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "ÁðåíåñãïðïéçìÝíï",
+ disabledDatesText : "ÁðåíåñãïðïéçìÝíï",
+ minText : "Ç çìåñïìçíßá ó' áõôü ôï ðåäßï ðñÝðåé íá åßíáé ìåôÜ áðü {0}",
+ maxText : "Ç çìåñïìçíßá ó' áõôü ôï ðåäßï ðñÝðåé íá åßíáé ðñéí áðü {0}",
+ invalidText : "{0} äåí åßíáé Ýãêõñç çìåñïìçíßá - ðñÝðåé íá åßíáé ôçò ìïñöÞò {1}",
+ format : "ì/ç/Å"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Öüñôùóç...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Áõôü ôï ðåäßï ðñÝðåé íá åßíáé e-mail address ôçò ìïñöÞò "user@example.com"',
+ urlText : 'Áõôü ôï ðåäßï ðñÝðåé íá åßíáé ìéá äéåýèõíóç URL ôçò ìïñöÞò "http:/'+'/www.example.com"',
+ alphaText : 'Áõôü ôï ðåäßï ðñÝðåé íá ðåñéÝ÷åé ãñÜììáôá êáé _',
+ alphanumText : 'Áõôü ôï ðåäßï ðñÝðåé íá ðåñéÝ÷åé ãñÜììáôá, áñéèìïýò êáé _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Áýîïõóá Ôáîéíüìçóç",
+ sortDescText : "Öèßíïõóá Ôáîéíüìçóç",
+ lockText : "Êëåßäùìá óôÞëçò",
+ unlockText : "Îåêëåßäùìá óôÞëçò",
+ columnsText : "ÓôÞëåò"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "¼íïìá",
+ valueText : "ÔéìÞ",
+ dateFormat : "ì/ç/Å"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Óýñåôå ãéá áëëáãÞ ìåãÝèïõò.",
+ collapsibleSplitTip : "Óýñåôå ãéá áëëáãÞ ìåãÝèïõò. Double click ãéá áðüêñõøç."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-he.js b/gulliver/js/ext/locale/ext-lang-he.js
new file mode 100644
index 000000000..b426f3dd4
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-he.js
@@ -0,0 +1,293 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Hebrew Translations
+ * By spartacus (from forums) 06-12-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '...����
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "����� ������ {0}";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "���� ������";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "���� ���� �� ����";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "...����";
+}
+
+Date.monthNames = [
+ "�����",
+ "������",
+ "���",
+ "�����",
+ "���",
+ "����",
+ "����",
+ "������",
+ "������",
+ "�������",
+ "������",
+ "�����"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "�",
+ "�",
+ "�",
+ "�",
+ "�",
+ "�",
+ "�"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "�����",
+ cancel : "�����",
+ yes : "��",
+ no : "��"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "����",
+ minText : ".����� �� �� ���� ������ ������� �����",
+ maxText : ".����� �� �� ���� ������ ����� �����",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : '(Control+Right) ����� ���',
+ prevText : '(Control+Left) ����� �����',
+ monthYearText : '(������ ��� Control+Up/Down) ��� ����',
+ todayTip : "��� ����) {0})",
+ format : "d/m/Y",
+ okText : " ����� ",
+ cancelText : "�����",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "����",
+ afterPageText : "{0} ����",
+ firstText : "���� �����",
+ prevText : "���� ����",
+ nextText : "���� ���",
+ lastText : "���� �����",
+ refreshText : "����",
+ displayMsg : "���� {0} - {1} ���� {2}",
+ emptyMsg : '��� ���� �����'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "{0} ����� ��������� ���� �� ���",
+ maxLengthText : "{0} ����� ������ ���� �� ���",
+ blankText : "��� �� �����",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "{0} ���� ��������� ���� �� ���",
+ maxText : "{0} ���� ������ ���� �� ���",
+ nanText : "��� �� ���� {0}"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "������",
+ disabledDatesText : "������",
+ minText : "{0} ������ ���� �� ���� ����� ����",
+ maxText : "{0} ������ ���� �� ���� ����� ����",
+ invalidText : "{1} ��� �� ����� ���� - ���� ����� ������ {0}",
+ format : "m/d/y",
+ altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "...����",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : '"user@example.com" ��� �� ���� ����� ����� ���� �������� ������',
+ urlText : '"http:/'+'/www.example.com" ��� �� ���� ����� ����� ������� ������',
+ alphaText : '_��� �� ���� ����� �� ������ �',
+ alphanumText : '_��� �� ���� ����� �� ������, ������ �'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : ':��� ���� �� ����� �������� ���� ������',
+ buttonTips : {
+ bold : {
+ title: '(Ctrl+B) �����',
+ text: '.���� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: '(Ctrl+I) ����',
+ text: '.��� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: '(Ctrl+U) �� ����',
+ text: '.���� �� ���� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: '���� ����',
+ text: '.���� ���� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: '���� ����',
+ text: '.���� ���� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: '��� ��� �����',
+ text: '.��� �� ��� ���� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: '��� ����',
+ text: '.��� �� ��� ����� ���� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: '���� �����',
+ text: '.��� ����� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: '���� �����',
+ text: '.��� ����� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: '���� �����',
+ text: '.��� ����� �� ����� �����',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: '����� ������',
+ text: '.���� ����� ������',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: '����� �������',
+ text: '.���� ����� �������',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: '�����',
+ text: '.���� �� ����� ����� ������',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: '����� ��� ����',
+ text: '.��� ��� ����',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "���� ���� ����",
+ sortDescText : "���� ���� ����",
+ lockText : "��� �����",
+ unlockText : "���� �����",
+ columnsText : "������"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(���)',
+ groupByText : '��� ������� ��� ��� ��',
+ showGroupsText : '��� �������'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "��",
+ valueText : "���",
+ dateFormat : "m/j/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : ".���� ������ ����",
+ collapsibleSplitTip : ".���� ������ ����. ����� ����� ������"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-hr.js b/gulliver/js/ext/locale/ext-lang-hr.js
new file mode 100644
index 000000000..24f793c5d
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-hr.js
@@ -0,0 +1,296 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Croatian translation
+ * By Ylodi (utf8 encoding)
+ * 8 May 2007
+ *
+ * By Stjepan at gmail dot com (utf8 encoding)
+ * 17 May 2008
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Učitavanje...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} odabranih redova";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zatvori ovaj tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Unesena vrijednost u ovom polju je neispravna";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Učitavanje...";
+}
+
+Date.monthNames = [
+ "Siječanj",
+ "Veljača",
+ "Ožujak",
+ "Travanj",
+ "Svibanj",
+ "Lipanj",
+ "Srpanj",
+ "Kolovoz",
+ "Rujan",
+ "Listopad",
+ "Studeni",
+ "Prosinac"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Nedjelja",
+ "Ponedjeljak",
+ "Utorak",
+ "Srijeda",
+ "Četvrtak",
+ "Petak",
+ "Subota"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "U redu",
+ cancel : "Odustani",
+ yes : "Da",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Danas",
+ minText : "Taj datum je prije najmanjeg datuma",
+ maxText : "Taj datum je poslije najvećeg datuma",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Slijedeći mjesec (Control+Desno)',
+ prevText : 'Prethodni mjesec (Control+Lijevo)',
+ monthYearText : 'Odaberite mjesec (Control+Gore/Dolje za promjenu godine)',
+ todayTip : "{0} (Razmaknica)",
+ format : "d.m.y",
+ okText : " U redu ",
+ cancelText : "Odustani",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Stranica",
+ afterPageText : "od {0}",
+ firstText : "Prva stranica",
+ prevText : "Prethodna stranica",
+ nextText : "Slijedeća stranica",
+ lastText : "Posljednja stranica",
+ refreshText : "Obnovi",
+ displayMsg : "Prikazujem {0} - {1} od {2}",
+ emptyMsg : 'Nema podataka za prikaz'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalna dužina za ovo polje je {0}",
+ maxLengthText : "Maksimalna dužina za ovo polje je {0}",
+ blankText : "Ovo polje je obavezno",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalna vrijednost za ovo polje je {0}",
+ maxText : "Maksimalna vrijednost za ovo polje je {0}",
+ nanText : "{0} nije ispravan broj"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Neaktivno",
+ disabledDatesText : "Neaktivno",
+ minText : "Datum u ovom polje mora biti poslije {0}",
+ maxText : "Datum u ovom polju mora biti prije {0}",
+ invalidText : "{0} nije ispravan datum - mora biti u obliku {1}",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Učitavanje...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ovdje možete unijeti samo e-mail adresu u obliku "korisnik@domena.com"',
+ urlText : 'Ovdje možete unijeti samo URL u obliku "http:/'+'/www.domena.com"',
+ alphaText : 'Ovo polje može sadržavati samo slova i znak _',
+ alphanumText : 'Ovo polje može sadržavati samo slova, brojeve i znak _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Unesite URL za link:',
+ buttonTips : {
+ bold : {
+ title: 'Podebljano (Ctrl+B)',
+ text: 'Podebljavanje označenog teksta.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kurziv (Ctrl+I)',
+ text: 'Pretvaranje označenog tekst u kurziv',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Podcrtano (Ctrl+U)',
+ text: 'Potcrtavanje označenog teksta',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Povećanje teksta',
+ text: 'Povećavanje veličine fonta.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Smanjivanje teksta',
+ text: 'Smanjivanje veličine fonta.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Boja označenog teksta',
+ text: 'Promjena boje pozadine označenog teksta.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Boja fonta',
+ text: 'Promjena boje označenog teksta.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Lijevo poravnanje teksta',
+ text: 'Poravnanje teksta na lijevu stranu.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centriranje teksta',
+ text: 'Centriranje teksta u uređivaču teksta.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Desno poravnanje teksta',
+ text: 'Poravnanje teksta na desnu stranu.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Označena lista',
+ text: 'Započinjanje označene liste.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numerirana lista',
+ text: 'Započinjanje numerirane liste.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hiperveza',
+ text: 'Stvaranje hiperveze od označenog teksta.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Uređivanje izvornog koda',
+ text: 'Prebacivanje u način rada za uređivanje izvornog koda.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortiraj rastućim redoslijedom",
+ sortDescText : "Sortiraj padajućim redoslijedom",
+ lockText : "Zaključaj stupac",
+ unlockText : "Otključaj stupac",
+ columnsText : "Stupci"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Ništa)',
+ groupByText : 'Grupiranje po ovom polju',
+ showGroupsText : 'Prikaz u grupama'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Naziv",
+ valueText : "Vrijednost",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Povuci za promjenu veličine.",
+ collapsibleSplitTip : "Povuci za promjenu veličine. Dvostruki klik za skrivanje."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-hu.js b/gulliver/js/ext/locale/ext-lang-hu.js
new file mode 100644
index 000000000..6606357d3
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-hu.js
@@ -0,0 +1,297 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Hungarian Translations (utf-8 encoded)
+ * by Amon (27 Apr 2008)
+ * encoding fixed by Vili (17 Feb 2009)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Betöltés...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} kiválasztott sor";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fül bezárása";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Hibás érték!";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Betöltés...";
+}
+
+Date.monthNames = [
+ "Január",
+ "Február",
+ "Március",
+ "Április",
+ "Május",
+ "Június",
+ "Július",
+ "Augusztus",
+ "Szeptember",
+ "Október",
+ "November",
+ "December"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ 'Jan' : 0,
+ 'Feb' : 1,
+ 'Már' : 2,
+ 'Ápr' : 3,
+ 'Máj' : 4,
+ 'Jún' : 5,
+ 'Júl' : 6,
+ 'Aug' : 7,
+ 'Sze' : 8,
+ 'Okt' : 9,
+ 'Nov' : 10,
+ 'Dec' : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Vasárnap",
+ "Hétfő",
+ "Kedd",
+ "Szerda",
+ "Csütörtök",
+ "Péntek",
+ "Szombat"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Mégsem",
+ yes : "Igen",
+ no : "Nem"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y m d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Mai nap",
+ minText : "A dátum korábbi a megengedettnél",
+ maxText : "A dátum későbbi a megengedettnél",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Köv. hónap (CTRL+Jobbra)',
+ prevText : 'Előző hónap (CTRL+Balra)',
+ monthYearText : 'Válassz hónapot (Évválasztás: CTRL+Fel/Le)',
+ todayTip : "{0} (Szóköz)",
+ format : "y-m-d",
+ okText : " OK ",
+ cancelText : "Mégsem",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Oldal",
+ afterPageText : "a {0}-ból/ből",
+ firstText : "Első oldal",
+ prevText : "Előző oldal",
+ nextText : "Következő oldal",
+ lastText : "Utolsó oldal",
+ refreshText : "Frissítés",
+ displayMsg : "{0} - {1} sorok láthatók a {2}-ból/ből",
+ emptyMsg : 'Nincs megjeleníthető adat'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "A mező tartalma legalább {0} hosszú kell legyen",
+ maxLengthText : "A mező tartalma legfeljebb {0} hosszú lehet",
+ blankText : "Kötelezően kitöltendő mező",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "A mező tartalma nem lehet kissebb, mint {0}",
+ maxText : "A mező tartalma nem lehet nagyobb, mint {0}",
+ nanText : "{0} nem szám"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Nem választható",
+ disabledDatesText : "Nem választható",
+ minText : "A dátum nem lehet korábbi, mint {0}",
+ maxText : "A dátum nem lehet későbbi, mint {0}",
+ invalidText : "{0} nem megfelelő dátum - a helyes formátum: {1}",
+ format : "Y m d",
+ altFormats : "Y-m-d|y-m-d|y/m/d|m/d|m-d|md|ymd|Ymd|d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Betöltés...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'A mező email címet tartalmazhat, melynek formátuma "felhasználó@szolgáltató.hu"',
+ urlText : 'A mező webcímet tartalmazhat, melynek formátuma "http:/'+'/www.weboldal.hu"',
+ alphaText : 'A mező csak betűket és aláhúzást (_) tartalmazhat',
+ alphanumText : 'A mező csak betűket, számokat és aláhúzást (_) tartalmazhat'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Add meg a webcímet:',
+ buttonTips : {
+ bold : {
+ title: 'Félkövér (Ctrl+B)',
+ text: 'Félkövérré teszi a kijelölt szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Dőlt (Ctrl+I)',
+ text: 'Dőlté teszi a kijelölt szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Aláhúzás (Ctrl+U)',
+ text: 'Aláhúzza a kijelölt szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Szöveg nagyítás',
+ text: 'Növeli a szövegméretet.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Szöveg kicsinyítés',
+ text: 'Csökkenti a szövegméretet.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Háttérszín',
+ text: 'A kijelölt szöveg háttérszínét módosítja.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Szövegszín',
+ text: 'A kijelölt szöveg színét módosítja.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Balra zárt',
+ text: 'Balra zárja a szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Középre zárt',
+ text: 'Középre zárja a szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Jobbra zárt',
+ text: 'Jobbra zárja a szöveget.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Felsorolás',
+ text: 'Felsorolást kezd.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Számozás',
+ text: 'Számozott listát kezd.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hiperlink',
+ text: 'A kijelölt szöveget linkké teszi.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Forrás nézet',
+ text: 'Forrás nézetbe kapcsol.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Növekvő rendezés",
+ sortDescText : "Csökkenő rendezés",
+ lockText : "Oszlop zárolás",
+ unlockText : "Oszlop feloldás",
+ columnsText : "Oszlopok"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Nincs)',
+ groupByText : 'Oszlop szerint csoportosítás',
+ showGroupsText : 'Csoportos nézet'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Név",
+ valueText : "Érték",
+ dateFormat : "Y m j"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Átméretezés húzásra.",
+ collapsibleSplitTip : "Átméretezés húzásra. Eltüntetés duplaklikk."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-id.js b/gulliver/js/ext/locale/ext-lang-id.js
new file mode 100644
index 000000000..29eacd7d8
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-id.js
@@ -0,0 +1,303 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Pedoman translasi:
+ * http://id.wikisource.org/wiki/Panduan_Pembakuan_Istilah,_Pelaksanaan_Instruksi_Presiden_Nomor_2_Tahun_2001_Tentang_Penggunaan_Komputer_Dengan_Aplikasi_Komputer_Berbahasa_Indonesia
+ * Original source: http://vlsm.org/etc/baku-0.txt
+ * by Farid GS
+ * farid [at] pulen.net
+ * 10:13 04 Desember 2007
+ * Indonesian Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Pemuatan...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} selected row(s)";
+ Ext.grid.GridPanel.prototype.ddText = "{0} baris terpilih";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Close this tab";
+ Ext.TabPanelItem.prototype.closeText = "Tutup tab ini";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "The value in this field is invalid";
+ Ext.form.Field.prototype.invalidText = "Isian belum benar";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Loading...";
+ Ext.LoadMask.prototype.msg = "Pemuatan...";
+}
+
+Date.monthNames = [
+ "Januari",
+ "Februari",
+ "Maret",
+ "April",
+ "Mei",
+ "Juni",
+ "Juli",
+ "Agustus",
+ "September",
+ "Oktober",
+ "November",
+ "Desember"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ Mei : 4,
+ Jun : 5,
+ Jul : 6,
+ Agu : 7,
+ Sep : 8,
+ Okt : 9,
+ Nov : 10,
+ Des : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Minggu",
+ "Senin",
+ "Selasa",
+ "Rabu",
+ "Kamis",
+ "Jumat",
+ "Sabtu"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Batal",
+ yes : "Ya",
+ no : "Tidak"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hari ini",
+ minText : "Tanggal ini sebelum batas tanggal minimal",
+ maxText : "Tanggal ini setelah batas tanggal maksimal",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Bulan Berikut (Kontrol+Kanan)',
+ prevText : 'Bulan Sebelum (Kontrol+Kiri)',
+ monthYearText : 'Pilih bulan (Kontrol+Atas/Bawah untuk pindah tahun)',
+ todayTip : "{0} (Spacebar)",
+ format : "d/m/y",
+ okText : " OK ",
+ cancelText : "Batal",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Hal",
+ afterPageText : "dari {0}",
+ firstText : "Hal. Pertama",
+ prevText : "Hal. Sebelum",
+ nextText : "Hal. Berikut",
+ lastText : "Hal. Akhir",
+ refreshText : "Segarkan",
+ displayMsg : "Menampilkan {0} - {1} dari {2}",
+ emptyMsg : 'Data tidak ditemukan'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Panjang minimal untuk field ini adalah {0}",
+ maxLengthText : "Panjang maksimal untuk field ini adalah {0}",
+ blankText : "Field ini wajib diisi",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Nilai minimal untuk field ini adalah {0}",
+ maxText : "Nilai maksimal untuk field ini adalah {0}",
+ nanText : "{0} bukan angka"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disfungsi",
+ disabledDatesText : "Disfungsi",
+ minText : "Tanggal dalam field ini harus setelah {0}",
+ maxText : "Tanggal dalam field ini harus sebelum {0}",
+ invalidText : "{0} tanggal salah - Harus dalam format {1}",
+ format : "d/m/y",
+ //altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
+ altFormats : "d/m/Y|d-m-y|d-m-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Pemuatan...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Field ini harus dalam format email seperti "user@example.com"',
+ urlText : 'Field ini harus dalam format URL seperti "http:/'+'/www.example.com"',
+ alphaText : 'Field ini harus terdiri dari huruf dan _',
+ alphanumText : 'Field ini haris terdiri dari huruf, angka dan _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Silakan masukkan URL untuk tautan:',
+ buttonTips : {
+ bold : {
+ title: 'Tebal (Ctrl+B)',
+ text: 'Buat tebal teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Miring (CTRL+I)',
+ text: 'Buat miring teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Garisbawah (CTRl+U)',
+ text: 'Garisbawahi teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Perbesar teks',
+ text: 'Perbesar ukuran fonta',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Perkecil teks',
+ text: 'Perkecil ukuran fonta',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Sorot Warna Teks',
+ text: 'Ubah warna latar teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Warna Fonta',
+ text: 'Ubah warna teks terpilih',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Rata Kiri',
+ text: 'Ratakan teks ke kiri',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Rata Tengah',
+ text: 'Ratakan teks ke tengah editor',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Rata Kanan',
+ text: 'Ratakan teks ke kanan',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Daftar Bulet',
+ text: 'Membuat daftar berbasis bulet',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Daftar Angka',
+ text: 'Membuat daftar berbasis angka',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hipertaut',
+ text: 'Buat teks terpilih sebagai Hipertaut',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Edit Kode Sumber',
+ text: 'Pindah dalam mode kode sumber',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Urut Naik",
+ sortDescText : "Urut Turun",
+ lockText : "Kancing Kolom",
+ unlockText : "Lepas Kunci Kolom",
+ columnsText : "Kolom"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Kosong)',
+ groupByText : 'Kelompokkan Berdasar Field Ini',
+ showGroupsText : 'Tampil Dalam Kelompok'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nama",
+ valueText : "Nilai",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Seret untuk ubah ukuran.",
+ collapsibleSplitTip : "Seret untuk ubah ukuran, Dobel klik untuk sembunyikan."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-it.js b/gulliver/js/ext/locale/ext-lang-it.js
new file mode 100644
index 000000000..9ab342fd7
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-it.js
@@ -0,0 +1,298 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Italian translation
+ * By eric_void
+ * 04-10-2007, 11:25 AM
+ * Updated by Federico Grilli 21/12/2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Caricamento in corso...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} righe selezionate";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Chiudi pannello";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Valore non valido";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Caricamento in corso...";
+}
+
+Date.monthNames = [
+ "Gennaio",
+ "Febbraio",
+ "Marzo",
+ "Aprile",
+ "Maggio",
+ "Giugno",
+ "Luglio",
+ "Agosto",
+ "Settembre",
+ "Ottobre",
+ "Novembre",
+ "Dicembre"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Gen : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ Mag : 4,
+ Giu : 5,
+ Lug : 6,
+ Ago : 7,
+ Set : 8,
+ Ott : 9,
+ Nov : 10,
+ Dic : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Domenica",
+ "Luned\u00EC",
+ "Marted\u00EC",
+ "Mercoled\u00EC",
+ "Gioved\u00EC",
+ "Venerd\u00EC",
+ "Sabato"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Annulla",
+ yes : "S\u00EC",
+ no : "No"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Oggi",
+ minText : "Data precedente alla data minima",
+ maxText : "Data successiva alla data massima",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Mese successivo (Ctrl+Destra)',
+ prevText : 'Mese precedente (Ctrl+Sinistra)',
+ monthYearText : 'Scegli un mese (Ctrl+Su/Giu per cambiare anno)',
+ todayTip : "{0} (Barra spaziatrice)",
+ format : "d/m/y",
+ cancelText : "Annulla",
+ okText : " OK ",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Pagina",
+ afterPageText : "di {0}",
+ firstText : "Prima pagina",
+ prevText : "Pagina precedente",
+ nextText : "Pagina successiva",
+ lastText : "Ultima pagina",
+ refreshText : "Aggiorna",
+ displayMsg : "Record {0} - {1} di {2}",
+ emptyMsg : 'Nessun dato da mostrare'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "La lunghezza minima \u00E8 {0}",
+ maxLengthText : "La lunghezza massima \u00E8 {0}",
+ blankText : "Campo obbligatorio",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ decimalSeparator : ",",
+ decimalPrecision : 2,
+ minText : "Il valore minimo \u00E8 {0}",
+ maxText : "Il valore massimo \u00E8 {0}",
+ nanText : "{0} non \u00E8 un valore numerico corretto"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disabilitato",
+ disabledDatesText : "Disabilitato",
+ minText : "La data deve essere successiva al {0}",
+ maxText : "La data deve essere precedente al {0}",
+ invalidText : "{0} non \u00E8 una data valida. Deve essere nel formato {1}",
+ format : "d/m/y",
+ altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Caricamento in corso...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Il campo deve essere un indirizzo e-mail nel formato "user@example.com"',
+ urlText : 'Il campo deve essere un indirizzo web nel formato "http:/'+'/www.example.com"',
+ alphaText : 'Il campo deve contenere solo lettere e _',
+ alphanumText : 'Il campo deve contenere solo lettere, numeri e _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Inserire un URL per il link:',
+ buttonTips : {
+ bold : {
+ title: 'Grassetto (Ctrl+B)',
+ text: 'Rende il testo selezionato in grassetto.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Corsivo (Ctrl+I)',
+ text: 'Rende il testo selezionato in corsivo.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Sottolinea (Ctrl+U)',
+ text: 'Sottolinea il testo selezionato.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Ingrandisci testo',
+ text: 'Aumenta la dimensione del carattere.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Rimpicciolisci testo',
+ text: 'Diminuisce la dimensione del carattere.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Colore evidenziatore testo',
+ text: 'Modifica il colore di sfondo del testo selezionato.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Colore carattere',
+ text: 'Modifica il colore del testo selezionato.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Allinea a sinistra',
+ text: 'Allinea il testo a sinistra.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centra',
+ text: 'Centra il testo.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Allinea a destra',
+ text: 'Allinea il testo a destra.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Elenco puntato',
+ text: 'Elenco puntato.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Elenco numerato',
+ text: 'Elenco numerato.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Collegamento',
+ text: 'Trasforma il testo selezionato in un collegamanto.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Sorgente',
+ text: 'Passa alla modalit\u00E0 editing del sorgente.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordinamento crescente",
+ sortDescText : "Ordinamento decrescente",
+ lockText : "Blocca colonna",
+ unlockText : "Sblocca colonna",
+ columnsText : "Colonne"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Nessun dato)',
+ groupByText : 'Raggruppa per questo campo',
+ showGroupsText : 'Mostra nei gruppi'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nome",
+ valueText : "Valore",
+ dateFormat : "j/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Trascina per cambiare dimensioni.",
+ collapsibleSplitTip : "Trascina per cambiare dimensioni. Doppio click per nascondere."
+ });
+}
+
diff --git a/gulliver/js/ext/locale/ext-lang-ja.js b/gulliver/js/ext/locale/ext-lang-ja.js
new file mode 100644
index 000000000..f3798fe21
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-ja.js
@@ -0,0 +1,319 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Japanese translation
+ * By tyama
+ * 04-08-2007, 05:49 AM
+ *
+ * update based on English Translations by Condor (8 Aug 2008)
+ * By sakuro (30 Aug 2008)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '読み込み中...
';
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} 行選択";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "読み込み中...";
+}
+
+Date.monthNames = [
+ '1月',
+ '2月',
+ '3月',
+ '4月',
+ '5月',
+ '6月',
+ '7月',
+ '8月',
+ '9月',
+ '10月',
+ '11月',
+ '12月'
+];
+
+Date.getShortMonthName = function(month) {
+ return "" + (month + 1);
+};
+
+Date.monthNumbers = {
+ "1" : 0,
+ "2" : 1,
+ "3" : 2,
+ "4" : 3,
+ "5" : 4,
+ "6" : 5,
+ "7" : 6,
+ "8" : 7,
+ "9" : 8,
+ "10" : 9,
+ "11" : 10,
+ "12" : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, name.length - 1)];
+ // or simply parseInt(name.substring(0, name.length - 1)) - 1
+};
+
+Date.dayNames = [
+ "日曜日",
+ "月曜日",
+ "火曜日",
+ "水曜日",
+ "木曜日",
+ "金曜日",
+ "土曜日"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 1); // just remove "曜日" suffix
+};
+
+Date.formatCodes.a = "(this.getHours() < 12 ? '午前' : '午後')";
+Date.formatCodes.A = "(this.getHours() < 12 ? '午前' : '午後')"; // no case difference
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "キャンセル",
+ yes : "はい",
+ no : "いいえ"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y/m/d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "今日",
+ minText : "選択した日付は最小値以下です。",
+ maxText : "選択した日付は最大値以上です。",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : '次月へ (コントロール+右)',
+ prevText : '前月へ (コントロール+左)',
+ monthYearText : '月選択 (コントロール+上/下で年移動)',
+ todayTip : "{0} (スペースキー)",
+ format : "Y/m/d",
+ okText : "OK",
+ cancelText : "キャンセル",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "ページ",
+ afterPageText : "/ {0}",
+ firstText : "最初のページ",
+ prevText : "前のページ",
+ nextText : "次のページ",
+ lastText : "最後のページ",
+ refreshText : "更新",
+ displayMsg : "{2} 件中 {0} - {1} を表示",
+ emptyMsg : '表示するデータがありません。'
+ });
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "フィールドの値が不正です。";
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "このフィールドの最小値は {0} です。",
+ maxLengthText : "このフィールドの最大値は {0} です。",
+ blankText : "必須項目です。",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ decimalSeparator : ".",
+ decimalPrecision : 2,
+ minText : "このフィールドの最小値は {0} です。",
+ maxText : "このフィールドの最大値は {0} です。",
+ nanText : "{0} は数値ではありません。"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "無効",
+ disabledDatesText : "無効",
+ minText : "このフィールドの日付は、 {0} 以降の日付に設定してください。",
+ maxText : "このフィールドの日付は、 {0} 以前の日付に設定してください。",
+ invalidText : "{0} は間違った日付入力です。 - 入力形式は「{1}」です。",
+ format : "Y/m/d",
+ altFormats : "y/m/d|m/d/y|m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "読み込み中...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'メールアドレスを"user@example.com"の形式で入力してください。',
+ urlText : 'URLを"http:/'+'/www.example.com"の形式で入力してください。',
+ alphaText : '半角英字と"_"のみです。',
+ alphanumText : '半角英数と"_"のみです。'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'リンクのURLを入力してください:',
+ buttonTips : {
+ bold : {
+ title: '太字 (コントロール+B)',
+ text: '選択テキストを太字にします。',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: '斜体 (コントロール+I)',
+ text: '選択テキストを斜体にします。',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: '下線 (コントロール+U)',
+ text: '選択テキストに下線を引きます。',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: '文字を大きく',
+ text: 'フォントサイズを大きくします。',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: '文字を小さく',
+ text: 'フォントサイズを小さくします。',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: '文字のハイライト',
+ text: '選択テキストの背景色を変更します。',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: '文字の色',
+ text: '選択テキストの色を変更します。',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: '左揃え',
+ text: 'テキストを左揃えにします。',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: '中央揃え',
+ text: 'テキストを中央揃えにします。',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: '右揃え',
+ text: 'テキストを右揃えにします。',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: '番号なし箇条書き',
+ text: '番号なし箇条書きを開始します。',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: '番号付き箇条書き',
+ text: '番号付き箇条書きを開始します。',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'ハイパーリンク',
+ text: '選択テキストをハイパーリンクにします。',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'ソース編集',
+ text: 'ソース編集モードに切り替えます。',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "昇順",
+ sortDescText : "降順",
+ columnsText : "カラム"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(なし)',
+ groupByText : 'このカラムでグルーピング',
+ showGroupsText : 'グルーピング'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "名称",
+ valueText : "値",
+ dateFormat : "Y/m/d"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "ドラッグするとリサイズできます。",
+ collapsibleSplitTip : "ドラッグでリサイズ。 ダブルクリックで隠す。"
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "このフィールドの時刻は、 {0} 以降の時刻に設定してください。",
+ maxText : "このフィールドの時刻は、 {0} 以前の時刻に設定してください。",
+ invalidText : "{0} は間違った時刻入力です。",
+ format : "g:i A",
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : "このグループから最低1つのアイテムを選択しなければなりません。"
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : "このグループから1つのアイテムを選択しなければなりません。"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-ko.js b/gulliver/js/ext/locale/ext-lang-ko.js
new file mode 100644
index 000000000..e0a476065
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-ko.js
@@ -0,0 +1,268 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Korean Translations By nicetip
+ * 05 September 2007
+ * Modify by techbug / 25 February 2008
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '로딩중...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} 개가 선택되었습니다.";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "닫기";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "올바른 값이 아닙니다.";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "로딩중...";
+}
+
+Date.monthNames = [
+ "1월",
+ "2월",
+ "3월",
+ "4월",
+ "5월",
+ "6월",
+ "7월",
+ "8월",
+ "9월",
+ "10월",
+ "11월",
+ "12월"
+];
+
+Date.dayNames = [
+ "일",
+ "월",
+ "화",
+ "수",
+ "목",
+ "금",
+ "토"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "확인",
+ cancel : "취소",
+ yes : "예",
+ no : "아니오"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "m/d/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "오늘",
+ minText : "최소 날짜범위를 넘었습니다.",
+ maxText : "최대 날짜범위를 넘었습니다.",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : '다음달(컨트롤키+오른쪽 화살표)',
+ prevText : '이전달 (컨트롤키+왼족 화살표)',
+ monthYearText : '월을 선택해주세요. (컨트롤키+위/아래 화살표)',
+ todayTip : "{0} (스페이스바)",
+ format : "m/d/y",
+ okText : "확인",
+ cancelText : "취소",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "페이지",
+ afterPageText : "/ {0}",
+ firstText : "첫 페이지",
+ prevText : "이전 페이지",
+ nextText : "다음 페이지",
+ lastText : "마지막 페이지",
+ refreshText : "새로고침",
+ displayMsg : "전체 {2} 중 {0} - {1}",
+ emptyMsg : '표시할 데이터가 없습니다.'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "최소길이는 {0}입니다.",
+ maxLengthText : "최대길이는 {0}입니다.",
+ blankText : "값을 입력해주세요.",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "최소값은 {0}입니다.",
+ maxText : "최대값은 {0}입니다.",
+ nanText : "{0}는 올바른 숫자가 아닙니다."
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "비활성",
+ disabledDatesText : "비활성",
+ minText : "{0}일 이후여야 합니다.",
+ maxText : "{0}일 이전이어야 합니다.",
+ invalidText : "{0}는 올바른 날짜형식이 아닙니다. - 다음과 같은 형식이어야 합니다. {1}",
+ format : "m/d/y",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "로딩중...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : '이메일 주소 형식에 맞게 입력해야합니다. (예: "user@example.com")',
+ urlText : 'URL 형식에 맞게 입력해야합니다. (예: "http:/'+'/www.example.com")',
+ alphaText : '영문, 밑줄(_)만 입력할 수 있습니다.',
+ alphanumText : '영문, 숫자, 밑줄(_)만 입력할 수 있습니다.'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'URL을 입력해주세요:',
+ buttonTips : {
+ bold : {
+ title: '굵게 (Ctrl+B)',
+ text: '선택한 텍스트를 굵게 표시합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: '기울임꼴 (Ctrl+I)',
+ text: '선택한 텍스트를 기울임꼴로 표시합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: '밑줄 (Ctrl+U)',
+ text: '선택한 텍스트에 밑줄을 표시합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: '글꼴크기 늘림',
+ text: '글꼴 크기를 크게 합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: '글꼴크기 줄임',
+ text: '글꼴 크기를 작게 합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: '텍스트 강조 색',
+ text: '선택한 텍스트의 배경색을 변경합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: '글꼴색',
+ text: '선택한 텍스트의 색을 변경합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: '텍스트 왼쪽 맞춤',
+ text: '왼쪽에 텍스트를 맞춥니다.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: '가운데 맞춤',
+ text: '가운데에 텍스트를 맞춥니다.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: '텍스트 오른쪽 맞춤',
+ text: '오른쪽에 텍스트를 맞춥니다.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: '글머리 기호',
+ text: '글머리 기호 목록을 시작합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: '번호 매기기',
+ text: '번호 매기기 목록을 시작합니다.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: '하이퍼링크',
+ text: '선택한 텍스트에 하이퍼링크를 만듭니다.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: '소스편집',
+ text: '소스편집 모드로 변환합니다.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "오름차순 정렬",
+ sortDescText : "내림차순 정렬",
+ lockText : "칼럼 잠금",
+ unlockText : "칼럼 잠금해제",
+ columnsText : "칼럼 목록"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(None)',
+ groupByText : '현재 필드로 그룹핑합니다.',
+ showGroupsText : '그룹으로 보여주기'
+
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "항목",
+ valueText : "값",
+ dateFormat : "m/j/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "크기변경을 위해 드래그하세요.",
+ collapsibleSplitTip : "크기변경을 위해 드래그, 숨기기 위해 더블클릭 하세요."
+ });
+}
+
diff --git a/gulliver/js/ext/locale/ext-lang-lt.js b/gulliver/js/ext/locale/ext-lang-lt.js
new file mode 100644
index 000000000..bbbbdc8b1
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-lt.js
@@ -0,0 +1,334 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Lithuanian Translations (UTF-8)
+ * Vladas Saulis (vladas at prodata dot lt), 03-29-2009
+ * Vladas Saulis (vladas at prodata dot lt), 10-18-2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Kraunasi...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = "";
+}
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} pažymėtų eilučių";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Uždaryti šią užsklandą";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Šio lauko reikšmė neteisinga";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Kraunasi...";
+}
+
+Date.monthNames = [
+ "Sausis",
+ "Vasaris",
+ "Kovas",
+ "Balandis",
+ "Gegužė",
+ "Birželis",
+ "Liepa",
+ "Rugpjūtis",
+ "Rugsėjis",
+ "Spalis",
+ "Lapkritis",
+ "Gruodis"
+];
+
+Date.getShortMonthName = function(month) {
+ // Uncommons
+ if (month == 7) return "Rgp";
+ if (month == 8) return "Rgs";
+ if (month == 11) return "Grd";
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Sau : 0,
+ Vas : 1,
+ Kov : 2,
+ Bal : 3,
+ Geg : 4,
+ Bir : 5,
+ Lie : 6,
+ Rgp : 7,
+ Rgs : 8,
+ Spa : 9,
+ Lap : 10,
+ Grd : 11
+};
+
+Date.getMonthNumber = function(name) {
+
+ // Some uncommons
+ if (name == "Rugpjūtis") return 7;
+ if (name == "Rugsėjis") return 8;
+ if (name == "Gruodis") return 11;
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Sekmadienis",
+ "Pirmadienis",
+ "Antradienis",
+ "Trečiadienis",
+ "Ketvirtadienis",
+ "Penktadienis",
+ "Šeštadienis"
+];
+
+Date.parseCodes.S.s = "(?:as|as|as|as)";
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Gerai",
+ cancel : "Atsisakyti",
+ yes : "Taip",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y-m-d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Šiandien",
+ minText : "Ši data yra mažesnė už leistiną",
+ maxText : "Ši data yra didesnė už leistiną",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Kitas mėnuo (Control+Right)',
+ prevText : 'Ankstesnis mėnuo (Control+Left)',
+ monthYearText : 'Pasirinkti mėnesį (Control+Up/Down perėjimui tarp metų)',
+ todayTip : "{0} (Tarpas)",
+ format : "y-m-d",
+ okText : " Gerai ",
+ cancelText : "Atsisaktyi",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Puslapis",
+ afterPageText : "iš {0}",
+ firstText : "Pirmas puslapis",
+ prevText : "Ankstesnis pusl.",
+ nextText : "Kitas puslapis",
+ lastText : "Pakutinis pusl.",
+ refreshText : "Atnaujinti",
+ displayMsg : "Rodomi įrašai {0} - {1} iš {2}",
+ emptyMsg : 'Nėra duomenų'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalus šio lauko ilgis yra {0}",
+ maxLengthText : "Maksimalus šio lauko ilgis yra {0}",
+ blankText : "Šis laukas yra privalomas",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalus šio lauko ilgis yra {0}",
+ maxText : "Maksimalus šio lauko ilgis yra {0}",
+ nanText : "{0} yra neleistina reikšmė"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Neprieinama",
+ disabledDatesText : "Neprieinama",
+ minText : "Šiame lauke data turi būti didesnė už {0}",
+ maxText : "Šiame lauke data turi būti mažesnėė už {0}",
+ invalidText : "{0} yra neteisinga data - ji turi būti įvesta formatu {1}",
+ format : "y-m-d",
+ altFormats : "y-m-d|y/m/d|Y-m-d|m/d|m-d|md|ymd|Ymd|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Kraunasi...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Šiame lauke turi būti el.pašto adresas formatu "user@example.com"',
+ urlText : 'Šiame lauke turi būti nuoroda (URL) formatu "http:/'+'/www.example.com"',
+ alphaText : 'Šiame lauke gali būti tik raidės ir ženklas "_"',
+ alphanumText : 'Šiame lauke gali būti tik raidės, skaičiai ir ženklas "_"'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Įveskite URL šiai nuorodai:',
+ buttonTips : {
+ bold : {
+ title: 'Bold (Ctrl+B)',
+ text: 'Teksto paryškinimas.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italic (Ctrl+I)',
+ text: 'Kursyvinis tekstas.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Underline (Ctrl+U)',
+ text: 'Teksto pabraukimas.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Padidinti šriftą',
+ text: 'Padidinti šrifto dydį.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Sumažinti šriftą',
+ text: 'Sumažinti šrifto dydį.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Nuspalvinti teksto foną',
+ text: 'Pakeisti teksto fono spalvą.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Teksto spalva',
+ text: 'Pakeisti pažymėto teksto spalvą.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Išlyginti kairen',
+ text: 'Išlyginti tekstą į kairę.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centruoti tekstą',
+ text: 'Centruoti tektą redaktoriaus lange.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Išlyginti dešinėn',
+ text: 'Išlyginti tekstą į dešinę.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Paprastas sąrašas',
+ text: 'Pradėti neorganizuotą sąrašą.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numeruotas sąrašas',
+ text: 'Pradėti numeruotą sąrašą.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Nuoroda',
+ text: 'Padaryti pažymėta tekstą nuoroda.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Išeities tekstas',
+ text: 'Persijungti į išeities teksto koregavimo režimą.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "Palaukite...";
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Rūšiuoti didėjančia tvarka",
+ sortDescText : "Rūšiuoti mažėjančia tvarka",
+ lockText : "Užfiksuoti stulpelį",
+ unlockText : "Atlaisvinti stulpelį",
+ columnsText : "Stulpeliai"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Nėra)',
+ groupByText : 'Grupuoti pagal šį lauką',
+ showGroupsText : 'Rodyti grupėse'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Pavadinimas",
+ valueText : "Reikšmė",
+ dateFormat : "Y-m-d"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Patraukite juostelę.",
+ collapsibleSplitTip : "Patraukite juostelę arba Paspauskite dvigubai kad paslėpti."
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText : "Laikas turi buti lygus arba vėlesnis už {0}",
+ maxText : "Laikas turi būti lygus arba ankstesnis už {0}",
+ invalidText : "{0} yra neteisingas laikas",
+ format : "H:i",
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : "Jūs turite padaryti bent vieną pasirinkimą šioje grupėje"
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : "Jūs turite padaryti bent vieną pasirinkimą šioje grupėje"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-lv.js b/gulliver/js/ext/locale/ext-lang-lv.js
new file mode 100644
index 000000000..bbdb15091
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-lv.js
@@ -0,0 +1,177 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Latvian Translations
+ * By salix 17 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Notiek ielāde...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} iezīmētu rindu";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Aizver šo zīmni";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Vērtība šajā laukā nav pareiza";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Ielādē...";
+}
+
+Date.monthNames = [
+ "Janvāris",
+ "Februāris",
+ "Marts",
+ "Aprīlis",
+ "Maijs",
+ "Jūnijs",
+ "Jūlijs",
+ "Augusts",
+ "Septembris",
+ "Oktobris",
+ "Novembris",
+ "Decembris"
+];
+
+Date.dayNames = [
+ "Svētdiena",
+ "Pirmdiena",
+ "Otrdiena",
+ "Trešdiena",
+ "Ceturtdiena",
+ "Piektdiena",
+ "Sestdiena"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Labi",
+ cancel : "Atcelt",
+ yes : "Jā",
+ no : "Nē"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Šodiena",
+ minText : "Norādītais datums ir mazāks par minimālo datumu",
+ maxText : "Norādītais datums ir lielāks par maksimālo datumu",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Nākamais mēnesis (Control+pa labi)',
+ prevText : 'Iepriekšējais mēnesis (Control+pa kreisi)',
+ monthYearText : 'Mēneša izvēle (Control+uz augšu/uz leju lai pārslēgtu gadus)',
+ todayTip : "{0} (Tukšumzīme)",
+ format : "d.m.Y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Lapa",
+ afterPageText : "no {0}",
+ firstText : "Pirmā lapa",
+ prevText : "iepriekšējā lapa",
+ nextText : "Nākamā lapa",
+ lastText : "Pēdējā lapa",
+ refreshText : "Atsvaidzināt",
+ displayMsg : "Rāda no {0} līdz {1} ierakstiem, kopā {2}",
+ emptyMsg : 'Nav datu, ko parādīt'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimālais garums šim laukam ir {0}",
+ maxLengthText : "Maksimālais garums šim laukam ir {0}",
+ blankText : "Šis ir obligāts lauks",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimālais garums šim laukam ir {0}",
+ maxText : "Maksimālais garums šim laukam ir {0}",
+ nanText : "{0} nav pareizs skaitlis"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Atspējots",
+ disabledDatesText : "Atspējots",
+ minText : "Datumam šajā laukā jābūt lielākam kā {0}",
+ maxText : "Datumam šajā laukā jābūt mazākam kā {0}",
+ invalidText : "{0} nav pareizs datums - tam jābūt šādā formātā: {1}",
+ format : "d.m.Y",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Ielādē...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Šajā laukā jāieraksta e-pasta adrese formātā "lietotās@domēns.lv"',
+ urlText : 'Šajā laukā jāieraksta URL formātā "http:/'+'/www.domēns.lv"',
+ alphaText : 'Šis lauks drīkst saturēt tikai burtus un _ zīmi',
+ alphanumText : 'Šis lauks drīkst saturēt tikai burtus, ciparus un _ zīmi'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Kārtot pieaugošā secībā",
+ sortDescText : "Kārtot dilstošā secībā",
+ lockText : "Noslēgt kolonnu",
+ unlockText : "Atslēgt kolonnu",
+ columnsText : "Kolonnas"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nosaukums",
+ valueText : "Vērtība",
+ dateFormat : "j.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Velc, lai mainītu izmēru.",
+ collapsibleSplitTip : "Velc, lai mainītu izmēru. Dubultklikšķis noslēpj apgabalu."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-mk.js b/gulliver/js/ext/locale/ext-lang-mk.js
new file mode 100644
index 000000000..35ccdb8e8
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-mk.js
@@ -0,0 +1,176 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Macedonia translation
+ * By PetarD petar.dimitrijevic@vorteksed.com.mk (utf8 encoding)
+ * 23 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Вчитувам...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} избрани редици";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Затвори tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Вредноста во ова поле е невалидна";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Вчитувам...";
+}
+
+Date.monthNames = [
+ "Јануари",
+ "Февруари",
+ "Март",
+ "Април",
+ "Мај",
+ "Јуни",
+ "Јули",
+ "Август",
+ "Септември",
+ "Октомври",
+ "Ноември",
+ "Декември"
+];
+
+Date.dayNames = [
+ "Недела",
+ "Понеделник",
+ "Вторник",
+ "Среда",
+ "Четврток",
+ "Петок",
+ "Сабота"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Потврди",
+ cancel : "Поништи",
+ yes : "Да",
+ no : "Не"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Денеска",
+ minText : "Овој датум е пред најмалиот датум",
+ maxText : "Овој датум е пред најголемиот датум",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Следен месец (Control+Стрелка десно)',
+ prevText : 'Претходен месец (Control+Стрелка лево)',
+ monthYearText : 'Изберете месец (Control+Стрелка горе/Стрелка десно за менување година)',
+ todayTip : "{0} (Spacebar)",
+ format : "d.m.y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Страница",
+ afterPageText : "од {0}",
+ firstText : "Прва Страница",
+ prevText : "Претходна Страница",
+ nextText : "Следна Страница",
+ lastText : "Последна Страница",
+ refreshText : "Освежи",
+ displayMsg : "Прикажувам {0} - {1} од {2}",
+ emptyMsg : 'Нема податоци за приказ'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Минималната должина за ова поле е {0}",
+ maxLengthText : "Максималната должина за ова поле е {0}",
+ blankText : "Податоците во ова поле се потребни",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Минималната вредност за ова поле е {0}",
+ maxText : "Максималната вредност за ова поле е {0}",
+ nanText : "{0} не е валиден број"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Неактивно",
+ disabledDatesText : "Неактивно",
+ minText : "Датумот во ова поле мора да биде пред {0}",
+ maxText : "Датумот во ова поле мора да биде по {0}",
+ invalidText : "{0} не е валиден датум - мора да биде во формат {1}",
+ format : "d.m.y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Вчитувам...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ова поле треба да биде e-mail адреса во формат "user@example.com"',
+ urlText : 'Ова поле треба да биде URL во формат "http:/'+'/www.example.com"',
+ alphaText : 'Ова поле треба да содржи само букви и _',
+ alphanumText : 'Ова поле треба да содржи само букви, бројки и _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Сортирај Растечки",
+ sortDescText : "Сортирај Опаѓачки",
+ lockText : "Заклучи Колона",
+ unlockText : "Отклучи колона",
+ columnsText : "Колони"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Име",
+ valueText : "Вредност",
+ dateFormat : "m.d.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Повлечете за менување на големината.",
+ collapsibleSplitTip : "Повлечете за менување на големината. Дупли клик за криење."
+ });
+}
\ No newline at end of file
diff --git a/gulliver/js/ext/locale/ext-lang-nl.js b/gulliver/js/ext/locale/ext-lang-nl.js
new file mode 100644
index 000000000..1f1dc775c
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-nl.js
@@ -0,0 +1,324 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Dutch Translations
+ * by Ido Sebastiaan Bas van Oostveen (12 Oct 2007)
+ * updated to 2.2 by Condor (8 Aug 2008)
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Bezig met laden...
';
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = '';
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = '{0} geselecteerde rij(en)';
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = 'Bezig met laden...';
+}
+
+Date.monthNames = [
+ 'januari',
+ 'februari',
+ 'maart',
+ 'april',
+ 'mei',
+ 'juni',
+ 'juli',
+ 'augustus',
+ 'september',
+ 'oktober',
+ 'november',
+ 'december'
+];
+
+Date.getShortMonthName = function(month) {
+ if (month == 2) {
+ return 'mrt';
+ }
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ jan: 0,
+ feb: 1,
+ mrt: 2,
+ apr: 3,
+ mei: 4,
+ jun: 5,
+ jul: 6,
+ aug: 7,
+ sep: 8,
+ okt: 9,
+ nov: 10,
+ dec: 11
+};
+
+Date.getMonthNumber = function(name) {
+ var sname = name.substring(0, 3).toLowerCase();
+ if (sname == 'maa') {
+ return 2;
+ }
+ return Date.monthNumbers[sname];
+};
+
+Date.dayNames = [
+ 'zondag',
+ 'maandag',
+ 'dinsdag',
+ 'woensdag',
+ 'donderdag',
+ 'vrijdag',
+ 'zaterdag'
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+Date.parseCodes.S.s = "(?:ste|e)";
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok: 'OK',
+ cancel: 'Annuleren',
+ yes: 'Ja',
+ no: 'Nee'
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if (!v) return '';
+ if (!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || 'j-m-y');
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText: 'Vandaag',
+ minText: 'Deze datum is eerder dan de minimale datum',
+ maxText: 'Deze datum is later dan de maximale datum',
+ disabledDaysText: '',
+ disabledDatesText: '',
+ monthNames: Date.monthNames,
+ dayNames: Date.dayNames,
+ nextText: 'Volgende maand (Ctrl+rechts)',
+ prevText: 'Vorige maand (Ctrl+links)',
+ monthYearText: 'Kies een maand (Ctrl+omhoog/omlaag volgend/vorig jaar)',
+ todayTip: '{0} (spatie)',
+ format: 'j-m-y',
+ okText: ' OK ',
+ cancelText: 'Annuleren',
+ startDay: 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText: 'Pagina',
+ afterPageText: 'van {0}',
+ firstText: 'Eerste pagina',
+ prevText: 'Vorige pagina',
+ nextText: 'Volgende pagina',
+ lastText: 'Laatste pagina',
+ refreshText: 'Ververs',
+ displayMsg: 'Getoond {0} - {1} van {2}',
+ emptyMsg: 'Geen gegevens om weer te geven'
+ });
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = 'De waarde van dit veld is ongeldig';
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText: 'De minimale lengte van dit veld is {0}',
+ maxLengthText: 'De maximale lengte van dit veld is {0}',
+ blankText: 'Dit veld is verplicht',
+ regexText: '',
+ emptyText: null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ decimalSeparator : ",",
+ decimalPrecision : 2,
+ minText: 'De minimale waarde van dit veld is {0}',
+ maxText: 'De maximale waarde van dit veld is {0}',
+ nanText: '{0} is geen geldig getal'
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText: 'Uitgeschakeld',
+ disabledDatesText: 'Uitgeschakeld',
+ minText: 'De datum in dit veld moet na {0} liggen',
+ maxText: 'De datum in dit veld moet voor {0} liggen',
+ invalidText: '{0} is geen geldige datum - formaat voor datum is {1}',
+ format: 'j-m-y',
+ altFormats: 'd/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d',
+ startDay: 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText: 'Bezig met laden...',
+ valueNotFoundText: undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText: 'Dit veld moet een e-mail adres bevatten in het formaat "gebruiker@domein.nl"',
+ urlText: 'Dit veld moet een URL bevatten in het formaat "http:/'+'/www.domein.nl"',
+ alphaText: 'Dit veld mag alleen letters en _ bevatten',
+ alphanumText: 'Dit veld mag alleen letters, cijfers en _ bevatten'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText: 'Vul hier de URL voor de hyperlink in:',
+ buttonTips: {
+ bold: {
+ title: 'Vet (Ctrl+B)',
+ text: 'Maak de geselecteerde tekst vet.',
+ cls: 'x-html-editor-tip'
+ },
+ italic: {
+ title: 'Cursief (Ctrl+I)',
+ text: 'Maak de geselecteerde tekst cursief.',
+ cls: 'x-html-editor-tip'
+ },
+ underline: {
+ title: 'Onderstrepen (Ctrl+U)',
+ text: 'Onderstreep de geselecteerde tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize: {
+ title: 'Tekst vergroten',
+ text: 'Vergroot het lettertype.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize: {
+ title: 'Tekst verkleinen',
+ text: 'Verklein het lettertype.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor: {
+ title: 'Tekst achtergrondkleur',
+ text: 'Verander de achtergrondkleur van de geselecteerde tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor: {
+ title: 'Tekst kleur',
+ text: 'Verander de kleur van de geselecteerde tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft: {
+ title: 'Tekst links uitlijnen',
+ text: 'Lijn de tekst links uit.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter: {
+ title: 'Tekst centreren',
+ text: 'Centreer de tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright: {
+ title: 'Tekst rechts uitlijnen',
+ text: 'Lijn de tekst rechts uit.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist: {
+ title: 'Opsommingstekens',
+ text: 'Begin een ongenummerde lijst.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist: {
+ title: 'Genummerde lijst',
+ text: 'Begin een genummerde lijst.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink: {
+ title: 'Hyperlink',
+ text: 'Maak van de geselecteerde tekst een hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit: {
+ title: 'Bron aanpassen',
+ text: 'Schakel modus over naar bron aanpassen.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText: 'Sorteer oplopend',
+ sortDescText: 'Sorteer aflopend',
+ columnsText: 'Kolommen'
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText: '(Geen)',
+ groupByText: 'Dit veld groeperen',
+ showGroupsText: 'Toon in groepen'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText: 'Naam',
+ valueText: 'Waarde',
+ dateFormat: 'j-m-Y'
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip: 'Sleep om grootte aan te passen.',
+ collapsibleSplitTip: 'Sleep om grootte aan te passen. Dubbel klikken om te verbergen.'
+ });
+}
+
+if(Ext.form.TimeField){
+ Ext.apply(Ext.form.TimeField.prototype, {
+ minText: 'De tijd in dit veld moet op of na {0} liggen',
+ maxText: 'De tijd in dit veld moet op of voor {0} liggen',
+ invalidText: '{0} is geen geldig tijdstip',
+ format: 'G:i',
+ altFormats: 'g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H'
+ });
+}
+
+if(Ext.form.CheckboxGroup){
+ Ext.apply(Ext.form.CheckboxGroup.prototype, {
+ blankText : 'Selecteer minimaal een element in deze groep'
+ });
+}
+
+if(Ext.form.RadioGroup){
+ Ext.apply(Ext.form.RadioGroup.prototype, {
+ blankText : 'Selecteer een element in deze groep'
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-no_NB.js b/gulliver/js/ext/locale/ext-lang-no_NB.js
new file mode 100644
index 000000000..7fd204a46
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-no_NB.js
@@ -0,0 +1,295 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ *
+ * Norwegian translation (Bokmål: no-NB)
+ * By Tore Kjørsvik 21-January-2008
+ *
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Laster...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} markert(e) rad(er)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Lukk denne fanen";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Verdien i dette feltet er ugyldig";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Laster...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "Mars",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Desember"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ Mai : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Okt : 9,
+ Nov : 10,
+ Des : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Søndag",
+ "Mandag",
+ "Tirsdag",
+ "Onsdag",
+ "Torsdag",
+ "Fredag",
+ "Lørdag"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Avbryt",
+ yes : "Ja",
+ no : "Nei"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "I dag",
+ minText : "Denne datoen er før tidligste tillatte dato",
+ maxText : "Denne datoen er etter seneste tillatte dato",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Neste måned (Control+Pil Høyre)',
+ prevText : 'Forrige måned (Control+Pil Venstre)',
+ monthYearText : 'Velg en måned (Control+Pil Opp/Ned for å skifte år)',
+ todayTip : "{0} (Mellomrom)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Avbryt",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Side",
+ afterPageText : "av {0}",
+ firstText : "Første side",
+ prevText : "Forrige side",
+ nextText : "Neste side",
+ lastText : "Siste side",
+ refreshText : "Oppdater",
+ displayMsg : "Viser {0} - {1} av {2}",
+ emptyMsg : 'Ingen data å vise'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Den minste lengden for dette feltet er {0}",
+ maxLengthText : "Den største lengden for dette feltet er {0}",
+ blankText : "Dette feltet er påkrevd",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Den minste verdien for dette feltet er {0}",
+ maxText : "Den største verdien for dette feltet er {0}",
+ nanText : "{0} er ikke et gyldig nummer"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Deaktivert",
+ disabledDatesText : "Deaktivert",
+ minText : "Datoen i dette feltet må være etter {0}",
+ maxText : "Datoen i dette feltet må være før {0}",
+ invalidText : "{0} er ikke en gyldig dato - den må være på formatet {1}",
+ format : "d.m.y",
+ altFormats : "d.m.Y|d/m/y|d/m/Y|d-m-y|d-m-Y|d.m|d/m|d-m|dm|dmy|dmY|Y-m-d|d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Laster...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Dette feltet skal være en epost adresse på formatet "bruker@domene.no"',
+ urlText : 'Dette feltet skal være en link (URL) på formatet "http:/'+'/www.domene.no"',
+ alphaText : 'Dette feltet skal kun inneholde bokstaver og _',
+ alphanumText : 'Dette feltet skal kun inneholde bokstaver, tall og _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Vennligst skriv inn URL for lenken:',
+ buttonTips : {
+ bold : {
+ title: 'Fet (Ctrl+B)',
+ text: 'Gjør den valgte teksten fet.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursiv (Ctrl+I)',
+ text: 'Gjør den valgte teksten kursiv.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Understrek (Ctrl+U)',
+ text: 'Understrek den valgte teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Forstørr tekst',
+ text: 'Gjør fontstørrelse større.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Forminsk tekst',
+ text: 'Gjør fontstørrelse mindre.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Tekst markeringsfarge',
+ text: 'Endre bakgrunnsfarge til den valgte teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Font farge',
+ text: 'Endre farge på den valgte teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Venstrejuster tekst',
+ text: 'Venstrejuster teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Sentrer tekst',
+ text: 'Sentrer teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Høyrejuster tekst',
+ text: 'Høyrejuster teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Punktliste',
+ text: 'Start en punktliste.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Nummerert liste',
+ text: 'Start en nummerert liste.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Lenke',
+ text: 'Gjør den valgte teksten til en lenke.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Rediger kilde',
+ text: 'Bytt til kilderedigeringsvisning.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sorter stigende",
+ sortDescText : "Sorter synkende",
+ lockText : "Lås kolonne",
+ unlockText : "Lås opp kolonne",
+ columnsText : "Kolonner"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Ingen)',
+ groupByText : 'Grupper etter dette feltet',
+ showGroupsText : 'Vis i grupper'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Navn",
+ valueText : "Verdi",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Dra for å endre størrelse.",
+ collapsibleSplitTip : "Dra for å endre størrelse. Dobbelklikk for å skjule."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-no_NN.js b/gulliver/js/ext/locale/ext-lang-no_NN.js
new file mode 100644
index 000000000..1d19b6ef1
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-no_NN.js
@@ -0,0 +1,295 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ *
+ * Norwegian translation (Nynorsk: no-NN)
+ * By Tore Kjørsvik 21-January-2008
+ *
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Lastar...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} markert(e) rad(er)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Lukk denne fana";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Verdien i dette feltet er ugyldig";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Lastar...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "Mars",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Desember"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ Mai : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Okt : 9,
+ Nov : 10,
+ Des : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Søndag",
+ "Måndag",
+ "Tysdag",
+ "Onsdag",
+ "Torsdag",
+ "Fredag",
+ "Laurdag"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Avbryt",
+ yes : "Ja",
+ no : "Nei"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "I dag",
+ minText : "Denne datoen er før tidlegaste tillatne dato",
+ maxText : "Denne datoen er etter seinaste tillatne dato",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Neste månad (Control+Pil Høgre)',
+ prevText : 'Førre månad (Control+Pil Venstre)',
+ monthYearText : 'Velj ein månad (Control+Pil Opp/Ned for å skifte år)',
+ todayTip : "{0} (Mellomrom)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Avbryt",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Side",
+ afterPageText : "av {0}",
+ firstText : "Første sida",
+ prevText : "Førre sida",
+ nextText : "Neste sida",
+ lastText : "Siste sida",
+ refreshText : "Oppdater",
+ displayMsg : "Viser {0} - {1} av {2}",
+ emptyMsg : 'Ingen data å vise'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Den minste lengda for dette feltet er {0}",
+ maxLengthText : "Den største lengda for dette feltet er {0}",
+ blankText : "Dette feltet er påkravd",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Den minste verdien for dette feltet er {0}",
+ maxText : "Den største verdien for dette feltet er {0}",
+ nanText : "{0} er ikkje eit gyldig nummer"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Deaktivert",
+ disabledDatesText : "Deaktivert",
+ minText : "Datoen i dette feltet må vere etter {0}",
+ maxText : "Datoen i dette feltet må vere før {0}",
+ invalidText : "{0} er ikkje ein gyldig dato - han må vere på formatet {1}",
+ format : "d.m.y",
+ altFormats : "d.m.Y|d/m/y|d/m/Y|d-m-y|d-m-Y|d.m|d/m|d-m|dm|dmy|dmY|Y-m-d|d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Lastar...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Dette feltet skal vere ei epost adresse på formatet "bruker@domene.no"',
+ urlText : 'Dette feltet skal vere ein link (URL) på formatet "http:/'+'/www.domene.no"',
+ alphaText : 'Dette feltet skal berre innehalde bokstavar og _',
+ alphanumText : 'Dette feltet skal berre innehalde bokstavar, tal og _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Ver venleg og skriv inn URL for lenken:',
+ buttonTips : {
+ bold : {
+ title: 'Feit (Ctrl+B)',
+ text: 'Gjer den valde teksten feit.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursiv (Ctrl+I)',
+ text: 'Gjer den valde teksten kursiv.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Understrek (Ctrl+U)',
+ text: 'Understrek den valde teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Forstørr tekst',
+ text: 'Gjer fontstorleik større.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Forminsk tekst',
+ text: 'Gjer fontstorleik mindre.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Tekst markeringsfarge',
+ text: 'Endre bakgrunnsfarge til den valde teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Font farge',
+ text: 'Endre farge på den valde teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Venstrejuster tekst',
+ text: 'Venstrejuster teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Sentrer tekst',
+ text: 'Sentrer teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Høgrejuster tekst',
+ text: 'Høgrejuster teksten.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Punktliste',
+ text: 'Start ei punktliste.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Nummerert liste',
+ text: 'Start ei nummerert liste.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Lenke',
+ text: 'Gjer den valde teksten til ei lenke.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Rediger kjelde',
+ text: 'Bytt til kjelderedigeringsvising.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sorter stigande",
+ sortDescText : "Sorter fallande",
+ lockText : "Lås kolonne",
+ unlockText : "Lås opp kolonne",
+ columnsText : "Kolonner"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Ingen)',
+ groupByText : 'Grupper etter dette feltet',
+ showGroupsText : 'Vis i grupper'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Namn",
+ valueText : "Verdi",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Dra for å endre storleik.",
+ collapsibleSplitTip : "Dra for å endre storleik. Dobbelklikk for å skjule."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-pl.js b/gulliver/js/ext/locale/ext-lang-pl.js
new file mode 100644
index 000000000..dc53c1c06
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-pl.js
@@ -0,0 +1,304 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Polish Translations
+ * By vbert 17-April-2007
+ * Updated by mmar 16-November-2007
+ * Encoding: utf-8
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Wczytywanie danych...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} wybrano wiersze(y)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zamknij zakładkę";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Wartość tego pola jest niewłaściwa";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Wczytywanie danych...";
+}
+
+Date.monthNames = [
+ "Styczeń",
+ "Luty",
+ "Marzec",
+ "Kwiecień",
+ "Maj",
+ "Czerwiec",
+ "Lipiec",
+ "Sierpień",
+ "Wrzesień",
+ "Październik",
+ "Listopad",
+ "Grudzień"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Sty : 0,
+ Lut : 1,
+ Mar : 2,
+ Kwi : 3,
+ Maj : 4,
+ Cze : 5,
+ Lip : 6,
+ Sie : 7,
+ Wrz : 8,
+ Paź : 9,
+ Lis : 10,
+ Gru : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Niedziela",
+ "Poniedziałek",
+ "Wtorek",
+ "Środa",
+ "Czwartek",
+ "Piątek",
+ "Sobota"
+];
+
+Date.getShortDayName = function(day) {
+ switch(day) {
+ case 0: return 'ndz';
+ case 1: return 'pon';
+ case 2: return 'wt';
+ case 3: return 'śr';
+ case 4: return 'czw';
+ case 5: return 'pt';
+ case 6: return 'sob';
+ default: return '';
+ }
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Anuluj",
+ yes : "Tak",
+ no : "Nie"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y-m-d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Dzisiaj",
+ minText : "Data jest wcześniejsza od daty minimalnej",
+ maxText : "Data jest późniejsza od daty maksymalnej",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : "Następny miesiąc (Control+StrzałkaWPrawo)",
+ prevText : "Poprzedni miesiąc (Control+StrzałkaWLewo)",
+ monthYearText : "Wybierz miesiąc (Control+Up/Down aby zmienić rok)",
+ todayTip : "{0} (Spacja)",
+ format : "Y-m-d",
+ okText : " OK ",
+ cancelText : "Anuluj",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Strona",
+ afterPageText : "z {0}",
+ firstText : "Pierwsza strona",
+ prevText : "Poprzednia strona",
+ nextText : "Następna strona",
+ lastText : "Ostatnia strona",
+ refreshText : "Odśwież",
+ displayMsg : "Wyświetlono {0} - {1} z {2}",
+ emptyMsg : "Brak danych do wyświetlenia"
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalna ilość znaków dla tego pola to {0}",
+ maxLengthText : "Maksymalna ilość znaków dla tego pola to {0}",
+ blankText : "To pole jest wymagane",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalna wartość dla tego pola to {0}",
+ maxText : "Maksymalna wartość dla tego pola to {0}",
+ nanText : "{0} to nie jest właściwa wartość"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Wyłączony",
+ disabledDatesText : "Wyłączony",
+ minText : "Data w tym polu musi być późniejsza od {0}",
+ maxText : "Data w tym polu musi być wcześniejsza od {0}",
+ invalidText : "{0} to nie jest prawidłowa data - prawidłowy format daty {1}",
+ format : "Y-m-d",
+ altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Wczytuję...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'To pole wymaga podania adresu e-mail w formacie: "nazwa@domena.pl"',
+ urlText : 'To pole wymaga podania adresu strony www w formacie: "http:/'+'/www.domena.pl"',
+ alphaText : 'To pole wymaga podania tylko liter i _',
+ alphanumText : 'To pole wymaga podania tylko liter, cyfr i _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Wprowadź adres URL strony:',
+ buttonTips : {
+ bold : {
+ title: 'Pogrubienie (Ctrl+B)',
+ text: 'Ustaw styl zaznaczonego tekstu na pogrubiony.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Kursywa (Ctrl+I)',
+ text: 'Ustaw styl zaznaczonego tekstu na kursywę.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Podkreślenie (Ctrl+U)',
+ text: 'Podkreśl zaznaczony tekst.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Zwiększ czcionkę',
+ text: 'Zwiększ rozmiar czcionki.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Zmniejsz czcionkę',
+ text: 'Zmniejsz rozmiar czcionki.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Wyróżnienie',
+ text: 'Zmień kolor wyróżnienia zaznaczonego tekstu.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Kolor czcionki',
+ text: 'Zmień kolor zaznaczonego tekstu.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Do lewej',
+ text: 'Wyrównaj tekst do lewej.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Wyśrodkuj',
+ text: 'Wyrównaj tekst do środka.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Do prawej',
+ text: 'Wyrównaj tekst do prawej.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Lista wypunktowana',
+ text: 'Rozpocznij listę wypunktowaną.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Lista numerowana',
+ text: 'Rozpocznij listę numerowaną.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hiperłącze',
+ text: 'Przekształć zaznaczony tekst w hiperłącze.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Edycja źródła',
+ text: 'Przełącz w tryb edycji źródła.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortuj rosnąco",
+ sortDescText : "Sortuj malejąco",
+ lockText : "Zablokuj kolumnę",
+ unlockText : "Odblokuj kolumnę",
+ columnsText : "Kolumny"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(None)',
+ groupByText : 'Grupuj po tym polu',
+ showGroupsText : 'Pokaż w grupach'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nazwa",
+ valueText : "Wartość",
+ dateFormat : "Y-m-d"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Przeciągnij aby zmienić rozmiar.",
+ collapsibleSplitTip : "Przeciągnij aby zmienić rozmiar. Kliknij dwukrotnie aby ukryć."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-pt.js b/gulliver/js/ext/locale/ext-lang-pt.js
new file mode 100644
index 000000000..952cbb4b5
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-pt.js
@@ -0,0 +1,261 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Portuguese/Brazil Translation by Weber Souza
+ * 08 April 2007
+ * Updated by Allan Brazute Alves (EthraZa)
+ * 06 September 2007
+ * Adapted to European Portuguese by Helder Batista (hbatista)
+ * 31 January 2008
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Carregando...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} linha(s) seleccionada(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fechar";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "O valor para este campo é inválido";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Carregando...";
+}
+
+Date.monthNames = [
+ "Janeiro",
+ "Fevereiro",
+ "Março",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro"
+];
+
+Date.dayNames = [
+ "Domingo",
+ "Segunda",
+ "Terça",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sábado"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Cancelar",
+ yes : "Sim",
+ no : "Não"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hoje",
+ minText : "Esta data é anterior à menor data",
+ maxText : "Esta data é posterior à maior data",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Próximo Mês (Control+Direita)',
+ prevText : 'Mês Anterior (Control+Esquerda)',
+ monthYearText : 'Escolha um Mês (Control+Cima/Baixo para mover entre os anos)',
+ todayTip : "{0} (Espaço)",
+ format : "d/m/Y",
+ okText : " OK ",
+ cancelText : "Cancelar",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Página",
+ afterPageText : "de {0}",
+ firstText : "Primeira Página",
+ prevText : "Página Anterior",
+ nextText : "Próxima Página",
+ lastText : "Última Página",
+ refreshText : "Atualizar",
+ displayMsg : "{0} à {1} de {2} registo(s)",
+ emptyMsg : 'Sem registos para exibir'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "O tamanho mínimo para este campo é {0}",
+ maxLengthText : "O tamanho máximo para este campo é {0}",
+ blankText : "Este campo é obrigatório.",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "O valor mínimo para este campo é {0}",
+ maxText : "O valor máximo para este campo é {0}",
+ nanText : "{0} não é um número válido"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Desabilitado",
+ disabledDatesText : "Desabilitado",
+ minText : "A data deste campo deve ser posterior a {0}",
+ maxText : "A data deste campo deve ser anterior a {0}",
+ invalidText : "{0} não é uma data válida - deve ser usado o formato {1}",
+ format : "d/m/Y",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Carregando...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Este campo deve ser um endereço de e-mail válido, no formato "utilizador@dominio.com"',
+ urlText : 'Este campo deve ser um URL no formato "http:/'+'/www.dominio.com"',
+ alphaText : 'Este campo deve conter apenas letras e _',
+ alphanumText : 'Este campo deve conter apenas letras, números e _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Por favor, entre com o URL do link:',
+ buttonTips : {
+ bold : {
+ title: 'Negrito (Ctrl+B)',
+ text: 'Deixa o texto seleccionado em negrito.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italico (Ctrl+I)',
+ text: 'Deixa o texto seleccionado em italico.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Sublinhado (Ctrl+U)',
+ text: 'Sublinha o texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Aumentar Texto',
+ text: 'Aumenta o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Diminuir Texto',
+ text: 'Diminui o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Cor de Fundo',
+ text: 'Muda a cor do fundo do texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Cor da Fonte',
+ text: 'Muda a cor do texto seleccionado.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Alinhar à Esquerda',
+ text: 'Alinha o texto à esquerda.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrar Texto',
+ text: 'Centra o texto no editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Alinhar à Direita',
+ text: 'Alinha o texto à direita.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Lista com Marcadores',
+ text: 'Inicia uma lista com marcadores.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Lista Numerada',
+ text: 'Inicia uma lista numerada.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperligação',
+ text: 'Transforma o texto selecionado num hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Editar Fonte',
+ text: 'Troca para o modo de edição de código fonte.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordem Ascendente",
+ sortDescText : "Ordem Descendente",
+ lockText : "Bloquear Coluna",
+ unlockText : "Desbloquear Coluna",
+ columnsText : "Colunas"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nome",
+ valueText : "Valor",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Arraste para redimensionar.",
+ collapsibleSplitTip : "Arraste para redimensionar. Duplo clique para esconder."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-pt_BR.js b/gulliver/js/ext/locale/ext-lang-pt_BR.js
new file mode 100644
index 000000000..17687cf47
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-pt_BR.js
@@ -0,0 +1,303 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Portuguese/Brazil Translation by Weber Souza
+ * 08 April 2007
+ * Updated by Allan Brazute Alves (EthraZa)
+ * 06 September 2007
+ * Updated by Leonardo Lima
+ * 05 March 2008
+ * Updated by Juliano Tarini (jtarini)
+ * 22 April 2008
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Carregando...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} linha(s) selecionada(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fechar";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "O valor para este campo é inválido";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Carregando...";
+}
+
+Date.monthNames = [
+ "Janeiro",
+ "Fevereiro",
+ "Março",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Fev : 1,
+ Mar : 2,
+ Abr : 3,
+ Mai : 4,
+ Jun : 5,
+ Jul : 6,
+ Ago : 7,
+ Set : 8,
+ Out : 9,
+ Nov : 10,
+ Dez : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Domingo",
+ "Segunda",
+ "Terça",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sábado"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Cancelar",
+ yes : "Sim",
+ no : "Não"
+ };
+}
+
+if (Ext.util.Format) {
+ Ext.util.Format.date = function(v, format){
+ if (!v) return "";
+ if (!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+ Ext.util.Format.brMoney = function(v){
+ v = (Math.round((v - 0) * 100)) / 100;
+ v = (v == Math.floor(v)) ? v + ".00" : ((v * 10 == Math.floor(v * 10)) ? v + "0" : v);
+ v = String(v);
+ var ps = v.split('.');
+ var whole = ps[0];
+ var sub = ps[1] ? '.' + ps[1] : '.00';
+ var r = /(\d+)(\d{3})/;
+ while (r.test(whole)) {
+ whole = whole.replace(r, '$1' + '.' + '$2');
+ }
+ v = whole + sub;
+ if (v.charAt(0) == '-') {
+ return '- R$ ' + v.substr(1);
+ }
+ return "R$ " + v;
+ }
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hoje",
+ minText : "Esta data é anterior a menor data",
+ maxText : "Esta data é posterior a maior data",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Próximo Mês (Control+Direita)',
+ prevText : 'Mês Anterior (Control+Esquerda)',
+ monthYearText : 'Escolha um Mês (Control+Cima/Baixo para mover entre os anos)',
+ todayTip : "{0} (Espaço)",
+ format : "d/m/Y",
+ okText : " OK ",
+ cancelText : "Cancelar",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Página",
+ afterPageText : "de {0}",
+ firstText : "Primeira Página",
+ prevText : "Página Anterior",
+ nextText : "Próxima Página",
+ lastText : "Última Página",
+ refreshText : "Atualizar",
+ displayMsg : "{0} à {1} de {2} registro(s)",
+ emptyMsg : 'Sem registros para exibir'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "O tamanho mínimo para este campo é {0}",
+ maxLengthText : "O tamanho máximo para este campo é {0}",
+ blankText : "Este campo é obrigatório.",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "O valor mínimo para este campo é {0}",
+ maxText : "O valor máximo para este campo é {0}",
+ nanText : "{0} não é um número válido"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Desabilitado",
+ disabledDatesText : "Desabilitado",
+ minText : "A data deste campo deve ser posterior a {0}",
+ maxText : "A data deste campo deve ser anterior a {0}",
+ invalidText : "{0} não é uma data válida - deve ser informado no formato {1}",
+ format : "d/m/Y",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Carregando...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Este campo deve ser um endereço de e-mail válido, no formato "usuario@dominio.com.br"',
+ urlText : 'Este campo deve ser uma URL no formato "http:/'+'/www.dominio.com.br"',
+ alphaText : 'Este campo deve conter apenas letras e _',
+ alphanumText : 'Este campo deve conter apenas letras, números e _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Por favor, entre com a URL do link:',
+ buttonTips : {
+ bold : {
+ title: 'Negrito (Ctrl+B)',
+ text: 'Deixa o texto selecionado em negrito.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Itálico (Ctrl+I)',
+ text: 'Deixa o texto selecionado em itálico.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Sublinhado (Ctrl+U)',
+ text: 'Sublinha o texto selecionado.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Aumentar Texto',
+ text: 'Aumenta o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Diminuir Texto',
+ text: 'Diminui o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Cor de Fundo',
+ text: 'Muda a cor do fundo do texto selecionado.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Cor da Fonte',
+ text: 'Muda a cor do texto selecionado.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Alinhar à Esquerda',
+ text: 'Alinha o texto à esquerda.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centralizar Texto',
+ text: 'Centraliza o texto no editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Alinhar à Direita',
+ text: 'Alinha o texto à direita.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Lista com Marcadores',
+ text: 'Inicia uma lista com marcadores.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Lista Numerada',
+ text: 'Inicia uma lista numerada.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Link',
+ text: 'Transforma o texto selecionado em um link.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Editar Fonte',
+ text: 'Troca para o modo de edição de código fonte.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordem Ascendente",
+ sortDescText : "Ordem Descendente",
+ lockText : "Bloquear Coluna",
+ unlockText : "Desbloquear Coluna",
+ columnsText : "Colunas"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nome",
+ valueText : "Valor",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Arraste para redimensionar.",
+ collapsibleSplitTip : "Arraste para redimensionar. Duplo clique para esconder."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-pt_PT.js b/gulliver/js/ext/locale/ext-lang-pt_PT.js
new file mode 100644
index 000000000..14cedf9d8
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-pt_PT.js
@@ -0,0 +1,298 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Portuguese/Portugal (pt_PT) Translation
+ * by Nuno Franco da Costa - francodacosta.com
+ * translated from ext-lang-en.js
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'A carregar...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} linha(s) seleccionada(s)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Fechar aba";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "A carregar...";
+}
+
+Date.monthNames = [
+ "Janeiro",
+ "Fevereiro",
+ "Março",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Domingo",
+ "Segunda",
+ "Terça",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sabado"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Cancelar",
+ yes : "Sim",
+ no : "Não"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y/m/d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hoje",
+ minText : "A data é anterior ao mínimo definido",
+ maxText : "A data é posterior ao m�ximo definido",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Mês Seguinte (Control+Right)',
+ prevText : 'Mês Anterior (Control+Left)',
+ monthYearText : 'Escolha um mês (Control+Up/Down avaçar/recuar anos)',
+ todayTip : "{0} (barra de espa�o)",
+ format : "y/m/d",
+ okText : "*OK*",
+ cancelText : "Cancelar",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Página",
+ afterPageText : "de {0}",
+ firstText : "Primeira Página",
+ prevText : "Página Anterior",
+ nextText : "Pr%oacute;xima Página",
+ lastText : "Última Página",
+ refreshText : "Recaregar",
+ displayMsg : "A mostrar {0} - {1} de {2}",
+ emptyMsg : 'Sem dados para mostrar'
+ });
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "O valor deste campo é inválido";
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "O comprimento mínimo deste campo &eaute; {0}",
+ maxLengthText : "O comprimento máximo deste campo &eaute; {0}",
+ blankText : "Este campo é de preenchimento obrigatório",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "O valor mínimo deste campo &eaute; {0}",
+ maxText : "O valor máximo deste campo &eaute; {0}",
+ nanText : "{0} não é um numero"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Desabilitado",
+ disabledDatesText : "Desabilitado",
+ minText : "A data deste campo deve ser posterior a {0}",
+ maxText : "A data deste campo deve ser anterior a {0}",
+ invalidText : "{0} não é uma data válida - deve estar no seguinte formato{1}",
+ format : "y/m/d",
+ altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "A Carregar...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Este campo deve ser um endereço de email no formato "utilizador@dominio.com"',
+ urlText : 'Este campo deve ser um URL no formato "http:/'+'/www.dominio.com"',
+ alphaText : 'Este campo deve conter apenas letras e _',
+ alphanumText : 'Este campo deve conter apenas letras, n@uacute;meros e _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Indique o endereço do link:',
+ buttonTips : {
+ bold : {
+ title: 'Negrito (Ctrl+B)',
+ text: 'Transforma o texto em Negrito.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Itálico (Ctrl+I)',
+ text: 'Transforma o texto em itálico.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Sublinhar (Ctrl+U)',
+ text: 'Sublinha o texto.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Aumentar texto',
+ text: 'Aumenta o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Encolher texto',
+ text: 'Diminui o tamanho da fonte.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Côr de fundo do texto',
+ text: 'Altera a côr de fundo do texto.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Côr do texo',
+ text: 'Altera a aôr do texo.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'ALinhar à esquerda',
+ text: 'ALinha o texto à esquerda.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrar',
+ text: 'Centra o texto.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'ALinhar à direita',
+ text: 'ALinha o texto &agravce; direita.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Lista',
+ text: 'Inicia uma lista.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Lista Numerada',
+ text: 'Inicia uma lista numerada.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Transforma o texto num hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Editar código',
+ text: 'Alterar para o modo de edição de código.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "Por favor espere...";
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Ordenação Crescente",
+ sortDescText : "Ordenação Decrescente",
+ lockText : "Fixar Coluna",
+ unlockText : "Libertar Coluna",
+ columnsText : "Colunas"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Nenhum)',
+ groupByText : 'Agrupar por este campo',
+ showGroupsText : 'Mostrar nos Grupos'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nome",
+ valueText : "Valor",
+ dateFormat : "Y/j/m"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Arastar para redimensionar.",
+ collapsibleSplitTip : "Arastar para redimensionar. DUplo clique para esconder"
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-ro.js b/gulliver/js/ext/locale/ext-lang-ro.js
new file mode 100644
index 000000000..2edb5cf63
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-ro.js
@@ -0,0 +1,296 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Romanian translations for ExtJS 2.1
+ * First released by Lucian Lature on 2007-04-24
+ * Changed locale for Romania (date formats) as suggested by keypoint
+ * on ExtJS forums: http://www.extjs.com/forum/showthread.php?p=129524#post129524
+ * Removed some useless parts
+ * Changed by: Emil Cazamir, 2008-04-24
+ * Fixed some errors left behind
+ * Changed by: Emil Cazamir, 2008-09-01
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Încărcare...
';
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} rând(uri) selectate";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Închide acest tab";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Valoarea acestui câmp este invalidă";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Încărcare...";
+}
+
+Date.monthNames = [
+ "Ianuarie",
+ "Februarie",
+ "Martie",
+ "Aprilie",
+ "Mai",
+ "Iunie",
+ "Iulie",
+ "August",
+ "Septembrie",
+ "Octombrie",
+ "Noiembrie",
+ "Decembrie"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Ian : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ Mai : 4,
+ Iun : 5,
+ Iul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Noi : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Duminică",
+ "Luni",
+ "Marţi",
+ "Miercuri",
+ "Joi",
+ "Vineri",
+ "Sâmbătă"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Renunţă",
+ yes : "Da",
+ no : "Nu"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Astăzi",
+ minText : "Această dată este anterioară datei minime",
+ maxText : "Această dată este ulterioară datei maxime",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Luna următoare (Control+Dreapta)',
+ prevText : 'Luna precedentă (Control+Stânga)',
+ monthYearText : 'Alege o lună (Control+Sus/Jos pentru a parcurge anii)',
+ todayTip : "{0} (Bara spațiu)",
+ format : "d.m.Y",
+ okText : " OK ",
+ cancelText : "Renunță",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Pagina",
+ afterPageText : "din {0}",
+ firstText : "Prima pagină",
+ prevText : "Pagina anterioară",
+ nextText : "Pagina următoare",
+ lastText : "Ultima pagină",
+ refreshText : "Împrospătează",
+ displayMsg : "Afișare înregistrările {0} - {1} din {2}",
+ emptyMsg : 'Nu sunt date de afișat'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Lungimea minimă pentru acest câmp este de {0}",
+ maxLengthText : "Lungimea maximă pentru acest câmp este {0}",
+ blankText : "Acest câmp este obligatoriu",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Valoarea minimă permisă a acestui câmp este {0}",
+ maxText : "Valaorea maximă permisă a acestui câmp este {0}",
+ nanText : "{0} nu este un număr valid"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Indisponibil",
+ disabledDatesText : "Indisponibil",
+ minText : "Data din această casetă trebuie să fie după {0}",
+ maxText : "Data din această casetă trebuie să fie inainte de {0}",
+ invalidText : "{0} nu este o dată validă, trebuie să fie în formatul {1}",
+ format : "d.m.Y",
+ altFormats : "d-m-Y|d.m.y|d-m-y|d.m|d-m|dm|d|Y-m-d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Încărcare...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Acest câmp trebuie să conţină o adresă de e-mail în formatul "user@domeniu.com"',
+ urlText : 'Acest câmp trebuie să conţină o adresă URL în formatul "http:/'+'/www.domeniu.com"',
+ alphaText : 'Acest câmp trebuie să conţină doar litere şi _',
+ alphanumText : 'Acest câmp trebuie să conţină doar litere, cifre şi _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Vă rugăm introduceti un URL pentru această legătură web:',
+ buttonTips : {
+ bold : {
+ title: 'Îngroşat (Ctrl+B)',
+ text: 'Îngroşati caracterele textului selectat.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Înclinat (Ctrl+I)',
+ text: 'Înclinaţi caracterele textului selectat.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Subliniat (Ctrl+U)',
+ text: 'Subliniaţi caracterele textului selectat.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Mărit',
+ text: 'Măreşte dimensiunea fontului.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Micşorat',
+ text: 'Micşorează dimensiunea textului.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Culoarea fundalului',
+ text: 'Schimbă culoarea fundalului pentru textul selectat.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Culoarea textului',
+ text: 'Schimbă culoarea textului selectat.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Aliniat la stânga',
+ text: 'Aliniază textul la stânga.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Centrat',
+ text: 'Centrează textul în editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Aliniat la dreapta',
+ text: 'Aliniază textul la dreapta.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Listă cu puncte',
+ text: 'Inserează listă cu puncte.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Listă numerotată',
+ text: 'Inserează o listă numerotată.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Legătură web',
+ text: 'Transformă textul selectat în legătură web.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Editare sursă',
+ text: 'Schimbă pe modul de editare al codului HTML.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortare ascendentă",
+ sortDescText : "Sortare descendentă",
+ lockText : "Blochează coloana",
+ unlockText : "Deblochează coloana",
+ columnsText : "Coloane"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Fără)',
+ groupByText : 'Grupează după această coloană',
+ showGroupsText : 'Afișează grupat'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Nume",
+ valueText : "Valoare",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Trage pentru redimensionare.",
+ collapsibleSplitTip : "Trage pentru redimensionare. Dublu-click pentru ascundere."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-ru.js b/gulliver/js/ext/locale/ext-lang-ru.js
new file mode 100644
index 000000000..20d5c7758
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-ru.js
@@ -0,0 +1,320 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Russian translation
+ * By ZooKeeper (utf-8 encoding)
+ * 6 November 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Идет загрузка...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} выбранных строк";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Закрыть эту вкладку";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Значение в этом поле неверное";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Загрузка...";
+}
+
+Date.monthNames = [
+ "Январь",
+ "Февраль",
+ "Март",
+ "Апрель",
+ "Май",
+ "Июнь",
+ "Июль",
+ "Август",
+ "Сентябрь",
+ "Октябрь",
+ "Ноябрь",
+ "Декабрь"
+];
+
+Date.shortMonthNames = [
+ "Янв",
+ "Февр",
+ "Март",
+ "Апр",
+ "Май",
+ "Июнь",
+ "Июль",
+ "Авг",
+ "Сент",
+ "Окт",
+ "Нояб",
+ "Дек"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.shortMonthNames[month];
+};
+
+Date.monthNumbers = {
+ 'Янв': 0,
+ 'Фев': 1,
+ 'Мар': 2,
+ 'Апр': 3,
+ 'Май': 4,
+ 'Июн': 5,
+ 'Июл': 6,
+ 'Авг': 7,
+ 'Сен': 8,
+ 'Окт': 9,
+ 'Ноя': 10,
+ 'Дек': 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Воскресенье",
+ "Понедельник",
+ "Вторник",
+ "Среда",
+ "Четверг",
+ "Пятница",
+ "Суббота"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Отмена",
+ yes : "Да",
+ no : "Нет"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Сегодня",
+ minText : "Эта дата раньше минимальной даты",
+ maxText : "Эта дата позже максимальной даты",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Следующий месяц (Control+Вправо)',
+ prevText : 'Предыдущий месяц (Control+Влево)',
+ monthYearText : 'Выбор месяца (Control+Вверх/Вниз для выбора года)',
+ todayTip : "{0} (Пробел)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Отмена",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Страница",
+ afterPageText : "из {0}",
+ firstText : "Первая страница",
+ prevText : "Предыдущая страница",
+ nextText : "Следующая страница",
+ lastText : "Последняя страница",
+ refreshText : "Обновить",
+ displayMsg : "Отображаются записи с {0} по {1}, всего {2}",
+ emptyMsg : 'Нет данных для отображения'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Минимальная длина этого поля {0}",
+ maxLengthText : "Максимальная длина этого поля {0}",
+ blankText : "Это поле обязательно для заполнения",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Значение этого поля не может быть меньше {0}",
+ maxText : "Значение этого поля не может быть больше {0}",
+ nanText : "{0} не является числом"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Не доступно",
+ disabledDatesText : "Не доступно",
+ minText : "Дата в этом поле должна быть позде {0}",
+ maxText : "Дата в этом поле должна быть раньше {0}",
+ invalidText : "{0} не является правильной датой - дата должна быть указана в формате {1}",
+ format : "d.m.y",
+ altFormats : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Загрузка...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Это поле должно содержать адрес электронной почты в формате "user@example.com"',
+ urlText : 'Это поле должно содержать URL в формате "http:/'+'/www.example.com"',
+ alphaText : 'Это поле должно содержать только латинские буквы и символ подчеркивания "_"',
+ alphanumText : 'Это поле должно содержать только латинские буквы, цифры и символ подчеркивания "_"'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Пожалуйста введите адрес:',
+ buttonTips : {
+ bold : {
+ title: 'Полужирный (Ctrl+B)',
+ text: 'Применение полужирного начертания к выделенному тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Курсив (Ctrl+I)',
+ text: 'Применение курсивного начертания к выделенному тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Подчёркнутый (Ctrl+U)',
+ text: 'Подчёркивание выделенного текста.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Увеличить размер',
+ text: 'Увеличение размера шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Уменьшить размер',
+ text: 'Уменьшение размера шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Заливка',
+ text: 'Изменение цвета фона для выделенного текста или абзаца.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Цвет текста',
+ text: 'Измение цвета текста.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Выровнять текст по левому краю',
+ text: 'Выровнивание текста по левому краю.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'По центру',
+ text: 'Выровнивание текста по центру.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Выровнять текст по правому краю',
+ text: 'Выровнивание текста по правому краю.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Маркеры',
+ text: 'Начать маркированный список.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Нумерация',
+ text: 'Начать нумернованный список.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Вставить гиперссылку',
+ text: 'Создание ссылки из выделенного текста.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Исходный код',
+ text: 'Переключиться на исходный код.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.form.BasicForm){
+ Ext.form.BasicForm.prototype.waitTitle = "Пожалуйста подождите...";
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Сортировать по возрастанию",
+ sortDescText : "Сортировать по убыванию",
+ lockText : "Закрепить столбец",
+ unlockText : "Снять закрепление столбца",
+ columnsText : "Столбцы"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Пусто)',
+ groupByText : 'Группировать по этому полю',
+ showGroupsText : 'Отображать по группам'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Название",
+ valueText : "Значение",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.SplitLayoutRegion){
+ Ext.apply(Ext.SplitLayoutRegion.prototype, {
+ splitTip : "Тяните для изменения размера.",
+ collapsibleSplitTip : "Тяните для изменения размера. Двойной щелчок спрячет панель."
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Тяните для изменения размера.",
+ collapsibleSplitTip : "Тяните для изменения размера. Двойной щелчок спрячет панель."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-sk.js b/gulliver/js/ext/locale/ext-lang-sk.js
new file mode 100644
index 000000000..92043f70b
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-sk.js
@@ -0,0 +1,182 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ */
+
+ /* Slovak Translation by Michal Thomka
+ * 14 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Nahrávam...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} označených riadkov";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zavrieť túto záložku";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Hodnota v tomto poli je nesprávna";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Nahrávam...";
+}
+
+Date.monthNames = [
+ "Január",
+ "Február",
+ "Marec",
+ "Apríl",
+ "Máj",
+ "Jún",
+ "Júl",
+ "August",
+ "September",
+ "Október",
+ "November",
+ "December"
+];
+
+Date.dayNames = [
+ "Nedeľa",
+ "Pondelok",
+ "Utorok",
+ "Streda",
+ "Štvrtok",
+ "Piatok",
+ "Sobota"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Zrušiť",
+ yes : "Áno",
+ no : "Nie"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Dnes",
+ minText : "Tento dátum je menší ako minimálny možný dátum",
+ maxText : "Tento dátum je väčší ako maximálny možný dátum",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Ďalší Mesiac (Control+Doprava)',
+ prevText : 'Predch. Mesiac (Control+Doľava)',
+ monthYearText : 'Vyberte Mesiac (Control+Hore/Dole pre posun rokov)',
+ todayTip : "{0} (Medzerník)",
+ format : "d.m.Y"
+ });
+}
+
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Strana",
+ afterPageText : "z {0}",
+ firstText : "Prvá Strana",
+ prevText : "Predch. Strana",
+ nextText : "Ďalšia Strana",
+ lastText : "Posledná strana",
+ refreshText : "Obnoviť",
+ displayMsg : "Zobrazujem {0} - {1} z {2}",
+ emptyMsg : 'iadne dáta'
+ });
+}
+
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimálna dĺžka pre toto pole je {0}",
+ maxLengthText : "Maximálna dĺžka pre toto pole je {0}",
+ blankText : "Toto pole je povinné",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimálna hodnota pre toto pole je {0}",
+ maxText : "Maximálna hodnota pre toto pole je {0}",
+ nanText : "{0} je nesprávne číslo"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Zablokované",
+ disabledDatesText : "Zablokované",
+ minText : "Dátum v tomto poli musí byť až po {0}",
+ maxText : "Dátum v tomto poli musí byť pred {0}",
+ invalidText : "{0} nie je správny dátum - musí byť vo formáte {1}",
+ format : "d.m.Y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Nahrávam...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Toto pole musí byť e-mailová adresa vo formáte "user@example.com"',
+ urlText : 'Toto pole musí byť URL vo formáte "http:/'+'/www.example.com"',
+ alphaText : 'Toto pole može obsahovať iba písmená a znak _',
+ alphanumText : 'Toto pole može obsahovať iba písmená, čísla a znak _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Zoradiť vzostupne",
+ sortDescText : "Zoradiť zostupne",
+ lockText : "Zamknúť stľpec",
+ unlockText : "Odomknúť stľpec",
+ columnsText : "Stľpce"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Názov",
+ valueText : "Hodnota",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Potiahnite pre zmenu rozmeru",
+ collapsibleSplitTip : "Potiahnite pre zmenu rozmeru. Dvojklikom schováte."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-sl.js b/gulliver/js/ext/locale/ext-lang-sl.js
new file mode 100644
index 000000000..66dbb1ee6
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-sl.js
@@ -0,0 +1,177 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Slovenian translation by Matjaž (UTF-8 encoding)
+ * 25 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Nalagam...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} izbranih vrstic";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zapri zavihek";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Neveljavna vrednost";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Nalagam...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "Marec",
+ "April",
+ "Maj",
+ "Junij",
+ "Julij",
+ "Avgust",
+ "September",
+ "Oktober",
+ "November",
+ "December"
+];
+
+Date.dayNames = [
+ "Nedelja",
+ "Ponedeljek",
+ "Torek",
+ "Sreda",
+ "Četrtek",
+ "Petek",
+ "Sobota"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "V redu",
+ cancel : "Prekliči",
+ yes : "Da",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Danes",
+ minText : "Navedeni datum je pred spodnjim datumom",
+ maxText : "Navedeni datum je za zgornjim datumom",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Naslednji mesec (Control+Desno)',
+ prevText : 'Prejšnji mesec (Control+Levo)',
+ monthYearText : 'Izberite mesec (Control+Gor/Dol za premik let)',
+ todayTip : "{0} (Preslednica)",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Stran",
+ afterPageText : "od {0}",
+ firstText : "Prva stran",
+ prevText : "Prejšnja stran",
+ nextText : "Naslednja stran",
+ lastText : "Zadnja stran",
+ refreshText : "Osveži",
+ displayMsg : "Prikazujem {0} - {1} od {2}",
+ emptyMsg : 'Ni podatkov za prikaz'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalna dolžina tega polja je {0}",
+ maxLengthText : "Maksimalna dolžina tega polja je {0}",
+ blankText : "To polje je obvezno",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalna vrednost tega polja je {0}",
+ maxText : "Maksimalna vrednost tega polja je {0}",
+ nanText : "{0} ni veljavna številka"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Onemogočen",
+ disabledDatesText : "Onemogočen",
+ minText : "Datum mora biti po {0}",
+ maxText : "Datum mora biti pred {0}",
+ invalidText : "{0} ni veljaven datum - mora biti v tem formatu {1}",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Nalagam...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'To polje je e-mail naslov formata "ime@domena.si"',
+ urlText : 'To polje je URL naslov formata "http:/'+'/www.domena.si"',
+ alphaText : 'To polje lahko vsebuje samo črke in _',
+ alphanumText : 'To polje lahko vsebuje samo črke, številke in _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortiraj naraščajoče",
+ sortDescText : "Sortiraj padajoče",
+ lockText : "Zakleni stolpec",
+ unlockText : "Odkleni stolpec",
+ columnsText : "Stolpci"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Ime",
+ valueText : "Vrednost",
+ dateFormat : "j.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Potegni za razširitev.",
+ collapsibleSplitTip : "Potegni za razširitev. Dvojni klik, če želite skriti."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-sr.js b/gulliver/js/ext/locale/ext-lang-sr.js
new file mode 100644
index 000000000..a92d34017
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-sr.js
@@ -0,0 +1,180 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Serbian Latin Translation
+ * by Atila Hajnal (latin, utf8 encoding)
+ * sr
+ * 14 Sep 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Učitavam...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "Ne postoji ni jedan slog";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} izabranih redova";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Zatvori оvu »karticu«";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Unešena vrednost nije pravilna";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Učitavam...";
+}
+
+Date.monthNames = [
+ "Januar",
+ "Februar",
+ "Mart",
+ "April",
+ "Мај",
+ "Jun",
+ "Јul",
+ "Avgust",
+ "Septembar",
+ "Oktobar",
+ "Novembar",
+ "Decembar"
+];
+
+Date.dayNames = [
+ "Nedelja",
+ "Ponedeljak",
+ "Utorak",
+ "Sreda",
+ "Četvrtak",
+ "Petak",
+ "Subota"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "U redu",
+ cancel : "Odustani",
+ yes : "Da",
+ no : "Ne"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Danas",
+ minText : "Datum је ispred najmanjeg dozvoljenog datuma",
+ maxText : "Datum је nakon najvećeg dozvoljenog datuma",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Sledeći mesec (Control+Desno)',
+ prevText : 'Prethodni mesec (Control+Levo)',
+ monthYearText : 'Izaberite mesec (Control+Gore/Dole za izbor godine)',
+ todayTip : "{0} (Razmaknica)",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Strana",
+ afterPageText : "od {0}",
+ firstText : "Prva strana",
+ prevText : "Prethodna strana",
+ nextText : "Sledeća strana",
+ lastText : "Poslednja strana",
+ refreshText : "Osveži",
+ displayMsg : "Prikazana {0} - {1} od {2}",
+ emptyMsg : 'Nemam šta prikazati'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minimalna dužina ovog polja је {0}",
+ maxLengthText : "Maksimalna dužina ovog polja је {0}",
+ blankText : "Polje је obavezno",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minimalna vrednost u polju је {0}",
+ maxText : "Maksimalna vrednost u polju је {0}",
+ nanText : "{0} nije pravilan broj"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Pasivno",
+ disabledDatesText : "Pasivno",
+ minText : "Datum u ovom polju mora biti nakon {0}",
+ maxText : "Datum u ovom polju mora biti pre {0}",
+ invalidText : "{0} nije pravilan datum - zahtevani oblik je {1}",
+ format : "d.m.y",
+ altFormats : "d.m.y|d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Učitavam...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ovo polje prihavata e-mail adresu isključivo u obliku "korisnik@domen.com"',
+ urlText : 'Ovo polje prihavata URL adresu isključivo u obliku "http:/'+'/www.domen.com"',
+ alphaText : 'Ovo polje može sadržati isključivo slova i znak _',
+ alphanumText : 'Ovo polje može sadržati само slova, brojeve i znak _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Rastući redosled",
+ sortDescText : "Opadajući redosled",
+ lockText : "Zaključaj kolonu",
+ unlockText : "Otključaj kolonu",
+ columnsText : "Kolone"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Naziv",
+ valueText : "Vrednost",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Povući za izmenu veličine.",
+ collapsibleSplitTip : "Povući za izmenu veličine. Dvostruku klik za sakrivanje."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-sr_RS.js b/gulliver/js/ext/locale/ext-lang-sr_RS.js
new file mode 100644
index 000000000..3effc7790
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-sr_RS.js
@@ -0,0 +1,179 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Serbian Cyrillic Translation
+ * by Čolovic Vladan (cyrillic, utf8 encoding)
+ * sr_RS (ex: sr_CS, sr_YU)
+ * 12 May 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Учитавам...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} изабраних редова";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Затвори ову »картицу«";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Унешена вредност није правилна";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Учитавам...";
+}
+
+Date.monthNames = [
+ "Јануар",
+ "Фебруар",
+ "Март",
+ "Април",
+ "Мај",
+ "Јун",
+ "Јул",
+ "Август",
+ "Септембар",
+ "Октобар",
+ "Новембар",
+ "Децембар"
+];
+
+Date.dayNames = [
+ "Недеља",
+ "Понедељак",
+ "Уторак",
+ "Среда",
+ "Четвртак",
+ "Петак",
+ "Субота"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "У реду",
+ cancel : "Одустани",
+ yes : "Да",
+ no : "Не"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Данас",
+ minText : "Датум је испред најмањег дозвољеног датума",
+ maxText : "Датум је након највећег дозвољеног датума",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Следећи месец (Control+Десно)',
+ prevText : 'Претходни месец (Control+Лево)',
+ monthYearText : 'Изаберите месец (Control+Горе/Доле за избор године)',
+ todayTip : "{0} (Размакница)",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Страна",
+ afterPageText : "од {0}",
+ firstText : "Прва страна",
+ prevText : "Претходна страна",
+ nextText : "Следећа страна",
+ lastText : "Последња страна",
+ refreshText : "Освежи",
+ displayMsg : "Приказана {0} - {1} од {2}",
+ emptyMsg : 'Немам шта приказати'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Минимална дужина овог поља је {0}",
+ maxLengthText : "Максимална дужина овог поља је {0}",
+ blankText : "Поље је обавезно",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Минимална вредност у пољу је {0}",
+ maxText : "Максимална вредност у пољу је {0}",
+ nanText : "{0} није правилан број"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Пасивно",
+ disabledDatesText : "Пасивно",
+ minText : "Датум у овом пољу мора бити након {0}",
+ maxText : "Датум у овом пољу мора бити пре {0}",
+ invalidText : "{0} није правилан датум - захтевани облик је {1}",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Учитавам...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Ово поље прихвата e-mail адресу искључиво у облику "korisnik@domen.com"',
+ urlText : 'Ово поље прихвата URL адресу искључиво у облику "http:/'+'/www.domen.com"',
+ alphaText : 'Ово поље може садржати искључиво слова и знак _',
+ alphanumText : 'Ово поље може садржати само слова, бројеве и знак _'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Растући редослед",
+ sortDescText : "Опадајући редослед",
+ lockText : "Закључај колону",
+ unlockText : "Откључај колону",
+ columnsText : "Колоне"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Назив",
+ valueText : "Вредност",
+ dateFormat : "d.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Повући за измену величине.",
+ collapsibleSplitTip : "Повући за измену величине. Двоструки клик за сакривање."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-sv_SE.js b/gulliver/js/ext/locale/ext-lang-sv_SE.js
new file mode 100644
index 000000000..802113071
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-sv_SE.js
@@ -0,0 +1,179 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * Swedish translation (utf8-encoding)
+ * By Erik Andersson, Monator Technologies
+ * 24 April 2007
+ * Changed by Cariad, 29 July 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Laddar...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} markerade rad(er)";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Stäng denna flik";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Värdet i detta fält är inte tillåtet";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Laddar...";
+}
+
+Date.monthNames = [
+ "januari",
+ "februari",
+ "mars",
+ "april",
+ "maj",
+ "juni",
+ "juli",
+ "augusti",
+ "september",
+ "oktober",
+ "november",
+ "december"
+];
+
+Date.dayNames = [
+ "söndag",
+ "måndag",
+ "tisdag",
+ "onsdag",
+ "torsdag",
+ "fredag",
+ "lördag"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Avbryt",
+ yes : "Ja",
+ no : "Nej"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y-m-d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Idag",
+ minText : "Detta datum inträffar före det tidigast tillåtna",
+ maxText : "Detta datum inträffar efter det senast tillåtna",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Nästa månad (Ctrl + högerpil)',
+ prevText : 'Föregående månad (Ctrl + vänsterpil)',
+ monthYearText : 'Välj en månad (Ctrl + uppåtpil/neråtpil för att ändra årtal)',
+ todayTip : "{0} (mellanslag)",
+ format : "Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Sida",
+ afterPageText : "av {0}",
+ firstText : "Första sidan",
+ prevText : "Föregående sida",
+ nextText : "Nästa sida",
+ lastText : "Sista sidan",
+ refreshText : "Uppdatera",
+ displayMsg : "Visar {0} - {1} av {2}",
+ emptyMsg : 'Det finns ingen data att visa'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Minsta tillåtna längd för detta fält är {0}",
+ maxLengthText : "Största tillåtna längd för detta fält är {0}",
+ blankText : "Detta fält är obligatoriskt",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Minsta tillåtna värde för detta fält är {0}",
+ maxText : "Största tillåtna värde för detta fält är {0}",
+ nanText : "{0} är inte ett tillåtet nummer"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Inaktiverad",
+ disabledDatesText : "Inaktiverad",
+ minText : "Datumet i detta fält måste inträffa efter {0}",
+ maxText : "Datumet i detta fält måste inträffa före {0}",
+ invalidText : "{0} är inte ett tillåtet datum - datum ska anges i formatet {1}",
+ format : "Y-m-d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Laddar...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Detta fält ska innehålla en e-post adress i formatet "användare@domän.se"',
+ urlText : 'Detta fält ska innehålla en länk (URL) i formatet "http:/'+'/www.domän.se"',
+ alphaText : 'Detta fält får bara innehålla bokstäver och "_"',
+ alphanumText : 'Detta fält får bara innehålla bokstäver, nummer och "_"'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sortera stigande",
+ sortDescText : "Sortera fallande",
+ lockText : "Lås kolumn",
+ unlockText : "Lås upp kolumn",
+ columnsText : "Kolumner"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Namn",
+ valueText : "Värde",
+ dateFormat : "Y-m-d"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Dra för att ändra storleken.",
+ collapsibleSplitTip : "Dra för att ändra storleken. Dubbelklicka för att gömma."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-th.js b/gulliver/js/ext/locale/ext-lang-th.js
new file mode 100644
index 000000000..6b1e4b5cb
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-th.js
@@ -0,0 +1,295 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * List compiled by KillerNay on the extjs.com forums.
+ * Thank you KillerNay!
+ *
+ * Thailand Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '¡ÓÅѧâËÅŽ...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} àÅ×Í¡áÅéÇ·Ñé§ËÁŽá¶Ç";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "»ÔŽá·çº¹Õé";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "€èҢͧªèͧ¹ÕéäÁè¶Ù¡µéͧ";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "¡ÓÅѧâËÅŽ...";
+}
+
+Date.monthNames = [
+ "Á¡ÃÒ€Á",
+ "¡ØÁŸÒӟѹžì",
+ "ÁÕ¹Ò€Á",
+ "àÁÉÒ¹",
+ "ŸÄÉÀÒ€Á",
+ "ÁԶعÒ¹",
+ "¡Ä¡¯Ò€Á",
+ "ÊÔ§ËÒ€Á",
+ "¡Ñ¹ÂÒ¹",
+ "µØÅÒ€Á",
+ "ŸÄÈšÔ¡Ò¹",
+ "žÑ¹ÇÒ€Á"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ "Á€" : 0,
+ "¡Ÿ" : 1,
+ "ÁÕ€" : 2,
+ "àÁÂ" : 3,
+ "Ÿ€" : 4,
+ "ÁÔÂ" : 5,
+ "¡€" : 6,
+ "Ê€" : 7,
+ "¡Â" : 8,
+ "µ€" : 9,
+ "ŸÂ" : 10,
+ "ž€" : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "ÍÒ·ÔµÂì",
+ "šÑ¹·Ãì",
+ "Íѧ€ÒÃ",
+ "ŸØ×ž",
+ "ŸÄËÑʺŽÕ",
+ "ÈØ¡Ãì",
+ "àÊÒÃì"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.dayNames[day].substring(0, 3);
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "µ¡Å§",
+ cancel : "¡àÅÔ¡",
+ yes : "ãªè",
+ no : "äÁèãªè"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "m/d/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Çѹ¹Õé",
+ minText : "This date is before the minimum date",
+ maxText : "This date is after the maximum date",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'àŽ×͹¶ÑŽä» (Control+Right)',
+ prevText : 'àŽ×͹¡è͹˹éÒ (Control+Left)',
+ monthYearText : 'àÅ×Í¡àŽ×͹ (Control+Up/Down to move years)',
+ todayTip : "{0} (Spacebar)",
+ format : "m/d/y",
+ okText : " µ¡Å§ ",
+ cancelText : "¡àÅÔ¡",
+ startDay : 0
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "˹éÒ",
+ afterPageText : "of {0}",
+ firstText : "˹éÒáá",
+ prevText : "¡è͹˹éÒ",
+ nextText : "¶ÑŽä»",
+ lastText : "˹éÒÊØŽ·éÒÂ",
+ refreshText : "ÃÕà¿Ãª",
+ displayMsg : "¡ÓÅѧáÊŽ§ {0} - {1} šÒ¡ {2}",
+ emptyMsg : 'äÁèÁÕ¢éÍÁÙÅáÊŽ§'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "The minimum length for this field is {0}",
+ maxLengthText : "The maximum length for this field is {0}",
+ blankText : "This field is required",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "The minimum value for this field is {0}",
+ maxText : "The maximum value for this field is {0}",
+ nanText : "{0} is not a valid number"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "»ÔŽ",
+ disabledDatesText : "»ÔŽ",
+ minText : "The date in this field must be after {0}",
+ maxText : "The date in this field must be before {0}",
+ invalidText : "{0} is not a valid date - it must be in the format {1}",
+ format : "m/d/y",
+ altFormats : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",
+ startDay : 0
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "¡ÓÅѧâËÅŽ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'This field should be an e-mail address in the format "user@example.com"',
+ urlText : 'This field should be a URL in the format "http:/'+'/www.example.com"',
+ alphaText : 'This field should only contain letters and _',
+ alphanumText : 'This field should only contain letters, numbers and _'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Please enter the URL for the link:',
+ buttonTips : {
+ bold : {
+ title: 'Bold (Ctrl+B)',
+ text: 'Make the selected text bold.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Italic (Ctrl+I)',
+ text: 'Make the selected text italic.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Underline (Ctrl+U)',
+ text: 'Underline the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Grow Text',
+ text: 'Increase the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Shrink Text',
+ text: 'Decrease the font size.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Text Highlight Color',
+ text: 'Change the background color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Font Color',
+ text: 'Change the color of the selected text.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Align Text Left',
+ text: 'Align text to the left.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Center Text',
+ text: 'Center text in the editor.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Align Text Right',
+ text: 'Align text to the right.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Bullet List',
+ text: 'Start a bulleted list.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numbered List',
+ text: 'Start a numbered list.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Hyperlink',
+ text: 'Make the selected text a hyperlink.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Source Edit',
+ text: 'Switch to source editing mode.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Sort Ascending",
+ sortDescText : "Sort Descending",
+ lockText : "Lock Column",
+ unlockText : "Unlock Column",
+ columnsText : "Columns"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(None)',
+ groupByText : 'Group By This Field',
+ showGroupsText : 'Show in Groups'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Name",
+ valueText : "Value",
+ dateFormat : "m/j/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Drag to resize.",
+ collapsibleSplitTip : "Drag to resize. Double click to hide."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-tr.js b/gulliver/js/ext/locale/ext-lang-tr.js
new file mode 100644
index 000000000..a48a187fe
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-tr.js
@@ -0,0 +1,307 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ *
+ * Turkish translation by Alper YAZGAN
+ * 2008-01-24, 10:29 AM
+ *
+ * Updated to 2.2 by YargicX
+ * 2008-10-05, 06:22 PM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Yükleniyor ...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.Grid){
+ Ext.grid.Grid.prototype.ddText = "Seçili satýr sayýsý : {0}";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Sekmeyi kapat";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Bu alandaki deðer geçersiz";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Yükleniyor ...";
+}
+
+Date.monthNames = [
+ "Ocak",
+ "Þžubat",
+ "Mart",
+ "Nisan",
+ "Mayýs",
+ "Haziran",
+ "Temmuz",
+ "Aðustos",
+ "Eylül",
+ "Ekim",
+ "Kasým",
+ "Aralýk"
+];
+
+Date.getShortMonthName = function(month) {
+ return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+ Jan : 0,
+ Feb : 1,
+ Mar : 2,
+ Apr : 3,
+ May : 4,
+ Jun : 5,
+ Jul : 6,
+ Aug : 7,
+ Sep : 8,
+ Oct : 9,
+ Nov : 10,
+ Dec : 11
+};
+
+Date.getMonthNumber = function(name) {
+ return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+ "Pazar",
+ "Pazartesi",
+ "Salý",
+ "LJarþŸamba",
+ "PerþŸembe",
+ "Cuma",
+ "Cumartesi"
+];
+
+Date.shortDayNames = [
+ "Paz",
+ "Pzt",
+ "Sal",
+ "ÇrþŸ",
+ "Prþ",
+ "Cum",
+ "Cmt"
+];
+
+Date.getShortDayName = function(day) {
+ return Date.shortDayNames[day];
+};
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Tamam",
+ cancel : "İptal",
+ yes : "Evet",
+ no : "Hayýr"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Bugün",
+ minText : "Bu tarih izin verilen en küçük tarihten daha önce",
+ maxText : "Bu tarih izin verilen en büyük tarihten daha sonra",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Gelecek Ay (Control+Right)',
+ prevText : 'Önceki Ay (Control+Left)',
+ monthYearText : 'Bir ay sŸeçiniz (Yýlý artýrmak/azaltmak için Control+Up/Down)',
+ todayTip : "{0} (BoþŸluk TuþŸu - Spacebar)",
+ format : "d/m/Y",
+ okText : " Tamam ",
+ cancelText : "İptal",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Sayfa",
+ afterPageText : " / {0}",
+ firstText : "İlk Sayfa",
+ prevText : "Önceki Sayfa",
+ nextText : "Sonraki Sayfa",
+ lastText : "Son Sayfa",
+ refreshText : "Yenile",
+ displayMsg : "Gösterilen {0} - {1} / {2}",
+ emptyMsg : 'Gösterilebilecek veri yok'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Girilen verinin uzunluðu en az {0} olabilir",
+ maxLengthText : "Girilen verinin uzunluðu en fazla {0} olabilir",
+ blankText : "Bu alan boþŸ býrakýlamaz",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "En az {0} girilebilir",
+ maxText : "En çok {0} girilebilir",
+ nanText : "{0} geçersiz bir sayýdýr"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Disabled",
+ disabledDatesText : "Disabled",
+ minText : "Bu tarih, {0} tarihinden daha sonra olmalýdýr",
+ maxText : "Bu tarih, {0} tarihinden daha önce olmalýdýr",
+ invalidText : "{0} geçersiz bir tarihdir - tarih formatý {1} þŸeklinde olmalýdýr",
+ format : "d/m/Y",
+ altFormats : "d.m.y|d.m.Y|d/m/y|d-m-Y|d-m-y|d.m|d/m|d-m|dm|dmY|dmy|d|Y.m.d|Y-m-d|Y/m/d",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Yükleniyor ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.form.VTypes["emailText"]='Bu alan "user@example.com" þŸeklinde elektronik posta formatýnda olmalýdýr';
+ Ext.form.VTypes["urlText"]='Bu alan "http://www.example.com" þŸeklinde URL adres formatýnda olmalýdýr';
+ Ext.form.VTypes["alphaText"]='Bu alan sadece harf ve _ içermeli';
+ Ext.form.VTypes["alphanumText"]='Bu alan sadece harf, sayý ve _ içermeli';
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Lütfen bu baðlantý için gerekli URL adresini giriniz:',
+ buttonTips : {
+ bold : {
+ title: 'Kalýn(Bold) (Ctrl+B)',
+ text: 'Þžeçili yazýyý kalýn yapar.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'İtalik(Italic) (Ctrl+I)',
+ text: 'Þžeçili yazýyý italik yapar.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Alt Çizgi(Underline) (Ctrl+U)',
+ text: 'Þžeçili yazýnýn altýný çizer.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Fontu büyült',
+ text: 'Yazý fontunu büyütür.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Fontu küçült',
+ text: 'Yazý fontunu küçültür.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Arka Plan Rengi',
+ text: 'Seçili yazýnýn arka plan rengini deðiþŸtir.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Yazý Rengi',
+ text: 'Seçili yazýnýn rengini deðiþŸtir.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Sola Daya',
+ text: 'Yazýyý sola daya.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Ortala',
+ text: 'Yazýyý editörde ortala.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Saða daya',
+ text: 'Yazýyý saða daya.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Noktalý Liste',
+ text: 'Noktalý listeye baþŸla.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Numaralý Liste',
+ text: 'Numaralý lisyeye baþŸla.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Web Adresi(Hyperlink)',
+ text: 'Seçili yazýyý web adresi(hyperlink) yap.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Kaynak kodu Düzenleme',
+ text: 'Kaynak kodu düzenleme moduna geç.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Artan sýrada sýrala",
+ sortDescText : "Azalan sýrada sýrala",
+ lockText : "Kolonu kilitle",
+ unlockText : "Kolon kilidini kaldýr",
+ columnsText : "Kolonlar"
+ });
+}
+
+if(Ext.grid.GroupingView){
+ Ext.apply(Ext.grid.GroupingView.prototype, {
+ emptyGroupText : '(Yok)',
+ groupByText : 'Bu Alana Göre Grupla',
+ showGroupsText : 'Gruplar Halinde Göster'
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Ad",
+ valueText : "Deðer",
+ dateFormat : "d/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Yeniden boyutlandýrmak için sürükle.",
+ collapsibleSplitTip : "Yeniden boyutlandýrmak için sürükle. Saklamak için çift týkla."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-ukr.js b/gulliver/js/ext/locale/ext-lang-ukr.js
new file mode 100644
index 000000000..9cd41dc40
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-ukr.js
@@ -0,0 +1,263 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Ukrainian translations for ExtJS (UTF-8 encoding)
+ *
+ * Original translation by zlatko
+ * 3 October 2007
+ *
+ * Updated by dev.ashevchuk@gmail.com
+ * 01.09.2009
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Завантаження...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "<Порожньо>";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} обраних рядків";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Закрити цю вкладку";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Хибне значення";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Завантаження...";
+}
+
+Date.monthNames = [
+ "Січень",
+ "Лютий",
+ "Березень",
+ "Квітень",
+ "Травень",
+ "Червень",
+ "Липень",
+ "Серпень",
+ "Вересень",
+ "Жовтень",
+ "Листопад",
+ "Грудень"
+];
+
+Date.dayNames = [
+ "Неділя",
+ "Понеділок",
+ "Вівторок",
+ "Середа",
+ "Четвер",
+ "П’ятниця",
+ "Субота"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "OK",
+ cancel : "Відміна",
+ yes : "Так",
+ no : "Ні"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d.m.Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Сьогодні",
+ minText : "Ця дата меньша за мінімальну допустиму дату",
+ maxText : "Ця дата більша за максимальну допустиму дату",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Наступний місяць (Control+Вправо)',
+ prevText : 'Попередній місяць (Control+Вліво)',
+ monthYearText : 'Вибір місяця (Control+Вверх/Вниз для вибору року)',
+ todayTip : "{0} (Пробіл)",
+ format : "d.m.y",
+ okText : " OK ",
+ cancelText : "Відміна",
+ startDay : 1
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Сторінка",
+ afterPageText : "з {0}",
+ firstText : "Перша сторінка",
+ prevText : "Попередня сторінка",
+ nextText : "Наступна сторінка",
+ lastText : "Остання сторінка",
+ refreshText : "Освіжити",
+ displayMsg : "Відображення записів з {0} по {1}, всього {2}",
+ emptyMsg : 'Дані для відображення відсутні'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Мінімальна довжина цього поля {0}",
+ maxLengthText : "Максимальна довжина цього поля {0}",
+ blankText : "Це поле є обов’язковим для заповнення",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Значення у цьому полі не може бути меньше {0}",
+ maxText : "Значення у цьому полі не може бути більше {0}",
+ nanText : "{0} не є числом"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Не доступно",
+ disabledDatesText : "Не доступно",
+ minText : "Дата у цьому полі повинна бути більша {0}",
+ maxText : "Дата у цьому полі повинна бути меньша {0}",
+ invalidText : "{0} хибна дата - дата повинна бути вказана у форматі {1}",
+ format : "d.m.y",
+ startDay : 1
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Завантаження...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Це поле повинно містити адресу електронної пошти у форматі "user@example.com"',
+ urlText : 'Це поле повинно містити URL у форматі "http:/'+'/www.example.com"',
+ alphaText : 'Це поле повинно містити виключно латинські літери та символ підкреслення "_"',
+ alphanumText : 'Це поле повинно містити виключно латинські літери, цифри та символ підкреслення "_"'
+ });
+}
+
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : 'Будь-ласка введіть адресу:',
+ buttonTips : {
+ bold : {
+ title: 'Напівжирний (Ctrl+B)',
+ text: 'Зробити напівжирним виділений текст.',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: 'Курсив (Ctrl+I)',
+ text: 'Зробити курсивом виділений текст.',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: 'Підкреслений (Ctrl+U)',
+ text: 'Зробити підкресленим виділений текст.',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: 'Збільшити розмір',
+ text: 'Збільшити розмір шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: 'Зменьшити розмір',
+ text: 'Зменьшити розмір шрифта.',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: 'Заливка',
+ text: 'Змінити колір фону для виділеного тексту або абзацу.',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: 'Колір тексту',
+ text: 'Змінити колір виділеного тексту або абзацу.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: 'Вирівняти текст по лівому полю',
+ text: 'Вирівнювання тексту по лівому полю.',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: 'Вирівняти текст по центру',
+ text: 'Вирівнювання тексту по центру.',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: 'Вирівняти текст по правому полю',
+ text: 'Вирівнювання тексту по правому полю.',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: 'Маркери',
+ text: 'Почати маркований список.',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: 'Нумерація',
+ text: 'Почати нумернований список.',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: 'Вставити гіперпосилання',
+ text: 'Створення посилання із виділеного тексту.',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: 'Джерельний код',
+ text: 'Режим редагування джерельного коду.',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Сортувати по зростанню",
+ sortDescText : "Сортувати по спаданню",
+ lockText : "Закріпити стовпець",
+ unlockText : "Відкріпити стовпець",
+ columnsText : "Стовпці"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Назва",
+ valueText : "Значення",
+ dateFormat : "j.m.Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Тягніть для зміни розміру.",
+ collapsibleSplitTip : "Тягніть для зміни розміру. Подвійний клік сховає панель."
+ });
+}
+
diff --git a/gulliver/js/ext/locale/ext-lang-vn.js b/gulliver/js/ext/locale/ext-lang-vn.js
new file mode 100644
index 000000000..861e2f669
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-vn.js
@@ -0,0 +1,181 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/**
+ * List compiled by mystix on the extjs.com forums.
+ * Thank you Mystix!
+ */
+
+/**
+ * Vietnamese translation
+ * By bpmtri
+ * 12-April-2007 04:06PM
+ */
+
+Ext.UpdateManager.defaults.indicatorText = 'Đang tải...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "{0} dòng được chọn";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "Đóng thẻ này";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "Giá trị của ô này không hợp lệ.";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "Đang tải...";
+}
+
+Date.monthNames = [
+ "Tháng 1",
+ "Tháng 2",
+ "Tháng 3",
+ "Tháng 4",
+ "Tháng 5",
+ "Tháng 6",
+ "Tháng 7",
+ "Tháng 8",
+ "Tháng 9",
+ "Tháng 10",
+ "Tháng 11",
+ "Tháng 12"
+];
+
+Date.dayNames = [
+ "Chủ nhật",
+ "Thứ hai",
+ "Thứ ba",
+ "Thứ tư",
+ "Thứ năm",
+ "Thứ sáu",
+ "Thứ bảy"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "Đồng ý",
+ cancel : "Hủy bỏ",
+ yes : "Có",
+ no : "Không"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "d/m/Y");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "Hôm nay",
+ minText : "Ngày này nhỏ hơn ngày nhỏ nhất",
+ maxText : "Ngày này lớn hơn ngày lớn nhất",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : 'Tháng sau (Control+Right)',
+ prevText : 'Tháng trước (Control+Left)',
+ monthYearText : 'Chọn một tháng (Control+Up/Down để thay đổi năm)',
+ todayTip : "{0} (Spacebar - Phím trắng)",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "Trang",
+ afterPageText : "of {0}",
+ firstText : "Trang đầu",
+ prevText : "Trang trước",
+ nextText : "Trang sau",
+ lastText : "Trang cuối",
+ refreshText : "Tải lại",
+ displayMsg : "Hiển thị {0} - {1} của {2}",
+ emptyMsg : 'Không có dữ liệu để hiển thị'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "Chiều dài tối thiểu của ô này là {0}",
+ maxLengthText : "Chiều dài tối đa của ô này là {0}",
+ blankText : "Ô này cần phải nhập giá trị",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "Giá trị nhỏ nhất của ô này là {0}",
+ maxText : "Giá trị lớn nhất của ô này là {0}",
+ nanText : "{0} hông phải là một số hợp lệ"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "Vô hiệu",
+ disabledDatesText : "Vô hiệu",
+ minText : "Ngày nhập trong ô này phải sau ngày {0}",
+ maxText : "Ngày nhập trong ô này phải trước ngày {0}",
+ invalidText : "{0} không phải là một ngày hợp lệ - phải có dạng {1}",
+ format : "d/m/y"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "Đang tải...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : 'Giá trị của ô này phải là một địa chỉ email có dạng như "ten@abc.com"',
+ urlText : 'Giá trị của ô này phải là một địa chỉ web(URL) hợp lệ, có dạng như "http:/'+'/www.example.com"',
+ alphaText : 'Ô này chỉ được nhập các kí tự và gạch dưới(_)',
+ alphanumText : 'Ô này chỉ được nhập các kí tự, số và gạch dưới(_)'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "Tăng dần",
+ sortDescText : "Giảm dần",
+ lockText : "Khóa cột",
+ unlockText : "Bỏ khóa cột",
+ columnsText : "Các cột"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "Tên",
+ valueText : "Giá trị",
+ dateFormat : "j/m/Y"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "Kéo giữ chuột để thay đổi kích thước.",
+ collapsibleSplitTip : "Kéo giữ chuột để thay đổi kích thước. Nhấp đúp để ẩn đi."
+ });
+}
diff --git a/gulliver/js/ext/locale/ext-lang-zh_CN.js b/gulliver/js/ext/locale/ext-lang-zh_CN.js
new file mode 100644
index 000000000..b70e6227d
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-zh_CN.js
@@ -0,0 +1,263 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Simplified Chinese translation
+ * By DavidHu
+ * 09 April 2007
+ *
+ * update by andy_ghg
+ * 2009-10-22 15:00:57
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '加载中...
';
+
+if(Ext.DataView){
+ Ext.DataView.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "选择了 {0} 行";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "关闭此标签";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "输入值非法";
+}
+
+if (Ext.LoadMask) {
+ Ext.LoadMask.prototype.msg = "读取中...";
+}
+
+Date.monthNames = [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+];
+
+Date.dayNames = [
+ "日",
+ "一",
+ "二",
+ "三",
+ "四",
+ "五",
+ "六"
+];
+
+Date.formatCodes.a = "(this.getHours() < 12 ? '上午' : '下午')";
+Date.formatCodes.A = "(this.getHours() < 12 ? '上午' : '下午')";
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "确定",
+ cancel : "取消",
+ yes : "是",
+ no : "否"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "y年m月d日");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "今天",
+ minText : "日期必须大于最小允许日期",//update
+ maxText : "日期必须小于最大允许日期",//update
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : '下个月 (Ctrl+Right)',
+ prevText : '上个月 (Ctrl+Left)',
+ monthYearText : '选择一个月 (Control+Up/Down 来改变年份)',//update
+ todayTip : "{0} (空格键选择)",
+ format : "y年m月d日",
+ okText : "确定",
+ cancelText : "取消"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "第",//update
+ afterPageText : "页,共 {0} 页",//update
+ firstText : "第一页",
+ prevText : "上一页",//update
+ nextText : "下一页",
+ lastText : "最后页",
+ refreshText : "刷新",
+ displayMsg : "显示 {0} - {1}条,共 {2} 条",//update
+ emptyMsg : '没有数据'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "该输入项的最小长度是 {0} 个字符",
+ maxLengthText : "该输入项的最大长度是 {0} 个字符",
+ blankText : "该输入项为必输项",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "该输入项的最小值是 {0}",
+ maxText : "该输入项的最大值是 {0}",
+ nanText : "{0} 不是有效数值"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "禁用",
+ disabledDatesText : "禁用",
+ minText : "该输入项的日期必须在 {0} 之后",
+ maxText : "该输入项的日期必须在 {0} 之前",
+ invalidText : "{0} 是无效的日期 - 必须符合格式: {1}",
+ format : "y年m月d日"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "加载中...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : '该输入项必须是电子邮件地址,格式如: "user@example.com"',
+ urlText : '该输入项必须是URL地址,格式如: "http:/'+'/www.example.com"',
+ alphaText : '该输入项只能包含半角字母和_',//update
+ alphanumText : '该输入项只能包含半角字母,数字和_'//update
+ });
+}
+//add HTMLEditor's tips by andy_ghg
+if(Ext.form.HtmlEditor){
+ Ext.apply(Ext.form.HtmlEditor.prototype, {
+ createLinkText : '添加超级链接:',
+ buttonTips : {
+ bold : {
+ title: '粗体 (Ctrl+B)',
+ text: '将选中的文字设置为粗体',
+ cls: 'x-html-editor-tip'
+ },
+ italic : {
+ title: '斜体 (Ctrl+I)',
+ text: '将选中的文字设置为斜体',
+ cls: 'x-html-editor-tip'
+ },
+ underline : {
+ title: '下划线 (Ctrl+U)',
+ text: '给所选文字加下划线',
+ cls: 'x-html-editor-tip'
+ },
+ increasefontsize : {
+ title: '增大字体',
+ text: '增大字号',
+ cls: 'x-html-editor-tip'
+ },
+ decreasefontsize : {
+ title: '缩小字体',
+ text: '减小字号',
+ cls: 'x-html-editor-tip'
+ },
+ backcolor : {
+ title: '以不同颜色突出显示文本',
+ text: '使文字看上去像是用荧光笔做了标记一样',
+ cls: 'x-html-editor-tip'
+ },
+ forecolor : {
+ title: '字体颜色',
+ text: '更改字体颜色',
+ cls: 'x-html-editor-tip'
+ },
+ justifyleft : {
+ title: '左对齐',
+ text: '将文字左对齐',
+ cls: 'x-html-editor-tip'
+ },
+ justifycenter : {
+ title: '居中',
+ text: '将文字居中对齐',
+ cls: 'x-html-editor-tip'
+ },
+ justifyright : {
+ title: '右对齐',
+ text: '将文字右对齐',
+ cls: 'x-html-editor-tip'
+ },
+ insertunorderedlist : {
+ title: '项目符号',
+ text: '开始创建项目符号列表',
+ cls: 'x-html-editor-tip'
+ },
+ insertorderedlist : {
+ title: '编号',
+ text: '开始创建编号列表',
+ cls: 'x-html-editor-tip'
+ },
+ createlink : {
+ title: '转成超级链接',
+ text: '将所选文本转换成超级链接',
+ cls: 'x-html-editor-tip'
+ },
+ sourceedit : {
+ title: '代码视图',
+ text: '以代码的形式展现文本',
+ cls: 'x-html-editor-tip'
+ }
+ }
+ });
+}
+
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "正序",//update
+ sortDescText : "倒序",//update
+ lockText : "锁定列",//update
+ unlockText : "解除锁定",//update
+ columnsText : "列"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "名称",
+ valueText : "值",
+ dateFormat : "y年m月d日"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "拖动来改变尺寸.",
+ collapsibleSplitTip : "拖动来改变尺寸. 双击隐藏."
+ });
+}
\ No newline at end of file
diff --git a/gulliver/js/ext/locale/ext-lang-zh_TW.js b/gulliver/js/ext/locale/ext-lang-zh_TW.js
new file mode 100644
index 000000000..7675d095e
--- /dev/null
+++ b/gulliver/js/ext/locale/ext-lang-zh_TW.js
@@ -0,0 +1,178 @@
+/*!
+ * Ext JS Library 3.4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+/*
+ * Traditional Chinese translation
+ * By hata1234
+ * 09 April 2007
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '讀取中...
';
+
+if(Ext.View){
+ Ext.View.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+ Ext.grid.GridPanel.prototype.ddText = "選擇了 {0} 行";
+}
+
+if(Ext.TabPanelItem){
+ Ext.TabPanelItem.prototype.closeText = "關閉此標籤";
+}
+
+if(Ext.form.Field){
+ Ext.form.Field.prototype.invalidText = "數值不符合欄位規定";
+}
+
+if(Ext.LoadMask){
+ Ext.LoadMask.prototype.msg = "讀取中...";
+}
+
+Date.monthNames = [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+];
+
+Date.dayNames = [
+ "日",
+ "一",
+ "二",
+ "三",
+ "四",
+ "五",
+ "六"
+];
+
+if(Ext.MessageBox){
+ Ext.MessageBox.buttonText = {
+ ok : "確定",
+ cancel : "取消",
+ yes : "是",
+ no : "否"
+ };
+}
+
+if(Ext.util.Format){
+ Ext.util.Format.date = function(v, format){
+ if(!v) return "";
+ if(!(v instanceof Date)) v = new Date(Date.parse(v));
+ return v.dateFormat(format || "Y/m/d");
+ };
+}
+
+if(Ext.DatePicker){
+ Ext.apply(Ext.DatePicker.prototype, {
+ todayText : "今天",
+ minText : "日期必須大於最小容許日期",
+ maxText : "日期必須小於最大容許日期",
+ disabledDaysText : "",
+ disabledDatesText : "",
+ monthNames : Date.monthNames,
+ dayNames : Date.dayNames,
+ nextText : "下個月 (Ctrl+右方向鍵)",
+ prevText : "上個月 (Ctrl+左方向鍵)",
+ monthYearText : "選擇月份 (Ctrl+上/下方向鍵選擇年份)",
+ todayTip : "{0} (空白鍵)",
+ format : "y/m/d",
+ okText : "确定",
+ cancelText : "取消"
+ });
+}
+
+if(Ext.PagingToolbar){
+ Ext.apply(Ext.PagingToolbar.prototype, {
+ beforePageText : "第",
+ afterPageText : "頁,共{0}頁",
+ firstText : "第一頁",
+ prevText : "上一頁",
+ nextText : "下一頁",
+ lastText : "最後頁",
+ refreshText : "重新整理",
+ displayMsg : "顯示{0} - {1}筆,共{2}筆",
+ emptyMsg : '沒有任何資料'
+ });
+}
+
+if(Ext.form.TextField){
+ Ext.apply(Ext.form.TextField.prototype, {
+ minLengthText : "此欄位最少要輸入 {0} 個字",
+ maxLengthText : "此欄位最多輸入 {0} 個字",
+ blankText : "此欄位為必填",
+ regexText : "",
+ emptyText : null
+ });
+}
+
+if(Ext.form.NumberField){
+ Ext.apply(Ext.form.NumberField.prototype, {
+ minText : "此欄位之數值必須大於 {0}",
+ maxText : "此欄位之數值必須小於 {0}",
+ nanText : "{0} 不是合法的數字"
+ });
+}
+
+if(Ext.form.DateField){
+ Ext.apply(Ext.form.DateField.prototype, {
+ disabledDaysText : "無法使用",
+ disabledDatesText : "無法使用",
+ minText : "此欄位之日期必須在 {0} 之後",
+ maxText : "此欄位之日期必須在 {0} 之前",
+ invalidText : "{0} 不是正確的日期格式 - 必須像是 「 {1} 」 這樣的格式",
+ format : "Y/m/d"
+ });
+}
+
+if(Ext.form.ComboBox){
+ Ext.apply(Ext.form.ComboBox.prototype, {
+ loadingText : "讀取中 ...",
+ valueNotFoundText : undefined
+ });
+}
+
+if(Ext.form.VTypes){
+ Ext.apply(Ext.form.VTypes, {
+ emailText : '此欄位必須輸入像 "user@example.com" 之E-Mail格式',
+ urlText : '此欄位必須輸入像 "http:/'+'/www.example.com" 之網址格式',
+ alphaText : '此欄位僅能輸入半形英文字母及底線( _ )符號',
+ alphanumText : '此欄位僅能輸入半形英文字母、數字及底線( _ )符號'
+ });
+}
+
+if(Ext.grid.GridView){
+ Ext.apply(Ext.grid.GridView.prototype, {
+ sortAscText : "正向排序",
+ sortDescText : "反向排序",
+ lockText : "鎖定欄位",
+ unlockText : "解開欄位鎖定",
+ columnsText : "欄位"
+ });
+}
+
+if(Ext.grid.PropertyColumnModel){
+ Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+ nameText : "名稱",
+ valueText : "數值",
+ dateFormat : "Y/m/d"
+ });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+ Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+ splitTip : "拖曳縮放大小.",
+ collapsibleSplitTip : "拖曳縮放大小. 滑鼠雙擊隱藏."
+ });
+}