mirror of https://github.com/dnomd343/mobi-meta
				
				
			
				 4 changed files with 455 additions and 122 deletions
			
			
		| @ -1,74 +1,76 @@ | |||||
| package gui; | package gui; | ||||
| 
 | 
 | ||||
|  | import java.io.IOException; | ||||
|  | import java.util.Collections; | ||||
|  | import java.util.Enumeration; | ||||
|  | import java.util.HashMap; | ||||
|  | import java.util.Properties; | ||||
|  | import java.util.Vector; | ||||
|  | 
 | ||||
| public class LanguageCodes | public class LanguageCodes | ||||
| { | { | ||||
| 	// these codes are taken from:
 | 	public final static String PROP_FILENAME = "languagecodes.properties"; | ||||
| 	// http://www.autoitscript.com/autoit3/docs/appendix/OSLangCodes.htm
 | 	 | ||||
| 	//
 | 	private HashMap<Integer,String> codeHash; | ||||
| 	public final static int[] code = | 	private HashMap<String,Integer> descriptionHash; | ||||
| 	{ 0, 1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, | 	private String[] descriptions; | ||||
| 			10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1068, 2092, |  | ||||
| 			1069, 1059, 1026, 1027, 4, 1028, 2052, 3076, 4100, 5124, 1050, 1029, |  | ||||
| 			1030, 19, 1043, 2067, 9, 1033, 2057, 3081, 4105, 5129, 6153, 7177, |  | ||||
| 			8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1073, 1035, 12, |  | ||||
| 			1036, 2060, 3084, 4108, 5132, 6156, 1079, 7, 1031, 2055, 3079, 4103, |  | ||||
| 			5127, 1032, 1037, 1081, 1038, 1039, 1057, 16, 1040, 2064, 1041, 1087, |  | ||||
| 			1111, 1042, 1062, 1063, 1071, 1086, 2110, 1102, 1044, 2068, 1045, 22, |  | ||||
| 			1046, 2070, 1048, 1049, 1103, 2074, 3098, 1051, 1060, 10, 1034, 2058, |  | ||||
| 			3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, |  | ||||
| 			13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1089, 29, 1053, |  | ||||
| 			2077, 1097, 1092, 1054, 1055, 1058, 1056, 1091, 2115, 1066 }; |  | ||||
| 
 | 
 | ||||
| 	public final static String[] description = | 	public LanguageCodes() | ||||
| 	{ "Unspecified", "Afrikaans", "Albanian", "Arabic - Saudi Arabia", | 	{ | ||||
| 			"Arabic - Iraq", "Arabic - Egypt", "Arabic - Libya", | 		Properties props = new Properties(); | ||||
| 			"Arabic - Algeria", "Arabic - Morocco", "Arabic - Tunisia", | 		try | ||||
| 			"Arabic - Oman", "Arabic - Yemen", "Arabic - Syria", | 		{ | ||||
| 			"Arabic - Jordan", "Arabic - Lebanon", "Arabic - Kuwait", | 			props.load(ClassLoader.getSystemClassLoader().getResourceAsStream(PROP_FILENAME)); | ||||
| 			"Arabic - UAE", "Arabic - Bahrain", "Arabic - Qatar", "Armenian", | 		} | ||||
| 			"Azeri - Latin", "Azeri - Cyrillic", "Basque", "Belarusian", | 		catch (IOException e) | ||||
| 			"Bulgarian", "Catalan", "Chinese", "Chinese - Taiwan", "Chinese - PRC", | 		{ | ||||
| 			"Chinese - Hong Kong", "Chinese - Singapore", "Chinese - Macau", | 			// we really have to find a better way to handle this
 | ||||
| 			"Croatian", "Czech", "Danish", "Dutch", "Dutch - Standard", | 		} | ||||
| 			"Dutch - Belgian", "English", "English - United States", | 
 | ||||
| 			"English Ð United Kingdom", "English - Australian", | 		codeHash = new HashMap<Integer,String>(); | ||||
| 			"English - Canadian", "English - New Zealand", "English - Irish", | 		descriptionHash = new HashMap<String,Integer>(); | ||||
| 			"English - South Africa", "English - Jamaica", | 		Vector<String> vec = new Vector<String>(); | ||||
| 			"English - Caribbean", "English - Belize", "English - Trinidad", | 		Enumeration<Object> keys = props.keys(); | ||||
| 			"English - Zimbabwe", "English - Philippines", "Estonian", | 		while (keys.hasMoreElements()) | ||||
| 			"Faeroese", "Farsi", "Finnish", "French", "French - Standard", | 		{ | ||||
| 			"French - Belgian", "French - Canadian", "French - Swiss", | 			String key = (String)keys.nextElement(); | ||||
| 			"French - Luxembourg", "French - Monaco", "Georgian", "German", | 			String description = props.getProperty(key) + " (" + key + ")"; | ||||
| 			"German - Standard", "German - Swiss", "German - Austrian", | 
 | ||||
| 			"German - Luxembourg", "German - Liechtenstei", "Greek", "Hebrew", | 			try | ||||
| 			"Hindi", "Hungarian", "Icelandic", "Indonesian", "Italian", | 			{ | ||||
| 			"Italian - Standard", "Italian - Swiss", "Japanese", "Kazakh", | 				Integer code = Integer.valueOf(key); | ||||
| 			"Konkani", "Korean", "Latvian", "Lithuanian", "Macedonian", | 				codeHash.put(code, description); | ||||
| 			"Malay - Malaysia", "Malay - Brunei Darussalam", "Marathi", | 				descriptionHash.put(description, code); | ||||
| 			"Norwegian - Bokmal", "Norwegian - Nynorsk", "Polish", "Portugese", | 				vec.add(description); | ||||
| 			"Portuguese - Brazilian", "Portuguese - Standard", "Romanian", | 			} | ||||
| 			"Russian", "Sanskrit", "Serbian - Latin", "Serbian - Cyrillic", | 			catch (NumberFormatException e) | ||||
| 			"Slovak", "Slovenian", "Spanish", "Spanish - Traditional Sort", | 			{ | ||||
| 			"Spanish - Mexican", "Spanish - Modern Sort", | 			} | ||||
| 			"Spanish - Guatemala", "Spanish - Costa Rica", "Spanish - Panama", | 			Collections.sort(vec); | ||||
| 			"Spanish - Dominican Republic", "Spanish - Venezuela", | 			descriptions = vec.toArray(new String[vec.size()]); | ||||
| 			"Spanish - Colombia", "Spanish - Peru", "Spanish - Argentina", | 		} | ||||
| 			"Spanish - Ecuador", "Spanish - Chile", "Spanish - Uruguay", | 	} | ||||
| 			"Spanish - Paraguay", "Spanish - Bolivia", "Spanish - El Salvador", |  | ||||
| 			"Spanish - Honduras", "Spanish - Nicaragua", |  | ||||
| 			"Spanish - Puerto Rico", "Swahili", "Swedish", "Swedish - Finland", |  | ||||
| 			"Tamil", "Tatar", "Thai", "Turkish", "Ukrainian", "Urdu", |  | ||||
| 			"Uzbek - Latin", "Uzbek - Cyrillic", "Vietnamese" }; |  | ||||
| 
 | 
 | ||||
|  | 	public String[] getDescriptions() | ||||
|  | 	{ | ||||
|  | 		return descriptions; | ||||
|  | 	} | ||||
| 	 | 	 | ||||
| 	public static int codeToIndex(int key) | 	public boolean codeExists(int code) | ||||
| 	{ | 	{ | ||||
| 		int len = code.length; | 		return (codeToDescription(code) != null); | ||||
| 		for (int i = 0; i < len; i++) | 	} | ||||
|  | 	 | ||||
|  | 	public int descriptionToCode(String description) | ||||
| 	{ | 	{ | ||||
| 			if (code[i] == key) return i; | 		Integer code = descriptionHash.get(description); | ||||
|  | 		if (code == null) return -1; | ||||
|  | 		 | ||||
|  | 		return code.intValue(); | ||||
| 	} | 	} | ||||
| 	 | 	 | ||||
| 		return -1; | 	public String codeToDescription(int code) | ||||
|  | 	{ | ||||
|  | 		return codeHash.get (Integer.valueOf(code)); | ||||
| 	} | 	} | ||||
| } | } | ||||
|  | |||||
| @ -0,0 +1,337 @@ | |||||
|  | # Many thanks to ixtab on mobileread forums for the complete list! | ||||
|  | # | ||||
|  | 
 | ||||
|  | 1=ar | ||||
|  | 2=bg | ||||
|  | 3=ca | ||||
|  | 4=zh | ||||
|  | 5=cz | ||||
|  | 6=da | ||||
|  | 7=de | ||||
|  | 8=el | ||||
|  | 9=en | ||||
|  | 10=es | ||||
|  | 11=fi | ||||
|  | 12=fr | ||||
|  | 13=he | ||||
|  | 14=hu | ||||
|  | 15=is | ||||
|  | 16=it | ||||
|  | 17=ja | ||||
|  | 18=ko | ||||
|  | 19=nl | ||||
|  | 20=nn | ||||
|  | 21=pl | ||||
|  | 22=pt | ||||
|  | 24=ro | ||||
|  | 25=ru | ||||
|  | 26=hr | ||||
|  | 27=sk | ||||
|  | 28=sq | ||||
|  | 29=sv | ||||
|  | 30=th | ||||
|  | 31=tr | ||||
|  | 32=ur | ||||
|  | 33=in | ||||
|  | 34=uk | ||||
|  | 35=be | ||||
|  | 36=sl | ||||
|  | 37=et | ||||
|  | 38=lv | ||||
|  | 39=lt | ||||
|  | 40=tg | ||||
|  | 41=fa | ||||
|  | 42=vi | ||||
|  | 43=hy | ||||
|  | 44=az | ||||
|  | 45=eu | ||||
|  | 46=wen | ||||
|  | 47=mk | ||||
|  | 49=ts | ||||
|  | 50=tn | ||||
|  | 51=ve | ||||
|  | 52=xh | ||||
|  | 53=zu | ||||
|  | 54=af | ||||
|  | 55=ka | ||||
|  | 56=fo | ||||
|  | 57=hi | ||||
|  | 58=mt | ||||
|  | 59=se | ||||
|  | 60=sco | ||||
|  | 61=yi | ||||
|  | 62=ms | ||||
|  | 63=kk | ||||
|  | 64=ky | ||||
|  | 65=sw | ||||
|  | 66=tk | ||||
|  | 67=uz | ||||
|  | 68=tt | ||||
|  | 69=bn | ||||
|  | 70=pa | ||||
|  | 71=gu | ||||
|  | 72=or | ||||
|  | 73=ta | ||||
|  | 74=te | ||||
|  | 75=kn | ||||
|  | 76=ml | ||||
|  | 77=as | ||||
|  | 78=mr | ||||
|  | 79=sa | ||||
|  | 80=mn | ||||
|  | 81=bo | ||||
|  | 82=cy | ||||
|  | 83=km | ||||
|  | 84=lo | ||||
|  | 85=bu | ||||
|  | 86=gl | ||||
|  | 87=knn | ||||
|  | 88=mni | ||||
|  | 89=sd | ||||
|  | 90=syr | ||||
|  | 91=si | ||||
|  | 92=chr | ||||
|  | 93=iu | ||||
|  | 94=am | ||||
|  | 95=tjo | ||||
|  | 96=ks | ||||
|  | 97=ne | ||||
|  | 98=fy | ||||
|  | 99=ps | ||||
|  | 100=fil | ||||
|  | 101=dv | ||||
|  | 102=bin | ||||
|  | 103=ff | ||||
|  | 104=ha | ||||
|  | 105=ibb | ||||
|  | 106=yo | ||||
|  | 107=qu | ||||
|  | 108=nso | ||||
|  | 112=ig | ||||
|  | 113=kr | ||||
|  | 114=om | ||||
|  | 115=ti | ||||
|  | 116=gn | ||||
|  | 117=haw | ||||
|  | 118=la | ||||
|  | 119=so | ||||
|  | 120=ii | ||||
|  | 128=ug | ||||
|  | 129=mi | ||||
|  | 1025=ar | ||||
|  | 1026=bg | ||||
|  | 1027=ca | ||||
|  | 1028=zh-tw | ||||
|  | 1029=cz | ||||
|  | 1030=da | ||||
|  | 1031=de | ||||
|  | 1032=el | ||||
|  | 1033=en | ||||
|  | 1034=es-es | ||||
|  | 1035=fi | ||||
|  | 1036=fr | ||||
|  | 1037=he | ||||
|  | 1038=hu | ||||
|  | 1039=is | ||||
|  | 1040=it-it | ||||
|  | 1041=ja | ||||
|  | 1042=ko | ||||
|  | 1043=nl-nl | ||||
|  | 1044=nb | ||||
|  | 1045=pl | ||||
|  | 1046=pt | ||||
|  | 1050=hr | ||||
|  | 1051=sk | ||||
|  | 1052=sq-al | ||||
|  | 1053=sv | ||||
|  | 1054=th | ||||
|  | 1055=tr | ||||
|  | 1056=ur | ||||
|  | 1057=in | ||||
|  | 1058=uk | ||||
|  | 1059=be | ||||
|  | 1060=sl | ||||
|  | 1061=et | ||||
|  | 1062=lv | ||||
|  | 1063=lt | ||||
|  | 1064=tg | ||||
|  | 1065=fa | ||||
|  | 1066=vi | ||||
|  | 1067=hy-am | ||||
|  | 1068=az-latn | ||||
|  | 1069=eu | ||||
|  | 1070=wen | ||||
|  | 1071=mk | ||||
|  | 1073=ts | ||||
|  | 1074=tn | ||||
|  | 1075=ve | ||||
|  | 1076=xh | ||||
|  | 1077=zu | ||||
|  | 1078=af-za | ||||
|  | 1079=ka | ||||
|  | 1080=fo | ||||
|  | 1081=hi | ||||
|  | 1082=mt | ||||
|  | 1083=se | ||||
|  | 1084=sco | ||||
|  | 1085=yi | ||||
|  | 1086=ms-my | ||||
|  | 1087=kk | ||||
|  | 1088=ky-cyrl | ||||
|  | 1089=sw | ||||
|  | 1090=tk | ||||
|  | 1091=uz-latn | ||||
|  | 1092=tt | ||||
|  | 1093=bn-in | ||||
|  | 1094=pa | ||||
|  | 1095=gu | ||||
|  | 1096=or | ||||
|  | 1097=ta | ||||
|  | 1098=te | ||||
|  | 1099=kn | ||||
|  | 1100=ml | ||||
|  | 1101=as | ||||
|  | 1102=mr | ||||
|  | 1103=sa | ||||
|  | 1104=mn-cyrl | ||||
|  | 1105=bo | ||||
|  | 1106=cy | ||||
|  | 1107=km | ||||
|  | 1108=lo | ||||
|  | 1109=bu | ||||
|  | 1110=gl | ||||
|  | 1111=knn | ||||
|  | 1112=mni | ||||
|  | 1113=sd-in | ||||
|  | 1114=syr | ||||
|  | 1115=si-lk | ||||
|  | 1116=chr-us | ||||
|  | 1117=iu | ||||
|  | 1118=am-et | ||||
|  | 1119=tjo-arab | ||||
|  | 1120=ks-arab | ||||
|  | 1121=ne | ||||
|  | 1122=fy-nl | ||||
|  | 1123=ps | ||||
|  | 1124=fil | ||||
|  | 1125=dv | ||||
|  | 1126=bin | ||||
|  | 1127=ff | ||||
|  | 1128=ha | ||||
|  | 1129=ibb | ||||
|  | 1130=yo | ||||
|  | 1131=qu-bo | ||||
|  | 1132=nso | ||||
|  | 1136=ig | ||||
|  | 1137=kr | ||||
|  | 1138=om | ||||
|  | 1139=ti-et | ||||
|  | 1140=gn | ||||
|  | 1141=haw | ||||
|  | 1142=la | ||||
|  | 1143=so | ||||
|  | 1144=ii | ||||
|  | 1152=ug-cn | ||||
|  | 1153=mi | ||||
|  | 2049=ar-iq | ||||
|  | 2052=zh | ||||
|  | 2055=de-ch | ||||
|  | 2057=en-gb | ||||
|  | 2058=es-mx | ||||
|  | 2060=fr-be | ||||
|  | 2064=it-ch | ||||
|  | 2067=nl-be | ||||
|  | 2068=nn | ||||
|  | 2070=pt-pt | ||||
|  | 2072=ro | ||||
|  | 2073=ru | ||||
|  | 2074=sr-latn | ||||
|  | 2077=sv-fi | ||||
|  | 2080=ur-in | ||||
|  | 2092=az-cyrl | ||||
|  | 2108=ga-ie | ||||
|  | 2110=ms-bn | ||||
|  | 2115=uz-cyrl | ||||
|  | 2117=bn-bd | ||||
|  | 2118=pa-pk | ||||
|  | 2128=mn-mong | ||||
|  | 2129=bo-bt | ||||
|  | 2137=sd-pk | ||||
|  | 2143=tjo-latn | ||||
|  | 2144=ks | ||||
|  | 2145=ne-in | ||||
|  | 2155=qu-ec | ||||
|  | 2163=ti-er | ||||
|  | 3073=ar-eg | ||||
|  | 3076=zh-hk | ||||
|  | 3079=de-at | ||||
|  | 3081=en-au | ||||
|  | 3084=fr-ca | ||||
|  | 3098=sr-cyrl | ||||
|  | 3179=qu-pe | ||||
|  | 4097=ar-ly | ||||
|  | 4100=zh-sg | ||||
|  | 4103=de-lu | ||||
|  | 4105=en-ca | ||||
|  | 4106=es-gt | ||||
|  | 4108=fr-ch | ||||
|  | 4122=hr-bs | ||||
|  | 5121=ar-dz | ||||
|  | 5124=zh-mo | ||||
|  | 5127=de-li | ||||
|  | 5129=en-nz | ||||
|  | 5130=es-cr | ||||
|  | 5132=fr-lu | ||||
|  | 5146=bs-bs | ||||
|  | 6145=ar-ma | ||||
|  | 6153=en-ie | ||||
|  | 6154=es-pa | ||||
|  | 6156=fr-mc | ||||
|  | 7169=ar-tn | ||||
|  | 7177=en-za | ||||
|  | 7178=es-do | ||||
|  | 7180=fr-419 | ||||
|  | 8193=ar-om | ||||
|  | 8201=en-jm | ||||
|  | 8202=es-ve | ||||
|  | 8204=fr-re | ||||
|  | 9217=ar-ye | ||||
|  | 9225=en-419 | ||||
|  | 9226=es-co | ||||
|  | 9228=fr-cd | ||||
|  | 10241=ar-sy | ||||
|  | 10249=en-bz | ||||
|  | 10250=es-pe | ||||
|  | 10252=fr-sn | ||||
|  | 11265=ar-jo | ||||
|  | 11273=en-tt | ||||
|  | 11274=es-ar | ||||
|  | 11276=fr-cm | ||||
|  | 12289=ar-lb | ||||
|  | 12297=en-zw | ||||
|  | 12298=es-ec | ||||
|  | 12300=fr-ci | ||||
|  | 13313=ar-kw | ||||
|  | 13321=en-ph | ||||
|  | 13322=es-cl | ||||
|  | 13324=fr-ml | ||||
|  | 14337=ar-ae | ||||
|  | 14345=en-id | ||||
|  | 14346=es-uy | ||||
|  | 14348=fr-ma | ||||
|  | 15361=ar-bh | ||||
|  | 15369=en-hk | ||||
|  | 15370=es-py | ||||
|  | 15372=fr-ht | ||||
|  | 16385=ar-qa | ||||
|  | 16393=en-in | ||||
|  | 16394=es-bo | ||||
|  | 17417=en-my | ||||
|  | 17418=es-sv | ||||
|  | 18441=en-sg | ||||
|  | 18442=es-hn | ||||
|  | 19466=es-ni | ||||
|  | 20490=es-pr | ||||
|  | 21514=es-us | ||||
|  | 22538=es-419 | ||||
|  | 58380=fr-015 | ||||
					Loading…
					
					
				
		Reference in new issue