fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.util.Locale;
  4. import java.text.DateFormat;
  5. import java.util.Date;
  6. import java.text.Collator;
  7. import java.text.DateFormatSymbols;
  8. import java.text.Normalizer;
  9. import java.text.SimpleDateFormat;
  10.  
  11. class Main
  12. {
  13. public static void main (String[] args) throws java.lang.Exception
  14. {
  15. Locale[] locales = Locale.getAvailableLocales();
  16.  
  17. //sorting locales
  18. sortArray(Collator.getInstance(Locale.ENGLISH), locales);
  19.  
  20. int i = 0;
  21. int j = 0;
  22. List<Lang> langs = new ArrayList<Lang>();
  23. List<Order> orders = new ArrayList<Order>();
  24.  
  25. for(Locale l : locales){
  26. i++;
  27. if(blacklisted(i))continue;
  28. SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.LONG, l);
  29. String pattern = clearPattern(sf.toPattern());
  30. //String pattern = sf.toPattern();
  31. Order order = hasOrder(orders, pattern);
  32. if(order == null){
  33. j++;
  34. order = new Order(j, pattern);
  35. orders.add(order);
  36. }
  37. Lang main = hasMainCountry(langs, l.getLanguage());
  38. Lang lang = hasOrderCountry(langs, order, l.getLanguage());
  39. if(lang==null){
  40. if(main==null){
  41. if(l.getCountry().equals(""))langs.add(new Lang(i, l, l.getDisplayLanguage(), l.getLanguage(), order));
  42. else langs.add(new Lang(i, l, l.getDisplayLanguage() + "_" + l.getCountry(), l.getLanguage(), order));
  43. }else{
  44. if(l.getCountry().equals(""))langs.add(new Lang(main.i, l, l.getDisplayLanguage(), l.getLanguage(), order));
  45. else langs.add(new Lang(main.i, l, l.getDisplayLanguage() + "_" + l.getCountry(), l.getLanguage(), order));
  46. }
  47. }else{
  48. if(!l.getCountry().equals(""))lang.screen_name += "_" + l.getCountry();
  49. }
  50. }
  51.  
  52. System.out.println("/*");
  53. int k = 0;
  54. for(Lang l: langs){
  55. if(!l.screen_name.contains("_"))continue;
  56. k++;
  57. System.out.println(" * -" + k + " " + l.i + " " + l.order.order + " " + l.screen_name);
  58. }
  59. System.out.println(" */");
  60.  
  61. Set<Integer> done_langs = new HashSet<Integer>();
  62. for(Lang l: langs){
  63. //System.out.println(l.i + " " + l.order.order + " " + l.screen_name + " " + l.order.order_details);
  64.  
  65. if(!l.screen_name.contains("_"))continue;
  66.  
  67. if(!done_langs.contains(l.i))done_langs.add(l.i);
  68. else continue;
  69.  
  70.  
  71.  
  72. String[] dayNames = symbols.getShortWeekdays();
  73. String[] monthNames = symbols.getMonths();
  74.  
  75. //precompiler condition
  76. System.out.println("#if LANG == " + l.i);
  77. System.out.println("// " + l.l.getDisplayLanguage());
  78.  
  79. //day array body
  80. System.out.println("static const char* const DAYS[] = {");
  81. for (String s : dayNames) {
  82. if(s.length()==0)continue;
  83. String norm = Normalizer
  84. .normalize(s, Normalizer.Form.NFD)
  85. .replaceAll("[^\\p{ASCII}]", "");
  86. System.out.print("\"" + norm.toUpperCase() + "\",");
  87. System.out.println(" /* " + s + " */");
  88. }
  89. System.out.println("};");
  90. System.out.println();
  91.  
  92. //month array body
  93. System.out.println("static const char* const MONTHS[] = {");
  94. for (String s : monthNames) {
  95. if(s.length()==0)continue;
  96. String norm = Normalizer
  97. .normalize(s, Normalizer.Form.NFD)
  98. .replaceAll("[^\\p{ASCII}]", "");
  99. System.out.print("\"" + norm.toUpperCase() + "\",");
  100. System.out.println(" /* " + s + " */");
  101. }
  102. System.out.println("};");
  103.  
  104. System.out.println("#endif ");
  105. System.out.println();
  106. }
  107.  
  108. for(Order o: orders){
  109. //precompiler condition
  110. System.out.println("#if ORDER == " + o.order);
  111. System.out.println("// " + o.order_details);
  112.  
  113. System.out.println("void draw_date(PblTm* t) {");
  114.  
  115. System.out.println("char day[] = \"14\";");
  116. System.out.println("string_format_time(day, sizeof(day), \"%d\", t);");
  117.  
  118. System.out.println("size_t size = sizeof(date_text);");
  119. System.out.println("memset(date_text, 0, size);");
  120.  
  121. System.out.println("strncat(date_text, DAYS[t->tm_wday], size);");
  122. System.out.println("size -= strlen(DAYS[t->tm_wday]);");
  123. System.out.println("strncat(date_text, \", \", size);");
  124. System.out.println("size -= strlen(\", \");");
  125.  
  126. if(o.order_details.startsWith("D")){
  127. System.out.println("strncat(date_text, day, size);");
  128. System.out.println("size -= strlen(\"12\");");
  129.  
  130. System.out.println("strncat(date_text, \"" + o.order_details.substring(1, o.order_details.length()-1) + "\", size);");
  131. System.out.println("size -= strlen(\"" + o.order_details.substring(1, o.order_details.length()-1) + "\");");
  132.  
  133. System.out.println("strncat(date_text, MONTHS[t->tm_mon], size);");
  134. }else{
  135. System.out.println("strncat(date_text, MONTHS[t->tm_mon], size);");
  136. System.out.println("size -= strlen(MONTHS[t->tm_mon]);");
  137.  
  138. System.out.println("strncat(date_text, \"" + o.order_details.substring(1, o.order_details.length()-1) + "\", size);");
  139. System.out.println("size -= strlen(\"" + o.order_details.substring(1, o.order_details.length()-1) + "\");");
  140.  
  141. System.out.println("strncat(date_text, day, size);");
  142. }
  143. System.out.println("text_layer_set_text(&date_layer, date_text);");
  144.  
  145. System.out.println("}");
  146.  
  147. System.out.println("#endif ");
  148. System.out.println();
  149. }
  150.  
  151. System.out.println();
  152. }
  153.  
  154. private static Lang hasMainCountry(List<Lang> langs, String lang) {
  155. for(Lang l: langs){
  156. if(l.lang == lang){
  157. return l;
  158. }
  159. }
  160. return null;
  161. }
  162.  
  163. private static String clearPattern(String pattern){
  164. String cleared = "";
  165. boolean apostrophe = false;
  166. boolean month = false;
  167. boolean day = false;
  168. for(int i = 0; i<pattern.length(); i++){
  169. if(pattern.charAt(i)=='\''){
  170. if(apostrophe==true)apostrophe=false;
  171. else apostrophe=true;
  172. continue;
  173. }else if(!apostrophe){
  174. if(pattern.charAt(i)=='M'&&!month){
  175. month = true;
  176. cleared += pattern.charAt(i);
  177. }
  178. if(pattern.charAt(i)=='d'&&!day){
  179. day = true;
  180. cleared += pattern.charAt(i);
  181. }
  182. if(pattern.charAt(i)==' '){
  183. if(month&&day){
  184. //skippin
  185. }else if(month||day){
  186. //between month and day
  187. cleared += pattern.charAt(i);
  188. }
  189. }
  190. }else{
  191. if(month&&day){
  192. //skippin
  193. }else if(month||day){
  194. //between month and day
  195. cleared += pattern.charAt(i);
  196. }
  197. }
  198. }
  199. return cleared.toUpperCase();
  200. }
  201.  
  202. private static Lang hasOrderCountry(List<Lang> langs, Order order, String lang) {
  203. for(Lang l: langs){
  204. if(l.order == order && l.lang == lang){
  205. return l;
  206. }
  207. }
  208. return null;
  209. }
  210.  
  211. public static Order hasOrder(List<Order> orders, String order){
  212. for(Order o: orders){
  213. if(o.order_details.equals(order)){
  214. return o;
  215. }
  216. }
  217. return null;
  218. }
  219.  
  220. public static void sortArray(Collator collator, Locale[] strArray) {
  221. Locale tmp;
  222. if (strArray.length == 1) return;
  223. for (int i = 0; i < strArray.length; i++) {
  224. for (int j = i + 1; j < strArray.length; j++) {
  225. if( collator.compare(strArray[i].getDisplayName(), strArray[j].getDisplayName() ) > 0 ) {
  226. tmp = strArray[i];
  227. strArray[i] = strArray[j];
  228. strArray[j] = tmp;
  229. }
  230. }
  231. }
  232. }
  233.  
  234. public static boolean blacklisted(int i){
  235. if(i>=3&&i<=24)return true;
  236. if(i>=27&&i<=31)return true;
  237. if(i>=68&&i<=73)return true;
  238. if(i>=85&&i<=89)return true;
  239. if(i>=94&&i<=95)return true;
  240. if(i>=110&&i<=113)return true;
  241. if(i>=118&&i<=120)return true;
  242. if(i>=148&&i<=150)return true;
  243. if(i>=153&&i<=154)return true;
  244. return false;
  245. }
  246. }
  247.  
  248. class Lang{
  249.  
  250. public int i;
  251. public Locale l;
  252. public String screen_name;
  253. public String lang;
  254. public Order order;
  255.  
  256. public Lang(){
  257. //nothing here
  258. }
  259.  
  260. public Lang(int i, Locale l, String screen_name, String lang, Order o){
  261. this.i =i;
  262. this.l = l;
  263. this.screen_name = screen_name;
  264. this.lang = lang;
  265. this.order = o;
  266. }
  267. }
  268.  
  269. class Order{
  270. public int order;
  271. public String order_details;
  272.  
  273. public Order(){
  274. //nothing here
  275. }
  276.  
  277. public Order(int order, String order_details){
  278. this.order = order;
  279. this.order_details = order_details;
  280. }
  281. }
Success #stdin #stdout 1.54s 382464KB
stdin
Standard input is empty
stdout
/*
 * -1 1 1 Albanian_AL
 * -2 25 2 Catalan_ES
 * -3 32 3 Croatian_HR
 * -4 34 4 Czech_CZ
 * -5 36 4 Danish_DK
 * -6 38 4 Dutch_BE_NL
 * -7 41 3 English_CA_PH_SG_US
 * -8 41 4 English_AU_IN_IE_MT_NZ_ZA_GB
 * -9 53 4 Estonian_EE
 * -10 55 4 Finnish_FI
 * -11 57 4 French_BE_CA_FR_LU_CH
 * -12 63 4 German_AT_DE_LU_CH
 * -13 74 3 Hungarian_HU
 * -14 76 4 Icelandic_IS
 * -15 78 4 Indonesian_ID
 * -16 80 4 Irish_IE
 * -17 82 4 Italian_IT_CH
 * -18 90 4 Latvian_LV
 * -19 92 3 Lithuanian_LT
 * -20 96 4 Malay_MY
 * -21 98 5 Maltese_MT
 * -22 100 4 Norwegian_NO_NO
 * -23 103 4 Polish_PL
 * -24 105 6 Portuguese_BR_PT
 * -25 108 4 Romanian_RO
 * -26 114 4 Serbian_BA_RS
 * -27 114 7 Serbian_ME
 * -28 121 3 Slovak_SK
 * -29 123 4 Slovenian_SI
 * -30 125 6 Spanish_AR_BO_CL_CO_CR_DO_EC_SV_GT_HN_MX_NI_PA_PY_PE_PR_ES_US_UY_VE
 * -31 146 4 Swedish_SE
 * -32 151 4 Turkish_TR
 * -33 155 8 Vietnamese_VN
 */
#if LANG == 1
// Albanian
static const char* const DAYS[] = {
"DIE", /* Die */
"HEN", /* Hën */
"MAR", /* Mar */
"MER", /* Mër */
"ENJ", /* Enj */
"PRE", /* Pre */
"SHT", /* Sht */
};

static const char* const MONTHS[] = {
"JANAR", /* janar */
"SHKURT", /* shkurt */
"MARS", /* mars */
"PRILL", /* prill */
"MAJ", /* maj */
"QERSHOR", /* qershor */
"KORRIK", /* korrik */
"GUSHT", /* gusht */
"SHTATOR", /* shtator */
"TETOR", /* tetor */
"NENTOR", /* nëntor */
"DHJETOR", /* dhjetor */
};
#endif 

#if LANG == 25
// Catalan
static const char* const DAYS[] = {
"DG.", /* dg. */
"DL.", /* dl. */
"DT.", /* dt. */
"DC.", /* dc. */
"DJ.", /* dj. */
"DV.", /* dv. */
"DS.", /* ds. */
};

static const char* const MONTHS[] = {
"GENER", /* gener */
"FEBRER", /* febrer */
"MARC", /* març */
"ABRIL", /* abril */
"MAIG", /* maig */
"JUNY", /* juny */
"JULIOL", /* juliol */
"AGOST", /* agost */
"SETEMBRE", /* setembre */
"OCTUBRE", /* octubre */
"NOVEMBRE", /* novembre */
"DESEMBRE", /* desembre */
};
#endif 

#if LANG == 32
// Croatian
static const char* const DAYS[] = {
"NED", /* ned */
"PON", /* pon */
"UTO", /* uto */
"SRI", /* sri */
"CET", /* čet */
"PET", /* pet */
"SUB", /* sub */
};

static const char* const MONTHS[] = {
"SIJECANJ", /* siječanj */
"VELJACA", /* veljača */
"OZUJAK", /* ožujak */
"TRAVANJ", /* travanj */
"SVIBANJ", /* svibanj */
"LIPANJ", /* lipanj */
"SRPANJ", /* srpanj */
"KOLOVOZ", /* kolovoz */
"RUJAN", /* rujan */
"LISTOPAD", /* listopad */
"STUDENI", /* studeni */
"PROSINAC", /* prosinac */
};
#endif 

#if LANG == 34
// Czech
static const char* const DAYS[] = {
"NE", /* Ne */
"PO", /* Po */
"UT", /* Út */
"ST", /* St */
"CT", /* Čt */
"PA", /* Pá */
"SO", /* So */
};

static const char* const MONTHS[] = {
"LEDEN", /* leden */
"UNOR", /* únor */
"BREZEN", /* březen */
"DUBEN", /* duben */
"KVETEN", /* květen */
"CERVEN", /* červen */
"CERVENEC", /* červenec */
"SRPEN", /* srpen */
"ZARI", /* září */
"RIJEN", /* říjen */
"LISTOPAD", /* listopad */
"PROSINEC", /* prosinec */
};
#endif 

#if LANG == 36
// Danish
static const char* const DAYS[] = {
"S", /* sø */
"MA", /* ma */
"TI", /* ti */
"ON", /* on */
"TO", /* to */
"FR", /* fr */
"L", /* lø */
};

static const char* const MONTHS[] = {
"JANUAR", /* januar */
"FEBRUAR", /* februar */
"MARTS", /* marts */
"APRIL", /* april */
"MAJ", /* maj */
"JUNI", /* juni */
"JULI", /* juli */
"AUGUST", /* august */
"SEPTEMBER", /* september */
"OKTOBER", /* oktober */
"NOVEMBER", /* november */
"DECEMBER", /* december */
};
#endif 

#if LANG == 38
// Dutch
static const char* const DAYS[] = {
"ZO", /* zo */
"MA", /* ma */
"DI", /* di */
"WO", /* wo */
"DO", /* do */
"VR", /* vr */
"ZA", /* za */
};

static const char* const MONTHS[] = {
"JANUARI", /* januari */
"FEBRUARI", /* februari */
"MAART", /* maart */
"APRIL", /* april */
"MEI", /* mei */
"JUNI", /* juni */
"JULI", /* juli */
"AUGUSTUS", /* augustus */
"SEPTEMBER", /* september */
"OKTOBER", /* oktober */
"NOVEMBER", /* november */
"DECEMBER", /* december */
};
#endif 

#if LANG == 41
// English
static const char* const DAYS[] = {
"SUN", /* Sun */
"MON", /* Mon */
"TUE", /* Tue */
"WED", /* Wed */
"THU", /* Thu */
"FRI", /* Fri */
"SAT", /* Sat */
};

static const char* const MONTHS[] = {
"JANUARY", /* January */
"FEBRUARY", /* February */
"MARCH", /* March */
"APRIL", /* April */
"MAY", /* May */
"JUNE", /* June */
"JULY", /* July */
"AUGUST", /* August */
"SEPTEMBER", /* September */
"OCTOBER", /* October */
"NOVEMBER", /* November */
"DECEMBER", /* December */
};
#endif 

#if LANG == 53
// Estonian
static const char* const DAYS[] = {
"P", /* P */
"E", /* E */
"T", /* T */
"K", /* K */
"N", /* N */
"R", /* R */
"L", /* L */
};

static const char* const MONTHS[] = {
"JAANUAR", /* jaanuar */
"VEEBRUAR", /* veebruar */
"MARTS", /* märts */
"APRILL", /* aprill */
"MAI", /* mai */
"JUUNI", /* juuni */
"JUULI", /* juuli */
"AUGUST", /* august */
"SEPTEMBER", /* september */
"OKTOOBER", /* oktoober */
"NOVEMBER", /* november */
"DETSEMBER", /* detsember */
};
#endif 

#if LANG == 55
// Finnish
static const char* const DAYS[] = {
"SU", /* su */
"MA", /* ma */
"TI", /* ti */
"KE", /* ke */
"TO", /* to */
"PE", /* pe */
"LA", /* la */
};

static const char* const MONTHS[] = {
"TAMMIKUU", /* tammikuu */
"HELMIKUU", /* helmikuu */
"MAALISKUU", /* maaliskuu */
"HUHTIKUU", /* huhtikuu */
"TOUKOKUU", /* toukokuu */
"KESAKUU", /* kesäkuu */
"HEINAKUU", /* heinäkuu */
"ELOKUU", /* elokuu */
"SYYSKUU", /* syyskuu */
"LOKAKUU", /* lokakuu */
"MARRASKUU", /* marraskuu */
"JOULUKUU", /* joulukuu */
};
#endif 

#if LANG == 57
// French
static const char* const DAYS[] = {
"DIM.", /* dim. */
"LUN.", /* lun. */
"MAR.", /* mar. */
"MER.", /* mer. */
"JEU.", /* jeu. */
"VEN.", /* ven. */
"SAM.", /* sam. */
};

static const char* const MONTHS[] = {
"JANVIER", /* janvier */
"FEVRIER", /* février */
"MARS", /* mars */
"AVRIL", /* avril */
"MAI", /* mai */
"JUIN", /* juin */
"JUILLET", /* juillet */
"AOUT", /* août */
"SEPTEMBRE", /* septembre */
"OCTOBRE", /* octobre */
"NOVEMBRE", /* novembre */
"DECEMBRE", /* décembre */
};
#endif 

#if LANG == 63
// German
static const char* const DAYS[] = {
"SO", /* So */
"MO", /* Mo */
"DI", /* Di */
"MI", /* Mi */
"DO", /* Do */
"FR", /* Fr */
"SA", /* Sa */
};

static const char* const MONTHS[] = {
"JANUAR", /* Januar */
"FEBRUAR", /* Februar */
"MARZ", /* März */
"APRIL", /* April */
"MAI", /* Mai */
"JUNI", /* Juni */
"JULI", /* Juli */
"AUGUST", /* August */
"SEPTEMBER", /* September */
"OKTOBER", /* Oktober */
"NOVEMBER", /* November */
"DEZEMBER", /* Dezember */
};
#endif 

#if LANG == 74
// Hungarian
static const char* const DAYS[] = {
"V", /* V */
"H", /* H */
"K", /* K */
"SZE", /* Sze */
"CS", /* Cs */
"P", /* P */
"SZO", /* Szo */
};

static const char* const MONTHS[] = {
"JANUAR", /* január */
"FEBRUAR", /* február */
"MARCIUS", /* március */
"APRILIS", /* április */
"MAJUS", /* május */
"JUNIUS", /* június */
"JULIUS", /* július */
"AUGUSZTUS", /* augusztus */
"SZEPTEMBER", /* szeptember */
"OKTOBER", /* október */
"NOVEMBER", /* november */
"DECEMBER", /* december */
};
#endif 

#if LANG == 76
// Icelandic
static const char* const DAYS[] = {
"SUN.", /* sun. */
"MAN.", /* mán. */
"RI.", /* þri. */
"MI.", /* mið. */
"FIM.", /* fim. */
"FOS.", /* fös. */
"LAU.", /* lau. */
};

static const char* const MONTHS[] = {
"JANUAR", /* janúar */
"FEBRUAR", /* febrúar */
"MARS", /* mars */
"APRIL", /* apríl */
"MAI", /* maí */
"JUNI", /* júní */
"JULI", /* júlí */
"AGUST", /* ágúst */
"SEPTEMBER", /* september */
"OKTOBER", /* október */
"NOVEMBER", /* nóvember */
"DESEMBER", /* desember */
};
#endif 

#if LANG == 78
// Indonesian
static const char* const DAYS[] = {
"MIN", /* Min */
"SEN", /* Sen */
"SEL", /* Sel */
"RAB", /* Rab */
"KAM", /* Kam */
"JUM", /* Jum */
"SAB", /* Sab */
};

static const char* const MONTHS[] = {
"JANUARI", /* Januari */
"FEBRUARI", /* Februari */
"MARET", /* Maret */
"APRIL", /* April */
"MEI", /* Mei */
"JUNI", /* Juni */
"JULI", /* Juli */
"AGUSTUS", /* Agustus */
"SEPTEMBER", /* September */
"OKTOBER", /* Oktober */
"NOVEMBER", /* November */
"DESEMBER", /* Desember */
};
#endif 

#if LANG == 80
// Irish
static const char* const DAYS[] = {
"DOMH", /* Domh */
"LUAN", /* Luan */
"MAIRT", /* Máirt */
"CEAD", /* Céad */
"DEAR", /* Déar */
"AOINE", /* Aoine */
"SATH", /* Sath */
};

static const char* const MONTHS[] = {
"EANAIR", /* Eanáir */
"FEABHRA", /* Feabhra */
"MARTA", /* Márta */
"AIBREAN", /* Aibreán */
"BEALTAINE", /* Bealtaine */
"MEITHEAMH", /* Meitheamh */
"IUIL", /* Iúil */
"LUNASA", /* Lúnasa */
"MEAN FOMHAIR", /* Meán Fómhair */
"DEIREADH FOMHAIR", /* Deireadh Fómhair */
"SAMHAIN", /* Samhain */
"NOLLAIG", /* Nollaig */
};
#endif 

#if LANG == 82
// Italian
static const char* const DAYS[] = {
"DOM", /* dom */
"LUN", /* lun */
"MAR", /* mar */
"MER", /* mer */
"GIO", /* gio */
"VEN", /* ven */
"SAB", /* sab */
};

static const char* const MONTHS[] = {
"GENNAIO", /* gennaio */
"FEBBRAIO", /* febbraio */
"MARZO", /* marzo */
"APRILE", /* aprile */
"MAGGIO", /* maggio */
"GIUGNO", /* giugno */
"LUGLIO", /* luglio */
"AGOSTO", /* agosto */
"SETTEMBRE", /* settembre */
"OTTOBRE", /* ottobre */
"NOVEMBRE", /* novembre */
"DICEMBRE", /* dicembre */
};
#endif 

#if LANG == 90
// Latvian
static const char* const DAYS[] = {
"SV", /* Sv */
"P", /* P */
"O", /* O */
"T", /* T */
"C", /* C */
"PK", /* Pk */
"S", /* S */
};

static const char* const MONTHS[] = {
"JANVARIS", /* janvāris */
"FEBRUARIS", /* februāris */
"MARTS", /* marts */
"APRILIS", /* aprīlis */
"MAIJS", /* maijs */
"JUNIJS", /* jūnijs */
"JULIJS", /* jūlijs */
"AUGUSTS", /* augusts */
"SEPTEMBRIS", /* septembris */
"OKTOBRIS", /* oktobris */
"NOVEMBRIS", /* novembris */
"DECEMBRIS", /* decembris */
};
#endif 

#if LANG == 92
// Lithuanian
static const char* const DAYS[] = {
"SK", /* Sk */
"PR", /* Pr */
"AN", /* An */
"TR", /* Tr */
"KT", /* Kt */
"PN", /* Pn */
"ST", /* Št */
};

static const char* const MONTHS[] = {
"SAUSIO", /* Sausio */
"VASARIO", /* Vasario */
"KOVO", /* Kovo */
"BALANDZIO", /* Balandžio */
"GEGUZES", /* Gegužės */
"BIRZELIO", /* Birželio */
"LIEPOS", /* Liepos */
"RUGPJUCIO", /* Rugpjūčio */
"RUGSEJO", /* Rugsėjo */
"SPALIO", /* Spalio */
"LAPKRICIO", /* Lapkričio */
"GRUODZIO", /* Gruodžio */
};
#endif 

#if LANG == 96
// Malay
static const char* const DAYS[] = {
"AHD", /* Ahd */
"ISN", /* Isn */
"SEL", /* Sel */
"RAB", /* Rab */
"KHA", /* Kha */
"JUM", /* Jum */
"SAB", /* Sab */
};

static const char* const MONTHS[] = {
"JANUARI", /* Januari */
"FEBRUARI", /* Februari */
"MAC", /* Mac */
"APRIL", /* April */
"MEI", /* Mei */
"JUN", /* Jun */
"JULAI", /* Julai */
"OGOS", /* Ogos */
"SEPTEMBER", /* September */
"OKTOBER", /* Oktober */
"NOVEMBER", /* November */
"DISEMBER", /* Disember */
};
#endif 

#if LANG == 98
// Maltese
static const char* const DAYS[] = {
"AD", /* Ħad */
"TNE", /* Tne */
"TLI", /* Tli */
"ERB", /* Erb */
"AM", /* Ħam */
"GIM", /* Ġim */
"SIB", /* Sib */
};

static const char* const MONTHS[] = {
"JANNAR", /* Jannar */
"FRAR", /* Frar */
"MARZU", /* Marzu */
"APRIL", /* April */
"MEJJU", /* Mejju */
"GUNJU", /* Ġunju */
"LULJU", /* Lulju */
"AWISSU", /* Awissu */
"SETTEMBRU", /* Settembru */
"OTTUBRU", /* Ottubru */
"NOVEMBRU", /* Novembru */
"DICEMBRU", /* Diċembru */
};
#endif 

#if LANG == 100
// Norwegian
static const char* const DAYS[] = {
"S", /* sø */
"MA", /* ma */
"TI", /* ti */
"ON", /* on */
"TO", /* to */
"FR", /* fr */
"L", /* lø */
};

static const char* const MONTHS[] = {
"JANUAR", /* januar */
"FEBRUAR", /* februar */
"MARS", /* mars */
"APRIL", /* april */
"MAI", /* mai */
"JUNI", /* juni */
"JULI", /* juli */
"AUGUST", /* august */
"SEPTEMBER", /* september */
"OKTOBER", /* oktober */
"NOVEMBER", /* november */
"DESEMBER", /* desember */
};
#endif 

#if LANG == 103
// Polish
static const char* const DAYS[] = {
"N", /* N */
"PN", /* Pn */
"WT", /* Wt */
"SR", /* Śr */
"CZ", /* Cz */
"PT", /* Pt */
"SO", /* So */
};

static const char* const MONTHS[] = {
"STYCZEN", /* styczeń */
"LUTY", /* luty */
"MARZEC", /* marzec */
"KWIECIEN", /* kwiecień */
"MAJ", /* maj */
"CZERWIEC", /* czerwiec */
"LIPIEC", /* lipiec */
"SIERPIEN", /* sierpień */
"WRZESIEN", /* wrzesień */
"PAZDZIERNIK", /* październik */
"LISTOPAD", /* listopad */
"GRUDZIEN", /* grudzień */
};
#endif 

#if LANG == 105
// Portuguese
static const char* const DAYS[] = {
"DOM", /* Dom */
"SEG", /* Seg */
"TER", /* Ter */
"QUA", /* Qua */
"QUI", /* Qui */
"SEX", /* Sex */
"SAB", /* Sáb */
};

static const char* const MONTHS[] = {
"JANEIRO", /* Janeiro */
"FEVEREIRO", /* Fevereiro */
"MARCO", /* Março */
"ABRIL", /* Abril */
"MAIO", /* Maio */
"JUNHO", /* Junho */
"JULHO", /* Julho */
"AGOSTO", /* Agosto */
"SETEMBRO", /* Setembro */
"OUTUBRO", /* Outubro */
"NOVEMBRO", /* Novembro */
"DEZEMBRO", /* Dezembro */
};
#endif 

#if LANG == 108
// Romanian
static const char* const DAYS[] = {
"D", /* D */
"L", /* L */
"MA", /* Ma */
"MI", /* Mi */
"J", /* J */
"V", /* V */
"S", /* S */
};

static const char* const MONTHS[] = {
"IANUARIE", /* ianuarie */
"FEBRUARIE", /* februarie */
"MARTIE", /* martie */
"APRILIE", /* aprilie */
"MAI", /* mai */
"IUNIE", /* iunie */
"IULIE", /* iulie */
"AUGUST", /* august */
"SEPTEMBRIE", /* septembrie */
"OCTOMBRIE", /* octombrie */
"NOIEMBRIE", /* noiembrie */
"DECEMBRIE", /* decembrie */
};
#endif 

#if LANG == 114
// Serbian
static const char* const DAYS[] = {
"NED", /* ned */
"PON", /* pon */
"UTO", /* uto */
"SRE", /* sre */
"CET", /* čet */
"PET", /* pet */
"SUB", /* sub */
};

static const char* const MONTHS[] = {
"JANUAR", /* januar */
"FEBRUAR", /* februar */
"MART", /* mart */
"APRIL", /* april */
"MAJ", /* maj */
"JUN", /* jun */
"JUL", /* jul */
"AVGUST", /* avgust */
"SEPTEMBAR", /* septembar */
"OKTOBAR", /* oktobar */
"NOVEMBAR", /* novembar */
"DECEMBAR", /* decembar */
};
#endif 

#if LANG == 121
// Slovak
static const char* const DAYS[] = {
"NE", /* Ne */
"PO", /* Po */
"UT", /* Ut */
"ST", /* St */
"ST", /* Št */
"PI", /* Pi */
"SO", /* So */
};

static const char* const MONTHS[] = {
"JANUAR", /* január */
"FEBRUAR", /* február */
"MAREC", /* marec */
"APRIL", /* apríl */
"MAJ", /* máj */
"JUN", /* jún */
"JUL", /* júl */
"AUGUST", /* august */
"SEPTEMBER", /* september */
"OKTOBER", /* október */
"NOVEMBER", /* november */
"DECEMBER", /* december */
};
#endif 

#if LANG == 123
// Slovenian
static const char* const DAYS[] = {
"NED", /* Ned */
"PON", /* Pon */
"TOR", /* Tor */
"SRE", /* Sre */
"CET", /* Čet */
"PET", /* Pet */
"SOB", /* Sob */
};

static const char* const MONTHS[] = {
"JANUAR", /* januar */
"FEBRUAR", /* februar */
"MAREC", /* marec */
"APRIL", /* april */
"MAJ", /* maj */
"JUNIJ", /* junij */
"JULIJ", /* julij */
"AVGUST", /* avgust */
"SEPTEMBER", /* september */
"OKTOBER", /* oktober */
"NOVEMBER", /* november */
"DECEMBER", /* december */
};
#endif 

#if LANG == 125
// Spanish
static const char* const DAYS[] = {
"DOM", /* dom */
"LUN", /* lun */
"MAR", /* mar */
"MIE", /* mié */
"JUE", /* jue */
"VIE", /* vie */
"SAB", /* sáb */
};

static const char* const MONTHS[] = {
"ENERO", /* enero */
"FEBRERO", /* febrero */
"MARZO", /* marzo */
"ABRIL", /* abril */
"MAYO", /* mayo */
"JUNIO", /* junio */
"JULIO", /* julio */
"AGOSTO", /* agosto */
"SEPTIEMBRE", /* septiembre */
"OCTUBRE", /* octubre */
"NOVIEMBRE", /* noviembre */
"DICIEMBRE", /* diciembre */
};
#endif 

#if LANG == 146
// Swedish
static const char* const DAYS[] = {
"SO", /* sö */
"MA", /* må */
"TI", /* ti */
"ON", /* on */
"TO", /* to */
"FR", /* fr */
"LO", /* lö */
};

static const char* const MONTHS[] = {
"JANUARI", /* januari */
"FEBRUARI", /* februari */
"MARS", /* mars */
"APRIL", /* april */
"MAJ", /* maj */
"JUNI", /* juni */
"JULI", /* juli */
"AUGUSTI", /* augusti */
"SEPTEMBER", /* september */
"OKTOBER", /* oktober */
"NOVEMBER", /* november */
"DECEMBER", /* december */
};
#endif 

#if LANG == 151
// Turkish
static const char* const DAYS[] = {
"PAZ", /* Paz */
"PZT", /* Pzt */
"SAL", /* Sal */
"CAR", /* Çar */
"PER", /* Per */
"CUM", /* Cum */
"CMT", /* Cmt */
};

static const char* const MONTHS[] = {
"OCAK", /* Ocak */
"SUBAT", /* Şubat */
"MART", /* Mart */
"NISAN", /* Nisan */
"MAYS", /* Mayıs */
"HAZIRAN", /* Haziran */
"TEMMUZ", /* Temmuz */
"AGUSTOS", /* Ağustos */
"EYLUL", /* Eylül */
"EKIM", /* Ekim */
"KASM", /* Kasım */
"ARALK", /* Aralık */
};
#endif 

#if LANG == 155
// Vietnamese
static const char* const DAYS[] = {
"CN", /* CN */
"TH 2", /* Th 2 */
"TH 3", /* Th 3 */
"TH 4", /* Th 4 */
"TH 5", /* Th 5 */
"TH 6", /* Th 6 */
"TH 7", /* Th 7 */
};

static const char* const MONTHS[] = {
"THANG MOT", /* tháng một */
"THANG HAI", /* tháng hai */
"THANG BA", /* tháng ba */
"THANG TU", /* tháng tư */
"THANG NAM", /* tháng năm */
"THANG SAU", /* tháng sáu */
"THANG BAY", /* tháng bảy */
"THANG TAM", /* tháng tám */
"THANG CHIN", /* tháng chín */
"THANG MUOI", /* tháng mười */
"THANG MUOI MOT", /* tháng mười một */
"THANG MUOI HAI", /* tháng mười hai */
};
#endif 

#if ORDER == 1
// MD
void draw_date(PblTm* t) {
char day[] = "14";
string_format_time(day, sizeof(day), "%d", t);
size_t size = sizeof(date_text);
memset(date_text, 0, size);
strncat(date_text, DAYS[t->tm_wday], size);
size -= strlen(DAYS[t->tm_wday]);
strncat(date_text, ", ", size);
size -= strlen(", ");
strncat(date_text, MONTHS[t->tm_mon], size);
size -= strlen(MONTHS[t->tm_mon]);
strncat(date_text, "", size);
size -= strlen("");
strncat(date_text, day, size);
text_layer_set_text(&date_layer, date_text);
}
#endif 

#if ORDER == 2
// D / M
void draw_date(PblTm* t) {
char day[] = "14";
string_format_time(day, sizeof(day), "%d", t);
size_t size = sizeof(date_text);
memset(date_text, 0, size);
strncat(date_text, DAYS[t->tm_wday], size);
size -= strlen(DAYS[t->tm_wday]);
strncat(date_text, ", ", size);
size -= strlen(", ");
strncat(date_text, day, size);
size -= strlen("12");
strncat(date_text, " / ", size);
size -= strlen(" / ");
strncat(date_text, MONTHS[t->tm_mon], size);
text_layer_set_text(&date_layer, date_text);
}
#endif 

#if ORDER == 3
// M D
void draw_date(PblTm* t) {
char day[] = "14";
string_format_time(day, sizeof(day), "%d", t);
size_t size = sizeof(date_text);
memset(date_text, 0, size);
strncat(date_text, DAYS[t->tm_wday], size);
size -= strlen(DAYS[t->tm_wday]);
strncat(date_text, ", ", size);
size -= strlen(", ");
strncat(date_text, MONTHS[t->tm_mon], size);
size -= strlen(MONTHS[t->tm_mon]);
strncat(date_text, " ", size);
size -= strlen(" ");
strncat(date_text, day, size);
text_layer_set_text(&date_layer, date_text);
}
#endif 

#if ORDER == 4
// D M
void draw_date(PblTm* t) {
char day[] = "14";
string_format_time(day, sizeof(day), "%d", t);
size_t size = sizeof(date_text);
memset(date_text, 0, size);
strncat(date_text, DAYS[t->tm_wday], size);
size -= strlen(DAYS[t->tm_wday]);
strncat(date_text, ", ", size);
size -= strlen(", ");
strncat(date_text, day, size);
size -= strlen("12");
strncat(date_text, " ", size);
size -= strlen(" ");
strncat(date_text, MONTHS[t->tm_mon], size);
text_layer_set_text(&date_layer, date_text);
}
#endif 

#if ORDER == 5
// D TA’ M
void draw_date(PblTm* t) {
char day[] = "14";
string_format_time(day, sizeof(day), "%d", t);
size_t size = sizeof(date_text);
memset(date_text, 0, size);
strncat(date_text, DAYS[t->tm_wday], size);
size -= strlen(DAYS[t->tm_wday]);
strncat(date_text, ", ", size);
size -= strlen(", ");
strncat(date_text, day, size);
size -= strlen("12");
strncat(date_text, " TA’ ", size);
size -= strlen(" TA’ ");
strncat(date_text, MONTHS[t->tm_mon], size);
text_layer_set_text(&date_layer, date_text);
}
#endif 

#if ORDER == 6
// D DE M
void draw_date(PblTm* t) {
char day[] = "14";
string_format_time(day, sizeof(day), "%d", t);
size_t size = sizeof(date_text);
memset(date_text, 0, size);
strncat(date_text, DAYS[t->tm_wday], size);
size -= strlen(DAYS[t->tm_wday]);
strncat(date_text, ", ", size);
size -= strlen(", ");
strncat(date_text, day, size);
size -= strlen("12");
strncat(date_text, " DE ", size);
size -= strlen(" DE ");
strncat(date_text, MONTHS[t->tm_mon], size);
text_layer_set_text(&date_layer, date_text);
}
#endif 

#if ORDER == 7
// DM
void draw_date(PblTm* t) {
char day[] = "14";
string_format_time(day, sizeof(day), "%d", t);
size_t size = sizeof(date_text);
memset(date_text, 0, size);
strncat(date_text, DAYS[t->tm_wday], size);
size -= strlen(DAYS[t->tm_wday]);
strncat(date_text, ", ", size);
size -= strlen(", ");
strncat(date_text, day, size);
size -= strlen("12");
strncat(date_text, "", size);
size -= strlen("");
strncat(date_text, MONTHS[t->tm_mon], size);
text_layer_set_text(&date_layer, date_text);
}
#endif 

#if ORDER == 8
// D THÁNG M
void draw_date(PblTm* t) {
char day[] = "14";
string_format_time(day, sizeof(day), "%d", t);
size_t size = sizeof(date_text);
memset(date_text, 0, size);
strncat(date_text, DAYS[t->tm_wday], size);
size -= strlen(DAYS[t->tm_wday]);
strncat(date_text, ", ", size);
size -= strlen(", ");
strncat(date_text, day, size);
size -= strlen("12");
strncat(date_text, " THÁNG ", size);
size -= strlen(" THÁNG ");
strncat(date_text, MONTHS[t->tm_mon], size);
text_layer_set_text(&date_layer, date_text);
}
#endif