Table of Contents
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:
For any questions you may have, reach out and our dev team can help you out.