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