1 #ifndef I18N_DECLS_H 2 #define I18N_DECLS_H 3 4 typedef struct sized_string STRING; 5 6 #include <stdint.h> 7 8 typedef enum { 9 LANG_EN, 10 LANG_CS, 11 LANG_DK, 12 LANG_DE, 13 LANG_ET, 14 LANG_ES, // 5 15 LANG_EO, 16 LANG_FR, 17 LANG_HI, 18 LANG_HR, 19 LANG_IT, // 10 20 LANG_LV, 21 LANG_HU, 22 LANG_NL, 23 LANG_NO, 24 LANG_PL, // 15 25 LANG_PT, 26 LANG_BR, 27 LANG_RO, 28 LANG_SV, 29 LANG_TR, // 20 30 LANG_BG, 31 LANG_RU, 32 LANG_UK, 33 LANG_JA, 34 LANG_CN, // 25 35 LANG_TW, 36 37 NUM_LANGS // add langs before this line 38 } UTOX_LANG; 39 40 typedef enum { 41 // This ensures that all statically initialized to zero UTOX_I18N_STR vars 42 // will render as canary "BUG. PLEASE REPORT." strings. 43 UI_STRING_ID_INVALID = 0, 44 45 STR_LANG_NATIVE_NAME, 46 STR_LANG_ENGLISH_NAME, 47 48 STR_SPLASH_TITLE, 49 STR_SPLASH_TEXT, 50 51 STR_CHANGE_LOG_TITLE, 52 STR_CHANGE_LOG_TEXT, 53 54 STR_REQ_SENT, 55 STR_REQ_INVALID_ID, 56 STR_REQ_EMPTY_ID, 57 STR_REQ_LONG_MSG, 58 STR_REQ_NO_MSG, 59 STR_REQ_SELF_ID, 60 STR_REQ_ALREADY_FRIENDS, 61 STR_REQ_UNKNOWN, 62 STR_REQ_BAD_CHECKSUM, 63 STR_REQ_BAD_NOSPAM, 64 STR_REQ_NO_MEMORY, 65 STR_REQ_ADDED_NO_FREQ_SENT, 66 67 STR_SEND_FILE, 68 STR_SAVE_FILE, 69 STR_WHERE_TO_SAVE_FILE_PROMPT, 70 STR_WHERE_TO_SAVE_FILE, 71 STR_SEND_FILE_PROMPT, 72 STR_SCREEN_CAPTURE_PROMPT, 73 74 /* Transfer strings */ 75 STR_TRANSFER_NEW, 76 STR_TRANSFER_STARTED, 77 STR_TRANSFER___, 78 STR_TRANSFER_PAUSED, 79 STR_TRANSFER_BROKEN, 80 STR_TRANSFER_CANCELLED, 81 STR_TRANSFER_COMPLETE, 82 83 /* Cursor/Mouse strings */ 84 STR_CURSOR_CLICK_LEFT, 85 STR_CURSOR_CLICK_RIGHT, 86 87 /* Friend strings */ 88 STR_FRIEND_ALIAS, 89 STR_FRIEND_PUBLIC_KEY, 90 STR_FRIEND_AUTOACCEPT, 91 STR_FRIEND_EXPORT_CHATLOG, 92 STR_DELETE_FRIEND, 93 94 /* Group chat strings */ 95 STR_GROUP_CREATE_TEXT, 96 STR_GROUP_CREATE_VOICE, 97 STR_GROUP_CREATE_WITH_AUDIO, 98 STR_GROUPCHAT_SETTINGS, 99 STR_GROUP_NOTIFICATIONS, 100 STR_GROUP_NOTIFICATIONS_ON, 101 STR_GROUP_NOTIFICATIONS_MENTION, 102 STR_GROUP_NOTIFICATIONS_OFF, 103 STR_GROUP_TOPIC, 104 105 /* TODO REPLACE or REMOVE */ 106 STR_GROUPCHAT_JOIN_AUDIO, 107 108 /* A/V Call Strings */ 109 STR_CALL_START_AUDIO, 110 STR_CALL_START_VIDEO, 111 STR_CALL_DECLINE, 112 STR_CALL_CANCELLED, 113 STR_CALL_INVITED, 114 STR_CALL_RINGING, 115 STR_CALL_STARTED, 116 STR_CALL_ENDED, 117 STR_CALL_FRIEND_HAD_ENDED_CALL, 118 STR_CALL_VIDEO_SHOW_INLINE, 119 120 /* Settings strings */ 121 STR_PROFILE_BUTTON, 122 STR_DEVICES_BUTTON, 123 STR_USER_INTERFACE_BUTTON, 124 STR_AUDIO_VIDEO_BUTTON, 125 STR_ADVANCED_BUTTON, 126 STR_NOTIFICATIONS_BUTTON, 127 128 STR_PROFILE_SETTINGS, 129 STR_PROFILE_PW_WARNING, 130 STR_PROFILE_PW_NO_RECOVER, 131 132 STR_DEVICES_ADD_NEW, 133 STR_DEVICES_NUMBER, 134 135 /* Old Strings, please create or use more discriptive */ 136 /* TODO REMOVE OLD ONES! */ 137 STR_ADDFRIENDS, 138 STR_TOXID, 139 STR_SHOW_QR, 140 STR_HIDE_QR, 141 STR_SAVE_QR, 142 STR_MESSAGE, 143 STR_FILTER_ALL, 144 STR_FILTER_ONLINE, 145 STR_FILTER_CONTACT_TOGGLE, 146 STR_ADD, 147 STR_CREATEGROUPCHAT, 148 STR_FRIENDREQUEST, 149 STR_USERSETTINGS, 150 STR_FRIEND_SETTINGS, 151 STR_NAME, 152 STR_STATUSMESSAGE, 153 STR_PREVIEW, 154 STR_AUDIOINPUTDEVICE, 155 STR_AUDIOFILTERING, 156 STR_AUDIOOUTPUTDEVICE, 157 STR_VIDEOINPUTDEVICE, 158 STR_VIDEOFRAMERATE, 159 STR_PUSH_TO_TALK, 160 161 // Status info 162 STR_STATUS, 163 STR_STATUS_ONLINE, 164 STR_STATUS_AWAY, 165 STR_STATUS_BUSY, 166 STR_STATUS_OFFLINE, 167 STR_STATUS_MESSAGE, 168 169 // Settings Strings 170 STR_SETTINGS_UI_MINI_ROSTER, 171 STR_SETTINGS_UI_AUTO_HIDE_SIDEBAR, 172 173 // Status strings 174 STR_NOT_CONNECTED, 175 STR_NOT_CONNECTED_SETTINGS, 176 177 // Setting strings 178 STR_OTHERSETTINGS, 179 STR_UI, 180 STR_USER_INTERFACE, 181 STR_UTOX_SETTINGS, 182 STR_NETWORK_SETTINGS, 183 STR_AUDIO_VIDEO, 184 STR_PROFILE_PASSWORD, 185 STR_LOCK_UTOX, 186 STR_LOCK, 187 STR_SHOW_UI_PASSWORD, 188 STR_SHOW_UI_PASSWORD_TOOLTIP, 189 STR_HIDE_UI_PASSWORD, 190 STR_HIDE_UI_PASSWORD_TOOLTIP, 191 STR_PASSWORD_TOO_SHORT, 192 193 STR_DPI, 194 STR_SAVELOCATION, 195 STR_LANGUAGE, 196 STR_NETWORK, 197 STR_IPV6, 198 STR_UDP, 199 STR_PROXY, 200 STR_PROXY_FORCE, 201 STR_WARNING, 202 STR_SAVE_CHAT_HISTORY, 203 STR_AUDIONOTIFICATIONS, 204 STR_RINGTONE, 205 STR_IS_TYPING, 206 STR_CLOSE_TO_TRAY, 207 STR_START_IN_TRAY, 208 STR_AUTO_STARTUP, 209 STR_RANDOMIZE_NOSPAM, 210 STR_REVERT_NOSPAM, 211 STR_NOSPAM, 212 STR_NOSPAM_WARNING, 213 STR_SHOW_NOSPAM, 214 STR_HIDE_NOSPAM, 215 STR_BLOCK_FRIEND_REQUESTS, 216 217 218 // Interact with texts / clipboard 219 STR_COPY, 220 STR_COPY_TOX_ID, 221 STR_COPYWITHOUTNAMES, 222 STR_COPY_WITH_NAMES, 223 STR_CUT, 224 STR_PASTE, 225 STR_DELETE, 226 STR_SELECTALL, 227 228 STR_REMOVE, 229 STR_REMOVE_FRIEND, 230 STR_REMOVE_GROUP, 231 STR_LEAVE, 232 STR_LEAVE_GROUP, 233 STR_ACCEPT, 234 STR_REQ_ACCEPT = STR_ACCEPT, 235 STR_CTOPIC, 236 STR_CHANGE_GROUP_TOPIC = STR_CTOPIC, 237 STR_IGNORE, 238 STR_REQ_DECLINE = STR_IGNORE, 239 STR_SET_ALIAS, 240 241 STR_ALIAS, 242 243 STR_SENDMESSAGE, 244 STR_SENDSCREENSHOT, 245 246 STR_CLICKTOSAVE, 247 STR_CLICKTOOPEN, 248 STR_CANCELLED, 249 250 STR_DPI_050, 251 STR_DPI_060, 252 STR_DPI_070, 253 STR_DPI_080, 254 STR_DPI_090, 255 STR_DPI_100, 256 STR_DPI_110, 257 STR_DPI_120, 258 STR_DPI_130, 259 STR_DPI_140, 260 STR_DPI_150, 261 STR_DPI_160, 262 STR_DPI_170, 263 STR_DPI_180, 264 STR_DPI_190, 265 STR_DPI_200, 266 STR_DPI_210, 267 STR_DPI_220, 268 STR_DPI_230, 269 STR_DPI_240, 270 STR_DPI_250, 271 STR_DPI_260, 272 STR_DPI_270, 273 STR_DPI_280, 274 STR_DPI_290, 275 STR_DPI_300, 276 STR_DPI_TINY, 277 STR_DPI_NORMAL, 278 STR_DPI_BIG, 279 STR_DPI_LARGE, 280 STR_DPI_HUGE, 281 282 STR_CONTACT_SEARCH_ADD_HINT, 283 284 STR_PROXY_DISABLED, 285 STR_PROXY_FALLBACK, 286 STR_PROXY_ALWAYS_USE, 287 288 STR_PROXY_EDIT_HINT_IP, 289 STR_PROXY_EDIT_HINT_PORT, 290 291 STR_NO, 292 STR_YES, 293 STR_OFF, 294 STR_ON, 295 STR_SHOW, 296 STR_HIDE, 297 STR_EXIT, 298 299 STR_VIDEO_IN_NONE, 300 STR_AUDIO_IN_NONE = STR_VIDEO_IN_NONE, 301 STR_VIDEO_IN_DESKTOP, 302 303 STR_AUDIO_IN_DEFAULT_LOOPBACK, 304 STR_AUDIO_IN_ANDROID, 305 306 STR_DEFAULT_FRIEND_REQUEST_MESSAGE, 307 308 STR_WINDOW_TITLE_VIDEO_PREVIEW, 309 310 STR_MUTE, 311 STR_UNMUTE, 312 313 STR_SELECT_AVATAR_TITLE, 314 STR_AVATAR_TOO_LARGE_MAX_SIZE_IS, 315 STR_CANT_FIND_FILE_OR_EMPTY, 316 317 STR_CLEAR_HISTORY, 318 319 STR_THEME, 320 STR_THEME_DEFAULT, 321 STR_THEME_LIGHT, 322 STR_THEME_DARK, 323 STR_THEME_HIGHCONTRAST, 324 STR_THEME_CUSTOM, 325 STR_THEME_ZENBURN, 326 STR_THEME_SOLARIZED_LIGHT, 327 STR_THEME_SOLARIZED_DARK, 328 329 STR_SEND_TYPING_NOTIFICATIONS, 330 STR_STATUS_NOTIFICATIONS, 331 STR_DELETE_MESSAGE, 332 STR_KEEP, 333 334 NUM_STRS // add strings before this line 335 } UTOX_I18N_STR; 336 337 STRING *ui_gettext(UTOX_LANG lang, UTOX_I18N_STR string_id); 338 339 UTOX_LANG ui_guess_lang_by_posix_locale(const char *locale, UTOX_LANG deflt); 340 UTOX_LANG ui_guess_lang_by_windows_lang_id(uint16_t lang_id, UTOX_LANG deflt); 341 342 #endif 343