1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef I18N_H 3 #define I18N_H 4 /* Internationalization declarations */ 5 6 enum msg_index_t { 7 MSG_FIRST_INDEX, 8 MSG_ANNOUNCEMENTS_START = MSG_FIRST_INDEX, 9 MSG_BLANK = MSG_ANNOUNCEMENTS_START, 10 MSG_IAM_ALIVE, 11 MSG_YOU_KILLED_SPEAKUP, 12 MSG_HEY_THATS_BETTER, 13 MSG_YOU_TURNED_ME_OFF, 14 MSG_PARKED, 15 MSG_UNPARKED, 16 MSG_MARK, 17 MSG_CUT, 18 MSG_MARK_CLEARED, 19 MSG_PASTE, 20 MSG_BRIGHT, 21 MSG_ON_BLINKING, 22 MSG_STATUS_START, 23 MSG_OFF = MSG_STATUS_START, 24 MSG_ON, 25 MSG_NO_WINDOW, 26 27 /* These must be ordered the same as enum cursor_track */ 28 MSG_CURSOR_MSGS_START, 29 MSG_CURSORING_OFF = MSG_CURSOR_MSGS_START, 30 MSG_CURSORING_ON, 31 MSG_HIGHLIGHT_TRACKING, 32 MSG_READ_WINDOW, 33 MSG_READ_ALL, 34 35 MSG_EDIT_DONE, 36 MSG_WINDOW_ALREADY_SET, 37 MSG_END_BEFORE_START, 38 MSG_WINDOW_CLEARED, 39 MSG_WINDOW_SILENCED, 40 MSG_WINDOW_SILENCE_DISABLED, 41 MSG_ERROR, 42 MSG_GOTO_CANCELED, 43 MSG_GOTO, 44 MSG_LEAVING_HELP, 45 MSG_IS_UNASSIGNED, 46 MSG_HELP_INFO, 47 48 /* These must be ordered the same as enum edge */ 49 MSG_EDGE_MSGS_START, 50 MSG_EDGE_TOP = MSG_EDGE_MSGS_START, 51 MSG_EDGE_BOTTOM, 52 MSG_EDGE_LEFT, 53 MSG_EDGE_RIGHT, 54 55 MSG_NUMBER, 56 MSG_SPACE, 57 MSG_START, /* A little confusing, given our convention. */ 58 MSG_END, /* A little confusing, given our convention. */ 59 MSG_CTRL, 60 61 /* A message containing the single word "or". */ 62 MSG_DISJUNCTION, 63 MSG_ANNOUNCEMENTS_END = MSG_DISJUNCTION, 64 65 /* Messages with format specifiers. */ 66 MSG_FORMATTED_START, 67 MSG_POS_INFO = MSG_FORMATTED_START, 68 MSG_CHAR_INFO, 69 MSG_REPEAT_DESC, 70 MSG_REPEAT_DESC2, 71 MSG_WINDOW_LINE, 72 MSG_WINDOW_BOUNDARY, 73 MSG_EDIT_PROMPT, 74 MSG_NO_COMMAND, 75 MSG_KEYDESC, 76 MSG_FORMATTED_END = MSG_KEYDESC, 77 78 /* Control keys. */ 79 MSG_CTL_START, 80 MSG_CTL_SHIFT = MSG_CTL_START, 81 MSG_CTL_ALTGR, 82 MSG_CTL_CONTROL, 83 MSG_CTL_ALT, 84 MSG_CTL_LSHIFT, 85 MSG_CTL_SPEAKUP, 86 MSG_CTL_LCONTROL, 87 MSG_CTL_RCONTROL, 88 MSG_CTL_CAPSSHIFT, 89 MSG_CTL_END = MSG_CTL_CAPSSHIFT, 90 91 /* Colors. */ 92 MSG_COLORS_START, 93 MSG_COLOR_BLACK = MSG_COLORS_START, 94 MSG_COLOR_BLUE, 95 MSG_COLOR_GREEN, 96 MSG_COLOR_CYAN, 97 MSG_COLOR_RED, 98 MSG_COLOR_MAGENTA, 99 MSG_COLOR_YELLOW, 100 MSG_COLOR_WHITE, 101 MSG_COLOR_GREY, 102 MSG_COLOR_BRIGHTBLUE, 103 MSG_COLOR_BRIGHTGREEN, 104 MSG_COLOR_BRIGHTCYAN, 105 MSG_COLOR_BRIGHTRED, 106 MSG_COLOR_BRIGHTMAGENTA, 107 MSG_COLOR_BRIGHTYELLOW, 108 MSG_COLOR_BRIGHTWHITE, 109 MSG_COLORS_END = MSG_COLOR_BRIGHTWHITE, 110 111 MSG_STATES_START, 112 MSG_STATE_DOUBLE = MSG_STATES_START, 113 MSG_STATE_SPEAKUP, 114 MSG_STATE_ALT, 115 MSG_STATE_CONTROL, 116 MSG_STATE_ALTGR, 117 MSG_STATE_SHIFT, 118 MSG_STATES_END = MSG_STATE_SHIFT, 119 120 MSG_KEYNAMES_START, 121 MSG_KEYNAME_ESC = MSG_KEYNAMES_START, 122 MSG_KEYNAME_1, MSG_KEYNAME_2, MSG_KEYNAME_3, MSG_KEYNAME_4, 123 MSG_KEYNAME_5, MSG_KEYNAME_6, MSG_KEYNAME_7, MSG_KEYNAME_8, 124 MSG_KEYNAME_9, 125 MSG_KEYNAME_0, MSG_KEYNAME_DASH, MSG_KEYNAME_EQUAL, MSG_KEYNAME_BS, 126 MSG_KEYNAME_TAB, 127 MSG_KEYNAME_Q, MSG_KEYNAME_W, MSG_KEYNAME_E, MSG_KEYNAME_R, 128 MSG_KEYNAME_T, MSG_KEYNAME_Y, MSG_KEYNAME_U, MSG_KEYNAME_I, 129 MSG_KEYNAME_O, MSG_KEYNAME_P, 130 MSG_KEYNAME_LEFTBRACE, MSG_KEYNAME_RIGHTBRACE, MSG_KEYNAME_ENTER, 131 MSG_KEYNAME_LEFTCTRL, MSG_KEYNAME_A, 132 MSG_KEYNAME_S, MSG_KEYNAME_D, MSG_KEYNAME_F, MSG_KEYNAME_G, 133 MSG_KEYNAME_H, MSG_KEYNAME_J, MSG_KEYNAME_K, MSG_KEYNAME_L, 134 MSG_KEYNAME_SEMICOLON, 135 MSG_KEYNAME_SINGLEQUOTE, MSG_KEYNAME_GRAVE, 136 MSG_KEYNAME_LEFTSHFT, MSG_KEYNAME_BACKSLASH, MSG_KEYNAME_Z, 137 MSG_KEYNAME_X, MSG_KEYNAME_C, MSG_KEYNAME_V, MSG_KEYNAME_B, 138 MSG_KEYNAME_N, MSG_KEYNAME_M, MSG_KEYNAME_COMMA, MSG_KEYNAME_DOT, 139 MSG_KEYNAME_SLASH, MSG_KEYNAME_RIGHTSHFT, 140 MSG_KEYNAME_KPSTAR, 141 MSG_KEYNAME_LEFTALT, MSG_KEYNAME_SPACE, MSG_KEYNAME_CAPSLOCK, 142 MSG_KEYNAME_F1, MSG_KEYNAME_F2, 143 MSG_KEYNAME_F3, MSG_KEYNAME_F4, MSG_KEYNAME_F5, MSG_KEYNAME_F6, 144 MSG_KEYNAME_F7, 145 MSG_KEYNAME_F8, MSG_KEYNAME_F9, MSG_KEYNAME_F10, MSG_KEYNAME_NUMLOCK, 146 MSG_KEYNAME_SCROLLLOCK, 147 MSG_KEYNAME_KP7, MSG_KEYNAME_KP8, MSG_KEYNAME_KP9, MSG_KEYNAME_KPMINUS, 148 MSG_KEYNAME_KP4, 149 MSG_KEYNAME_KP5, MSG_KEYNAME_KP6, MSG_KEYNAME_KPPLUS, MSG_KEYNAME_KP1, 150 MSG_KEYNAME_KP2, 151 MSG_KEYNAME_KP3, MSG_KEYNAME_KP0, MSG_KEYNAME_KPDOT, MSG_KEYNAME_103RD, 152 MSG_KEYNAME_F13, 153 MSG_KEYNAME_102ND, MSG_KEYNAME_F11, MSG_KEYNAME_F12, MSG_KEYNAME_F14, 154 MSG_KEYNAME_F15, 155 MSG_KEYNAME_F16, MSG_KEYNAME_F17, MSG_KEYNAME_F18, MSG_KEYNAME_F19, 156 MSG_KEYNAME_F20, 157 MSG_KEYNAME_KPENTER, MSG_KEYNAME_RIGHTCTRL, MSG_KEYNAME_KPSLASH, 158 MSG_KEYNAME_SYSRQ, MSG_KEYNAME_RIGHTALT, 159 MSG_KEYNAME_LF, MSG_KEYNAME_HOME, MSG_KEYNAME_UP, MSG_KEYNAME_PGUP, 160 MSG_KEYNAME_LEFT, 161 MSG_KEYNAME_RIGHT, MSG_KEYNAME_END, MSG_KEYNAME_DOWN, MSG_KEYNAME_PGDN, 162 MSG_KEYNAME_INS, 163 MSG_KEYNAME_DEL, MSG_KEYNAME_MACRO, MSG_KEYNAME_MUTE, 164 MSG_KEYNAME_VOLDOWN, MSG_KEYNAME_VOLUP, 165 MSG_KEYNAME_POWER, MSG_KEYNAME_KPEQUAL, MSG_KEYNAME_KPPLUSDASH, 166 MSG_KEYNAME_PAUSE, MSG_KEYNAME_F21, MSG_KEYNAME_F22, MSG_KEYNAME_F23, 167 MSG_KEYNAME_F24, MSG_KEYNAME_KPCOMMA, MSG_KEYNAME_LEFTMETA, 168 MSG_KEYNAME_RIGHTMETA, MSG_KEYNAME_COMPOSE, MSG_KEYNAME_STOP, 169 MSG_KEYNAME_AGAIN, MSG_KEYNAME_PROPS, 170 MSG_KEYNAME_UNDO, MSG_KEYNAME_FRONT, MSG_KEYNAME_COPY, MSG_KEYNAME_OPEN, 171 MSG_KEYNAME_PASTE, 172 MSG_KEYNAME_FIND, MSG_KEYNAME_CUT, MSG_KEYNAME_HELP, MSG_KEYNAME_MENU, 173 MSG_KEYNAME_CALC, 174 MSG_KEYNAME_SETUP, MSG_KEYNAME_SLEEP, MSG_KEYNAME_WAKEUP, 175 MSG_KEYNAME_FILE, MSG_KEYNAME_SENDFILE, 176 MSG_KEYNAME_DELFILE, MSG_KEYNAME_XFER, MSG_KEYNAME_PROG1, 177 MSG_KEYNAME_PROG2, MSG_KEYNAME_WWW, 178 MSG_KEYNAME_MSDOS, MSG_KEYNAME_COFFEE, MSG_KEYNAME_DIRECTION, 179 MSG_KEYNAME_CYCLEWINDOWS, MSG_KEYNAME_MAIL, 180 MSG_KEYNAME_BOOKMARKS, MSG_KEYNAME_COMPUTER, MSG_KEYNAME_BACK, 181 MSG_KEYNAME_FORWARD, MSG_KEYNAME_CLOSECD, 182 MSG_KEYNAME_EJECTCD, MSG_KEYNAME_EJECTCLOSE, MSG_KEYNAME_NEXTSONG, 183 MSG_KEYNAME_PLAYPAUSE, MSG_KEYNAME_PREVSONG, 184 MSG_KEYNAME_STOPCD, MSG_KEYNAME_RECORD, MSG_KEYNAME_REWIND, 185 MSG_KEYNAME_PHONE, MSG_KEYNAME_ISO, 186 MSG_KEYNAME_CONFIG, MSG_KEYNAME_HOMEPG, MSG_KEYNAME_REFRESH, 187 MSG_KEYNAME_EXIT, MSG_KEYNAME_MOVE, 188 MSG_KEYNAME_EDIT, MSG_KEYNAME_SCROLLUP, MSG_KEYNAME_SCROLLDN, 189 MSG_KEYNAME_KPLEFTPAR, MSG_KEYNAME_KPRIGHTPAR, 190 MSG_KEYNAMES_END = MSG_KEYNAME_KPRIGHTPAR, 191 192 MSG_FUNCNAMES_START, 193 MSG_FUNCNAME_ATTRIB_BLEEP_DEC = MSG_FUNCNAMES_START, 194 MSG_FUNCNAME_ATTRIB_BLEEP_INC, 195 MSG_FUNCNAME_BLEEPS_DEC, MSG_FUNCNAME_BLEEPS_INC, 196 MSG_FUNCNAME_CHAR_FIRST, MSG_FUNCNAME_CHAR_LAST, 197 MSG_FUNCNAME_CHAR_CURRENT, MSG_FUNCNAME_CHAR_HEX_AND_DEC, 198 MSG_FUNCNAME_CHAR_NEXT, 199 MSG_FUNCNAME_CHAR_PHONETIC, MSG_FUNCNAME_CHAR_PREVIOUS, 200 MSG_FUNCNAME_CURSOR_PARK, MSG_FUNCNAME_CUT, 201 MSG_FUNCNAME_EDIT_DELIM, MSG_FUNCNAME_EDIT_EXNUM, 202 MSG_FUNCNAME_EDIT_MOST, MSG_FUNCNAME_EDIT_REPEATS, 203 MSG_FUNCNAME_EDIT_SOME, 204 MSG_FUNCNAME_GOTO, MSG_FUNCNAME_GOTO_BOTTOM, MSG_FUNCNAME_GOTO_LEFT, 205 MSG_FUNCNAME_GOTO_RIGHT, MSG_FUNCNAME_GOTO_TOP, MSG_FUNCNAME_HELP, 206 MSG_FUNCNAME_LINE_SAY_CURRENT, MSG_FUNCNAME_LINE_SAY_NEXT, 207 MSG_FUNCNAME_LINE_SAY_PREVIOUS, MSG_FUNCNAME_LINE_SAY_WITH_INDENT, 208 MSG_FUNCNAME_PASTE, MSG_FUNCNAME_PITCH_DEC, MSG_FUNCNAME_PITCH_INC, 209 MSG_FUNCNAME_PUNC_DEC, MSG_FUNCNAME_PUNC_INC, 210 MSG_FUNCNAME_PUNC_LEVEL_DEC, MSG_FUNCNAME_PUNC_LEVEL_INC, 211 MSG_FUNCNAME_QUIET, 212 MSG_FUNCNAME_RATE_DEC, MSG_FUNCNAME_RATE_INC, 213 MSG_FUNCNAME_READING_PUNC_DEC, MSG_FUNCNAME_READING_PUNC_INC, 214 MSG_FUNCNAME_SAY_ATTRIBUTES, 215 MSG_FUNCNAME_SAY_FROM_LEFT, MSG_FUNCNAME_SAY_FROM_TOP, 216 MSG_FUNCNAME_SAY_POSITION, MSG_FUNCNAME_SAY_SCREEN, 217 MSG_FUNCNAME_SAY_TO_BOTTOM, MSG_FUNCNAME_SAY_TO_RIGHT, 218 MSG_FUNCNAME_SPEAKUP, MSG_FUNCNAME_SPEAKUP_LOCK, 219 MSG_FUNCNAME_SPEAKUP_OFF, MSG_FUNCNAME_SPEECH_KILL, 220 MSG_FUNCNAME_SPELL_DELAY_DEC, MSG_FUNCNAME_SPELL_DELAY_INC, 221 MSG_FUNCNAME_SPELL_WORD, MSG_FUNCNAME_SPELL_WORD_PHONETICALLY, 222 MSG_FUNCNAME_TONE_DEC, MSG_FUNCNAME_TONE_INC, 223 MSG_FUNCNAME_VOICE_DEC, MSG_FUNCNAME_VOICE_INC, 224 MSG_FUNCNAME_VOLUME_DEC, MSG_FUNCNAME_VOLUME_INC, 225 MSG_FUNCNAME_WINDOW_CLEAR, MSG_FUNCNAME_WINDOW_SAY, 226 MSG_FUNCNAME_WINDOW_SET, MSG_FUNCNAME_WINDOW_SILENCE, 227 MSG_FUNCNAME_WORD_SAY_CURRENT, MSG_FUNCNAME_WORD_SAY_NEXT, 228 MSG_FUNCNAME_WORD_SAY_PREVIOUS, 229 MSG_FUNCNAMES_END = MSG_FUNCNAME_WORD_SAY_PREVIOUS, 230 231 /* all valid indices must be above this */ 232 MSG_LAST_INDEX 233 }; 234 235 struct msg_group_t { 236 char *name; 237 enum msg_index_t start; 238 enum msg_index_t end; 239 }; 240 241 char *spk_msg_get(enum msg_index_t index); 242 ssize_t spk_msg_set(enum msg_index_t index, char *text, size_t length); 243 struct msg_group_t *spk_find_msg_group(const char *group_name); 244 void spk_reset_msg_group(struct msg_group_t *group); 245 void spk_initialize_msgs(void); 246 void spk_free_user_msgs(void); 247 248 #endif 249