/* SPDX-License-Identifier: GPL-2.0 */
#ifndef I18N_H
#define I18N_H
/* Internationalization declarations */

enum msg_index_t {
	MSG_FIRST_INDEX,
	MSG_ANNOUNCEMENTS_START = MSG_FIRST_INDEX,
	MSG_BLANK = MSG_ANNOUNCEMENTS_START,
	MSG_IAM_ALIVE,
	MSG_YOU_KILLED_SPEAKUP,
	MSG_HEY_THATS_BETTER,
	MSG_YOU_TURNED_ME_OFF,
	MSG_PARKED,
	MSG_UNPARKED,
	MSG_MARK,
	MSG_CUT,
	MSG_MARK_CLEARED,
	MSG_PASTE,
	MSG_BRIGHT,
	MSG_ON_BLINKING,
	MSG_STATUS_START,
	MSG_OFF = MSG_STATUS_START,
	MSG_ON,
	MSG_NO_WINDOW,

	/* These must be ordered the same as enum cursor_track */
	MSG_CURSOR_MSGS_START,
	MSG_CURSORING_OFF = MSG_CURSOR_MSGS_START,
	MSG_CURSORING_ON,
	MSG_HIGHLIGHT_TRACKING,
	MSG_READ_WINDOW,
	MSG_READ_ALL,

	MSG_EDIT_DONE,
	MSG_WINDOW_ALREADY_SET,
	MSG_END_BEFORE_START,
	MSG_WINDOW_CLEARED,
	MSG_WINDOW_SILENCED,
	MSG_WINDOW_SILENCE_DISABLED,
	MSG_ERROR,
	MSG_GOTO_CANCELED,
	MSG_GOTO,
	MSG_LEAVING_HELP,
	MSG_IS_UNASSIGNED,
	MSG_HELP_INFO,

	/* These must be ordered the same as enum edge */
	MSG_EDGE_MSGS_START,
	MSG_EDGE_TOP  = MSG_EDGE_MSGS_START,
	MSG_EDGE_BOTTOM,
	MSG_EDGE_LEFT,
	MSG_EDGE_RIGHT,

	MSG_NUMBER,
	MSG_SPACE,
	MSG_START, /* A little confusing, given our convention. */
	MSG_END, /* A little confusing, given our convention. */
	MSG_CTRL,

/* A message containing the single word "or". */
	MSG_DISJUNCTION,
	MSG_ANNOUNCEMENTS_END = MSG_DISJUNCTION,

/* Messages with format specifiers. */
	MSG_FORMATTED_START,
	MSG_POS_INFO = MSG_FORMATTED_START,
	MSG_CHAR_INFO,
	MSG_REPEAT_DESC,
	MSG_REPEAT_DESC2,
	MSG_WINDOW_LINE,
	MSG_WINDOW_BOUNDARY,
	MSG_EDIT_PROMPT,
	MSG_NO_COMMAND,
	MSG_KEYDESC,
	MSG_FORMATTED_END = MSG_KEYDESC,

	/* Control keys. */
	MSG_CTL_START,
	MSG_CTL_SHIFT = MSG_CTL_START,
	MSG_CTL_ALTGR,
	MSG_CTL_CONTROL,
	MSG_CTL_ALT,
	MSG_CTL_LSHIFT,
	MSG_CTL_SPEAKUP,
	MSG_CTL_LCONTROL,
	MSG_CTL_RCONTROL,
	MSG_CTL_CAPSSHIFT,
	MSG_CTL_END = MSG_CTL_CAPSSHIFT,

	/* Colors. */
	MSG_COLORS_START,
	MSG_COLOR_BLACK = MSG_COLORS_START,
	MSG_COLOR_BLUE,
	MSG_COLOR_GREEN,
	MSG_COLOR_CYAN,
	MSG_COLOR_RED,
	MSG_COLOR_MAGENTA,
	MSG_COLOR_YELLOW,
	MSG_COLOR_WHITE,
	MSG_COLOR_GREY,
	MSG_COLOR_BRIGHTBLUE,
	MSG_COLOR_BRIGHTGREEN,
	MSG_COLOR_BRIGHTCYAN,
	MSG_COLOR_BRIGHTRED,
	MSG_COLOR_BRIGHTMAGENTA,
	MSG_COLOR_BRIGHTYELLOW,
	MSG_COLOR_BRIGHTWHITE,
	MSG_COLORS_END = MSG_COLOR_BRIGHTWHITE,

	MSG_STATES_START,
	MSG_STATE_DOUBLE = MSG_STATES_START,
	MSG_STATE_SPEAKUP,
	MSG_STATE_ALT,
	MSG_STATE_CONTROL,
	MSG_STATE_ALTGR,
	MSG_STATE_SHIFT,
	MSG_STATES_END = MSG_STATE_SHIFT,

	MSG_KEYNAMES_START,
	MSG_KEYNAME_ESC = MSG_KEYNAMES_START,
	MSG_KEYNAME_1, MSG_KEYNAME_2, MSG_KEYNAME_3, MSG_KEYNAME_4,
	MSG_KEYNAME_5, MSG_KEYNAME_6, MSG_KEYNAME_7, MSG_KEYNAME_8,
	MSG_KEYNAME_9,
	MSG_KEYNAME_0, MSG_KEYNAME_DASH, MSG_KEYNAME_EQUAL, MSG_KEYNAME_BS,
	MSG_KEYNAME_TAB,
	MSG_KEYNAME_Q, MSG_KEYNAME_W, MSG_KEYNAME_E, MSG_KEYNAME_R,
	MSG_KEYNAME_T, MSG_KEYNAME_Y, MSG_KEYNAME_U, MSG_KEYNAME_I,
	MSG_KEYNAME_O, MSG_KEYNAME_P,
	MSG_KEYNAME_LEFTBRACE, MSG_KEYNAME_RIGHTBRACE, MSG_KEYNAME_ENTER,
	MSG_KEYNAME_LEFTCTRL, MSG_KEYNAME_A,
	MSG_KEYNAME_S, MSG_KEYNAME_D, MSG_KEYNAME_F, MSG_KEYNAME_G,
	MSG_KEYNAME_H, MSG_KEYNAME_J, MSG_KEYNAME_K, MSG_KEYNAME_L,
	MSG_KEYNAME_SEMICOLON,
	MSG_KEYNAME_SINGLEQUOTE, MSG_KEYNAME_GRAVE,
	MSG_KEYNAME_LEFTSHFT, MSG_KEYNAME_BACKSLASH, MSG_KEYNAME_Z,
	MSG_KEYNAME_X, MSG_KEYNAME_C, MSG_KEYNAME_V, MSG_KEYNAME_B,
	MSG_KEYNAME_N, MSG_KEYNAME_M, MSG_KEYNAME_COMMA, MSG_KEYNAME_DOT,
	MSG_KEYNAME_SLASH, MSG_KEYNAME_RIGHTSHFT,
	MSG_KEYNAME_KPSTAR,
	MSG_KEYNAME_LEFTALT, MSG_KEYNAME_SPACE, MSG_KEYNAME_CAPSLOCK,
	MSG_KEYNAME_F1, MSG_KEYNAME_F2,
	MSG_KEYNAME_F3, MSG_KEYNAME_F4, MSG_KEYNAME_F5, MSG_KEYNAME_F6,
	MSG_KEYNAME_F7,
	MSG_KEYNAME_F8, MSG_KEYNAME_F9, MSG_KEYNAME_F10, MSG_KEYNAME_NUMLOCK,
	MSG_KEYNAME_SCROLLLOCK,
	MSG_KEYNAME_KP7, MSG_KEYNAME_KP8, MSG_KEYNAME_KP9, MSG_KEYNAME_KPMINUS,
	MSG_KEYNAME_KP4,
	MSG_KEYNAME_KP5, MSG_KEYNAME_KP6, MSG_KEYNAME_KPPLUS, MSG_KEYNAME_KP1,
	MSG_KEYNAME_KP2,
	MSG_KEYNAME_KP3, MSG_KEYNAME_KP0, MSG_KEYNAME_KPDOT, MSG_KEYNAME_103RD,
	MSG_KEYNAME_F13,
	MSG_KEYNAME_102ND, MSG_KEYNAME_F11, MSG_KEYNAME_F12, MSG_KEYNAME_F14,
	MSG_KEYNAME_F15,
	MSG_KEYNAME_F16, MSG_KEYNAME_F17, MSG_KEYNAME_F18, MSG_KEYNAME_F19,
	MSG_KEYNAME_F20,
	MSG_KEYNAME_KPENTER, MSG_KEYNAME_RIGHTCTRL, MSG_KEYNAME_KPSLASH,
	MSG_KEYNAME_SYSRQ, MSG_KEYNAME_RIGHTALT,
	MSG_KEYNAME_LF, MSG_KEYNAME_HOME, MSG_KEYNAME_UP, MSG_KEYNAME_PGUP,
	MSG_KEYNAME_LEFT,
	MSG_KEYNAME_RIGHT, MSG_KEYNAME_END, MSG_KEYNAME_DOWN, MSG_KEYNAME_PGDN,
	MSG_KEYNAME_INS,
	MSG_KEYNAME_DEL, MSG_KEYNAME_MACRO, MSG_KEYNAME_MUTE,
	MSG_KEYNAME_VOLDOWN, MSG_KEYNAME_VOLUP,
	MSG_KEYNAME_POWER, MSG_KEYNAME_KPEQUAL, MSG_KEYNAME_KPPLUSDASH,
	MSG_KEYNAME_PAUSE, MSG_KEYNAME_F21, MSG_KEYNAME_F22, MSG_KEYNAME_F23,
	MSG_KEYNAME_F24, MSG_KEYNAME_KPCOMMA, MSG_KEYNAME_LEFTMETA,
	MSG_KEYNAME_RIGHTMETA, MSG_KEYNAME_COMPOSE, MSG_KEYNAME_STOP,
	MSG_KEYNAME_AGAIN, MSG_KEYNAME_PROPS,
	MSG_KEYNAME_UNDO, MSG_KEYNAME_FRONT, MSG_KEYNAME_COPY, MSG_KEYNAME_OPEN,
	MSG_KEYNAME_PASTE,
	MSG_KEYNAME_FIND, MSG_KEYNAME_CUT, MSG_KEYNAME_HELP, MSG_KEYNAME_MENU,
	MSG_KEYNAME_CALC,
	MSG_KEYNAME_SETUP, MSG_KEYNAME_SLEEP, MSG_KEYNAME_WAKEUP,
	MSG_KEYNAME_FILE, MSG_KEYNAME_SENDFILE,
	MSG_KEYNAME_DELFILE, MSG_KEYNAME_XFER, MSG_KEYNAME_PROG1,
	MSG_KEYNAME_PROG2, MSG_KEYNAME_WWW,
	MSG_KEYNAME_MSDOS, MSG_KEYNAME_COFFEE, MSG_KEYNAME_DIRECTION,
	MSG_KEYNAME_CYCLEWINDOWS, MSG_KEYNAME_MAIL,
	MSG_KEYNAME_BOOKMARKS, MSG_KEYNAME_COMPUTER, MSG_KEYNAME_BACK,
	MSG_KEYNAME_FORWARD, MSG_KEYNAME_CLOSECD,
	MSG_KEYNAME_EJECTCD, MSG_KEYNAME_EJECTCLOSE, MSG_KEYNAME_NEXTSONG,
	MSG_KEYNAME_PLAYPAUSE, MSG_KEYNAME_PREVSONG,
	MSG_KEYNAME_STOPCD, MSG_KEYNAME_RECORD, MSG_KEYNAME_REWIND,
	MSG_KEYNAME_PHONE, MSG_KEYNAME_ISO,
	MSG_KEYNAME_CONFIG, MSG_KEYNAME_HOMEPG, MSG_KEYNAME_REFRESH,
	MSG_KEYNAME_EXIT, MSG_KEYNAME_MOVE,
	MSG_KEYNAME_EDIT, MSG_KEYNAME_SCROLLUP, MSG_KEYNAME_SCROLLDN,
	MSG_KEYNAME_KPLEFTPAR, MSG_KEYNAME_KPRIGHTPAR,
	MSG_KEYNAMES_END = MSG_KEYNAME_KPRIGHTPAR,

	MSG_FUNCNAMES_START,
	MSG_FUNCNAME_ATTRIB_BLEEP_DEC = MSG_FUNCNAMES_START,
	MSG_FUNCNAME_ATTRIB_BLEEP_INC,
	MSG_FUNCNAME_BLEEPS_DEC, MSG_FUNCNAME_BLEEPS_INC,
	MSG_FUNCNAME_CHAR_FIRST, MSG_FUNCNAME_CHAR_LAST,
	MSG_FUNCNAME_CHAR_CURRENT, MSG_FUNCNAME_CHAR_HEX_AND_DEC,
	MSG_FUNCNAME_CHAR_NEXT,
	MSG_FUNCNAME_CHAR_PHONETIC, MSG_FUNCNAME_CHAR_PREVIOUS,
	MSG_FUNCNAME_CURSOR_PARK, MSG_FUNCNAME_CUT,
	MSG_FUNCNAME_EDIT_DELIM, MSG_FUNCNAME_EDIT_EXNUM,
	MSG_FUNCNAME_EDIT_MOST, MSG_FUNCNAME_EDIT_REPEATS,
	MSG_FUNCNAME_EDIT_SOME,
	MSG_FUNCNAME_GOTO, MSG_FUNCNAME_GOTO_BOTTOM, MSG_FUNCNAME_GOTO_LEFT,
	MSG_FUNCNAME_GOTO_RIGHT, MSG_FUNCNAME_GOTO_TOP, MSG_FUNCNAME_HELP,
	MSG_FUNCNAME_LINE_SAY_CURRENT, MSG_FUNCNAME_LINE_SAY_NEXT,
	MSG_FUNCNAME_LINE_SAY_PREVIOUS, MSG_FUNCNAME_LINE_SAY_WITH_INDENT,
	MSG_FUNCNAME_PASTE, MSG_FUNCNAME_PITCH_DEC, MSG_FUNCNAME_PITCH_INC,
	MSG_FUNCNAME_PUNC_DEC, MSG_FUNCNAME_PUNC_INC,
	MSG_FUNCNAME_PUNC_LEVEL_DEC, MSG_FUNCNAME_PUNC_LEVEL_INC,
	MSG_FUNCNAME_QUIET,
	MSG_FUNCNAME_RATE_DEC, MSG_FUNCNAME_RATE_INC,
	MSG_FUNCNAME_READING_PUNC_DEC, MSG_FUNCNAME_READING_PUNC_INC,
	MSG_FUNCNAME_SAY_ATTRIBUTES,
	MSG_FUNCNAME_SAY_FROM_LEFT, MSG_FUNCNAME_SAY_FROM_TOP,
	MSG_FUNCNAME_SAY_POSITION, MSG_FUNCNAME_SAY_SCREEN,
	MSG_FUNCNAME_SAY_TO_BOTTOM, MSG_FUNCNAME_SAY_TO_RIGHT,
	MSG_FUNCNAME_SPEAKUP, MSG_FUNCNAME_SPEAKUP_LOCK,
	MSG_FUNCNAME_SPEAKUP_OFF, MSG_FUNCNAME_SPEECH_KILL,
	MSG_FUNCNAME_SPELL_DELAY_DEC, MSG_FUNCNAME_SPELL_DELAY_INC,
	MSG_FUNCNAME_SPELL_WORD, MSG_FUNCNAME_SPELL_WORD_PHONETICALLY,
	MSG_FUNCNAME_TONE_DEC, MSG_FUNCNAME_TONE_INC,
	MSG_FUNCNAME_VOICE_DEC, MSG_FUNCNAME_VOICE_INC,
	MSG_FUNCNAME_VOLUME_DEC, MSG_FUNCNAME_VOLUME_INC,
	MSG_FUNCNAME_WINDOW_CLEAR, MSG_FUNCNAME_WINDOW_SAY,
	MSG_FUNCNAME_WINDOW_SET, MSG_FUNCNAME_WINDOW_SILENCE,
	MSG_FUNCNAME_WORD_SAY_CURRENT, MSG_FUNCNAME_WORD_SAY_NEXT,
	MSG_FUNCNAME_WORD_SAY_PREVIOUS,
	MSG_FUNCNAMES_END = MSG_FUNCNAME_WORD_SAY_PREVIOUS,

	/* all valid indices must be above this */
	MSG_LAST_INDEX
};

struct msg_group_t {
	char *name;
	enum msg_index_t start;
	enum msg_index_t end;
};

char *spk_msg_get(enum msg_index_t index);
ssize_t spk_msg_set(enum msg_index_t index, char *text, size_t length);
struct msg_group_t *spk_find_msg_group(const char *group_name);
void spk_reset_msg_group(struct msg_group_t *group);
void spk_initialize_msgs(void);
void spk_free_user_msgs(void);

#endif
