diff --git a/debian/rules b/debian/rules index 60f24093..22d5c017 100755 --- a/debian/rules +++ b/debian/rules @@ -11,7 +11,7 @@ override_dh_auto_test: dh_auto_test # check if all languages are still shipped, as e.g. Georgian (ka) is manually added by us set -e; for l in \ - af bg ca cs da de el_GR en en_AU en_GB es et fa fi fr fr_CA ga gr he hr hu id it ja ka ko lo lt \ + af bg bn ca cs da de el_GR en en_AU en_GB es et fa fi fr fr_CA ga gr he hr hu id it ja ka ko lo lt \ lv mk nl no_NB no_NN pl pt pt_BR pt_PT ro ru sk sl sr sr_RS sv_SE th tr ukr vn zh_CN zh_TW; do \ echo "checking for '$$l' locale"; \ test -e "extjs/build/classic/locale/locale-$$l.js"; \ diff --git a/extjs/build/classic/locale/locale-bn-debug.js b/extjs/build/classic/locale/locale-bn-debug.js new file mode 100644 index 00000000..f3824671 --- /dev/null +++ b/extjs/build/classic/locale/locale-bn-debug.js @@ -0,0 +1,297 @@ +/** + * Bengali translation + * By Azharul Haque (utf-8 encoding) + * 13 August 2026 + */ +Ext.onReady(function() { + + if (Ext.Date) { + Ext.Date.defaultFormat = 'd.m.Y'; + + Ext.Date.monthNames = ["জানুয়ারি", "ফেব্রুয়ারি", "মার্চ", "এপ্রিল", "মে", "জুন", "জুলাই", "আগস্ট", "সেপ্টেম্বর", "অক্টোবর", "নভেম্বর", "ডিসেম্বর"]; + + // Bengali month names have no standard abbreviated form, so the "short" + // list is the same as the full list -- shortening them would make them + // look wrong/invalid rather than save space. + Ext.Date.shortMonthNames = Ext.Date.monthNames.slice(); + + Ext.Date.getShortMonthName = function(month) { + return Ext.Date.shortMonthNames[month]; + }; + + Ext.Date.monthNumbers = { + 'জানুয়ারি': 0, + 'ফেব্রুয়ারি': 1, + 'মার্চ': 2, + 'এপ্রিল': 3, + 'মে': 4, + 'জুন': 5, + 'জুলাই': 6, + 'আগস্ট': 7, + 'সেপ্টেম্বর': 8, + 'অক্টোবর': 9, + 'নভেম্বর': 10, + 'ডিসেম্বর': 11 + }; + + // Bengali names aren't reliably sliceable by a fixed code-unit count either + // (same issue as day names below), so look up the full name directly + // instead of the template's substring(0,1)+substring(1,3) approach. + Ext.Date.getMonthNumber = function(name) { + return Ext.Date.monthNumbers[name]; + }; + + Ext.Date.dayNames = ["রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহস্পতিবার", "শুক্রবার", "শনিবার"]; + + // Bengali abbreviations don't align to a fixed character-count slice of the + // full name (conjuncts/matras), so use an explicit list instead of substring(). + Ext.Date.shortDayNames = ["রবি", "সোম", "মঙ্গল", "বুধ", "বৃহস্পতি", "শুক্র", "শনি"]; + + Ext.Date.getShortDayName = function(day) { + return Ext.Date.shortDayNames[day]; + }; + } + + if (Ext.util && Ext.util.Format) { + Ext.apply(Ext.util.Format, { + thousandSeparator: ',', + decimalSeparator: '.', + currencySign: '৳', + // Bengali Taka + dateFormat: 'd.m.Y' + }); + } +}); + +Ext.define("Ext.locale.bn.view.View", { + override: "Ext.view.View", + emptyText: "" +}); + +Ext.define("Ext.locale.bn.grid.plugin.DragDrop", { + override: "Ext.grid.plugin.DragDrop", + dragText: "{0}টি সারি নির্বাচিত" +}); + +Ext.define("Ext.locale.bn.tab.Tab", { + override: "Ext.tab.Tab", + closeText: "এই ট্যাব বন্ধ করুন" +}); + +Ext.define("Ext.locale.bn.form.field.Base", { + override: "Ext.form.field.Base", + invalidText: "এই ক্ষেত্রের মান অবৈধ" +}); + +// changing the msg text below will affect the LoadMask +Ext.define("Ext.locale.bn.view.AbstractView", { + override: "Ext.view.AbstractView", + loadingText: "লোড হচ্ছে..." +}); + +Ext.define("Ext.locale.bn.picker.Date", { + override: "Ext.picker.Date", + todayText: "আজ", + minText: "এই তারিখ সর্বনিম্ন তারিখের আগে", + maxText: "এই তারিখ সর্বোচ্চ তারিখের পরে", + disabledDaysText: "নিষ্ক্রিয়", + disabledDatesText: "নিষ্ক্রিয়", + nextText: 'পরবর্তী মাস (Control+ডানদিকে)', + prevText: 'পূর্ববর্তী মাস (Control+বামদিকে)', + monthYearText: 'মাস নির্বাচন করুন (বছর নির্বাচন করতে: Control+উপরে/নিচে)', + todayTip: "{0} (স্পেসবার চাপুন)", + format: "d.m.y", + startDay: 0 +}); + +Ext.define("Ext.locale.bn.picker.Month", { + override: "Ext.picker.Month", + okText: "ঠিক আছে", + cancelText: "বাতিল করুন" +}); + +Ext.define("Ext.locale.bn.toolbar.Paging", { + override: "Ext.PagingToolbar", + beforePageText: "পৃষ্ঠা", + afterPageText: "{0}-এর মধ্যে", + firstText: "প্রথম পৃষ্ঠা", + prevText: "পূর্ববর্তী পৃষ্ঠা", + nextText: "পরবর্তী পৃষ্ঠা", + lastText: "শেষ পৃষ্ঠা", + refreshText: "রিফ্রেশ করুন", + displayMsg: "{2}টির মধ্যে {0} - {1} প্রদর্শিত হচ্ছে", + emptyMsg: 'দেখানোর জন্য কোনো তথ্য নেই' +}); + +Ext.define("Ext.locale.bn.form.field.Text", { + override: "Ext.form.field.Text", + minLengthText: "এই ক্ষেত্রের সর্বনিম্ন দৈর্ঘ্য {0}", + maxLengthText: "এই ক্ষেত্রের সর্বোচ্চ দৈর্ঘ্য {0}", + blankText: "এই ক্ষেত্র পূরণ করা আবশ্যক", + regexText: "", + emptyText: null +}); + +Ext.define("Ext.locale.bn.form.field.Number", { + override: "Ext.form.field.Number", + minText: "এই ক্ষেত্রের মান {0} এর কম হতে পারবে না", + maxText: "এই ক্ষেত্রের মান {0} এর বেশি হতে পারবে না", + nanText: "{0} একটি সংখ্যা নয়", + negativeText: "মান ঋণাত্মক হতে পারবে না" +}); + +Ext.define("Ext.locale.bn.form.field.Date", { + override: "Ext.form.field.Date", + 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" +}); + +Ext.define("Ext.locale.bn.form.field.ComboBox", { + override: "Ext.form.field.ComboBox", + valueNotFoundText: undefined +}, function() { + Ext.apply(Ext.form.field.ComboBox.prototype.defaultListConfig, { + loadingText: "লোড হচ্ছে..." + }); +}); + +Ext.define("Ext.locale.bn.form.field.VTypes", { + override: "Ext.form.field.VTypes", + emailText: 'এই ক্ষেত্রে অবশ্যই "user@example.com" ফরম্যাটে একটি ইমেইল ঠিকানা থাকতে হবে', + urlText: 'এই ক্ষেত্রে অবশ্যই "http:/' + '/www.example.com" ফরম্যাটে একটি URL থাকতে হবে', + alphaText: 'এই ক্ষেত্রে শুধুমাত্র বর্ণ এবং "_" থাকতে পারবে', + alphanumText: 'এই ক্ষেত্রে শুধুমাত্র বর্ণ, সংখ্যা এবং "_" থাকতে পারবে' +}); + +Ext.define("Ext.locale.bn.form.field.HtmlEditor", { + override: "Ext.form.field.HtmlEditor", + createLinkText: 'ঠিকানা লিখুন:' +}, function() { + Ext.apply(Ext.form.field.HtmlEditor.prototype, { + buttonTips: { + bold: { + title: 'বোল্ড (Ctrl+B)', + text: 'নির্বাচিত টেক্সট বোল্ড করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + italic: { + title: 'ইটালিক (Ctrl+I)', + text: 'নির্বাচিত টেক্সট ইটালিক করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + underline: { + title: 'আন্ডারলাইন (Ctrl+U)', + text: 'নির্বাচিত টেক্সটে আন্ডারলাইন যোগ করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + increasefontsize: { + title: 'ফন্ট বড় করুন', + text: 'ফন্টের আকার বড় করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + decreasefontsize: { + title: 'ফন্ট ছোট করুন', + text: 'ফন্টের আকার ছোট করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + backcolor: { + title: 'হাইলাইট রঙ', + text: 'নির্বাচিত টেক্সট বা প্যারাগ্রাফের ব্যাকগ্রাউন্ড রঙ পরিবর্তন করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + forecolor: { + title: 'ফন্টের রঙ', + text: 'টেক্সটের রঙ পরিবর্তন করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + justifyleft: { + title: 'বামে সারিবদ্ধ করুন', + text: 'টেক্সট বাম দিকে সারিবদ্ধ করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + justifycenter: { + title: 'মাঝখানে সারিবদ্ধ করুন', + text: 'টেক্সট মাঝখানে সারিবদ্ধ করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + justifyright: { + title: 'ডানে সারিবদ্ধ করুন', + text: 'টেক্সট ডান দিকে সারিবদ্ধ করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + insertunorderedlist: { + title: 'বুলেট তালিকা', + text: 'বুলেট তালিকা শুরু করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + insertorderedlist: { + title: 'সংখ্যাযুক্ত তালিকা', + text: 'সংখ্যাযুক্ত তালিকা শুরু করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + createlink: { + title: 'হাইপারলিংক তৈরি করুন', + text: 'নির্বাচিত টেক্সট থেকে একটি হাইপারলিংক তৈরি করুন।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + }, + sourceedit: { + title: 'সোর্স কোড', + text: 'সোর্স কোড সম্পাদনায় যান।', + cls: Ext.baseCSSPrefix + 'html-editor-tip' + } + } + }); +}); + +Ext.define("Ext.locale.bn.form.Basic", { + override: "Ext.form.Basic", + waitTitle: "অনুগ্রহ করে অপেক্ষা করুন..." +}); + +Ext.define("Ext.locale.bn.grid.header.Container", { + override: "Ext.grid.header.Container", + sortAscText: "ঊর্ধ্বক্রমে সাজান", + sortDescText: "নিম্নক্রমে সাজান", + lockText: "কলাম লক করুন", + unlockText: "কলাম আনলক করুন", + columnsText: "কলাম" +}); + +Ext.define("Ext.locale.bn.grid.GroupingFeature", { + override: "Ext.grid.feature.Grouping", + emptyGroupText: '(খালি)', + groupByText: 'এই ক্ষেত্র অনুযায়ী গ্রুপ করুন', + showGroupsText: 'গ্রুপে দেখান' +}); + +Ext.define("Ext.locale.bn.grid.PropertyColumnModel", { + override: "Ext.grid.PropertyColumnModel", + nameText: "নাম", + valueText: "মান", + dateFormat: "d.m.Y" +}); + +Ext.define("Ext.locale.bn.window.MessageBox", { + override: "Ext.window.MessageBox", + buttonText: { + ok: "ঠিক আছে", + cancel: "বাতিল করুন", + yes: "হ্যাঁ", + no: "না" + } +}); + +Ext.define("Ext.locale.bn.form.field.File", { + override: "Ext.form.field.File", + buttonText: "ব্রাউজ করুন..." +}); + +// This is needed until we can refactor all of the locales into individual files +Ext.define("Ext.locale.bn.Component", { + override: "Ext.Component" +}); diff --git a/extjs/build/classic/locale/locale-bn.js b/extjs/build/classic/locale/locale-bn.js new file mode 100644 index 00000000..7d6ba0f7 --- /dev/null +++ b/extjs/build/classic/locale/locale-bn.js @@ -0,0 +1 @@ +Ext.onReady(function(){if(Ext.Date){Ext.Date.defaultFormat="d.m.Y";Ext.Date.monthNames=["জানুয়ারি","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","আগস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"];Ext.Date.shortMonthNames=Ext.Date.monthNames.slice();Ext.Date.getShortMonthName=function(month){return Ext.Date.shortMonthNames[month]};Ext.Date.monthNumbers={"জানুয়ারি":0,"ফেব্রুয়ারি":1,"মার্চ":2,"এপ্রিল":3,"মে":4,"জুন":5,"জুলাই":6,"আগস্ট":7,"সেপ্টেম্বর":8,"অক্টোবর":9,"নভেম্বর":10,"ডিসেম্বর":11};Ext.Date.getMonthNumber=function(name){return Ext.Date.monthNumbers[name]};Ext.Date.dayNames=["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"];Ext.Date.shortDayNames=["রবি","সোম","মঙ্গল","বুধ","বৃহস্পতি","শুক্র","শনি"];Ext.Date.getShortDayName=function(day){return Ext.Date.shortDayNames[day]}}if(Ext.util&&Ext.util.Format){Ext.apply(Ext.util.Format,{thousandSeparator:",",decimalSeparator:".",currencySign:"৳",dateFormat:"d.m.Y"})}});Ext.define("Ext.locale.bn.view.View",{override:"Ext.view.View",emptyText:""});Ext.define("Ext.locale.bn.grid.plugin.DragDrop",{override:"Ext.grid.plugin.DragDrop",dragText:"{0}টি সারি নির্বাচিত"});Ext.define("Ext.locale.bn.tab.Tab",{override:"Ext.tab.Tab",closeText:"এই ট্যাব বন্ধ করুন"});Ext.define("Ext.locale.bn.form.field.Base",{override:"Ext.form.field.Base",invalidText:"এই ক্ষেত্রের মান অবৈধ"});Ext.define("Ext.locale.bn.view.AbstractView",{override:"Ext.view.AbstractView",loadingText:"লোড হচ্ছে..."});Ext.define("Ext.locale.bn.picker.Date",{override:"Ext.picker.Date",todayText:"আজ",minText:"এই তারিখ সর্বনিম্ন তারিখের আগে",maxText:"এই তারিখ সর্বোচ্চ তারিখের পরে",disabledDaysText:"নিষ্ক্রিয়",disabledDatesText:"নিষ্ক্রিয়",nextText:"পরবর্তী মাস (Control+ডানদিকে)",prevText:"পূর্ববর্তী মাস (Control+বামদিকে)",monthYearText:"মাস নির্বাচন করুন (বছর নির্বাচন করতে: Control+উপরে/নিচে)",todayTip:"{0} (স্পেসবার চাপুন)",format:"d.m.y",startDay:0});Ext.define("Ext.locale.bn.picker.Month",{override:"Ext.picker.Month",okText:"ঠিক আছে",cancelText:"বাতিল করুন"});Ext.define("Ext.locale.bn.toolbar.Paging",{override:"Ext.PagingToolbar",beforePageText:"পৃষ্ঠা",afterPageText:"{0}-এর মধ্যে",firstText:"প্রথম পৃষ্ঠা",prevText:"পূর্ববর্তী পৃষ্ঠা",nextText:"পরবর্তী পৃষ্ঠা",lastText:"শেষ পৃষ্ঠা",refreshText:"রিফ্রেশ করুন",displayMsg:"{2}টির মধ্যে {0} - {1} প্রদর্শিত হচ্ছে",emptyMsg:"দেখানোর জন্য কোনো তথ্য নেই"});Ext.define("Ext.locale.bn.form.field.Text",{override:"Ext.form.field.Text",minLengthText:"এই ক্ষেত্রের সর্বনিম্ন দৈর্ঘ্য {0}",maxLengthText:"এই ক্ষেত্রের সর্বোচ্চ দৈর্ঘ্য {0}",blankText:"এই ক্ষেত্র পূরণ করা আবশ্যক",regexText:"",emptyText:null});Ext.define("Ext.locale.bn.form.field.Number",{override:"Ext.form.field.Number",minText:"এই ক্ষেত্রের মান {0} এর কম হতে পারবে না",maxText:"এই ক্ষেত্রের মান {0} এর বেশি হতে পারবে না",nanText:"{0} একটি সংখ্যা নয়",negativeText:"মান ঋণাত্মক হতে পারবে না"});Ext.define("Ext.locale.bn.form.field.Date",{override:"Ext.form.field.Date",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"});Ext.define("Ext.locale.bn.form.field.ComboBox",{override:"Ext.form.field.ComboBox",valueNotFoundText:undefined},function(){Ext.apply(Ext.form.field.ComboBox.prototype.defaultListConfig,{loadingText:"লোড হচ্ছে..."})});Ext.define("Ext.locale.bn.form.field.VTypes",{override:"Ext.form.field.VTypes",emailText:'এই ক্ষেত্রে অবশ্যই "user@example.com" ফরম্যাটে একটি ইমেইল ঠিকানা থাকতে হবে',urlText:'এই ক্ষেত্রে অবশ্যই "http:/'+'/www.example.com" ফরম্যাটে একটি URL থাকতে হবে',alphaText:'এই ক্ষেত্রে শুধুমাত্র বর্ণ এবং "_" থাকতে পারবে',alphanumText:'এই ক্ষেত্রে শুধুমাত্র বর্ণ, সংখ্যা এবং "_" থাকতে পারবে'});Ext.define("Ext.locale.bn.form.field.HtmlEditor",{override:"Ext.form.field.HtmlEditor",createLinkText:"ঠিকানা লিখুন:"},function(){Ext.apply(Ext.form.field.HtmlEditor.prototype,{buttonTips:{bold:{title:"বোল্ড (Ctrl+B)",text:"নির্বাচিত টেক্সট বোল্ড করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},italic:{title:"ইটালিক (Ctrl+I)",text:"নির্বাচিত টেক্সট ইটালিক করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},underline:{title:"আন্ডারলাইন (Ctrl+U)",text:"নির্বাচিত টেক্সটে আন্ডারলাইন যোগ করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},increasefontsize:{title:"ফন্ট বড় করুন",text:"ফন্টের আকার বড় করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},decreasefontsize:{title:"ফন্ট ছোট করুন",text:"ফন্টের আকার ছোট করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},backcolor:{title:"হাইলাইট রঙ",text:"নির্বাচিত টেক্সট বা প্যারাগ্রাফের ব্যাকগ্রাউন্ড রঙ পরিবর্তন করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},forecolor:{title:"ফন্টের রঙ",text:"টেক্সটের রঙ পরিবর্তন করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyleft:{title:"বামে সারিবদ্ধ করুন",text:"টেক্সট বাম দিকে সারিবদ্ধ করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifycenter:{title:"মাঝখানে সারিবদ্ধ করুন",text:"টেক্সট মাঝখানে সারিবদ্ধ করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyright:{title:"ডানে সারিবদ্ধ করুন",text:"টেক্সট ডান দিকে সারিবদ্ধ করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertunorderedlist:{title:"বুলেট তালিকা",text:"বুলেট তালিকা শুরু করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertorderedlist:{title:"সংখ্যাযুক্ত তালিকা",text:"সংখ্যাযুক্ত তালিকা শুরু করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},createlink:{title:"হাইপারলিংক তৈরি করুন",text:"নির্বাচিত টেক্সট থেকে একটি হাইপারলিংক তৈরি করুন।",cls:Ext.baseCSSPrefix+"html-editor-tip"},sourceedit:{title:"সোর্স কোড",text:"সোর্স কোড সম্পাদনায় যান।",cls:Ext.baseCSSPrefix+"html-editor-tip"}}})});Ext.define("Ext.locale.bn.form.Basic",{override:"Ext.form.Basic",waitTitle:"অনুগ্রহ করে অপেক্ষা করুন..."});Ext.define("Ext.locale.bn.grid.header.Container",{override:"Ext.grid.header.Container",sortAscText:"ঊর্ধ্বক্রমে সাজান",sortDescText:"নিম্নক্রমে সাজান",lockText:"কলাম লক করুন",unlockText:"কলাম আনলক করুন",columnsText:"কলাম"});Ext.define("Ext.locale.bn.grid.GroupingFeature",{override:"Ext.grid.feature.Grouping",emptyGroupText:"(খালি)",groupByText:"এই ক্ষেত্র অনুযায়ী গ্রুপ করুন",showGroupsText:"গ্রুপে দেখান"});Ext.define("Ext.locale.bn.grid.PropertyColumnModel",{override:"Ext.grid.PropertyColumnModel",nameText:"নাম",valueText:"মান",dateFormat:"d.m.Y"});Ext.define("Ext.locale.bn.window.MessageBox",{override:"Ext.window.MessageBox",buttonText:{ok:"ঠিক আছে",cancel:"বাতিল করুন",yes:"হ্যাঁ",no:"না"}});Ext.define("Ext.locale.bn.form.field.File",{override:"Ext.form.field.File",buttonText:"ব্রাউজ করুন..."});Ext.define("Ext.locale.bn.Component",{override:"Ext.Component"});