+ StringId id = stringId;
+ if (!UiColors.getInstance().isUnicode()) {
+ try {
+ id = StringId.valueOf(stringId.toString() + "_NOUTF");
+ } catch (IllegalArgumentException iae) {
+ // no special _NOUTF version found
+ }
+ }
+
+ if (map.containsKey(id)) {
+ return map.get(id);
+ }
+
+ return id.toString();
+ }
+
+ /**
+ * Translate the given {@link KeyStroke} into a user text {@link String} of
+ * size 3.
+ *
+ * @param key
+ * the key to translate
+ *
+ * @return the translated text
+ */
+ public String trans(KeyStroke key) {
+ String keyTrans = "";
+
+ switch (key.getKeyType()) {
+ case Enter:
+ if (UiColors.getInstance().isUnicode())
+ keyTrans = " ⤶ ";
+ else
+ keyTrans = "ENT";
+ break;
+ case Tab:
+ if (UiColors.getInstance().isUnicode())
+ keyTrans = " ↹ ";
+ else
+ keyTrans = "TAB";
+
+ break;
+ case Character:
+ keyTrans = " " + key.getCharacter() + " ";
+ break;
+ default:
+ keyTrans = "" + key.getKeyType();
+ int width = 3;
+ if (keyTrans.length() > width) {
+ keyTrans = keyTrans.substring(0, width);
+ } else if (keyTrans.length() < width) {
+ keyTrans = keyTrans
+ + new String(new char[width - keyTrans.length()])
+ .replace('\0', ' ');
+ }
+ break;