ব্যবহারকারী:আফতাব বট/তথ্যছক ভারতের নগর এলাকা প্রতিস্থাপন.js

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
  • অপেরা: Ctrl-F5 টিপুন।
/**
 * A quick-and-dirty solution to migrate the Infobox Indian Jurisdiction to Infobox settlement
 *
 * @author User:Utcursch
 */

// for coord
var latd  = "";
var latm  = "";
var lats  = "";
var longd = "";
var longm = "";
var longs = "";


// for removing Indic script and moving it to native_name in the infobox
var native_name = "";
var native_name_lang = "";

/**
 * Replaces Infobox Indian Jurisdiction (if found) with Infobox settlement
 */
migrateIIJ.migrateInfoboxIJ = function () {
	// regular expression to parse Infobox Indian Jurisdiction
	var regex = /{{Infobox Indian Jurisdiction[^{]*?({{[^}]*?}}[\s\S]*?)*}}/gmi
	var regex = /{{তথ্যছক ভারতের নগর এলাকা[^{]*?({{[^}]*?}}[\s\S]*?)*}}/gmi
	var regex = /{{Infobox settlement[^{]*?({{[^}]*?}}[\s\S]*?)*}}/gmi

	// get the article content
	var orig_article_text = document.getElementById("wpTextbox1").value;


	// extract latitude and longitude information from the coord template
	var regex_coord = /{{coord\|[^{]*?({{[^}]*?}}[\s\S]*?)*}}/gmi
	var arr_coord_text = orig_article_text.match(regex_coord);
	// coord found
	if (arr_coord_text != null) {
		// get coord text
		var coord_text = arr_coord_text[0];

		var coord_params = coord_text.split("|");
		if (coord_params[2] == "N") {
			// {{Coord|44.112|N|91|E}}
			latd  = coord_params[1];
			longd = coord_params[3];
		} else if (coord_params[3] == "N") {
			// {{coord|26|10|N|91|34|E|type:landmark_source:kolossus-itwiki}}
			latd  = coord_params[1];
			latm  = coord_params[2];
			longd = coord_params[4];
			longm = coord_params[5];
		} else if (coord_params[4] == "N") {
			// {{coord|26|10|10|N|91|34|21|E|type:landmark_source:kolossus-itwiki}}
			latd  = coord_params[1];
			latm  = coord_params[2];
			lats  = coord_params[3];
			longd = coord_params[5];
			longm = coord_params[6];
			longs = coord_params[7];
		} else {
			// {{coord|26|34}}
			latd  = coord_params[1];
			longd = coord_params[2];
		}

		// replace original infobox with the new one
		orig_article_text = orig_article_text.replace(regex_coord, "");
	}


	// extract lang-xyz template
	var regex_indic_script = / \({{lang[^{]*?({{[^}]*?}}[\s\S]*?)*}}\)/gmi
	var arr_indic_script_text = orig_article_text.match(regex_indic_script);
	// lang-xyz found
	if (arr_indic_script_text != null) {
		// get indic_script text
		var indic_script_params = arr_indic_script_text[0].split("|");

		native_name_lang = indic_script_params[0].substr(9, (indic_script_params[0]).length);
		native_name      = indic_script_params[1].substr(0, (indic_script_params[1]).length - 3);

		orig_article_text = orig_article_text.replace(regex_indic_script, "");
	}

	// rm unnecessary line
	orig_article_text = orig_article_text.replace("<!-- See [[Wikipedia:WikiProject Indian cities]] for details -->", "");

	// get the infobox text
	var arr_infobox_text = orig_article_text.match(regex);

	// Infobox Indian Jurisdiction not found
	if (arr_infobox_text == null) {
		return;
	}

	// get infobox text
	var infobox_text = arr_infobox_text[0];

	// parse original infobox
	orig_infobox_params = migrateIIJ.parseInfobox(infobox_text);

	// create Infobox settlement
	var new_infobox_text = migrateIIJ.prepareInfoboxSettlement(orig_infobox_params);

	// replace original infobox with the new one
	var new_article_text = orig_article_text.replace(regex, new_infobox_text);

	// Insert Infobox settlement
	document.getElementById("wpTextbox1").value = new_article_text;

	// Provide an edit summary
	var summary = "converted"
	if (document.getElementById("wpSummary")) {
		document.getElementById("wpSummary").value = "[[ব্যবহারকারী:AftabBot/তথ্যছক ভারতের নগর এলাকা প্রতিস্থাপন.js|তথ্যছক ভারতের নগর এলাকা প্রতিস্থাপন]]";
	}

	if (document.getElementById("wpMinoredit")) {
		document.getElementById("wpMinoredit").checked = true;
	}
}


/**
 * Parse the infobox string to extract parameter-value pairs
 *
 * @param infobox_text the infobox string
 *     {{Infobox Indian Jurisdiction ...  }}
 *
 * @return an object contaning the infobox parameters and values
 *     orig_infobox_params["parameter"] = "value"
 */
migrateIIJ.parseInfobox = function(infobox_text) {
	// to store
	var temp_param_arr = [];

	var paramRegexp = /\s*\|[^{}|]*?((?:{{[^{}]*}}|\[?\[[^[\]]*\]?\])?[^[\]{}|]*)*/g;

	// an array of all the parameter key-value pairs
    var temp_param_arr = infobox_text.match(paramRegexp);

    if (!temp_param_arr) {
		return;
	}

	var orig_infobox_params = {};

	// for each parameter key-value pair
	for (var i = 0; i < temp_param_arr.length; i++) {

		// something like "nickname = foo<ref>{{cite web | url = x | title = y }}"
		// the regex turns "|nickname = xyz" into "nickname = xyz"
		var key_value_str = temp_param_arr[i].replace(/^\s*\|/,"");

		// something like "| nickname = foo<ref>{{cite web | url = x | title = y }}"
		key_value_str = key_value_str

		// the index of "=" in the key value string
		var index_eq = key_value_str.indexOf("=");

		// something like "nickname"
		var key = key_value_str.substr(0, index_eq).trim();

		// something like "foo<ref>{{cite web | url = x | title = y }}"
		var value = key_value_str.substr(index_eq + 1).trim();

		orig_infobox_params[key] = value;
	}

	return orig_infobox_params;
}


/**
 * Build the Infobox settlement string
 *
 * @return an object contaning the Infobox settlement parameters and values
 *     (orig_infobox_params["parameter"] = "value"
 */
migrateIIJ.prepareInfoboxSettlement = function (orig_infobox_params) {

	// state name
	var state_name = orig_infobox_params["state_name"] ? orig_infobox_params["state_name"] : "";
	// strip [[]], if any
	state_name = state_name.replace("[[", "");
	state_name = state_name.replace("]]", "");


	// Location map
	var pushpin_map = "ভারত";
	var pushpin_map_caption = "ভারতে";

	// don't have location map templates for these
	// http://en.wikipedia.org/wiki/Category:India_location_map_templates
	var states_with_no_map = {
		"Lakshadweep" : 1,
		"Chandigarh" : 1,
		"Daman and Diu" : 1,
		"Daman & Diu" : 1
	};
	if (state_name != "" && (! states_with_no_map[state_name]) ) {
		pushpin_map = "ভারত " + state_name;
		pushpin_map_caption = state_name + ", ভারতে";
	}
	if (state_name == "পাঞ্জাব, ভারত" ) {
		// don't want "India Punjab, India"
		pushpin_map = "ভারত পাঞ্জাব";
		pushpin_map_caption = "পাঞ্জাব, ভারতে";
	}
	// these cities have a location map template -- use it as the pushpin_map
	var metros_with_map = {
		"Bangalore" : 1,
		"Bengaluru" : 1,
		"Bhopal" : 1,
		"Chennai" : 1,
		"Delhi" : 1,
		"Kochi" : 1,
		"Mumbai" : 1,
		"Tiruchirapalli" : 1
	}
	if (orig_infobox_params["metro"] && metros_with_map[orig_infobox_params["metro"]] ) {
		pushpin_map = "ভারত " + orig_infobox_params["metro"];
		pushpin_map_caption = orig_infobox_params["metro"] + ", ভারত";
	}

	// Governing body
	var governing_body = "";
	if (orig_infobox_params["civic_agency"]) {
		governing_body = orig_infobox_params["civic_agency"];
	} else if (orig_infobox_params["planning_agency"]) {
		governing_body = orig_infobox_params["planning_agency"];
	}

	// make list of subdivisions
	var subdivisions = [];
	if (state_name != "") {
		subdivisions["[[ভারতের রাজ্য ও কেন্দ্রশাসিত অঞ্চল|রাজ্য]]"] = "[[" + state_name + "]]";
	}
	// display "Punjab" instead of "Punjab, India" (India is already displayed a line above)
	// also, link to "Punjab, India", if the state name is "Punjab"
	if (state_name == "পাঞ্জাব, ভারত" || state_name == "পাঞ্জাব") {
		subdivisions["[[ভারতের রাজ্য ও কেন্দ্রশাসিত অঞ্চল|রাজ্য]]"] = "[[পাঞ্জাব, ভারত|পাঞ্জাব]]";
	}
	if (orig_infobox_params["region"]) {
		subdivisions["[[ভারতের অঞ্চলে তালিকা|অঞ্চল]]"] = orig_infobox_params["region"];
	}
	if (orig_infobox_params["division"]) {
		subdivisions["বিভাগ"] = orig_infobox_params["division"];
	}
	if (orig_infobox_params["district"]) {
		subdivisions["[[ভারতের জেলাগুলির তালিকা|জেলা]]"] = orig_infobox_params["district"];
	}
	if (orig_infobox_params["metro"]) {
		subdivisions["মেট্রো"] = orig_infobox_params["metro"];
	}
	if (orig_infobox_params["corp_zone"]) {
		subdivisions["জোন"] = orig_infobox_params["corp_zone"];
	}
	if (orig_infobox_params["corp_ward"]) {
		subdivisions["ওয়ার্ড"] = orig_infobox_params["corp_ward"];
	}
	for (var i = 1; i <= 3; i++ ) {
		if (orig_infobox_params["jurisdiction_title_" + i]) {
			var title = orig_infobox_params["jurisdiction_title_" + i];
			subdivisions[title] = orig_infobox_params["jurisdiction_name_" + i];
		}
	}

	// make list of languages
	var languages = [];
	if (orig_infobox_params["official_languages"]) {
		languages["অফিসিয়াল"] = orig_infobox_params["official_languages"];
	} else {
		if (state_name != "") {
			languages["অফিসিয়াল"] = getOfficialLanguage(state_name);
		}
	}
	if (orig_infobox_params["regional_languages"]) {
		languages["আঞ্চলিক"] = orig_infobox_params["regional_languages"];
	}
	if (orig_infobox_params["languages"]) {
		var title = "অন্যান্য";
		if (orig_infobox_params["languages_type"]) {
			title = orig_infobox_params["languages_type"];
		}
		languages[title] = orig_infobox_params["languages"];
	}

	// make list of other information
	var other_info = [];
	if (orig_infobox_params["districts"]) {
		other_info["জেলা নং"] = orig_infobox_params["districts"];
	}
	if (orig_infobox_params["coastline"]) {
		other_info["তটরেখা"] = "{{Convert|" + orig_infobox_params["coastline"] + "|km|mi}}";
	}
	if (orig_infobox_params["coastline"]) {
		other_info["তটরেখা"] = "{{Convert|" + orig_infobox_params["coastline"] + "|km|mi}}";
	}
	if (orig_infobox_params["largest_city"]) {
		other_info["বৃহত্তম শহর"] = orig_infobox_params["largest_city"];
	}
	if (orig_infobox_params["largest_metro"]) {
		other_info["বৃহত্তম মেট্রো"] = orig_infobox_params["largest_metro"];
	}
	if (orig_infobox_params["nearest_city"]) {
		other_info["নিকটবর্তী শহর"] = orig_infobox_params["nearest_city"];
	}
	if (orig_infobox_params["sex_ratio"]) {
		other_info["[[মানব লিঙ্গ অনুপাত|লিঙ্গ অনুপাত]]"] = orig_infobox_params["sex_ratio"] + " [[পুরুষ|♂]]/[[মহিলা|♀]]";
	}
	if (orig_infobox_params["HDI"]) {
		other_info["এইচডিআই"] = orig_infobox_params["HDI"];
		if (orig_infobox_params["HDI_rank"]) {
			other_info["এইচডিআই রাঙ্ক"] = orig_infobox_params["HDI_rank"];
		}
		if (orig_infobox_params["HDI_year"]) {
			other_info["এইচডিআই বছর"] = orig_infobox_params["HDI_year"];
		}
		if (orig_infobox_params["HDI_category"]) {
			other_info["এইচডিআই শ্রেণী"] = orig_infobox_params["HDI_category"];
		}
	}
	if (orig_infobox_params["literacy"]) {
		other_info["সাক্ষরতা"] = orig_infobox_params["literacy"] + "%";
	}
	if (orig_infobox_params["x"]) {
		other_info["সাক্ষরতা র‍্যাঙ্ক"] = orig_infobox_params["literacy_rank"];
	}
	if (orig_infobox_params["x"]) {
		other_info["পুরুষ সাক্ষরতা"] = orig_infobox_params["literacy_male"];
	}
	if (orig_infobox_params["x"]) {
		other_info["মহিলা সাক্ষরতা"] = orig_infobox_params["literacy_female"];
	}
	if (orig_infobox_params["legislature_type"]) {
		other_info["আইনসভার ধরন"] = orig_infobox_params["legislature_type"];
	}
	if (orig_infobox_params["legislature_strength"]) {
		other_info["আইনসভার"] = orig_infobox_params["legislature_strength"];
	}
	if (orig_infobox_params["parliament_const"]) {
		other_info["[[লোকসভা]] কেন্দ্র"] = orig_infobox_params["parliament_const"];
	}
	if (orig_infobox_params["assembly_const"]) {
		other_info["[[বিধানসভা]] কেন্দ্র"] = orig_infobox_params["assembly_const"];
	}
	if (orig_infobox_params["planning_agency"]) {
		other_info["[[নগর পরিকল্পনা|পরিকল্পনা]] সংস্থা"] = orig_infobox_params["planning_agency"];
	}
	if (orig_infobox_params["civic_agency"]) {
		other_info["পৌর সংস্থা"] = orig_infobox_params["civic_agency"];
	}
	if (orig_infobox_params["iucn_category"]) {
		other_info["[[আইইউসিএন সুরক্ষিত এলাকা শ্রেণীবিভাগ|আইইউসিএন শ্রেণী]]"] = orig_infobox_params["iucn_category"];
	}
	for (var i = 1; i <= 4; i++ ) {
		if (orig_infobox_params["destination_" + i]) {
			var distance_title = orig_infobox_params["destination_" + i] + " থেকে দূরত্ব";

			var distance_value = "";

			if (orig_infobox_params["distance_" + i]) {
				distance_value += ("{{convert|" + orig_infobox_params["distance_" + i] + "|km|mi}}");
			}
			if (orig_infobox_params["direction_" + i]) {
				distance_value += (" " + orig_infobox_params["direction_" + i]);
			}
			if (orig_infobox_params["mode_" + i]) {
				distance_value += (" (" + orig_infobox_params["mode_" + i] + ")");
			}

			other_info[distance_title] = distance_value;
		}
	}

	for (var i = 1; i <= 4; i++ ) {
		if (orig_infobox_params["blank_title_" + i]) {
			var title = orig_infobox_params["blank_title_" + i];
			other_info[title] = orig_infobox_params["blank_value_" + i];
		}
	}

	// make list of climate information
	var climate = [];
	if (orig_infobox_params["climate"]) {
		climate["[[ভারতের জলবায়ু|জলবায়ু]]"] = "[[ভারতের জলবায়ু অঞ্চল|" + orig_infobox_params["climate"] + "]] <small>([[কোপেন জলবায়ু শ্রেণীবিভাগ|কোপেন]])</small>";
	}
	if (orig_infobox_params["precip"]) {
		climate["[[বৃষ্টিপাত (আবহবিদ্যা)|বৃষ্টিপাত]]"] = "{{convert|" + orig_infobox_params["precip"] + "|mm|in}}";
	}
	if (orig_infobox_params["temp_annual"]) {
		climate["গড় বার্ষিক তাপমাত্রা"] = "{{convert|" + orig_infobox_params["temp_annual"] + "|°C|°F}}";
	}
	if (orig_infobox_params["temp_summer"]) {
		climate["গড় গ্রীষ্মকালীন তাপমাত্রা"] = "{{convert|" + orig_infobox_params["temp_summer"] + "|°C|°F}}";
	}
	if (orig_infobox_params["temp_winter"]) {
		climate["গড় শীতকালীন তাপমাত্রা"] = "{{convert|" + orig_infobox_params["temp_winter"] + "|°C|°F}}";
	}

	var page_name = wgPageName.replace(/_/g, " ");
	// remove state/district name
	page_name = page_name.split(",")[0];
	page_name = page_name.split(" \(")[0];

	if (orig_infobox_params["native_name"]
		&& (orig_infobox_params["native_name"] != page_name)
		&& (orig_infobox_params["native_name"] != "{{PAGENAME}}")
		&& native_name != ""
	) {
		native_name = orig_infobox_params["native_name"];
	}

	var new_infobox_str =
		"{{Infobox settlement"         + "\n" +
		"| name                    = " + page_name + "\n" +
		"| native_name             = " + native_name + "\n" +
		"| native_name_lang        = " + (orig_infobox_params["native_name_lang"] ? orig_infobox_params["native_name_lang"] : native_name_lang) + "\n" +
		"| other_name              = " + (orig_infobox_params["other_name"] ? orig_infobox_params["other_name"] : "") + "\n" +
		"| nickname                = " + (orig_infobox_params["nickname"] ? orig_infobox_params["nickname"] : "") + "\n" +
		"| settlement_type         = শহর" + "\n" +
		"| image_skyline           = " + (orig_infobox_params["skyline"] ? orig_infobox_params["skyline"] : "") + "\n" +
		"| image_alt               = " + (orig_infobox_params["skyline_alt"] ? orig_infobox_params["skyline_alt"] : "") + "\n" +
		"| image_caption           = " + (orig_infobox_params["skyline_caption"] ? orig_infobox_params["skyline_caption"] : "") + "\n";

	if (orig_infobox_params["image_flag"]) {
		new_infobox_str +=
		"| image_flag              = " + orig_infobox_params["image_flag"] + "\n" +
		"| flag_size               = " + (orig_infobox_params["flag_size"] ? orig_infobox_params["flag_size"] : "") + "\n" +
		"| flag_alt                = " + (orig_infobox_params["flag_alt"] ? orig_infobox_params["flag_alt"] : "") + "\n";
	}

	if (orig_infobox_params["image_seal"]) {
		new_infobox_str +=
		"| image_seal              = " + orig_infobox_params["image_seal"] + "\n" +
		"| seal_size               = " + (orig_infobox_params["seal_size"] ? orig_infobox_params["seal_size"] : "") + "\n" +
		"| seal_alt                = " + (orig_infobox_params["seal_alt"] ? orig_infobox_params["seal_alt"] : "") + "\n";
	}

	if (orig_infobox_params["base_map"]) {
		new_infobox_str +=
		"| image_map               = " + (orig_infobox_params["base_map"] ? orig_infobox_params["base_map"] : "") + "\n" +
		"| map_alt                 = " + (orig_infobox_params["base_map_alt"] ? orig_infobox_params["base_map_alt"] : "") + "\n" +
		"| map_caption             = " + (orig_infobox_params["map_caption"] ? orig_infobox_params["map_caption"] : "") + "\n";
	}

	new_infobox_str +=
		"| pushpin_map             = " + ((orig_infobox_params["latd"] || latd) ? pushpin_map : ("<!--" + pushpin_map + "-->")) + "\n" +
		"| pushpin_label_position  = " + (orig_infobox_params["locator_position"] ? orig_infobox_params["locator_position"] : "") + "\n" +
		"| pushpin_map_alt         = " + "\n" +
		"| pushpin_map_caption     = " + (orig_infobox_params["pushpin_map_caption"] ? orig_infobox_params["pushpin_map_caption"] : (pushpin_map_caption + " অবস্থান")) + "\n" +
		"| latd                    = " + (orig_infobox_params["latd"] ? orig_infobox_params["latd"] : latd) + "\n" +
		"| latm                    = " + (orig_infobox_params["latm"] ? orig_infobox_params["latm"] : latm) + "\n" +
		"| lats                    = " + (orig_infobox_params["lats"] ? orig_infobox_params["lats"] : lats) + "\n" +
		"| latNS                   = " + "N\n" +
		"| longd                   = " + (orig_infobox_params["longd"] ? orig_infobox_params["longd"] : longd) + "\n" +
		"| longm                   = " + (orig_infobox_params["longm"] ? orig_infobox_params["longm"] : longm) + "\n" +
		"| longs                   = " + (orig_infobox_params["longs"] ? orig_infobox_params["longs"] : longs) + "\n" +
		"| longEW                  = " + "E\n" +
		/*
		"| coor_pinpoint           = " + "\n" +
		"| coordinates_type        = " + "\n" +
		*/
		"| coordinates_display     = inline,title" + "\n" +
		/*
		"| coordinates_footnotes   = " + "\n" +
		*/
		"| subdivision_type        = দেশ" + "\n" +
		"| subdivision_name        = " + "{{flag|ভারত}}\n";


	var n_subdiv = 1; // number of subdivisions
	for (var title in subdivisions) {
		new_infobox_str += (
		"| subdivision_type" + n_subdiv + "       = " + title + "\n" +
		"| subdivision_name" + n_subdiv + "       = " + subdivisions[title] + "\n"
		);
		n_subdiv++;
	}

	new_infobox_str +=
		"| established_title       = " + (orig_infobox_params["established_title"] ? orig_infobox_params["established_title"] : (orig_infobox_params["established_date"] ? "প্রতিষ্ঠিত" : "<!-- প্রতিষ্ঠিত -->")) + "\n" +
		"| established_date        = " + (orig_infobox_params["established_date"] ? orig_infobox_params["established_date"] : "") + "\n" +
		"| founder                 = " + "\n" +
		"| named_for               = " + "\n";

	if (orig_infobox_params["taluk_names"]) {
		new_infobox_str +=
		"| parts_type              = তালুকা" + "\n" +
		"| parts                   = " + orig_infobox_params["taluk_names"] + "\n";
	}

	if (orig_infobox_params["capital"]) {
		new_infobox_str +=
		"| seat_type               = রাজধানী" + "\n" +
		"| seat                    = " + orig_infobox_params["capital"] + "\n";
	}
	if (orig_infobox_params["hq"]) {
		new_infobox_str +=
		"| seat_type               = সদর দপ্তর" + "\n" +
		"| seat                    = " + orig_infobox_params["hq"] + "\n";
	}

	new_infobox_str +=
		"| government_type         = " + "\n" +
		"| governing_body          = " + governing_body + "\n";

	if (orig_infobox_params["leader_title"]) {
		new_infobox_str +=
		"| leader_title            = " + orig_infobox_params["leader_title"] + "\n" +
		"| leader_name             = " + (orig_infobox_params["leader_name"] ? orig_infobox_params["leader_name"] : "") + "\n";
	}
	for (var i = 1; i <= 3; i++) {
		if (orig_infobox_params["leader_title_" + i]) {
		new_infobox_str +=
		"| leader_title" + i + "           = " + orig_infobox_params["leader_title_" + i] + "\n" +
		"| leader_name" + i + "            = " + (orig_infobox_params["leader_name_" + i] ? orig_infobox_params["leader_name_" + i] : "") + "\n";
		}
	}

	new_infobox_str +=
		"| unit_pref               = Metric" + "\n" +
		"| area_footnotes          = " + (orig_infobox_params["area_total_cite"] ? orig_infobox_params["area_total_cite"] : "") + "\n" +
		/*
		"| area_urban_footnotes    = " + "\n" +
		"| area_rural_footnotes    = " + "\n" +
		"| area_metro_footnotes    = " + "\n" +
		"| area_magnitude          = " + "\n" +
		"| area_water_percent      = " + "\n" +
		*/
		"| area_rank               = " + (orig_infobox_params["area_rank"] ? orig_infobox_params["area_rank"] : "") + "\n" +
		"| area_total_km2          = " + (orig_infobox_params["area_total"] ? orig_infobox_params["area_total"] : "") + "\n" + //TODO: not necessarily km2 in the original
		/*
		"| area_land_km2           = " + "\n" +
		"| area_water_km2          = " + "\n" +
		"| area_urban_km2          = " + "\n" +
		"| area_rural_km2          = " + "\n" +
		"| area_metro_km2          = " + "\n" +
		"| dimensions_footnotes    = " + "\n" +
		*/
		"| elevation_footnotes     = " + (orig_infobox_params["altitude_cite"] ? orig_infobox_params["altitude_cite"] : "") + "\n" +
		"| elevation_m             = " + (orig_infobox_params["altitude"] ? orig_infobox_params["altitude"] : "") + "\n" + // TODO: not necessarily m in the original
		"| population_total        = " + (orig_infobox_params["population_total"] ? orig_infobox_params["population_total"] : "") + "\n" +
		"| population_as_of        = " + (orig_infobox_params["population_as_of"] ? orig_infobox_params["population_as_of"] : "") + "\n" +
		"| population_rank         = " + (orig_infobox_params["population_rank"] ? orig_infobox_params["population_rank"] : "") + "\n" +
		"| population_density_km2  = " + (orig_infobox_params["population_density"] ? orig_infobox_params["population_density"] : "auto") + "\n"; // TODO: not necessarily km2 in the original

	if (orig_infobox_params["population_metro"]) {
		new_infobox_str +=
		"| population_metro        = " + (orig_infobox_params["population_metro"] ? orig_infobox_params["population_metro"] : "") + "\n" +
		"| population_metro_footnotes = " + (orig_infobox_params["population_metro_cite"] ? orig_infobox_params["population_metro_cite"] : "") + "\n"
	}

	new_infobox_str +=
		"| population_demonym      = " + "\n" +
		"| population_footnotes    = " + (orig_infobox_params["population_total_cite"] ? orig_infobox_params["population_total_cite"] : "") + "\n" +
		"| demographics_type1      = " + "ভাষা\n";

	var n_lang = 1; // number of languages
	for (var title in languages) {
		new_infobox_str += (
		"| demographics1_title" + n_lang + "    = " + title + "\n" +
		"| demographics1_info" + n_lang + "     = " + languages[title] + "\n"
		);
		n_lang++;
	}

	if (orig_infobox_params["ethnic_groups"]) {
		new_infobox_str +=
		"| demographics_type2      = " + "জাতিভুক্ত\n" +
		"| demographics2_title1    = " + "জাতিগোষ্ঠী\n" +
		"| demographics2_info1     = " + orig_infobox_params["ethnic_groups"] + "\n" +
		"| demographics2_title2    = " + "উপাত্তের বছর\n" +
		"| demographics2_info2     = " + (orig_infobox_params["ethnic_groups_year"] ? orig_infobox_params["ethnic_groups_year"] : "") + "\n";
	}

	new_infobox_str +=
		"| timezone1               = " + "[[ভারতীয় প্রমাণ সময়|আইএসটি]]\n" +
		"| utc_offset1             = " + "+৫:৩০\n" +
		"| postal_code_type        = " + (orig_infobox_params["postal_code"] ? "[[ডাক সূচক সংখ্যা|পিন]]" : "<!-- [[ডাক সূচক সংখ্যা|পিন]] -->") + "\n" +
		"| postal_code             = " + (orig_infobox_params["postal_code"] ? orig_infobox_params["postal_code"] : "") + "\n";

	if (orig_infobox_params["area_telephone"]) {
		new_infobox_str +=
		"| area_code_type          = " + "টেলিফোন কোড\n" +
		"| area_code               = " + (orig_infobox_params["area_telephone"] ? orig_infobox_params["area_telephone"] : "") + "\n";
	}

	if (orig_infobox_params["abbreviation"]) {
		new_infobox_str +=
		"| iso_code                = " + (orig_infobox_params["abbreviation"] ? "[[আইএসও ৩১৬৬-২:ইন|" + orig_infobox_params["abbreviation"] + "]]" : "") + "\n";
	}

	new_infobox_str +=
		"| registration_plate      = " + (orig_infobox_params["vehicle_code_range"] ? orig_infobox_params["vehicle_code_range"] : "") + "\n";

	var n_other = 1; // number of other_info items
	for (var title in other_info) {
		new_infobox_str += (
		"| blank" + (n_other == 0 ? "": n_other) + "_name_sec1        = " + title + "\n" +
		"| blank" + (n_other == 0 ? "": n_other) + "_info_sec1        = " + other_info[title] + "\n"
		);
		n_other++;
	}

	var n_climate = 1; // number of climate items
	for (var title in climate) {
		new_infobox_str += (
		"| blank" + (n_climate == 0 ? "": n_climate) + "_name_sec2        = " + title + "\n" +
		"| blank" + (n_climate == 0 ? "": n_climate) + "_info_sec2        = " + climate[title] + "\n"
		);
		n_climate++;
	}

	new_infobox_str +=
		"| website                 = " + (orig_infobox_params["website"] ? ("{{URL|" + orig_infobox_params["website"] + "}}") : "") + "\n" +
		"| footnotes               = " + (orig_infobox_params["footnotes"] ? orig_infobox_params["footnotes"] : "") + "\n" +
		"}}";

	return new_infobox_str;
}


/**
 * Return the official language of the state/UT
 * @param the name of the state/UT
 * @return the official lanugage of the state, blank if no match found
 */
var getOfficialLanguage = function (state_name) {

	var languages = {
"অন্ধ্রপ্রদেশ": "[[তেলুগু ভাষা|তেলুগু]]",
"অরুণাচল প্রদেশ": "[[ইংরেজি ভাষা|ইংরেজি]]",
"আসাম": "[[অসমীয়া ভাষা|অসমীয়া]]",
"অসম": "[[অসমীয়া ভাষা|অসমীয়া]]",
"বিহার": "[[মৈথিলি ভাষা|মৈথিলী]], [[হিন্দি ভাষা|হিন্দি]]",
"ছত্তীসগঢ়": "[[হিন্দি ভাষা|হিন্দি]], [[ছত্তীসগঢ়ী ভাষা|ছত্তীসগঢ়ী]]",
"গোয়া": "[[কোঙ্কানি ভাষা|কোঙ্কানি]]",
"গুজরাট": "[[গুজরাটি ভাষা|গুজরাটি]], [[হিন্দি ভাষা|হিন্দি]]",
"হরিয়ানা": "[[হিন্দি ভাষা|হিন্দি]]",
"হিমাচল প্রদেশ": "[[হিন্দি ভাষা|হিন্দি]]",
"জম্মু ও কাশ্মীর": "[[উর্দু]]",
"জম্মু ও কাশ্মীর": "[[উর্দু]]",
"ঝাড়খণ্ড": "[[হিন্দি ভাষা|হিন্দি]], [[সাঁওতালি ভাষা|সাঁওতালি]]",
"কর্ণাটক": "[[কন্নড় ভাষা|কন্নড়]]",
"কেরল": "[[মালায়ালম ভাষার|মালায়ালম]], [[ইংরেজি ভাষা|ইংরেজি]]",
"মধ্যপ্রদেশ": "[[হিন্দি ভাষা|হিন্দি]]",
"মহারাষ্ট্র": "[[মারাঠি ভাষা|মারাঠি]]",
"মণিপুর": "[[মৈতৈ ভাষা|মৈতৈ]] (মণিপুরী)",
"মেঘালয়": "[[ইংরেজি ভাষা|ইংরেজি]]",
"মিজোরাম": "[[মিজো ভাষা|মিজো]]",
"নাগাল্যান্ড": "[[ইংরেজি ভাষা|ইংরেজি]]",
"ওড়িশা": "[[ওড়িয়া ভাষা|ওড়িয়া]]",
"উড়িষ্যা": "[[ওড়িয়া ভাষা|ওড়িয়া]]",
"পাঞ্জাব": "[[পাঞ্জাবি ভাষা|পাঞ্জাবি]]",
"পাঞ্জাব, ভারত": "[[পাঞ্জাবি ভাষা|পাঞ্জাবি]]",
"রাজস্থান": "[[হিন্দি ভাষা|হিন্দি]]",
"সিকিম": "[[নেপালি ভাষা|নেপালি]], [[ভুটিয়া ভাষা|ভুটিয়া]], [[লেপচা ভাষা|লেপচা]], [[লিম্বু ভাষা|লিম্বু]], [[নেওয়ারি ভাষা|নেওয়ারি]], [[কিরান্তি ভাষা|রাই]], [[গুরুং ভাষা|গুরুং]], মাগার, [[শেরপা ভাষা|শেরপা]], [[তামাং ভাষা|তামাং]] এবং [[সানোয়ার ভাষা|সুনওয়ার]] ",
"তামিলনাড়ু": "[[তামিল ভাষা|তামিল]]",
"ত্রিপুরা": "[[বাংলা ভাষা|বাংলা]], [[ককবরক ভাষা|ককবরক]], [[ইংরেজি ভাষা|ইংরেজি]]",
"উত্তরাখণ্ড": "[[হিন্দি ভাষা|হিন্দি]]",
"উত্তরপ্রদেশ": "[[হিন্দি ভাষা|হিন্দি]]",
"পশ্চিমবঙ্গ": "[[বাংলা ভাষা|বাংলা]], [[ইংরেজি ভাষা|ইংরেজি]]",
"আন্দামান এবং নিকোবর দ্বীপপুঞ্জ": "[[হিন্দি ভাষা|হিন্দি]], [[ইংরেজি ভাষা|ইংরেজি]], [[তামিল ভাষা|তামিল]]",
"আন্দামান এবং নিকোবর": "[[হিন্দি ভাষা|হিন্দি]], [[ইংরেজি ভাষা|ইংরেজি]], [[তামিল ভাষা|তামিল]]",
"আন্দামান ও নিকোবর দ্বীপপুঞ্জ": "[[হিন্দি ভাষা|হিন্দি]], [[ইংরেজি ভাষা|ইংরেজি]], [[তামিল ভাষা|তামিল]]",
"আন্দামান ও নিকোবর": "[[হিন্দি ভাষা|হিন্দি]], [[ইংরেজি ভাষা|ইংরেজি]], [[তামিল ভাষা|তামিল]]",
"চণ্ডীগড়": "[[পাঞ্জাবি ভাষা|পাঞ্জাবি]], [[হিন্দি ভাষা|হিন্দি]], [[ইংরেজি ভাষা|ইংরেজি]]",
"দাদরা এবং নগর হাভেলি": "[[মারাঠি ভাষা|মারাঠি]], [[গুজরাটি ভাষা|গুজরাটি]]",
"দাদরা ও নগর হাভেলি": "[[মারাঠি ভাষা|মারাঠি]], [[গুজরাটি ভাষা|গুজরাটি]]",
"দমন এবং দিউ": "[[গুজরাটি ভাষা|গুজরাটি]], [[ইংরেজি ভাষা|ইংরেজি]]",
"দমন ও দিউ": "[[গুজরাটি ভাষা|গুজরাটি]], [[ইংরেজি ভাষা|ইংরেজি]]",
"দিল্লি": "[[হিন্দি ভাষা|হিন্দি]], [[ইংরেজি ভাষা|ইংরেজি]]",
"লাক্ষাদ্বীপ": "[[মালায়ালম ভাষার|মালায়ালম]]",
"পুদুচেরি": "[[ফরাসি ভাষা|ফরাসি]], [[তামিল ভাষা|তামিল]], [[ইংরেজি ভাষা|ইংরেজি]]",
"পুদুচেরি": "[[ফরাসি ভাষা|ফরাসি]], [[তামিল ভাষা|তামিল]], [[ইংরেজি ভাষা|ইংরেজি]]"
	};

	if (languages[state_name]) {
		return languages[state_name];
	}

	return "";
}


/**
 * initialize the program
 */
migrateIIJ.init = function() {
	// the infobox will automatically be migrated whenever the user clicks on "Edit this page"
	if (migrateIIJ.auto_replace == true) {
		// migrate the infobox
		if (wgAction == "edit") {
			migrateIIJ.migrateInfoboxIJ();
		}

		return;
	}

	// the user has to click on a portlet link to migrate the infobox
	var portletLink = mw.util.addPortletLink(
		"p-cactions",
		"#",
		"তথ্যছক ভারতের নগর এলাকা → settlement",
		"ca-infobox-settlement",
		"তথ্যছক ভারতের নগর এলাকা তথ্যছক বসতি দ্বারা প্রতিস্থাপন করার জন্য এখানে ক্লিক করুন"
	);
	$(portletLink).click(function (e) {
		e.preventDefault();
		migrateIIJ.migrateInfoboxIJ();
	});
};

// bind to page load
$(migrateIIJ.init);