1
0
mirror of git://git.proxmox.com/git/extjs.git synced 2026-09-26 14:40:18 -04:00

add Bengali (bn) translations

The locale-bn.js file was obtained via:

    uglifyjs locale-bn-debug.js > locale-bn.js

Contributed-by: Azharul Haque <haque@azharul.com>
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
This commit is contained in:
Maximiliano Sandoval 2026-08-13 14:51:34 +02:00
parent c2f5ea1496
commit 804c0cb42d
3 changed files with 299 additions and 1 deletions

2
debian/rules vendored
View File

@ -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"; \

View File

@ -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"
});

File diff suppressed because one or more lines are too long