-->
jQuery(document).ready(function($) {
/************************************************************
* CONFIGURATION
************************************************************/
const enableVirtualKeyboard = false; // ✅ Set true to enable virtual keyboard
const keyboardLayouts = {
en: 'english',
dv: 'dv',
ar: 'arabic',
ur: 'urdu',
fr: 'persian'
};
/************************************************************
* RTL DETECTION ENGINE (rtlThis.js logic)
************************************************************/
const rtlThis = {
options: {
classPrefix: 'rtl-',
template: '$&',
scripts: {
ara: { name: 'Arabic', regexp: /[\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]+/g },
div: { name: 'Dhivehi', regexp: /[\u0780-\u07BF]+/g },
heb: { name: 'Hebrew', regexp: /[\u0590-\u05FF]+/g },
man: { name: 'Mandaic', regexp: /[\u0840-\u085F]+/g },
men: { name: 'Mende Kikakui', regexp: /[\u1E800-\u1E8DF]+/g },
nko: { name: "N'Ko", regexp: /[\u07C0-\u07FF]+/g },
syc: { name: 'Syriac', regexp: /[\u0700-\u074F]+/g },
tif: { name: 'Tifinagh', regexp: /[\u2D30-\u2D7F]+/g },
urd: { name: 'Urdu', regexp: /[\u0600-\u06FF]+/g }
}
},
run: function(selector, options) {
const opts = $.extend(true, {}, this.options, options);
const $elems = $(selector);
$elems.each(function() {
walkDOM(this, function(node) {
const code = matchScript(node, opts.scripts);
if (code) decorateText(node, opts.scripts[code], opts);
});
});
function matchScript(node, scripts) {
if (node.nodeType === Node.TEXT_NODE) {
for (let code in scripts) {
if (scripts[code].regexp.test(node.data)) {
return code;
}
}
}
return false;
}
function decorateText(node, script, opts) {
const html = node.textContent.replace(script.regexp, opts.template
.replace('{{prefix}}', opts.classPrefix)
.replace('{{code}}', script.name.toLowerCase())
.replace('$&', '$&'));
if (html && node.parentNode) {
node.parentNode.replaceChild(
document.createRange().createContextualFragment(html),
node
);
}
}
function walkDOM(node, func) {
func(node);
node = node.firstChild;
while (node) {
walkDOM(node, func);
node = node.nextSibling;
}
}
}
};
/************************************************************
* INPUT LANGUAGE HANDLER
************************************************************/
$('input[type="text"], textarea').on('focus', function() {
const $field = $(this);
const lang = $field.attr('lang') || 'en';
// Reset direction
$field.attr('dir', 'ltr');
// Switch direction + placeholder
switch (lang) {
case 'dv':
$field.attr('dir', 'rtl').attr('placeholder', 'ދިވެހި ބަހުން ލިޔުއްވާ...');
break;
case 'ar':
$field.attr('dir', 'rtl').attr('placeholder', 'Typing in Arabic...');
break;
case 'ur':
$field.attr('dir', 'rtl').attr('placeholder', 'Typing in Urdu...');
break;
case 'fr':
$field.attr('dir', 'rtl').attr('placeholder', 'Typing in Farsi...');
break;
default:
$field.attr('dir', 'ltr').attr('placeholder', 'Typing in English...');
}
// Run RTL detection on this element (for mixed script support)
rtlThis.run(this);
// === OPTIONAL: Activate Virtual Keyboard ===
if (enableVirtualKeyboard && typeof $.keyboard === 'function') {
if ($field.data('keyboard')) {
$field.getkeyboard().destroy();
}
const layout = keyboardLayouts[lang] || 'english';
$field.keyboard({
layout: layout,
usePreview: false,
autoAccept: true,
alwaysOpen: false
});
}
});
// Also check all page content on load
//rtlThis.run('body');
rtlThis.run('#dv-comment-form');
});
ގ. ޑޭޒީމާގެ
އާމިނަތު ފާއިޒާ
ތަޢާރުފް
ގ. ޑޭޒީމާގޭ އާމިނަތު ފާއިޒާ، "އަޅުގަނޑުގެ މަންމަ" ކުރައްވާފައިވާ ހުރިހާ މަސައްކަތްޕުޅެއް އަދި މަންމަގެ ޙަޔާތްޕުޅުގައި ހޯއްދަވައި، އެއްކުރައްވާފައިވާ ހުރިހާ ފޮތެއް، ވެބްސައިޓެއް މެދުވެރިކޮށް ދިވެހި ރައްޔިތުންނާ ހިއްސާކުރުމުގެ ވިސްނުން އައީ، އެއް ދުވަހަކު މަންމަ އަޅުގަނޑާ ކުރެއްވި ސުވާލަކާ ގުޅިގެންނެވެ. "މަންމަ މަރުވުމުން މަންމަގެ ފޮތްތަކަށް ހައްދަވާނީ ކިހިނެތްތޯ؟"، މަންމަ އެއްސެވި އެވެ. އާދެ! އެ ދުވަހު އަޅުގަނޑު ދެންނެވީ، މަންމަ ކުރައްވާފައިވާ މަސައްކަތްޕުޅަކީ ދިވެހިރައްޔިތުންނަށް ވަރަށް މުހިންމު ޚިދުމަތްތަކަކަށްވާތީ، އެ މަސައްކަތް އާންމުކޮށް އެންމެންނާ ހިއްސާކުރުމަކީ އެންމެ ރަނގަޅު ގޮތްކަމުގައި އަޅުގަނޑަށް ފެންނަކަމަށެވެ. މިކަމާ ހިތްޕުޅު ހަމަޖެހޭކަމަށް މަންމަ ވިދާޅުވި އެވެ. އެ ދުވަހުން ފެށިގެން އެކަން ކުރުމުގެ މަގު ތަނަވަސްވޭތޯ އަޅުގަނޑު މަސައްކަތް ފެށީމެވެ. އަޅުގަނޑަށް ވިސްނުނު ގޮތުގައި، މިކަން ކުރަން އެންމެ ރަގަނޅު ގޮތަކީ، ވެބްސައިޓެއް މެދުވެރިކޮށް ފޮތްތައް އާންމުކުރުމާއި ހުރިހާ ފޮތްތައް ލައިބްރަރީއަކަށް ހަދިޔާކުރުމެވެ.
މި މަސައްކަތް ފެށުމަށްޓަކައި، 2010 ވަނަ އަހަރުގެ އޯގަސްޓުމަހުގެ ތެރޭގައި މަންމަގެ ނަންފުޅުގައި ޑޮމޭންއެއް ގަތީމެވެ. އެ ހިސާބުން މަންމަގެ ފޮތްކޮޅުތައް ޑިޖިޓައިޒް ކުރުމުގެ މަސައްކަތް ފެށީމެވެ. އެންމެ ފުރަތަމަ މިކަމުގައި އަޅުގަނޑަށް އެހީތެރިކަން ފޯރުކޮށްދެއްވީ، މއ. ސަލްވީނިޔާ އަލްފާޟިލާ ފާޠިމަތު ރަޝީދާ އެވެ. އާދެ! ފުރަތަމަ ހެދި ވެބްސައިޓްގައި ހިމެނި ފޮތްތައް ޓައިޕްކޮށްދެއްވީ އޭނާ އެވެ. އަދި ފުރަތަމަ ވެބްސައިޓް ފަރުމާކޮށްދެއްވީ ޝާހީ އިލްޔާސް އެވެ. އަޅުގަނޑުގެ އަމާޒަކަށްވީ، 2011 ވަނަ އަހަރުގެ ފެބްރުއަރީމަހަށް މަސައްކަތް ނިންމުމެވެ. ނަމަވެސް، މަސައްކަތް ދައްކާލެވޭ ވަރަށް ތައްޔާރުނުވަނީސް، އެ އަހަރުގެ ފެބްރުއަރީމަހުގެ 25 ވަނަ ދުވަހުގެ 06:05 ގައި މަންމަ އަވަހާރަވެއްޖެ އެވެ. (ޔާﷲ އަޅުގަނޑުގެ މަންމަގެ ފާފަ ފުއްސަވައި ހެޔޮ رحمة ލައްވައި، މަންމައަށް ސުވަރުގޭގެ ދާއިމީ نعمة މިންވަރު ކުރައްވާށި. آمِين ).
ވެބްވައިޓްގެ މަސައްކަތް ނިންމާލެވުނު އިރު، އަޅުގަނޑު ހިތާމަކުރާ ކަމަކަށް އޮތީ، މި މަސައްކަތުގައި މަންމަގެ ފާޑުވިދާޅުވުމެއް ލިބިފައި ނުވުމެވެ. އެއީ، މި ވެބްސައިޓަށް ލިބުނު އެންމެ ބޮޑު އުނިކަން ކަމުގައި އަޅުގަނޑު ދެކެމެވެ. މި ވެބްސައިޓް ފުރަތަމަ ލޯންޗުކޮށްދެއްވީ، މަންމަ ދުނިޔެ ދޫކުރެއްވިތާ ސާޅީސް ވީ ދުވަހު، މޯލްޑިވްސް ނޭޝަނަލް ޔުނިވަރސިޓީ (އެމް.އެން.ޔޫ.) ގައި، އެ ޔުނިވަރސިޓީގެ ވައިސް ޗާންސެލަރ ޑޮކްޓަރ. ޙަސަން ޙަމީދެވެ.
ވެބްސައިޓް އަލުން ފަރުމާކޮށް، 2025 ވަނަ އަހަރު މި ލޯންޗުކުރި ވެބްސައިޓް ހެދުމަށް ހޭދަވި އަހަރުތަކުގައި، އެކިއެކި ފަރާތްތަކާ މަޝްވަރާ ކުރެވުނު ނަމަވެސް، ވެބްސައިޓްގެ މަސައްކަތް ކާމިޔާބާއެކު ނިންމުނީ، އަލްފާޟިލް އިސްމާޢީލް ޞަބާޙް މިކަމާ ހަވާލުވުމުންނެވެ. އަދި މި ވެބްސައިޓުގައި މިހާރު ހިމަނާފައިވާ ފޮތްތައް ސްކޭންކޮށް ދެއްވި ދެ ބޭފުޅުން ކަމުގައިވާ، މއ. ބޮލިގޭ އަލްފާޟިލާ އާޝިޔާ ލުޠުފީ އާއި ހ. އާބާދު އަލްފާޟިލާ އާއިޝަތު ނަހުލާގެ ނަންވެސް، ޝުކުރުވެރިކަމާއެކު ފާހަގަކޮށްލަމެވެ.
މި ވެބްސައިޓުގެ ޒަރިއްޔާއިން ދިވެހި ދަރިންނަށް މުހިންމު އިރުޝާދުތަކަކާއި ތަރުބިއްޔަތުތަކެއް ލިބޭނެކަމަށް އަޅުގަނޑު ޤަބޫލުކުރަމެވެ. މި މަސައްކަތަކީ، ތާރީޚީގޮތުންނާއި އަދަބީގޮތުން މުއްސަނދި އަދި އެހާމެ އަގުހުރި ޚިދުމަތްތަކެއް ކަމަށްވާތީ، މި މަސައްކަތްޕުޅުތައް ބޭނުންކުރައްވާ ފަރާތްތަކުން، އިޙްތިރާމާ އެކު ބޭނުންކުރެއްވުން އެދެމެވެ.
މުޙަންމަދު ޙިލްމީ
Code Snippet ma-customfonts 3.4.3