JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / bin / jalview / util / MessageManager.js
1 Clazz.declarePackage ("jalview.util");\r
2 Clazz.load (["java.text.MessageFormat", "java.util.logging.Logger"], "jalview.util.MessageManager", ["java.util.Locale", "$.ResourceBundle", "java.util.logging.Level"], function () {\r
3 c$ = Clazz.declareType (jalview.util, "MessageManager");\r
4 c$.getString = Clazz.defineMethod (c$, "getString", \r
5 function (key) {\r
6 var value = "[missing key] " + key;\r
7 try {\r
8 value = jalview.util.MessageManager.rb.getString (key);\r
9 } catch (e) {\r
10 if (Clazz.exceptionOf (e, Exception)) {\r
11 jalview.util.MessageManager.log.warning ("I18N missing: " + jalview.util.MessageManager.loc + "\t" + key);\r
12 } else {\r
13 throw e;\r
14 }\r
15 }\r
16 return value;\r
17 }, "~S");\r
18 c$.getLocale = Clazz.defineMethod (c$, "getLocale", \r
19 function () {\r
20 return jalview.util.MessageManager.loc;\r
21 });\r
22 c$.formatMessage = Clazz.defineMethod (c$, "formatMessage", \r
23 function (key, params) {\r
24 return java.text.MessageFormat.format (jalview.util.MessageManager.getString (key), params);\r
25 }, "~S,~A");\r
26 c$.formatMessage = Clazz.defineMethod (c$, "formatMessage", \r
27 function (key, params) {\r
28 return java.text.MessageFormat.format (jalview.util.MessageManager.getString (key), params);\r
29 }, "~S,~A");\r
30 c$.getStringOrReturn = Clazz.defineMethod (c$, "getStringOrReturn", \r
31 function (keyroot, name) {\r
32 var smkey = keyroot + name.toLowerCase ().replaceAll (" ", "");\r
33 try {\r
34 name = jalview.util.MessageManager.rb.getString (smkey);\r
35 } catch (x) {\r
36 if (Clazz.exceptionOf (x, Exception)) {\r
37 jalview.util.MessageManager.log.finest ("I18N missing key with root " + keyroot + ": " + jalview.util.MessageManager.loc + "\t" + smkey);\r
38 } else {\r
39 throw x;\r
40 }\r
41 }\r
42 return name;\r
43 }, "~S,~S");\r
44 Clazz.defineStatics (c$,\r
45 "rb", null);\r
46 c$.log = c$.prototype.log = java.util.logging.Logger.getLogger (jalview.util.MessageManager.getCanonicalName ());\r
47 Clazz.defineStatics (c$,\r
48 "loc", null);\r
49 {\r
50 try {\r
51 jalview.util.MessageManager.loc = java.util.Locale.getDefault ();\r
52 jalview.util.MessageManager.log.info ("Getting messages for lang: " + jalview.util.MessageManager.loc);\r
53 jalview.util.MessageManager.rb = java.util.ResourceBundle.getBundle ("lang.Messages", jalview.util.MessageManager.loc);\r
54 if (jalview.util.MessageManager.rb == null || jalview.util.MessageManager.log.isLoggable (java.util.logging.Level.FINEST)) {\r
55 jalview.util.MessageManager.log.finest ("Language keys: " + jalview.util.MessageManager.rb.keySet ());\r
56 }} catch (e$$) {\r
57 if (Clazz.exceptionOf (e$$, Exception)) {\r
58 var q = e$$;\r
59 {\r
60 jalview.util.MessageManager.log.warning ("Exception when initting Locale for i18n messages\n" + q.getMessage ());\r
61 q.printStackTrace ();\r
62 }\r
63 } else if (Clazz.exceptionOf (e$$, Error)) {\r
64 var v = e$$;\r
65 {\r
66 jalview.util.MessageManager.log.warning ("Error when initting Locale for i18n messages\n" + v.getMessage ());\r
67 v.printStackTrace ();\r
68 }\r
69 } else {\r
70 throw e$$;\r
71 }\r
72 }\r
73 }});\r