Date&Time App Code

The App’s HTML code

Date&Time index.htmlExpand source

<!DOCTYPE html>
<html>
<head>
<title>DClock</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
html, body {
	background-color: transparent;
	font-family: tahoma;
	font-size: 48px;
	height: 100%;
	width: 100%;
}

* {
	margin: 0;
	padding: 0;
}

#clock {
	height: 100%;
	text-align: center;
	white-space: nowrap;
}

.clock-container{
	display: inline-block
}

.smaller {
    font-size: 0.6em;
}

.date{
	font-size: 0.6em;
	display:block
}

</style>
<script src="js/jquery.min.js"></script>
<script src="js/moment.min.js"></script>
<script src="js/moment-timezone-with-data.min.js"></script>
<script language="javascript" type="text/javascript">

	function set_time(now){

	    if (!window.hide_time)
	        $('#clock_time').html(now.format(window.widget_timeformat));

	    if (window.show_date)
	        $('#clock_date').html(now.format(window.widget_dateformat));

	}

    /*function that starts the clock*/
	function startTime() {

		var now = moment().tz(window.widget_timezone);
		set_time(now);

		var old_hour = window.widget_hour || -1;
		window.widget_hour = now.hour();
		if(window.widget_hour != old_hour){
			$('#clock').textfill({
	            maxFontPixels : $('body').height()
	        });
		}

		if (window.t) {
			clearTimeout(window.t)
		}
		/*repeat after one second*/
		window.t = setTimeout(startTime, 1000);

	}

	function init_widget(config) {
		if (!config) {
			console.log("no json configuration found");
			return;
		}

		/*apply css based on configuration*/

		if ("bgcolor" in config) {
			var bgcolor = hexToRGBA(config.bgcolor)
			if (bgcolor) {
				$('body').css('background-color', bgcolor)

			}
		}
		if ("color" in config) {
			var color = hexToRGBA(config.color)
			if (color) {
				$('#clock').css('color', color)

			}
		}

		window.widget_timezone = moment.tz.guess();
		if (config.timezone && config.apply_timezone) {
			window.widget_timezone = config.timezone;
		}

		window.hide_seconds = false;
		if ("hide_seconds" in config && config['hide_seconds']) {
				window.hide_seconds = true;
		}

		window.time_format = '24';
		if ('time_format' in config){
			window.time_format = config['time_format'];
		}

		window.widget_timeformat = 'HH:mm';

		if (window.time_format == '12'){
			window.widget_timeformat = 'hh:mm';
		}

		if (window.hide_seconds == false){
			window.widget_timeformat += ':ss';
		}

		if (window.time_format == '12'){
			window.widget_timeformat += ' a';
		}

		window.show_date = false;
		$('#clock_date').hide()
		if('show_date' in config && config['show_date']){
			window.show_date = true
			$('#clock_date').show()
		}

		window.widget_dateformat = "YYYY-MM-DD";
		if('date_format' in config && config['date_format']){
			window.widget_dateformat = config['date_format'];
		}

		window.hide_time = false;
		if ("hide_time" in config && config['hide_time']) {
			window.hide_time = true;
			$('#clock_time').hide();
		}

		window.locale = 'en'
		if ("locale" in config){
			window.locale = config['locale']
			moment.locale(window.locale);
		}


		if ('fontfamily' in config) {
			$('#clock').css('font-family', config['fontfamily']);
		}

		if ('fontstyle' in config) {
			$('#clock').css('font-style', config['fontstyle']);
		}

		if ('fontweight' in config) {
			$('#clock').css('font-weight', config['fontweight']);
		}

		var now = moment().tz(window.widget_timezone);
		now.hour(23);
		now.minute(59);
		now.second(59);
		set_time(now);
	}

	function start_widget() {
		$('#clock').show();

		/*resize text*/
		$('#clock').textfill({
			maxFontPixels : $('body').height()
		});
		startTime();
	}

	function stop_widget() {
		if (window.t) {
            clearTimeout(window.t);
        }
	}

	/*test function to test while developing*/
	function test_widget() {
		init_widget({
			bgcolor : "00000055",
			color : "ff0000cc",
			fontfamily : "arial",
			fontstyle : "normal",
			fontweight : "bold",
			hide_seconds: false,
			time_format : "12",
			show_date : true,
			hide_time : false,
			date_format: 'dd, ll',
			locale : 'el',
			apply_timezone: true,
			timezone: 'Europe/Paris'
		});

		start_widget();

	}

	function on_load() {
		document.body.ondblclick = function() {
			test_widget();
		};
	}

	/*function that turns an rgba hex to rgba css*/
	function hexToRGBA(hex) {
		var r = parseInt(hex.substr(0, 2), 16);
		var g = parseInt(hex.substr(2, 2), 16);
		var b = parseInt(hex.substr(4, 2), 16);
		var a = Math.round((parseInt(hex.substr(6, 2), 16) / 255) * 100);

		a = a / 100;

		var rgba = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';
		return rgba;
	}

	/*function to resize text so that it fits to its container*/
	(function($) {
		$.fn.textfill = function(options) {
			var fontSize = options.maxFontPixels;
			var ourText = $('span:first', this);
			var maxHeight = $(this).height();
			var maxWidth = $(this).width();
			var textHeight;
			var textWidth;
			while(true) {
				ourText.css('font-size', fontSize);
				textHeight = ourText.height();
				textWidth = ourText.width();
				//console.log(textHeight +' -- '+ maxHeight)
				//console.log(textWidth +' -- '+ maxWidth)

                if(fontSize < 5){
                    break;
                }

				if(textHeight > maxHeight){
					fontSize = fontSize - Math.ceil(fontSize*(1-(maxHeight/textHeight)))
					continue;
				}
				if(textWidth > maxWidth){
					fontSize = fontSize - Math.ceil(fontSize*(1-(maxWidth/textWidth)))
                    continue;
				}
				break;

			}

			window.fontsize = fontSize;
			return this;
		}
	})(jQuery);
</script>
</head>

<body>
	<div id="clock" hidden>
		<span class="clock-container" ><span class="time" id="clock_time">00:00:00 pm</span>
		<span class="date" id="clock_date">00-00-0000</span></span>
	</div>

</body>
</html>

The App’s JSON Schema

schema.jsonExpand source

{
  "fields": [
    "time_format",
    "hide_time",
    "hide_seconds",
    "show_date",
    "date_format",
    "locale",
    "bgcolor",
    "color",
    "fontfamily",
    "fontstyle",
    "fontweight",
    "timezone",
    "apply_timezone"
  ],
  "schema": {
    "date_format": {
      "validators": [
        "required"
      ],
      "type": "Select",
      "options": [
        {
          "val": "L",
          "label": "<%=date_format_standard%>"
        },
        {
          "val": "ll",
          "label": "<%=date_format_month_name%>"
        },
        {
          "val": "dd, ll",
          "label": "<%=date_format_day_month_name%>"
        },
        {
          "val": "YYYY/MM/DD",
          "label": "<%=date_format_yyyy_mm_dd%>"
        },
        {
          "val": "DD/MM/YYYY",
          "label": "<%=date_format_dd_mm_yyyy%>"
        },
        {
          "val": "MM/DD/YYYY",
          "label": "<%=date_format_mm_dd_yyyy%>"
        }
      ],
      "title": "<%=general_date_format%>"
    },
    "fontstyle": {
      "validators": [
        "required"
      ],
      "type": "Select",
      "options": [
        "<%=general_normal%>",
        "<%=general_italic%>",
        "<%=general_oblique%>"
      ],
      "title": "<%=general_font_style%>"
    },
    "bgcolor": {
      "type": "SpectrumColorPicker",
      "title": "<%=general_background_color%>"
    },
    "color": {
      "type": "SpectrumColorPicker",
      "title": "<%=general_font_color%>"
    },
    "hide_seconds": {
      "type": "Boolean",
      "title": "<%=general_hide_seconds%>"
    },
    "show_date": {
      "type": "Boolean",
      "title": "<%=general_show_date%>"
    },
    "time_format": {
      "validators": [
        "required"
      ],
      "type": "Select",
      "options": [
        "12",
        "24"
      ],
      "title": "<%=general_time_format%>"
    },
    "fontfamily": {
      "validators": [
        "required"
      ],
      "type": "Select",
      "options": [
        "Arial",
        "Courier",
        "Comic Sans MS",
        "Georgia",
        "Times New Roman",
        "Trebuchet MS",
        "Verdana"
      ],
      "title": "<%=general_font_family%>"
    },
    "apply_timezone": {
      "type": "Boolean",
      "title": "<%=general_apply_timezone%>"
    },
    "timezone": {
      "type": "Select",
      "options": [
        "Africa/Abidjan",
        "Africa/Accra",
        "Africa/Addis_Ababa",
        "Africa/Algiers",
        "Africa/Asmara",
        "Africa/Asmera",
        "Africa/Bamako",
        "Africa/Bangui",
        "Africa/Banjul",
        "Africa/Bissau",
        "Africa/Blantyre",
        "Africa/Brazzaville",
        "Africa/Bujumbura",
        "Africa/Cairo",
        "Africa/Casablanca",
        "Africa/Ceuta",
        "Africa/Conakry",
        "Africa/Dakar",
        "Africa/Dar_es_Salaam",
        "Africa/Djibouti",
        "Africa/Douala",
        "Africa/El_Aaiun",
        "Africa/Freetown",
        "Africa/Gaborone",
        "Africa/Harare",
        "Africa/Johannesburg",
        "Africa/Juba",
        "Africa/Kampala",
        "Africa/Khartoum",
        "Africa/Kigali",
        "Africa/Kinshasa",
        "Africa/Lagos",
        "Africa/Libreville",
        "Africa/Lome",
        "Africa/Luanda",
        "Africa/Lubumbashi",
        "Africa/Lusaka",
        "Africa/Malabo",
        "Africa/Maputo",
        "Africa/Maseru",
        "Africa/Mbabane",
        "Africa/Mogadishu",
        "Africa/Monrovia",
        "Africa/Nairobi",
        "Africa/Ndjamena",
        "Africa/Niamey",
        "Africa/Nouakchott",
        "Africa/Ouagadougou",
        "Africa/Porto-Novo",
        "Africa/Sao_Tome",
        "Africa/Timbuktu",
        "Africa/Tripoli",
        "Africa/Tunis",
        "Africa/Windhoek",
        "America/Adak",
        "America/Anchorage",
        "America/Anguilla",
        "America/Antigua",
        "America/Araguaina",
        "America/Aruba",
        "America/Asuncion",
        "America/Atikokan",
        "America/Atka",
        "America/Bahia",
        "America/Bahia_Banderas",
        "America/Barbados",
        "America/Belem",
        "America/Belize",
        "America/Blanc-Sablon",
        "America/Boa_Vista",
        "America/Bogota",
        "America/Boise",
        "America/Buenos_Aires",
        "America/Cambridge_Bay",
        "America/Campo_Grande",
        "America/Cancun",
        "America/Caracas",
        "America/Catamarca",
        "America/Cayenne",
        "America/Cayman",
        "America/Chicago",
        "America/Chihuahua",
        "America/Coral_Harbour",
        "America/Cordoba",
        "America/Costa_Rica",
        "America/Creston",
        "America/Cuiaba",
        "America/Curacao",
        "America/Danmarkshavn",
        "America/Dawson",
        "America/Dawson_Creek",
        "America/Denver",
        "America/Detroit",
        "America/Dominica",
        "America/Edmonton",
        "America/Eirunepe",
        "America/El_Salvador",
        "America/Ensenada",
        "America/Fort_Wayne",
        "America/Fortaleza",
        "America/Glace_Bay",
        "America/Godthab",
        "America/Goose_Bay",
        "America/Grand_Turk",
        "America/Grenada",
        "America/Guadeloupe",
        "America/Guatemala",
        "America/Guayaquil",
        "America/Guyana",
        "America/Halifax",
        "America/Havana",
        "America/Hermosillo",
        "America/Indianapolis",
        "America/Inuvik",
        "America/Iqaluit",
        "America/Jamaica",
        "America/Jujuy",
        "America/Juneau",
        "America/Knox_IN",
        "America/Kralendijk",
        "America/La_Paz",
        "America/Lima",
        "America/Los_Angeles",
        "America/Louisville",
        "America/Lower_Princes",
        "America/Maceio",
        "America/Managua",
        "America/Manaus",
        "America/Marigot",
        "America/Martinique",
        "America/Matamoros",
        "America/Mazatlan",
        "America/Mendoza",
        "America/Menominee",
        "America/Merida",
        "America/Metlakatla",
        "America/Mexico_City",
        "America/Miquelon",
        "America/Moncton",
        "America/Monterrey",
        "America/Montevideo",
        "America/Montreal",
        "America/Montserrat",
        "America/Nassau",
        "America/New_York",
        "America/Nipigon",
        "America/Nome",
        "America/Noronha",
        "America/Ojinaga",
        "America/Panama",
        "America/Pangnirtung",
        "America/Paramaribo",
        "America/Phoenix",
        "America/Port-au-Prince",
        "America/Port_of_Spain",
        "America/Porto_Acre",
        "America/Porto_Velho",
        "America/Puerto_Rico",
        "America/Rainy_River",
        "America/Rankin_Inlet",
        "America/Recife",
        "America/Regina",
        "America/Resolute",
        "America/Rio_Branco",
        "America/Rosario",
        "America/Santa_Isabel",
        "America/Santarem",
        "America/Santiago",
        "America/Santo_Domingo",
        "America/Sao_Paulo",
        "America/Scoresbysund",
        "America/Shiprock",
        "America/Sitka",
        "America/St_Barthelemy",
        "America/St_Johns",
        "America/St_Kitts",
        "America/St_Lucia",
        "America/St_Thomas",
        "America/St_Vincent",
        "America/Swift_Current",
        "America/Tegucigalpa",
        "America/Thule",
        "America/Thunder_Bay",
        "America/Tijuana",
        "America/Toronto",
        "America/Tortola",
        "America/Vancouver",
        "America/Virgin",
        "America/Whitehorse",
        "America/Winnipeg",
        "America/Yakutat",
        "America/Yellowknife",
        "Antarctica/Casey",
        "Antarctica/Davis",
        "Antarctica/DumontDUrville",
        "Antarctica/Macquarie",
        "Antarctica/Mawson",
        "Antarctica/McMurdo",
        "Antarctica/Palmer",
        "Antarctica/Rothera",
        "Antarctica/South_Pole",
        "Antarctica/Syowa",
        "Antarctica/Troll",
        "Antarctica/Vostok",
        "Arctic/Longyearbyen",
        "Asia/Aden",
        "Asia/Almaty",
        "Asia/Amman",
        "Asia/Anadyr",
        "Asia/Aqtau",
        "Asia/Aqtobe",
        "Asia/Ashgabat",
        "Asia/Ashkhabad",
        "Asia/Baghdad",
        "Asia/Bahrain",
        "Asia/Baku",
        "Asia/Bangkok",
        "Asia/Beirut",
        "Asia/Bishkek",
        "Asia/Brunei",
        "Asia/Calcutta",
        "Asia/Choibalsan",
        "Asia/Chongqing",
        "Asia/Chungking",
        "Asia/Colombo",
        "Asia/Dacca",
        "Asia/Damascus",
        "Asia/Dhaka",
        "Asia/Dili",
        "Asia/Dubai",
        "Asia/Dushanbe",
        "Asia/Gaza",
        "Asia/Harbin",
        "Asia/Hebron",
        "Asia/Ho_Chi_Minh",
        "Asia/Hong_Kong",
        "Asia/Hovd",
        "Asia/Irkutsk",
        "Asia/Istanbul",
        "Asia/Jakarta",
        "Asia/Jayapura",
        "Asia/Jerusalem",
        "Asia/Kabul",
        "Asia/Kamchatka",
        "Asia/Karachi",
        "Asia/Kashgar",
        "Asia/Kathmandu",
        "Asia/Katmandu",
        "Asia/Khandyga",
        "Asia/Kolkata",
        "Asia/Krasnoyarsk",
        "Asia/Kuala_Lumpur",
        "Asia/Kuching",
        "Asia/Kuwait",
        "Asia/Macao",
        "Asia/Macau",
        "Asia/Magadan",
        "Asia/Makassar",
        "Asia/Manila",
        "Asia/Muscat",
        "Asia/Nicosia",
        "Asia/Novokuznetsk",
        "Asia/Novosibirsk",
        "Asia/Omsk",
        "Asia/Oral",
        "Asia/Phnom_Penh",
        "Asia/Pontianak",
        "Asia/Pyongyang",
        "Asia/Qatar",
        "Asia/Qyzylorda",
        "Asia/Rangoon",
        "Asia/Riyadh",
        "Asia/Saigon",
        "Asia/Sakhalin",
        "Asia/Samarkand",
        "Asia/Seoul",
        "Asia/Shanghai",
        "Asia/Singapore",
        "Asia/Taipei",
        "Asia/Tashkent",
        "Asia/Tbilisi",
        "Asia/Tehran",
        "Asia/Tel_Aviv",
        "Asia/Thimbu",
        "Asia/Thimphu",
        "Asia/Tokyo",
        "Asia/Ujung_Pandang",
        "Asia/Ulaanbaatar",
        "Asia/Ulan_Bator",
        "Asia/Urumqi",
        "Asia/Ust-Nera",
        "Asia/Vientiane",
        "Asia/Vladivostok",
        "Asia/Yakutsk",
        "Asia/Yekaterinburg",
        "Asia/Yerevan",
        "Atlantic/Azores",
        "Atlantic/Bermuda",
        "Atlantic/Canary",
        "Atlantic/Cape_Verde",
        "Atlantic/Faeroe",
        "Atlantic/Faroe",
        "Atlantic/Jan_Mayen",
        "Atlantic/Madeira",
        "Atlantic/Reykjavik",
        "Atlantic/South_Georgia",
        "Atlantic/St_Helena",
        "Atlantic/Stanley",
        "Australia/ACT",
        "Australia/Adelaide",
        "Australia/Brisbane",
        "Australia/Broken_Hill",
        "Australia/Canberra",
        "Australia/Currie",
        "Australia/Darwin",
        "Australia/Eucla",
        "Australia/Hobart",
        "Australia/LHI",
        "Australia/Lindeman",
        "Australia/Lord_Howe",
        "Australia/Melbourne",
        "Australia/NSW",
        "Australia/North",
        "Australia/Perth",
        "Australia/Queensland",
        "Australia/South",
        "Australia/Sydney",
        "Australia/Tasmania",
        "Australia/Victoria",
        "Australia/West",
        "Australia/Yancowinna",
        "Brazil/Acre",
        "Brazil/DeNoronha",
        "Brazil/East",
        "Brazil/West",
        "Canada/Atlantic",
        "Canada/Central",
        "Canada/East-Saskatchewan",
        "Canada/Eastern",
        "Canada/Mountain",
        "Canada/Newfoundland",
        "Canada/Pacific",
        "Canada/Saskatchewan",
        "Canada/Yukon",
        "Chile/Continental",
        "Chile/EasterIsland",
        "Etc/GMT",
        "Etc/GMT+0",
        "Etc/GMT+1",
        "Etc/GMT+10",
        "Etc/GMT+11",
        "Etc/GMT+12",
        "Etc/GMT+2",
        "Etc/GMT+3",
        "Etc/GMT+4",
        "Etc/GMT+5",
        "Etc/GMT+6",
        "Etc/GMT+7",
        "Etc/GMT+8",
        "Etc/GMT+9",
        "Etc/GMT-0",
        "Etc/GMT-1",
        "Etc/GMT-10",
        "Etc/GMT-11",
        "Etc/GMT-12",
        "Etc/GMT-13",
        "Etc/GMT-14",
        "Etc/GMT-2",
        "Etc/GMT-3",
        "Etc/GMT-4",
        "Etc/GMT-5",
        "Etc/GMT-6",
        "Etc/GMT-7",
        "Etc/GMT-8",
        "Etc/GMT-9",
        "Etc/GMT0",
        "Etc/Greenwich",
        "Etc/UCT",
        "Etc/UTC",
        "Etc/Universal",
        "Etc/Zulu",
        "Europe/Amsterdam",
        "Europe/Andorra",
        "Europe/Athens",
        "Europe/Belfast",
        "Europe/Belgrade",
        "Europe/Berlin",
        "Europe/Bratislava",
        "Europe/Brussels",
        "Europe/Bucharest",
        "Europe/Budapest",
        "Europe/Busingen",
        "Europe/Chisinau",
        "Europe/Copenhagen",
        "Europe/Dublin",
        "Europe/Gibraltar",
        "Europe/Guernsey",
        "Europe/Helsinki",
        "Europe/Isle_of_Man",
        "Europe/Istanbul",
        "Europe/Jersey",
        "Europe/Kaliningrad",
        "Europe/Kiev",
        "Europe/Lisbon",
        "Europe/Ljubljana",
        "Europe/London",
        "Europe/Luxembourg",
        "Europe/Madrid",
        "Europe/Malta",
        "Europe/Mariehamn",
        "Europe/Minsk",
        "Europe/Monaco",
        "Europe/Moscow",
        "Europe/Nicosia",
        "Europe/Oslo",
        "Europe/Paris",
        "Europe/Podgorica",
        "Europe/Prague",
        "Europe/Riga",
        "Europe/Rome",
        "Europe/Samara",
        "Europe/San_Marino",
        "Europe/Sarajevo",
        "Europe/Simferopol",
        "Europe/Skopje",
        "Europe/Sofia",
        "Europe/Stockholm",
        "Europe/Tallinn",
        "Europe/Tirane",
        "Europe/Tiraspol",
        "Europe/Uzhgorod",
        "Europe/Vaduz",
        "Europe/Vatican",
        "Europe/Vienna",
        "Europe/Vilnius",
        "Europe/Volgograd",
        "Europe/Warsaw",
        "Europe/Zagreb",
        "Europe/Zaporozhye",
        "Europe/Zurich",
        "Indian/Antananarivo",
        "Indian/Chagos",
        "Indian/Christmas",
        "Indian/Cocos",
        "Indian/Comoro",
        "Indian/Kerguelen",
        "Indian/Mahe",
        "Indian/Maldives",
        "Indian/Mauritius",
        "Indian/Mayotte",
        "Indian/Reunion",
        "Mexico/BajaNorte",
        "Mexico/BajaSur",
        "Mexico/General",
        "Pacific/Apia",
        "Pacific/Auckland",
        "Pacific/Chatham",
        "Pacific/Chuuk",
        "Pacific/Easter",
        "Pacific/Efate",
        "Pacific/Enderbury",
        "Pacific/Fakaofo",
        "Pacific/Fiji",
        "Pacific/Funafuti",
        "Pacific/Galapagos",
        "Pacific/Gambier",
        "Pacific/Guadalcanal",
        "Pacific/Guam",
        "Pacific/Honolulu",
        "Pacific/Johnston",
        "Pacific/Kiritimati",
        "Pacific/Kosrae",
        "Pacific/Kwajalein",
        "Pacific/Majuro",
        "Pacific/Marquesas",
        "Pacific/Midway",
        "Pacific/Nauru",
        "Pacific/Niue",
        "Pacific/Norfolk",
        "Pacific/Noumea",
        "Pacific/Pago_Pago",
        "Pacific/Palau",
        "Pacific/Pitcairn",
        "Pacific/Pohnpei",
        "Pacific/Ponape",
        "Pacific/Port_Moresby",
        "Pacific/Rarotonga",
        "Pacific/Saipan",
        "Pacific/Samoa",
        "Pacific/Tahiti",
        "Pacific/Tarawa",
        "Pacific/Tongatapu",
        "Pacific/Truk",
        "Pacific/Wake",
        "Pacific/Wallis",
        "Pacific/Yap",
        "SystemV/AST4",
        "SystemV/AST4ADT",
        "SystemV/CST6",
        "SystemV/CST6CDT",
        "SystemV/EST5",
        "SystemV/EST5EDT",
        "SystemV/HST10",
        "SystemV/MST7",
        "SystemV/MST7MDT",
        "SystemV/PST8",
        "SystemV/PST8PDT",
        "SystemV/YST9",
        "SystemV/YST9YDT",
        "US/Alaska",
        "US/Aleutian",
        "US/Arizona",
        "US/Central",
        "US/East-Indiana",
        "US/Eastern",
        "US/Hawaii",
        "US/Indiana-Starke",
        "US/Michigan",
        "US/Mountain",
        "US/Pacific",
        "US/Pacific-New",
        "US/Samoa"
      ],
      "title": "<%=general_select_timezone%>"
    },
    "locale": {
      "type": "Select",
      "options": [
        {
          "val": "af",
          "label": "Afrikaans"
        },
        {
          "val": "sq",
          "label": "Albanian"
        },
        {
          "val": "ar",
          "label": "Arabic"
        },
        {
          "val": "ar-dz",
          "label": "Arabic (Algeria)"
        },
        {
          "val": "ar-kw",
          "label": "Arabic (Kuwait)"
        },
        {
          "val": "ar-ly",
          "label": "Arabic (Lybia)"
        },
        {
          "val": "ar-ma",
          "label": "Arabic (Morocco)"
        },
        {
          "val": "ar-sa",
          "label": "Arabic (Saudi Arabia)"
        },
        {
          "val": "ar-tn",
          "label": "Arabic (Tunisia)"
        },
        {
          "val": "hy-am",
          "label": "Armenian"
        },
        {
          "val": "az",
          "label": "Azerbaijani"
        },
        {
          "val": "eu",
          "label": "Basque"
        },
        {
          "val": "be",
          "label": "Belarusian"
        },
        {
          "val": "bn",
          "label": "Bengali"
        },
        {
          "val": "bs",
          "label": "Bosnian"
        },
        {
          "val": "br",
          "label": "Breton"
        },
        {
          "val": "bg",
          "label": "Bulgarian"
        },
        {
          "val": "my",
          "label": "Burmese"
        },
        {
          "val": "km",
          "label": "Cambodian"
        },
        {
          "val": "ca",
          "label": "Catalan"
        },
        {
          "val": "tzm",
          "label": "Central Atlas Tamazight"
        },
        {
          "val": "tzm-latn",
          "label": "Central Atlas Tamazight Latin"
        },
        {
          "val": "zh-cn",
          "label": "Chinese (China)"
        },
        {
          "val": "zh-hk",
          "label": "Chinese (Hong Kong)"
        },
        {
          "val": "zh-tw",
          "label": "Chinese (Taiwan)"
        },
        {
          "val": "cv",
          "label": "Chuvash"
        },
        {
          "val": "hr",
          "label": "Croatian"
        },
        {
          "val": "cs",
          "label": "Czech"
        },
        {
          "val": "da",
          "label": "Danish"
        },
        {
          "val": "nl",
          "label": "Dutch"
        },
        {
          "val": "nl-be",
          "label": "Dutch (Belgium)"
        },
        {
          "val": "en-au",
          "label": "English (Australia)"
        },
        {
          "val": "en-ca",
          "label": "English (Canada)"
        },
        {
          "val": "en-ie",
          "label": "English (Ireland)"
        },
        {
          "val": "en-nz",
          "label": "English (New Zealand)"
        },
        {
          "val": "en-gb",
          "label": "English (United Kingdom)"
        },
        {
          "val": "en",
          "label": "English (United States)"
        },
        {
          "val": "eo",
          "label": "Esperanto"
        },
        {
          "val": "et",
          "label": "Estonian"
        },
        {
          "val": "fo",
          "label": "Faroese"
        },
        {
          "val": "fi",
          "label": "Finnish"
        },
        {
          "val": "fr",
          "label": "French"
        },
        {
          "val": "fr-ca",
          "label": "French (Canada)"
        },
        {
          "val": "fr-ch",
          "label": "French (Switzerland)"
        },
        {
          "val": "fy",
          "label": "Frisian"
        },
        {
          "val": "gl",
          "label": "Galician"
        },
        {
          "val": "ka",
          "label": "Georgian"
        },
        {
          "val": "de",
          "label": "German"
        },
        {
          "val": "de-at",
          "label": "German (Austria)"
        },
        {
          "val": "de-ch",
          "label": "German (Switzerland)"
        },
        {
          "val": "el",
          "label": "Greek"
        },
        {
          "val": "he",
          "label": "Hebrew"
        },
        {
          "val": "hi",
          "label": "Hindi"
        },
        {
          "val": "hu",
          "label": "Hungarian"
        },
        {
          "val": "is",
          "label": "Icelandic"
        },
        {
          "val": "id",
          "label": "Indonesian"
        },
        {
          "val": "it",
          "label": "Italian"
        },
        {
          "val": "ja",
          "label": "Japanese"
        },
        {
          "val": "jv",
          "label": "Javanese"
        },
        {
          "val": "kn",
          "label": "Kannada"
        },
        {
          "val": "kk",
          "label": "Kazakh"
        },
        {
          "val": "tlh",
          "label": "Klingon"
        },
        {
          "val": "gom-latn",
          "label": "Konkani Latin script"
        },
        {
          "val": "ko",
          "label": "Korean"
        },
        {
          "val": "ky",
          "label": "Kyrgyz"
        },
        {
          "val": "lo",
          "label": "Lao"
        },
        {
          "val": "lv",
          "label": "Latvian"
        },
        {
          "val": "lt",
          "label": "Lithuanian"
        },
        {
          "val": "lb",
          "label": "Luxembourgish"
        },
        {
          "val": "mk",
          "label": "Macedonian"
        },
        {
          "val": "ms-my",
          "label": "Malay"
        },
        {
          "val": "ms",
          "label": "Malay"
        },
        {
          "val": "ml",
          "label": "Malayalam"
        },
        {
          "val": "dv",
          "label": "Maldivian"
        },
        {
          "val": "mi",
          "label": "Maori"
        },
        {
          "val": "mr",
          "label": "Marathi"
        },
        {
          "val": "me",
          "label": "Montenegrin"
        },
        {
          "val": "ne",
          "label": "Nepalese"
        },
        {
          "val": "se",
          "label": "Northern Sami"
        },
        {
          "val": "nb",
          "label": "Norwegian Bokmål"
        },
        {
          "val": "nn",
          "label": "Nynorsk"
        },
        {
          "val": "fa",
          "label": "Persian"
        },
        {
          "val": "pl",
          "label": "Polish"
        },
        {
          "val": "pt",
          "label": "Portuguese"
        },
        {
          "val": "pt-br",
          "label": "Portuguese (Brazil)"
        },
        {
          "val": "x-pseudo",
          "label": "Pseudo"
        },
        {
          "val": "pa-in",
          "label": "Punjabi (India)"
        },
        {
          "val": "ro",
          "label": "Romanian"
        },
        {
          "val": "ru",
          "label": "Russian"
        },
        {
          "val": "gd",
          "label": "Scottish Gaelic"
        },
        {
          "val": "sr",
          "label": "Serbian"
        },
        {
          "val": "sr-cyrl",
          "label": "Serbian Cyrillic"
        },
        {
          "val": "sd",
          "label": "Sindhi"
        },
        {
          "val": "si",
          "label": "Sinhalese"
        },
        {
          "val": "sk",
          "label": "Slovak"
        },
        {
          "val": "sl",
          "label": "Slovenian"
        },
        {
          "val": "es",
          "label": "Spanish"
        },
        {
          "val": "es-do",
          "label": "Spanish (Dominican Republic)"
        },
        {
          "val": "sw",
          "label": "Swahili"
        },
        {
          "val": "sv",
          "label": "Swedish"
        },
        {
          "val": "tl-ph",
          "label": "Tagalog (Philippines)"
        },
        {
          "val": "tzl",
          "label": "Talossan"
        },
        {
          "val": "ta",
          "label": "Tamil"
        },
        {
          "val": "te",
          "label": "Telugu"
        },
        {
          "val": "tet",
          "label": "Tetun Dili (East Timor)"
        },
        {
          "val": "th",
          "label": "Thai"
        },
        {
          "val": "bo",
          "label": "Tibetan"
        },
        {
          "val": "tr",
          "label": "Turkish"
        },
        {
          "val": "uk",
          "label": "Ukrainian"
        },
        {
          "val": "ur",
          "label": "Urdu"
        },
        {
          "val": "uz",
          "label": "Uzbek"
        },
        {
          "val": "uz-latn",
          "label": "Uzbek Latin"
        },
        {
          "val": "vi",
          "label": "Vietnamese"
        },
        {
          "val": "cy",
          "label": "Welsh"
        },
        {
          "val": "yo",
          "label": "Yoruba Nigeria"
        },
        {
          "val": "ss",
          "label": "siSwati"
        }
      ],
      "title": "<%=general_language%>"
    },
    "fontweight": {
      "validators": [
        "required"
      ],
      "type": "Select",
      "options": [
        "<%=general_normal%>",
        "<%=general_bold%>",
        "<%=general_bolder%>",
        "<%=general_lighter%>"
      ],
      "title": "<%=general_font_weight%>"
    },
    "hide_time": {
      "type": "Boolean",
      "title": "<%=general_hide_time%>"
    }
  }
}

Download ZIP file

You can download the app’s zip file from here:

widget.zip

For any questions you may have, reach out and our dev team can help you out.