मिडियाविकि:Translitbn.js

विकिपिडिया नं

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/*
This script is a modified version of Alex benenson's cyrillic translitarator and this version was created by user [[:am:User:Tatari|Tatari]] for Devnagari and has been modified by  [[User:Eukesh|Eukesh]] and [[:bpy:User:Usingha|Usingha]] for Bangla, Bishnupriya Manipuri and Assamese
*/
var amhaHash='{"k":"ক্","ক্a":"ক","কa":"কা","ক্i":"কি","ক্I":"কী","কিi":"কিই","কেe":"কী","ক্u":"কু","ক্U":"কূ","কোo":"কূ","কুu":"কূ","ক্e":"কে","কi":"কই","ক্o":"কো","কu":"কৌ","ক্:":"কঃ","ক:":"কঃ","ক্O":"র্ক","কাM":"কাঁ","ক্E":"কৈ","কng":"কঙ","ক্R":"কৃ","কৃu":"কৃ","কৃU":"কৄ","কৃওo":"কৃঊ","কৃl":"কৢ","কৢu":"কৢ","কৢU":"কৢ","কৢওo":"কৢঊ","ক্M":"কং","ক্h":"খ্","খ্a":"খ","খa":"খা","খ্i":"খি","খ্I":"খী","খিi":"খিই","খেe":"খী","খ্u":"খু","খ্U":"খূ","খোo":"খূ","খুu":"খূ","খ্e":"খে","খi":"খই","খ্o":"খো","খu":"খৌ","খ্:":"খঃ","খ:":"খঃ","খ্O":"খॉ","খাM":"খাঁ","খ্E":"খৈ","খৈM":"খঁ","খ্R":"খৃ","খৃu":"খৃ","খৃU":"খৄ","খৃওo":"খৃঊ","খ্M":"খং","খৃl":"খৢ","খৢu":"খৢ","খৢU":"খৢ","খৢওo":"খৢঊ",';
amhaHash+='"g":"গ্","গ্a":"গ","গa":"গা","গ্i":"গি","গ্I":"গী","গিi":"গী","গেe":"গী","গ্u":"গু","গ্U":"গূ","গোo":"গূ","গুu":"গূ","গ্e":"গে","গi":"গই","গ্o":"গো","গu":"গৌ","গ্:":"গঃ","গ:":"গঃ","গ্O":"র্গ","গাM":"গাঁ","গ্E":"গৈ","গৈM":"গঁ","গ্R":"গৃ","গৃu":"গৃ","গৃU":"গৄ","গৃওo":"গৄ","গ্M":"গং","গৃl":"গৢ","গৢu":"গৢ","গৢU":"গৢ","গৢo":"গৢ","গ্h":"ঘ্","ঘ্a":"ঘ","ঘa":"ঘা","ঘ্i":"ঘি","ঘ্I":"ঘী","ঘিi":"ঘী","ঘেe":"ঘী","ঘ্u":"ঘু","ঘ্U":"ঘূ","ঘোo":"ঘূ","ঘুu":"ঘূ","ঘ্e":"ঘে","ঘi":"ঘই","ঘ্o":"ঘো","ঘu":"ঘৌ","ঘ্:":"ঘঃ","ঘ:":"ঘঃ","ঘ্O":"ঘॉ","ঘাM":"ঘাঁ","ঘ্E":"ঘৈ","ঘৈM":"ঘঁ","ঘ্R":"ঘৃ","ঘৃu":"ঘৃ","ঘৃU":"ঘৄ","ঘৃওo":"ঘৄ","ঘ্M":"ঘং","ঘৃl":"ঘৢ","ঘৢu":"ঘৢ","ঘৢU":"ঘৢ","ঘৢওo":"ঘৢ","G":"ঙ্","ঙ্a":"ঙ","ঙa":"ঙা","ঙ্i":"ঙি","ঙ্I":"ঙী","ঙিi":"ঙী","ঙেe":"ঙী","ঙ্u":"ঙু","ঙ্U":"ঙূ","ঙোo":"ঙূ","ঙুu":"ঙূ","ঙ্e":"ঙে","ঙi":"ঙই","ঙ্o":"ঙো","ঙu":"ঙৌ","ঙ্:":"ঙঃ","ঙ:":"ঙঃ","ঙ্O":"ঙॉ","ঙাM":"ঙাঁ","ঙ্E":"ঙৈ","ঙৈM":"ঙঁ","ঙ্R":"ঙৃ","ঙৃu":"ঙৃ","ঙৃU":"ঙৄ","ঙৃওo":"ঙৄ","ঙ্M":"ঙং","ঙৃl":"ঙৢ","ঙৢu":"ঙৢ","ঙৢU":"ঙৢ","ঙৢওo":"ঙৢ",';
amhaHash+='"c":"চ্","চ্a":"চ","চa":"চা","চ্i":"চি","চ্I":"চী","চিi":"চী","চেe":"চী","চ্u":"চু","চ্U":"চূ","চোo":"চূ","চুu":"চূ","চ্e":"চে","চi":"চই","চ্o":"চো","চu":"চৌ","চ্:":"চঃ","চ:":"চঃ","চ্O":"র্চ","চাM":"চাঁ","চ্E":"চৈ","চৈM":"চঁ","চ্R":"চৃ","চৃu":"চৃ","চৃU":"চৄ","চৃওo":"চৄ","চ্M":"চং","চৃl":"চৢ","চৢu":"চৢ","চৢU":"চৢ","চৢওo":"চৢ",';
amhaHash+='"C":"ছ্","চ্h":"ছ্","ছ্h":"ছ্","ছ্a":"ছ","ছa":"ছা","ছ্i":"ছি","ছ্I":"ছী","ছিi":"ਛী","ছেe":"ছী","ছ্u":"ছু","ছ্U":"ছূ","ছোo":"ছূ","ছুu":"ছূ","ছ্e":"ছে","ছi":"ছই","ছ্o":"ছো","ছu":"ছৌ","ছ্:":"ছঃ","ছ:":"ছঃ","ছ্O":"র্ছ","ছাM":"ছাঁ","ছ্E":"ছৈ","ছৈM":"ছঁ","ছ্R":"ছৃ","ছৃu":"ছৃ","ছৃU":"ছৄ","ছৃওo":"ছৄ","ছ্M":"ছং","ছৃl":"ছৢ","ছৢu":"ছৢ","ছৢU":"ছৢ","ছৢওo":"ছৢ",';
amhaHash+='"j":"জ্","জ্a":"জ","জa":"জা","জ্i":"জি","জ্I":"জী","জিi":"জী","জেe":"জী","জ্u":"জু","জ্U":"জূ","জোo":"জূ","জুu":"জূ","জ্e":"জে","জi":"জই","জ্o":"জো","জu":"জৌ","জ্:":"জঃ","জ:":"জঃ","জ্O":"র্জ","জাM":"জাঁ","জ্E":"জৈ","জৈM":"জঁ","জ্R":"জৃ","জৃu":"জৃ","জৃU":"জৄ","জৃওo":"জৄ","জ্M":"জং","জৃl":"জৢ","জৢu":"জৢ","জৢU":"জৢ","জৢওo":"জৢ","জ্h":"ঝ্","ঝ্a":"ঝ","ঝa":"ঝা","ঝ্i":"ঝি","ঝ্I":"ঝী","ঝিi":"ঝী","ঝেe":"ঝী","ঝ্u":"ঝু","ঝ্U":"ঝূ","ঝোo":"ঝূ","ঝুu":"ঝূ","ঝ্e":"ঝে","ঝi":"ঝই","ঝ্o":"ঝো","ঝu":"ঝৌ","ঝ্:":"ঞঃ","ঝ্a:":"ঝঃ","ঝ্O":"ঝॉ","ঝাM":"ঝাঁ","ঝ্E":"ঝৈ","ঝৈM":"ঝঁ","ঝ্R":"ঝৃ","ঝৃu":"ঝৃ","ঝৃU":"ঝৄ","ঝৃওo":"ঝৄ","ঝ্M":"ঝং","ঝৃl":"ঝৢ","ঝৢu":"ঝৢ","ঝৢU":"ঝৢ","ঝৢওo":"ঝৢ",';
amhaHash+='"z":"ঝ্","ঝ:":"ঝঃ","Z":"ঝ্","Y":"ঞ্","ঞ্a":"ঞ","ঞa":"ঞা","ঞ্i":"ঞি","ঞ্I":"ঞী","ঞিi":"ঞী","ঞেe":"ঞী","ঞ্u":"ঞু","ঞ্U":"ঞূ","ঞোo":"ঞূ","ঞুu":"ঞূ","ঞ্e":"ঞে","ঞi":"ঞই","ঞ্o":"ঞো","ঞu":"ঞৌ","ঞ:":"ঞঃ","ঞ্O":"র্ঞ","ঞাM":"ঞাঁ","ঞ্E":"ঞৈ","ঞৈM":"ঞঁ","ঞ্R":"ঞৃ","ঞৃu":"ঞৃ","ঞৃU":"ঞৄ","ঞৃওo":"ঞৄ","ঞ্M":"ঞং","ঞৃl":"ঞৢ","ঞৢu":"ঞৢ","ঞৢU":"ঞৢ","ঞৢওo":"ঞৢ",';
amhaHash+='"T":"ট্","ট্a":"ট","টa":"টা","ট্i":"টি","ট্I":"টী","টিi":"টী","টেe":"টী","ট্u":"টু","ট্U":"টূ","টোo":"টূ","টুu":"টূ","ট্e":"টে","টi":"টই","ট্o":"টো","টu":"টৌ","ট্:":"টঃ","ট:":"টঃ","ট্O":"র্ট","টাM":"টাঁ","ট্E":"টৈ","টৈM":"টঁ","ট্R":"টৃ","টৃu":"টৃ","টৃU":"টৄ","টৃওo":"টৄ","ট্M":"টং","টৃl":"টৢ","টৢu":"টৢ","টৢU":"টৢ","টৢওo":"টৢ","ট্h":"ঠ্","ঠ্a":"ঠ","ঠa":"ঠা","ঠ্i":"ঠি","ঠ্I":"ঠী","ঠিi":"ঠী","ঠেe":"ঠী","ঠ্u":"ঠু","ঠ্U":"ঠূ","ঠোo":"ঠূ","ঠুu":"ঠূ","ঠ্e":"ঠে","ঠi":"ঠই","ঠ্o":"ঠো","ঠu":"ঠৌ","ঠ্:":"ঠঃ","ঠ্a:":"ঠঃ","ঠ্O":"ঠॉ","ঠাM":"ঠাঁ","ঠ্E":"ঠৈ","ঠৈM":"ঠঁ","ঠ্R":"ঠৃ","ঠৃu":"ঠৃ","ঠৃU":"ঠৄ","ঠৃওo":"ঠৄ","ঠ্M":"ঠং","ঠৃl":"ঠৢ","ঠৢu":"ঠৢ","ঠৢU":"ঠৢ","ঠৢওo":"ঠৢ",';
amhaHash+='"D":"ড্","ড্a":"ড","ডa":"ডা","ড্i":"ডি","ড্I":"ডী","ডিi":"ডী","ডেe":"ডী","ড্u":"ডু","ড্U":"ডূ","ডোo":"ডূ","ডুu":"ডূ","ড্e":"ডে","ডi":"ডই","ড্o":"ডো","ডu":"ডৌ","ড্:":"ডঃ","ড:":"ডঃ","ড্O":"র্ড","ডাM":"ওাঁ","ড্E":"ডৈ","ডৈM":"ডঁ","ড্R":"ডৃ","ডৃu":"ডৃ","ডৃU":"ডৄ","ডৃওo":"ডৄ","ড্M":"ডং","ডৃl":"ডৢ","ডৢu":"ডৢ","ডৢU":"ডৢ","ডৢওo":"ডৢ","ড্h":"ঢ্","ঢ্a":"ঢ","ঢa":"ঢা","ঢ্i":"ঢি","ঢ্I":"ঢী","ঢিi":"ঢী","ঢেe":"ঢী","ঢ্u":"ঢু","ঢ্U":"ঢূ","ঢোo":"ঢূ","ঢুu":"ঢূ","ঢ্e":"ঢে","ঢi":"ঢই","ঢ্o":"ঢো","ঢu":"ঢৌ","ঢ্:":"ঢঃ","ঢ্a:":"ঢঃ","ঢ্O":"ঢॉ","ঢাM":"ঢাঁ","ঢ্E":"ঢৈ","ঢৈM":"ঢঁ","ঢ্R":"ঢৃ","ঢৃu":"ঢৃ","ঢৃU":"ঢৄ","ঢৃওo":"ঢৄ","ঢ্M":"ঢং","ঢৃl":"ঢৢ","ঢৢu":"ঢৢ","ঢৢU":"ঢৢ","ঢৢওo":"ঢৢ",';
amhaHash+='"N":"ণ্","ণ্a":"ণ","ণa":"ণা","ণ্i":"ণি","ণ্I":"ণী","ণিi":"ণী","ণেe":"ণী","ণ্u":"ণু","ণ্U":"ণূ","ণোo":"ণূ","ণুu":"ণূ","ণ্e":"ণে","ণi":"ণই","ণ্o":"ণো","ণu":"ণৌ","ণ্:":"ণঃ","ণ:":"ণঃ","ণ্O":"র্ণ","ণাM":"ণাঁ","ণ্E":"ণৈ","ণৈM":"ণঁ","ণ্R":"ণৃ","ণৃu":"ণৃ","ণৃU":"ণৄ","ণৃওo":"ণৄ","ণ্M":"ণং","ণৃl":"ণৢ","ণৢu":"ণৢ","ণৢU":"ণৢ","ণৢওo":"ণৢ",';
amhaHash+='"t":"ত্","ত্a":"ত","তa":"তা","ত্i":"তি","ত্I":"তী","তিi":"তী","তেe":"তী","ত্u":"তু","ত্U":"তূ","তোo":"তূ","তুu":"তূ","ত্e":"তে","তi":"তই","ত্o":"তো","তu":"তৌ","ত্:":"তঃ","ত:":"তঃ","ত্O":"র্ত","তাM":"তাঁ","ত্E":"তৈ","তৈM":"তঁ","ত্R":"তৃ","তৃu":"তৃ","তৃU":"তৄ","তৃওo":"তৄ","ত্M":"তং","তৃl":"তৢ","তৢu":"তৢ","তৢU":"তৢ","তৢওo":"তৢ","ত্h":"থ্","থ্a":"থ","থa":"থা","থ্i":"থি","থ্I":"থী","থিi":"থী","থেe":"থী","থ্u":"থু","থ্U":"থূ","থোo":"থূ","থুu":"থূ","থ্e":"থে","থi":"থই","থ্o":"থো","থu":"থৌ","থ্:":"থঃ","থ্a:":"থঃ","থ্O":"থॉ","থাM":"থাঁ","থ্E":"থৈ","থৈM":"থঁ","থ্R":"থৃ","থৃu":"থৃ","থৃU":"থৄ","থৃওo":"থৄ","থ্M":"থং","থৃl":"থৢ","থৢu":"থৢ","থৢU":"থৢ","থৢওo":"থৢ",';
amhaHash+='"d":"দ্","দ্a":"দ","দa":"দা","দ্i":"দি","দ্I":"দী","দিi":"দী","দেe":"দী","দ্u":"দু","দ্U":"দূ","দোo":"দূ","দুu":"দূ","দ্e":"দে","দi":"দই","দ্o":"দো","দu":"দৌ","দ্:":"দঃ","দ:":"দঃ","দ্O":"র্দ","দাM":"দাঁ","দ্E":"দৈ","দৈM":"দঁ","দ্R":"দৃ","দৃu":"দৃ","দৃU":"দৄ","দৃওo":"দৄ","দ্M":"দং","দৃl":"দৢ","দৢu":"দৢ","দৢU":"দৢ","দৢওo":"দৢ","দ্h":"ধ্","ধ্a":"ধ","ধa":"ধা","ধ্i":"ধি","ধ্I":"ধী","ধিi":"ধী","ধেe":"ধী","ধ্u":"ধু","ধ্U":"ধূ","ধোo":"ধূ","ধুu":"ধূ","ধ্e":"ধে","ধi":"ধই","ধ্o":"ধো","ধu":"ধৌ","ধ্:":"ধঃ","ধ্a:":"ধঃ","ধ্O":"ধॉ","ধাM":"ধাঁ","ধ্E":"ধৈ","ধেM":"ধঁ","ধ্R":"ধৃ","ধৃu":"ধৃ","ধৃU":"ধৄ","ধৃওo":"ধৄ","ধ্M":"ধং","ধৃl":"ধৢ","ধৢu":"ধৢ","ধৢU":"ধৢ","ধৢওo":"ধৢ",';
amhaHash+='"n":"ন্","ন্a":"ন","নa":"না","ন্i":"নি","ন্I":"নী","নিi":"নী","নেe":"নী","ন্u":"নু","ন্U":"নূ","নোo":"নূ","নুu":"নূ","ন্e":"নে","নi":"নই","ন্o":"নো","নu":"নৌ","ন্:":"নঃ","ন:":"নঃ","ন্O":"র্ন","নাM":"নাঁ","ন্E":"নৈ","নৈM":"নঁ","ন্R":"নৃ","নৃu":"নৃ","নৃU":"নৄ","নৃওo":"নৄ","ন্M":"নং","নৃl":"নৢ","নৢu":"নৢ","নৢU":"নৢ","নৢওo":"নৢ",';
amhaHash+='"p":"প্","প্a":"প","পa":"পা","প্i":"পি","প্I":"পী","পিi":"পী","পেe":"পী","প্u":"পু","প্U":"পূ","পোo":"পূ","পুu":"পূ","প্e":"পে","পi":"পই","প্o":"পো","পu":"পৌ","প্:":"পঃ","প:":"পঃ","প্O":"র্প","পাM":"পাঁ","প্E":"পৈ","পৈM":"পঁ","প্R":"পৃ","পৃu":"পৃ","পৃU":"পৄ","পৃওo":"পৄ","প্M":"পং","পৃl":"পৢ","পৢu":"পৢ","পৢU":"পৢ","পৢওo":"পৢ",';
amhaHash+='"P":"প্","প্a:":"পঃ","প্h":"ফ্","ফ্a":"ফ","ফa":"ফা","ফ্i":"ফি","ফ্I":"ফী","ফিi":"ফী","ফ্ee":"ফী","ফ্u":"ফু","ফ্U":"ফূ","ফোo":"ফূ","ফ্uu":"ফূ","ফ্e":"ফে","ফi":"ফই","ফ্o":"ফো","ফu":"ফৌ","ফ্:":"ফঃ","ফ্a:":"ফঃ","ফ্O":"র্ফ","ফাM":"ফাঁ","ফ্E":"ফৈ","ফৈM":"ফঁ","ফ্R":"ফৃ","ফৃu":"ফৃ","ফৃU":"ফৄ","ফৃওo":"ফৄ","ফ্M":"ফং","ফৃl":"ফৢ","ফৢu":"ফৢ","ফৢU":"ফৢ","ফৢওo":"ফৢ",';
amhaHash+='"f":"ফ্","F":"ফ্","b":"ব্","ব্a":"ব","বa":"বা","ব্i":"বি","ব্I":"বী","বিi":"বী","বেe":"বী","ব্u":"বু","ব্U":"বূ","বোo":"বূ","বুu":"বূ","ব্e":"বে","বi":"বই","ব্o":"বো","বu":"বৌ","ব্:":"বঃ","ব:":"বঃ","ব্O":"র্ব","বাM":"বাঁ","ব্E":"বৈ","বৈM":"বঁ","ব্R":"বৃ","বৃu":"বৃ","বৃU":"বৄ","বৃওo":"বৄ","ব্M":"বং","বৃl":"বৢ","বৢu":"বৢ","বৢU":"বৢ","বৢওo":"বৢ",';
amhaHash+='"B":"ব্","ব্h":"ভ্","ভ্a":"ভ","ভa":"ভা","ভ্i":"ভি","ভ্I":"ভী","ভিi":"ভী","ভেe":"ভী","ভ্u":"ভু","ভ্U":"ভূ","ভোo":"ভূ","ভুu":"ভূ","ভ্e":"ভে","ভi":"ভই","ভ্o":"ভো","ভu":"ভৌ","ভ্:":"ভঃ","ভ্a:":"ভঃ","ভ্O":"র্ভ","ভাM":"ভাঁ","ভ্E":"ভৈ","ভৈM":"ভঁ","ভৃ":"ভৃ","ভৃu":"ভৃ","ভৃU":"ভৄ","ভৃওo":"ভৄ","ভ্M":"ভং","ভৃl":"ভৢ","ভৢu":"ভৢ","ভৢU":"ভৢ","ভৢওo":"ভৢ","\u09AD\u09CD":"ভ্",';
amhaHash+='"m":"ম্","ম্a":"ম","মa":"মা","ম্i":"মি","ম্I":"মী","মিi":"মী","মেe":"মী","ম্u":"মু","ম্U":"মূ","মোo":"মূ","মুu":"মূ","ম্e":"মে","মi":"মই","ম্o":"মো","মu":"মৌ","ম্:":"মঃ","ম:":"মঃ","ম্O":"র্ম","মাM":"মাঁ","ম্E":"মৈ","মৈM":"মঁ","ম্R":"মৃ","মৃu":"মৃ","মৃU":"মৄ","মৃওo":"মৄ","ম্M":"মং","মৃl":"মৢ","মৢu":"মৢ","মৢU":"মৢ","মৢওo":"মৢ",';
amhaHash+='"y":"য্","য্a":"য","যa":"যা","য্i":"যি","য্I":"যী","যিi":"যী","যেe":"যী","য্u":"যু","য্U":"যূ","যোo":"যূ","যুu":"যূ","য্e":"যে","যi":"যই","য্o":"যো","যu":"যৌ","য্:":"যঃ","য:":"যঃ","য্O":"র্য","যাM":"যাঁ","য্E":"যৈ","যৈM":"যঁ","য্R":"যৃ","যৃu":"যৃ","যৃU":"যৄ","যৃওo":"যৄ","য্M":"যং","যৃl":"যৢ","যৢu":"যৢ","যৢU":"যৢ","যৢওo":"যৢ",';
amhaHash+='"Y":"য়্","য়্a":"য়","য়a":"য়া","য়্i":"য়ি","য়্I":"য়ী","য়িi":"য়ী","য়েe":"য়ী","য়্u":"য়ু","য়্U":"য়ূ","য়োo":"য়ূ","য়ুu":"য়ূ","য়্e":"য়ে","য়i":"য়ই","য়্o":"য়ো","য়u":"য়ৌ","য়্:":"য়ঃ","য়:":"য়ঃ","য়্O":"র্য়","য়াM":"য়াঁ","য়্E":"য়ৈ","য়ৈM":"য়ঁ","য়্R":"য়ৃ","য়ৃu":"য়ৃ","য়ৃU":"য়ৄ","য়ৃওo":"য়ৄ","য়্M":"য়ং","য়ৃl":"য়ৢ","য়ৢu":"য়ৢ","য়ৢU":"য়ৢ","য়ৢওo":"য়ৢ",';
amhaHash+='"r":"ৰৃ","ৰৃa":"ৰ","ৰa":"ৰা","ৰৃi":"ৰি","ৰৃI":"ৰী","ৰিi":"ৰী","ৰেe":"ৰী","ৰৃu":"ৰু","ৰৃU":"ৰূ","ৰোo":"ৰূ","ৰুu":"ৰূ","ৰৃe":"ৰে","ৰi":"ৰই","ৰৃo":"ৰো","ৰu":"ৰৌ","ৰৃ:":"ৰঃ","ৰ:":"ৰঃ","ৰৃO":"ৰৃৰ","ৰাM":"ৰাঁ","ৰৃE":"ৰৈ","ৰৈM":"ৰঁ","ৰৃM":"ৰং","ৰৢ":"ৰৢ","ৰৢu":"ৰৢ","ৰৢU":"ৰৢ","ৰৢওo":"ৰৢ","ৰৃR":"ৰৃ","ৰৃu":"ৰৃ","ৰৃU":"ৰৄ","ৰৃওo":"ৰৄ",';
amhaHash+='"l":"ল্","ল্a":"ল","লa":"লা","ল্i":"লি","ল্I":"লী","লিi":"লী","লেe":"লী","ল্u":"লু","ল্U":"লূ","লোo":"লূ","লুu":"লূ","ল্e":"লে","লi":"লই","ল্o":"লো","লu":"লৌ","ল্:":"লঃ","ল:":"লঃ","ল্O":"র্ল","লাM":"লাঁ","ল্E":"লৈ","লৈM":"লঁ","ল্R":"লৃ","লৃu":"লৃ","লৃU":"লৄ","লৃওo":"লৄ","ল্M":"লং","লৃl":"লৢ","লৢu":"লৢ","লৢU":"লৢ","লৢওo":"লৢ",';
amhaHash+='"v":"ব্","ব্a":"ব","বa":"বা","ব্i":"বি","ব্I":"বী","বিi":"বী","বেe":"বী","ব্u":"বু","ব্U":"বূ","বোo":"বূ","বুu":"বূ","ব্e":"বে","বi":"বই","ব্o":"বো","বu":"বৌ","ব্:":"বঃ","ব:":"বঃ","ব্O":"র্ব","বাM":"বাঁ","ব্E":"বৈ","বৈM":"বঁ","ব্R":"বৃ","বৃu":"বৃ","বৃU":"বৄ","বৃওo":"বৃU","ব্M":"বং","বৃl":"বৢ","\u09AC\u09E3u":"ব  ","\u09AC\u09E3U":"বৢ","\u09AC\u09E3ওo":"বৢ",';
amhaHash+='"w":"ৱ্","ৱ্a":"ৱ","ৱa":"ৱা","ৱ্i":"ৱি","ৱ্I":"ৱী","ৱিi":"ৱী","ৱেe":"ৱী","ৱ্u":"ৱু","ৱ্U":"ৱূ","ৱোo":"ৱূ","ৱুu":"ৱূ","ৱ্e":"ৱে","ৱi":"ৱই","ৱ্o":"ৱো","ৱu":"ৱৌ","ৱ্:":"ৱঃ","ৱ:":"ৱঃ","ৱ্O":"র্ৱ","ৱাM":"ৱাঁ","ৱ্E":"ৱৈ","ৱৈM":"ৱঁ","ৱ্R":"ৱৃ","ৱৃu":"ৱৃ","ৱৃU":"ৱৄ","ৱৃওo":"ৱৄ","ৱ্M":"ৱং","ৱৃl":"ৱৢ","ৱৢu":"ৱৢ","ৱৢU":"ৱৢ","ৱৢওo":"ৱৢ",';
amhaHash+='"V":"ব্","W":"ব্","স্h":"শ্","শ্a":"শ","শa":"শা","শ্i":"শি","শ্I":"শী","শিi":"শী","শেe":"শী","শ্u":"শু","শ্U":"শূ","শোo":"শূ","শুu":"শূ","শ্e":"শে","শi":"শই","শ্o":"শো","শu":"শৌ","শ্:":"শঃ","শ্a:":"শঃ","শ্O":"র্শ","শাM":"শাঁ","শ্E":"শৈ","শৈM":"শঁ","শ্rR":"শরৃ","শরৃu":"শরৃ","শরৃU":"শরৄ","শরৃoo":"শরৄ","শ্R":"শৃ","শৃu":"শৃ","শৃU":"শৄ","শৃওo":"শৄ","শ্M":"শং","শৃl":"শৢ","শৢu":"শৢ","শৢU":"শৢ","শৢওo":"শৢ","শ্h":"ষ্","ষ্a":"ষ","ষa":"ষা","ষ্i":"ষি","ষ্I":"ষী","ষিi":"ষী","ষেe":"ষী","ষ্u":"ষু","ষ্U":"ষূ","ষোo":"ষূ","ষুu":"ষূ","ষ্e":"ষে","ষi":"ষই","ষ্o":"ষো","ষu":"ষৌ","ষ্:":"ষঃ","ষ:":"ষঃ","ষ্O":"ষॉ","ষাM":"ষাঁ","ষ্E":"ষৈ","ষৈM":"ষঁ","ষ্R":"ষৃ","ষৃu":"ষৃ","ষৃU":"ষৄ","ষৃওo":"ষৄ","ষ্M":"ষং","ষৃl":"ষৢ","ষৢu":"ষৢ","ষৢU":"ষৢ","ষৢওo":"ষৢ","ষ্h":"শ্",';
amhaHash+='"s":"স্","স্a":"স","সa":"সা","স্i":"সি","স্I":"সী","সিi":"সী","সেe":"সী","স্u":"সু","স্U":"সূ","সোo":"সূ","সুu":"সূ","স্e":"সে","সi":"সই","স্o":"সো","সu":"সৌ","স:":"সঃ","সা:":"সঃ","স্O":"র্স","সাM":"সাঁ","স্E":"সৈ","সৈM":"সঁ","স্R":"সৃ","সৃu":"সৃ","সৃU":"সৄ","সৃওo":"সৄ","স্M":"সং","সৃl":"সৢ","সৢu":"সৢ","সৢU":"সৢ","সৢওo":"সৢ",';
amhaHash+='"S":"ষ্","h":"হ্","হ্a":"হ","হa":"হা","হ্i":"হি","হ্I":"হী","হিi":"হী","হেe":"হী","হ্u":"হু","হ্U":"হূ","হোo":"হূ","হুu":"হূ","হ্e":"হে","হi":"হই","হ্o":"হো","হu":"হৌ","হ্:":"হঃ","হ:":"হঃ","হ্O":"র্হ","হাM":"হাঁ","হ্E":"হৈ","হৈM":"হঁ","হ্R":"হৃ","হৃu":"হৃ","হৃU":"হৄ","হৃওo":"হৄ","হ্M":"হং","হৃl":"হৢ","হৢu":"হৢ","হৢU":"হৢ","হৢওo":"হৢ",';
amhaHash+='"L":"ল্","ল্a":"ল","লa":"লা","ল্i":"লি","ল্I":"লী","লিi":"লী","লেe":"লী","ল্u":"লু","ল্U":"লূ","লোo":"লূ","লুu":"লূ","ল্e":"লে","লi":"লই","ল্o":"লো","লu":"লৌ","ল্:":"লঃ","ল:":"লঃ","ল্O":"র্ল","লাM":"লাঁ","ল্E":"লৈ","লৈM":"লঁ","ল্R":"লৃ","লৃu":"লৃ","লৃU":"লৄ","লৃওo":"লৄ","ল্M":"লং","লৃl":"লৢ","লৢu":"লৢ","লৢU":"লৢ","লৢওo":"লৢ",';
amhaHash+='"x":"ক্ষ্","ক্ষ্a":"ক্ষ","ক্ষa":"ক্ষা","ক্ষ্i":"ক্ষি","ক্ষ্I":"ক্ষী","ক্ষিi":"ক্ষী","ক্ষেe":"ক্ষী","ক্ষ্u":"ক্ষু","ক্ষ্U":"ক্ষূ","ক্ষোo":"ক্ষূ","ক্ষুu":"ক্ষূ","ক্ষ্e":"ক্ষে","ক্ষi":"ক্ষই","ক্ষ্o":"ক্ষো","ক্ষu":"ক্ষৌ","ক্ষ্:":"ক্ষঃ","ক্ষ:":"ক্ষঃ","ক্ষ্O":"র্ক্ষ","ক্ষাM":"ক্ষাঁ","ক্ষ্E":"ক্ষৈ","ক্ষৈM":"ক্ষঁ","ক্ষ্R":"ক্ষৃ","ক্ষৃu":"ক্ষৃ","ক্ষৃU":"ক্ষৄ","ক্ষৃওo":"ক্ষৄ","ক্ষ্M":"ক্ষং","ক্ষৃl":"ক্ষৢ","ক্ষৢu":"ক্ষৢ","ক্ষৢU":"ক্ষৢ","ক্ষৢওo":"ক্ষৢ",';
amhaHash+='"X":"ক্ষ্","জ্n":"জ্ঞ্","জ্ঞ্a":"জ্ঞ","জ্ঞa":"জ্ঞা","জ্ঞ্i":"জ্ঞি","জ্ঞ্I":"জ্ঞী","জ্ঞিi":"জ্ঞী","জ্ঞেe":"জ্ঞী","জ্ঞ্u":"জ্ঞু","জ্ঞ্U":"জ্ঞূ","জ্ঞোo":"জ্ঞূ","জ্ঞুu":"জ্ঞূ","জ্ঞ্e":"জ্ঞে","জ্ঞi":"জ্ঞই","জ্ঞ্o":"জ্ঞো","জ্ঞu":"জ্ঞৌ","জ্ঞ্:":"জ্ঞঃ","জ্ঞ্a:":"জ্ঞঃ","জ্ঞ্O":"র্জ্ঞ","জ্ঞাM":"জ্ঞাঁ","জ্ঞ্E":"জ্ঞৈ","জ্ঞৈM":"জ্ঞঁ","জ্ঞ্R":"জ্ঞৃ","জ্ঞৃu":"জ্ঞৃ","জ্ঞৃU":"জ্ঞৄ","জ্ঞৃওo":"জ্ঞৄ","জ্ঞ্M":"জ্ঞং","জ্ঞৃl":"জ্ঞৢ","জ্ঞৢu":"জ্ঞৢ","জ্ঞৢU":"জ্ঞৢ","জ্ঞৢওo":"জ্ঞৢ",';
amhaHash+='"a":"অ","অa":"আ","A":"আ","i":"ই","I":"ঈ","এe":"I","u":"উ","uউ":"ঊ","U":"ঊ","ওo":"ঊ","e":"এ","অi":"এ","o":"ও","ওY":"ৱ্","ৱ্a":"ৱ","ৱe":"ৱে","ৱi":"ৱি","ৱI":"ৱী","ৱa":"ৱা","অu":"ঔ","M":"ং","E":"ঐ","ঐM":"অঁ","O":"ও","ওM":"আঁ","আU":"ও","ঋl":"ॡ","ॡu":"ॡ","R":"ঋ","ঋu":"ঋৃ","ঋU":"ঋৃ","ঋওo":"ॠ","অ~":"ৎ","q":"॑","॑q":"॒","Q":"॓","॓Q":"॔","J":"़","K":"़","H":"ঃ","z":"।","।z":"।।","0":"০","1":"১","2":"২","3":"৩","4":"৪","5":"৫","6":"৬","7":"৭","8":"৮","9":"৯"}';





// for compatibility with bookmarklets
function cyr_translit(src) {
	return to_cyrillic(src);
}

var conversionHash = undefined;
var maxcyrlength = 0;

function getConversionHash() {
	if (conversionHash == undefined) {
		conversionHash = eval("("+amhaHash+")");
		 maxcyrlength=6;
	}

	return conversionHash;
}


function to_cyrillic(src, output, chunks) {
	if (src == undefined || src == "" || src == null)
		return src;
	if (output == undefined)
		output = new String();

	var hash = getConversionHash();
	
	var location = 0;
	
	while (location < src.length) {
		var len = Math.min(maxcyrlength, src.length - location);
		var arr = undefined;
		var sub;
		while (len > 0) {
			sub = src.substr(location, len);
			arr = hash[sub];
			if (arr != undefined) 
				break;
			else 
				len--;
		}
		
		// need this for translit on the fly
		if (chunks != undefined)
			chunks[chunks.length] = sub;
			
		if (arr == undefined) {
			output += sub;
			location ++;
		}
		else {

			// case analysis
			var newChar = arr;
			
			if (sub.toLowerCase() == sub.toUpperCase() && arr.length > 1 && arr[1] && (newChar.toUpperCase() != newChar.toLowerCase())) {
			
				// need translit hash to determine if previous character (and possibly the one before it) 
				// were converted and are in upper case
				
				// set prevDud to true previous is not a translated character or simply a blank
				// set prevCap to true if previous was translated and was upper case

				var prevCh = output.length == 0 ? null : output.substr(output.length - 1, 1);
				var prevDud = !prevCh || !getTranslitString(prevCh);
				var prevCap = (!prevDud && prevCh == prevCh.toUpperCase());

				// sub is caseless but result isn't. case will depend on lookbehind and lookahead
				if (prevDud || !prevCap) {
					output += newChar.toLowerCase();
					prevCap = false;
				}
				else {
					var next = " ";
					if (location + len < src.length)
						next = src.substr(location + len, 1);

					if (next != next.toUpperCase() && next == next.toLowerCase() ) {
						//next is lowercase (and not caseless)
						output += newChar.toLowerCase();
					}
					else if (next == next.toUpperCase() && next != next.toLowerCase() ) {
						// next is uppercase (and not caseless)
						output += newChar.toUpperCase();
					}
					else {
						// next is caseless. output case determined by the case of output[length - 2]
						var pprevCh = output.length == 1 ? null : output.substr(output.length - 2, 1);
						var pprevDud = !pprevCh || !getTranslitString(pprevCh);
						if (!pprevDud && (pprevCh == pprevCh.toUpperCase())) {
							//pre-prev is in upper case. output is also uppercase
							output += newChar.toUpperCase();
						}
						else {
						    output += newChar.toLowerCase();
						}
						
					}
				}
					
			}
			else if ((sub.toLowerCase() == sub.toUpperCase()) && (arr.length < 2 || !arr[1])) {
				
				// literal treatment of newChar
				output += newChar;

			}
			else if (sub != sub.toLowerCase()) {
			
				// sub not all-lowercase
				output += newChar.toUpperCase();
			}
			else {
					
					
					
				// sub is lowercase
			    output += newChar.toLowerCase();
			}
			location += len;
		}
	}
	
	return output;
}



function convertIt(src,converter){
 var resultbuffer=""; 
	for(var i=0;i<src.length;i++){
	resultbuffer=converter(resultbuffer+src[i]);
	}
        return converter(resultbuffer);

}



var translitHash = undefined;

function initTranslit() {
	if (translitHash == undefined) {
		translitHash = new Array();

		for (var i = 0; i < conversionHash.length; i++) {
			var ch = conversionHash[i][1];
			// if the translit string is not caseless, convert cyr string to upper case
			// otherwise maintain its case
			if (conversionHash[i][0].toUpperCase() != conversionHash[i][0].toLowerCase())
				ch = ch.toUpperCase();
				
			if (translitHash[ch] == undefined)
				translitHash[ch] = conversionHash[i][0];
		}
	}
}




//-- translit on-the-fly -- 

function replaceValue(node, value, stepback) {
	if (stepback == undefined)
		stepback = 0;
		
	if (isExplorer()) {
		var range = document.selection.createRange();
		range.moveStart("character", -stepback);
		range.text = value;
		range.collapse(false);
		range.select();
	}
	else {
		var scrollTop = node.scrollTop;
		var cursorLoc =  node.selectionStart;
		node.value = node.value.substring(0, node.selectionStart - stepback) + value + 
                node.value.substring(node.selectionEnd, node.value.length);
		node.scrollTop = scrollTop;
		node.selectionStart = cursorLoc + value.length - stepback;
		node.selectionEnd = cursorLoc + value.length - stepback;
	}
}


// compare positions
function positionIsEqual(other) {
	if (isExplorer())
		return this.position.isEqual(other.position);
	else
		return this.position == other.position;
  
}

function Position(node) {
  if (node.selectionStart != undefined)
	this.position = node.selectionStart;
  else if (document.selection && document.selection.createRange())
    this.position = document.selection.createRange();
    
  this.isEqual = positionIsEqual;
}

function resetState() {
	this.position = new Position(this.node);
	this.transBuffer = "";
	this.cyrBuffer = "";
}

function StateObject(node) {
	this.node = node;
	this.reset = resetState;
	this.cyrBuffer = "";
	this.transBuffer = "";
	this.position = new Position(node);
}


var stateHash = new Array();

function isExplorer() {
  return (document.selection != undefined && document.selection.createRange().isEqual != undefined);
}

function pressedKey(event) {
  if (isExplorer())
	return event.keyCode;
  else
    return event.which;
}

function translitonkey(event) {
     /*
	if ((event.keyCode == 255 && event.charCode > 0) || event.keyCode == 8) {
		return;
	}
    */
    
    if (event == undefined)
		event = window.event;
    
	var node = null;
	if (event.target)
		node = event.target;
	else if (event.srcElement)
		node = event.srcElement;
		
	
	
	// initialize state
	var state = stateHash[node];
	if (state == null) {
		state = new StateObject(node);
		stateHash[node] = state;
	}
	if ( (pressedKey(event) > 20) && !event.ctrlKey && !event.altKey && !event.metaKey) {

		var c = String.fromCharCode(pressedKey(event));

		// process input
		var result = process_translit(state, c);
		// finish up
		if (c != result.out || result.replace != 0) {
		  if (isExplorer())
			event.returnValue = false;
		  else
		    event.preventDefault();
		  
		  replaceValue(node, result.out, result.replace);
		  
		  state.position = new Position(node);

		}
	}
	
}

function TranslitResult() {
	this.out = "";
	this.replace = 0;
}

function process_translit(state, c) {
	// reset state if position changed
	if (!state.position.isEqual(new Position(state.node)))
		state.reset();
		
	var result = new TranslitResult();
	
	// initial backbuffer. Add to it as characters are converted
	var backbuffer = getBackBuffer(state.node, state.cyrBuffer.length, 2);
	var chunks = new Array();
	
	state.transBuffer = state.transBuffer+ c

	var str = to_cyrillic(state.cyrBuffer+c, backbuffer, chunks);

	// remove backbuffer from output
	str = str.substr(backbuffer.length);
	result.out = str; 
	/* str is now left alone - it has the output matching contents of chunks and 
	   will be used to reinitialize backbuffers, along with chunks and state.transBuffer
	*/
	
	// get the difference between state.cyrBuffer and output
	for (var i = 0; i < Math.min(state.cyrBuffer.length, result.out.length); i++) {
		if (state.cyrBuffer.substr(i, 1) != result.out.substr(i, 1)) {
			result.replace = state.cyrBuffer.length - i;
			result.out = result.out.substr(i);
			break;
		}
	}
	if (result.replace == 0) {
               if(result.out.length<state.cyrBuffer.length)
				result.replace=state.cyrBuffer.length- result.out.length;
		result.out = result.out.substr(Math.min(state.cyrBuffer.length, result.out.length));
                 
                       //    result.out+="\u0008"
                         
	}
	
	// update state: backbuffer, bufferArray
	if (chunks.length > 0 && chunks[chunks.length - 1] == result.out.substr(result.out.length - 1)) {
		// no convertion took place, reset state
		state.reset();
	}
	else {
		while (state.transBuffer.length > maxcyrlength) {
			state.transBuffer = state.transBuffer.substr(chunks[0].length);
			chunks.shift();
			str = str.substr(1);
		}
		state.cyrBuffer = str;
	}
	return result;
}

function getBackBuffer(node, offset, count) {
		
	if (isExplorer()) { //.tagName.toUpperCase() == "EDITOR") {
	
		var range = document.selection.createRange();
		range.moveStart("character", -offset);
		var result = range.text.substr(-count);
		if (!result)
			result = "";
			
		return result;

	} else {
		return node.value.substring(0, node.selectionStart - offset).substr(-count);
	}
}

// need this for bookmarklets
function getSelectedNode() {
  if (document.activeElement)
	return document.activeElement;
  else
    if (window.getSelection && window.getSelection() && window.getSelection().rangeCount > 0) {
		var range = window.getSelection().getRangeAt(0);
		if (range.startContainer && range.startContainer.childNodes && range.startContainer.childNodes.length > range.startOffset)
			return range.startContainer.childNodes[range.startOffset]
    }
  return null;
}

function toggleCyrMode() {
	var node = getSelectedNode();
	if (node) {
		if (stateHash[node]) {
			if (removeKeyEventListener(node))
				delete stateHash[node];
		}
		else {
			if (addKeyEventListener(node))
				stateHash[node] = new StateObject(node);
		}
	}
}

function addKeyEventListener(node) {
	if (node.addEventListener)
		node.addEventListener("keypress", translitonkey, false);
	else if (node.attachEvent)
	    node.attachEvent("onkeypress", translitonkey);
	else return false;
	return true;
}
function removeKeyEventListener(node) {
	if (node.removeEventListener)
		node.removeEventListener("keypress", translitonkey, false);
	else if (node.detachEvent)
		node.detachEvent("onkeypress", translitonkey);
	else return false;
	return true;
}

function getSelectedText() {
	if (isExplorer()) {
		return document.selection.createRange().text;
	}
	else {
		var node = getSelectedNode();
		if (node && node.value && node.selectionStart != undefined && node.selectionEnd != undefined)
			return node.value.substring(node.selectionStart, node.selectionEnd);
	}
	return "";
}