i18n.h 7.8 KB

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