X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Fi18n%2FTrans.java;h=0a06b573f5d188bcd101676584c10a945f649028;hb=ae22c2473f7203b8713dec1c1de532c312000d1e;hp=603050489461412f11c9a9c6a1dc30fd8fc1d1e2;hpb=bcb54330afff6a443ab43ee3d38cc7f863c701b7;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/i18n/Trans.java b/src/be/nikiroo/jvcard/i18n/Trans.java index 6030504..0a06b57 100644 --- a/src/be/nikiroo/jvcard/i18n/Trans.java +++ b/src/be/nikiroo/jvcard/i18n/Trans.java @@ -3,6 +3,10 @@ package be.nikiroo.jvcard.i18n; import java.util.HashMap; import java.util.Map; +import com.googlecode.lanterna.input.KeyStroke; + +import be.nikiroo.jvcard.tui.UiColors; + /** * This class manages the translation of {@link Trans#StringId}s into * user-understandable text. @@ -26,7 +30,10 @@ public class Trans { DUMMY, // <-- TODO : remove KEY_ACTION_BACK, KEY_ACTION_HELP, // MainWindow KEY_ACTION_VIEW_CARD, // FileList - KEY_ACTION_VIEW_CONTACT, KEY_ACTION_EDIT_CONTACT, KEY_ACTION_SAVE_CARD, KEY_ACTION_DELETE_CONTACT, KEY_ACTION_SWITCH_FORMAT, // ContactList + KEY_ACTION_VIEW_CONTACT, KEY_ACTION_EDIT_CONTACT, KEY_ACTION_SAVE_CARD, KEY_ACTION_DELETE_CONTACT, KEY_ACTION_SEARCH, // ContactList + DEAULT_FIELD_SEPARATOR, DEAULT_FIELD_SEPARATOR_NOUTF, // MainContentList + KEY_ACTION_INVERT, KEY_ACTION_FULLSCREEN, // ContactDetails + KEY_ACTION_SWITCH_FORMAT, // multi-usage NULL; // Special usage public String trans() { @@ -48,12 +55,74 @@ public class Trans { return instance; } + /** + * Translate the given {@link StringId} into user text. + * + * @param stringId + * the ID to translate + * + * @return the translated text + */ public String trans(StringId stringId) { - if (map.containsKey(stringId)) { - return map.get(stringId); + 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; } - return stringId.toString(); + return keyTrans; } private Trans() { @@ -62,6 +131,9 @@ public class Trans { // TODO: get from a file instead? map.put(StringId.NULL, ""); map.put(StringId.DUMMY, "[dummy]"); + // we could use: " ", "┃", "│"... + map.put(StringId.DEAULT_FIELD_SEPARATOR, "┃"); + map.put(StringId.DEAULT_FIELD_SEPARATOR_NOUTF, "|"); map.put(StringId.KEY_ACTION_BACK, "Back"); map.put(StringId.KEY_ACTION_HELP, "Help"); map.put(StringId.KEY_ACTION_VIEW_CONTACT, "Open"); @@ -69,5 +141,8 @@ public class Trans { map.put(StringId.KEY_ACTION_EDIT_CONTACT, "Edit"); map.put(StringId.KEY_ACTION_DELETE_CONTACT, "Delete"); map.put(StringId.KEY_ACTION_SWITCH_FORMAT, "Change view"); + map.put(StringId.KEY_ACTION_INVERT, "Invert colours"); + map.put(StringId.KEY_ACTION_FULLSCREEN, "Fullscreen"); + map.put(StringId.KEY_ACTION_SEARCH, "Search"); } }