diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-09-18 14:08:05 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-09-18 14:08:05 +0000 |
commit | 505eca76e661df673ae3ff77863936e6a533f663 (patch) | |
tree | c09f07ca4eaf5c4433af9a4365ccb136e02f3d5a /apps | |
parent | a24bd9a894c1d8594e99f95e470cbd8296e5b3d2 (diff) | |
download | rockbox-505eca76e661df673ae3ff77863936e6a533f663.tar.gz rockbox-505eca76e661df673ae3ff77863936e6a533f663.zip |
New language/string handling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2327 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/Makefile | 10 | ||||
-rw-r--r-- | apps/demo_menu.c | 6 | ||||
-rw-r--r-- | apps/games_menu.c | 10 | ||||
-rw-r--r-- | apps/lang.c | 16 | ||||
-rw-r--r-- | apps/lang.h | 25 | ||||
-rw-r--r-- | apps/lang/english.lang | 733 | ||||
-rw-r--r-- | apps/main_menu.c | 10 | ||||
-rw-r--r-- | apps/playlist.c | 16 | ||||
-rw-r--r-- | apps/recorder/snake.c | 26 | ||||
-rw-r--r-- | apps/recorder/sokoban.c | 16 | ||||
-rw-r--r-- | apps/recorder/tetris.c | 6 | ||||
-rw-r--r-- | apps/recorder/wormlet.c | 63 | ||||
-rw-r--r-- | apps/settings.c | 14 | ||||
-rw-r--r-- | apps/settings_menu.c | 115 | ||||
-rw-r--r-- | apps/sound_menu.c | 38 | ||||
-rw-r--r-- | apps/tree.c | 13 | ||||
-rw-r--r-- | apps/wps-display.c | 10 | ||||
-rw-r--r-- | apps/wps.c | 79 |
18 files changed, 948 insertions, 258 deletions
diff --git a/apps/Makefile b/apps/Makefile index a501bb2747..3f99798e67 100644 --- a/apps/Makefile +++ b/apps/Makefile | |||
@@ -13,9 +13,11 @@ AR = sh-elf-ar | |||
13 | AS = sh-elf-as | 13 | AS = sh-elf-as |
14 | OC = sh-elf-objcopy | 14 | OC = sh-elf-objcopy |
15 | 15 | ||
16 | LANGUAGE = english | ||
17 | |||
16 | FIRMWARE := ../firmware | 18 | FIRMWARE := ../firmware |
17 | 19 | ||
18 | INCLUDES= -I$(FIRMWARE)/include -I$(FIRMWARE) -I$(FIRMWARE)/common -I$(FIRMWARE)/drivers -I$(FIRMWARE)/malloc -I. | 20 | INCLUDES= -I$(FIRMWARE)/include -I$(FIRMWARE) -I$(FIRMWARE)/common -I$(FIRMWARE)/drivers -I$(FIRMWARE)/malloc -I. -I$(OBJDIR) |
19 | 21 | ||
20 | # store output files in this directory: | 22 | # store output files in this directory: |
21 | OBJDIR = . | 23 | OBJDIR = . |
@@ -47,7 +49,7 @@ else | |||
47 | OUTNAME = archos.mod | 49 | OUTNAME = archos.mod |
48 | endif | 50 | endif |
49 | 51 | ||
50 | OBJS := $(SRC:%.c=$(OBJDIR)/%.o) | 52 | OBJS := $(OBJDIR)/lang.o $(SRC:%.c=$(OBJDIR)/%.o) |
51 | 53 | ||
52 | all : $(OBJDIR)/$(OUTNAME) | 54 | all : $(OBJDIR)/$(OUTNAME) |
53 | 55 | ||
@@ -70,6 +72,10 @@ $(OBJDIR)/%.o: %.c | |||
70 | @mkdir -p `dirname $@` | 72 | @mkdir -p `dirname $@` |
71 | $(CC) $(CFLAGS) -c $< -o $@ | 73 | $(CC) $(CFLAGS) -c $< -o $@ |
72 | 74 | ||
75 | $(OBJDIR)/lang.o: lang/$(LANGUAGE).lang | ||
76 | ../tools/genlang -p=$(OBJDIR)/lang $< | ||
77 | $(CC) $(CFLAGS) -c $(OBJDIR)/lang.c -o $@ | ||
78 | |||
73 | dist: | 79 | dist: |
74 | tar czvf dist.tar.gz Makefile main.c start.s app.lds | 80 | tar czvf dist.tar.gz Makefile main.c start.s app.lds |
75 | 81 | ||
diff --git a/apps/demo_menu.c b/apps/demo_menu.c index cbd5742c7c..de625c5821 100644 --- a/apps/demo_menu.c +++ b/apps/demo_menu.c | |||
@@ -31,6 +31,8 @@ | |||
31 | #include "kernel.h" | 31 | #include "kernel.h" |
32 | #include "sprintf.h" | 32 | #include "sprintf.h" |
33 | 33 | ||
34 | #include "lang.h" | ||
35 | |||
34 | extern Menu bounce(void); | 36 | extern Menu bounce(void); |
35 | extern Menu snow(void); | 37 | extern Menu snow(void); |
36 | 38 | ||
@@ -40,8 +42,8 @@ Menu demo_menu(void) | |||
40 | Menu result; | 42 | Menu result; |
41 | 43 | ||
42 | struct menu_items items[] = { | 44 | struct menu_items items[] = { |
43 | { "Bounce", bounce }, | 45 | { str(LANG_BOUNCE), bounce }, |
44 | { "Snow", snow }, | 46 | { str(LANG_SNOW), snow }, |
45 | }; | 47 | }; |
46 | 48 | ||
47 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | 49 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); |
diff --git a/apps/games_menu.c b/apps/games_menu.c index dd0c671be4..6ab1faf7e6 100644 --- a/apps/games_menu.c +++ b/apps/games_menu.c | |||
@@ -34,6 +34,8 @@ | |||
34 | 34 | ||
35 | #include "sokoban.h" | 35 | #include "sokoban.h" |
36 | #include "wormlet.h" | 36 | #include "wormlet.h" |
37 | #include "lang.h" | ||
38 | |||
37 | extern Menu tetris(void); | 39 | extern Menu tetris(void); |
38 | extern Menu snake(void); | 40 | extern Menu snake(void); |
39 | 41 | ||
@@ -43,10 +45,10 @@ Menu games_menu(void) | |||
43 | Menu result; | 45 | Menu result; |
44 | 46 | ||
45 | struct menu_items items[] = { | 47 | struct menu_items items[] = { |
46 | { "Tetris", tetris }, | 48 | { str(LANG_TETRIS), tetris }, |
47 | { "Sokoban", sokoban }, | 49 | { str(LANG_SOKOBAN), sokoban }, |
48 | { "Wormlet", wormlet }, | 50 | { str(LANG_WORMLET), wormlet }, |
49 | { "Snake", snake } | 51 | { str(LANG_SNAKE), snake } |
50 | }; | 52 | }; |
51 | 53 | ||
52 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | 54 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); |
diff --git a/apps/lang.c b/apps/lang.c deleted file mode 100644 index af8b16aa5a..0000000000 --- a/apps/lang.c +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | /* This file was automaticly generated using genlang, the strings come | ||
2 | from "lang/english.lang" */ | ||
3 | |||
4 | unsigned char *language_strings[]={ | ||
5 | "Sound Settings", | ||
6 | "General Settings", | ||
7 | "Games", | ||
8 | "Demos", | ||
9 | "Info", | ||
10 | "Version", | ||
11 | "Debug (keep out!)", | ||
12 | "Rockbox info:", | ||
13 | "Buf: %d.%02dMb", | ||
14 | "Buffer: %d.%02dMb", | ||
15 | }; | ||
16 | /* end of generated string list */ | ||
diff --git a/apps/lang.h b/apps/lang.h deleted file mode 100644 index b841271eff..0000000000 --- a/apps/lang.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | /* This file was automaticly generated using genlang */ | ||
2 | /* | ||
3 | * The str() macro/functions is how to access strings that might be | ||
4 | * translated. Use it like str(MACRO) and expect a string to be | ||
5 | * returned! | ||
6 | */ | ||
7 | #define str(x) language_strings[x] | ||
8 | |||
9 | /* this is the array with all the strings */ | ||
10 | extern unsigned char *language_strings[]; | ||
11 | |||
12 | /* The enum below contains all available strings */ | ||
13 | enum { | ||
14 | LANG_SOUND_SETTINGS, | ||
15 | LANG_GENERAL_SETTINGS, | ||
16 | LANG_GAMES, | ||
17 | LANG_DEMOS, | ||
18 | LANG_INFO, | ||
19 | LANG_VERSION, | ||
20 | LANG_DEBUG, | ||
21 | LANG_ROCKBOX_INFO, | ||
22 | LANG_BUFFER_STAT_PLAYER, | ||
23 | LANG_BUFFER_STAT_RECORDER, | ||
24 | }; | ||
25 | /* end of generated enum list */ | ||
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index db99993471..4d89d2e9f7 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang | |||
@@ -33,6 +33,11 @@ desc: in the main menu | |||
33 | eng: "Debug (keep out!)" | 33 | eng: "Debug (keep out!)" |
34 | new: | 34 | new: |
35 | 35 | ||
36 | id: LANG_USB | ||
37 | desc: in the main menu | ||
38 | eng: "USB (sim)" | ||
39 | new: | ||
40 | |||
36 | id: LANG_ROCKBOX_INFO | 41 | id: LANG_ROCKBOX_INFO |
37 | desc: displayed topmost on the info screen | 42 | desc: displayed topmost on the info screen |
38 | eng: "Rockbox info:" | 43 | eng: "Rockbox info:" |
@@ -48,3 +53,731 @@ desc: the buffer size recorder-screen width, %d MB %d fraction of MB | |||
48 | eng: "Buffer: %d.%02dMb" | 53 | eng: "Buffer: %d.%02dMb" |
49 | new: | 54 | new: |
50 | 55 | ||
56 | id: LANG_BATTERY_LEVEL_PLAYER | ||
57 | desc: the battery level in percentage | ||
58 | eng: "Batt: %d%%%s" | ||
59 | new: | ||
60 | |||
61 | id: LANG_BATTERY_LEVEL_RECORDER | ||
62 | desc: the battery level in percentage | ||
63 | eng: "Battery: %d%%%s" | ||
64 | new: | ||
65 | |||
66 | id: LANG_BATTERY_CHARGE | ||
67 | desc: tells that the battery is charging, instead of battery level | ||
68 | eng: "Battery: charging" | ||
69 | new: | ||
70 | |||
71 | id: LANG_BOUNCE | ||
72 | desc: in the demos menu | ||
73 | eng: "Bounce" | ||
74 | new: | ||
75 | |||
76 | id: LANG_SNOW | ||
77 | desc: in the demos menu | ||
78 | eng: "Snow" | ||
79 | new: | ||
80 | |||
81 | id: LANG_TETRIS | ||
82 | desc: in the games menu | ||
83 | eng: "Tetris" | ||
84 | new: | ||
85 | |||
86 | id: LANG_SOKOBAN | ||
87 | desc: in the games menu | ||
88 | eng: "Sokoban" | ||
89 | new: | ||
90 | |||
91 | id: LANG_WORMLET | ||
92 | desc: in the games menu | ||
93 | eng: "Wormlet" | ||
94 | new: | ||
95 | |||
96 | id: LANG_SNAKE | ||
97 | desc: in the games menu | ||
98 | eng: "Snake" | ||
99 | new: | ||
100 | |||
101 | id: LANG_PLAYLIST_LOAD | ||
102 | desc: displayed on screen while loading a playlist | ||
103 | eng: "Loading..." | ||
104 | new: | ||
105 | |||
106 | id: LANG_PLAYLIST_SHUFFLE | ||
107 | desc: displayed on screen while shuffling a playlist | ||
108 | eng: "Shuffling..." | ||
109 | new: | ||
110 | |||
111 | id: LANG_PLAYLIST_PLAY | ||
112 | desc: displayed on screen when start playing a playlist | ||
113 | eng: "Playing..." | ||
114 | new: | ||
115 | |||
116 | id: LANG_PLAYINDICES_PLAYLIST | ||
117 | desc: in playlist.indices() when playlist is full | ||
118 | eng: "Playlist" | ||
119 | new: | ||
120 | |||
121 | id: LANG_PLAYINDICES_BUFFER | ||
122 | desc: in playlist.indices() when playlist is full | ||
123 | eng: "buffer full" | ||
124 | new: | ||
125 | |||
126 | id: LANG_PLAYINDICES_AMOUNT | ||
127 | desc: number of files in playlist | ||
128 | eng: "%d files" | ||
129 | new: | ||
130 | |||
131 | id: LANG_SETTINGS_SAVE_PLAYER | ||
132 | desc: displayed if save settings has failed | ||
133 | eng: "Save failed" | ||
134 | new: | ||
135 | |||
136 | id: LANG_SETTINGS_BATTERY_PLAYER | ||
137 | desc: if save settings has failed | ||
138 | eng: "Batt. low?" | ||
139 | new: | ||
140 | |||
141 | id: LANG_SETTINGS_SAVE_RECORDER | ||
142 | desc: displayed if save settings has failed | ||
143 | eng: "Save failed" | ||
144 | new: | ||
145 | |||
146 | id: LANG_SETTINGS_BATTERY_RECORDER | ||
147 | desc: if save settings has failed | ||
148 | eng: "Is battery low?" | ||
149 | new: | ||
150 | |||
151 | id: LANG_TIME_SET | ||
152 | dec: used in set_time() | ||
153 | eng: "ON to set" | ||
154 | new: | ||
155 | |||
156 | id: LANG_TIME_REVERT | ||
157 | desc: used in set_time() | ||
158 | eng: "OFF to revert" | ||
159 | new: | ||
160 | |||
161 | id: LANG_HIDDEN | ||
162 | desc: in settings_menu | ||
163 | eng: "Hidden Files" | ||
164 | new: | ||
165 | |||
166 | id: LANG_HIDDEN_SHOW | ||
167 | desc: in settings_menu | ||
168 | eng: "Show" | ||
169 | new: | ||
170 | |||
171 | id: LANG_HIDDEN_HIDE | ||
172 | desc: in settings_menu | ||
173 | eng: "Hide" | ||
174 | new: | ||
175 | |||
176 | id: LANG_CONTRAST | ||
177 | desc: in settings_menu | ||
178 | eng: "Contrast" | ||
179 | new: | ||
180 | |||
181 | id: LANG_SHUFFLE | ||
182 | desc: in settings_menu | ||
183 | eng: "Shuffle" | ||
184 | new: | ||
185 | |||
186 | id: LANG_PLAY_SELECTED | ||
187 | desc: in settings_menu | ||
188 | eng: "Play selected first" | ||
189 | new: | ||
190 | |||
191 | id: LANG_MP3FILTER | ||
192 | desc: in settings_menu | ||
193 | eng: "Music Filter" | ||
194 | new: | ||
195 | |||
196 | id: LANG_SORT_CASE | ||
197 | desc: in settings_menu | ||
198 | eng: "Sort Case Sensitive" | ||
199 | new: | ||
200 | |||
201 | id: LANG_RESUME | ||
202 | desc: in settings_menu | ||
203 | eng: "Resume" | ||
204 | new: | ||
205 | |||
206 | id: LANG_OFF | ||
207 | desc: Used in a lot of places | ||
208 | eng: "Off" | ||
209 | new: | ||
210 | |||
211 | id: LANG_RESUME_SETTING_ASK | ||
212 | desc: in settings_menu | ||
213 | eng: "ask" | ||
214 | new: | ||
215 | |||
216 | id: LANG_ON | ||
217 | desc: Used in a lot of places | ||
218 | eng: "On" | ||
219 | new: | ||
220 | |||
221 | id: LANG_BACKLIGHT | ||
222 | desc: in settings_menu | ||
223 | eng: "Backlight" | ||
224 | new: | ||
225 | |||
226 | id: LANG_BACKLIGHT_ON | ||
227 | desc: in settings_menu, | ||
228 | |||
229 | id: LANG_SCROLL | ||
230 | desc: in settings_menu | ||
231 | eng: "Scroll Speed Setting Example" | ||
232 | new: | ||
233 | |||
234 | id: LANG_DISCHARGE | ||
235 | desc: in settings_menu | ||
236 | eng: "Deep discharge" | ||
237 | new: | ||
238 | |||
239 | id: LANG_TIME | ||
240 | desc: in settings_menu | ||
241 | eng: "Set Time/Date" | ||
242 | new: | ||
243 | |||
244 | id: LANG_SPINDOWN | ||
245 | desc: in settings_menu | ||
246 | eng: "Disk Spindown" | ||
247 | new: | ||
248 | |||
249 | id: LANG_FFRW_STEP | ||
250 | desc: in settings_menu | ||
251 | eng: "FF/RW Min Step" | ||
252 | new: | ||
253 | |||
254 | id: LANG_FFRW_ACCEL | ||
255 | desc: in settings_menu | ||
256 | eng: "FF/RW Accel" | ||
257 | new: | ||
258 | |||
259 | id: LANG_FOLLOW | ||
260 | desc: in settings_menu | ||
261 | eng: "Follow Playlist" | ||
262 | new: | ||
263 | |||
264 | id: LANG_RESET_ASK_PLAYER | ||
265 | desc: confirm to reset settings | ||
266 | eng: "Really?" | ||
267 | new: | ||
268 | |||
269 | id: LANG_RESET_CONFIRM_PLAYER | ||
270 | desc: confirm to reset settings | ||
271 | eng: "Play/Stop" | ||
272 | new: | ||
273 | |||
274 | id: LANG_RESET_ASK_RECORDER | ||
275 | desc: confirm to reset settings | ||
276 | eng: "Are you sure?" | ||
277 | new: | ||
278 | |||
279 | id: LANG_RESET_CONFIRM_RECORDER | ||
280 | desc: confirm to reset settings | ||
281 | eng: "Play = Yes" | ||
282 | new: | ||
283 | |||
284 | id: LANG_RESET_CANCEL_RECORDER | ||
285 | desc: confirm to reset settings | ||
286 | eng: "Any Other = No" | ||
287 | new: | ||
288 | |||
289 | id: LANG_RESET_DONE_SETTING | ||
290 | desc: visual confirmation after settings reset | ||
291 | eng: "Settings" | ||
292 | new: | ||
293 | |||
294 | id: LANG_RESET_DONE_CLEAR | ||
295 | desc: visual confirmation after settings reset | ||
296 | eng: "Cleared" | ||
297 | new: | ||
298 | |||
299 | id: LANG_RESET_DONE_CANCEL | ||
300 | desc: Visual confirmation of cancelation | ||
301 | eng: "Canceled" | ||
302 | new: | ||
303 | |||
304 | id: LANG_CASE_MENU | ||
305 | desc: in fileview_settings_menu() | ||
306 | eng: "Sort Mode" | ||
307 | new: | ||
308 | |||
309 | id: LANG_SCROLL_MENU | ||
310 | desc: in display_settings_menu() | ||
311 | eng: "Scroll Speed" | ||
312 | new: | ||
313 | |||
314 | id: LANG_RESET | ||
315 | desc: in system_settings_menu() | ||
316 | eng: "Reset settings" | ||
317 | new: | ||
318 | |||
319 | id: LANG_PLAYBACK | ||
320 | desc: in settings_menu() | ||
321 | eng: "Playback" | ||
322 | new: | ||
323 | |||
324 | id: LANG_FILE | ||
325 | desc: in settings_menu() | ||
326 | eng: "File View" | ||
327 | new: | ||
328 | |||
329 | id: LANG_DISPLAY | ||
330 | desc: in settings_menu() | ||
331 | eng: "Display" | ||
332 | new: | ||
333 | |||
334 | id: LANG_SYSTEM | ||
335 | desc: in settings_menu() | ||
336 | eng: "System" | ||
337 | new: | ||
338 | |||
339 | id: LANG_VOLUME | ||
340 | desc: in sound_settings | ||
341 | eng: "Volume" | ||
342 | new: | ||
343 | |||
344 | id: LANG_BALANCE | ||
345 | desc: in sound_settings | ||
346 | eng: "Balance" | ||
347 | new: | ||
348 | |||
349 | id: LANG_BASS | ||
350 | desc: in sound_settings | ||
351 | eng: "Bass" | ||
352 | new: | ||
353 | |||
354 | id: LANG_TREBLE | ||
355 | desc: in sound_settings | ||
356 | eng: "Treble" | ||
357 | new: | ||
358 | |||
359 | id: LANG_LOUDNESS | ||
360 | desc: in sound_settings | ||
361 | eng: "Loudness" | ||
362 | new: | ||
363 | |||
364 | id: LANG_BBOOST | ||
365 | desc: in sound settings | ||
366 | eng: "Bass Boost" | ||
367 | new: | ||
368 | |||
369 | id: LANG_DECAY | ||
370 | desc: in sound_settings | ||
371 | eng: "AV decay time" | ||
372 | new: | ||
373 | |||
374 | id: LANG_CHANNEL_MENU | ||
375 | desc: in sound_settings | ||
376 | eng: "Channels" | ||
377 | new: | ||
378 | |||
379 | id: LANG_CHANNEL | ||
380 | desc: in sound_settings | ||
381 | eng: "Channel configuration" | ||
382 | new: | ||
383 | |||
384 | id: LANG_CHANNEL_STEREO | ||
385 | desc: in sound_settings | ||
386 | eng: "Stereo" | ||
387 | new: | ||
388 | |||
389 | id: LANG_CHANNEL_MONO | ||
390 | desc: in sound_settings | ||
391 | eng: "Mono" | ||
392 | new: | ||
393 | |||
394 | id: LANG_CHANNEL_LEFT | ||
395 | desc: in sound_settings | ||
396 | eng: "Mono Left" | ||
397 | new: | ||
398 | |||
399 | id: LANG_CHANNEL_RIGHT | ||
400 | desc: in sound_settings | ||
401 | eng: "Mono Right" | ||
402 | new: | ||
403 | |||
404 | id: LANG_AUTOVOL | ||
405 | desc: in sound_settings | ||
406 | eng: "Auto Volume" | ||
407 | new: | ||
408 | |||
409 | id: LANG_SHOWDIR_ERROR_BUFFER | ||
410 | desc: in showdir(), displayed on screen when you reach buffer limit | ||
411 | eng: "Dir Buffer" | ||
412 | new: | ||
413 | |||
414 | id: LANG_SHOWDIR_ERROR_FULL | ||
415 | desc: in showdir(), displayed on screen when you reach buffer limit | ||
416 | eng: "is full!" | ||
417 | new: | ||
418 | |||
419 | id: LANG_RESUME_ASK | ||
420 | desc: question asked at the begining when resume is on | ||
421 | eng: "Resume?" | ||
422 | new: | ||
423 | |||
424 | id: LANG_RESUME_CONFIRM_PLAYER | ||
425 | desc: posible answers to resume question | ||
426 | eng: "(PLAY/STOP)" | ||
427 | new: | ||
428 | |||
429 | id: LANG_RESUME_CONFIRM_RECORDER | ||
430 | desc: posible answer to resume question | ||
431 | eng: "Play = Yes" | ||
432 | new: | ||
433 | |||
434 | id: LANG_RESUME_CANCEL_RECORDER | ||
435 | desc: posible answer to resume question | ||
436 | eng: "Any Other = No" | ||
437 | new: | ||
438 | |||
439 | id: LANG_KEYLOCK_ON_PLAYER | ||
440 | desc: displayed when key lock is on | ||
441 | eng: "Keylock ON" | ||
442 | new: | ||
443 | |||
444 | id: LANG_KEYLOCK_OFF_PLAYER | ||
445 | desc: displayed when key lock is turned off | ||
446 | eng: "Keylock OFF" | ||
447 | new: | ||
448 | |||
449 | id: LANG_KEYLOCK_ON_RECORDER | ||
450 | desc: displayed when key lock is on | ||
451 | eng: "Key lock is ON" | ||
452 | new: | ||
453 | |||
454 | id: LANG_KEYLOCK_OFF_RECORDER | ||
455 | desc: displayed when key lock is turned off | ||
456 | eng: "Key lock is OFF" | ||
457 | new: | ||
458 | |||
459 | id: LANG_MUTE_ON_PLAYER | ||
460 | desc: displayed when mute is on | ||
461 | eng: "Mute ON" | ||
462 | new: | ||
463 | |||
464 | id: LANG_MUTE_OFF_PLAYER | ||
465 | desc: displayed when mute is off | ||
466 | eng: "MUTE OFF" | ||
467 | new: | ||
468 | |||
469 | id: LANG_MUTE_ON_RECORDER | ||
470 | desc: displayed when mute is on | ||
471 | eng: "Mute is ON" | ||
472 | new: | ||
473 | |||
474 | id: LANG_MUTE_OFF_RECORDER | ||
475 | desc: displayed when mute is off | ||
476 | eng: "Mute is OFF" | ||
477 | new: | ||
478 | |||
479 | id: LANG_ID3_INFO | ||
480 | desc: in the browse_id3() function | ||
481 | eng: "-ID3 Info- " | ||
482 | new: | ||
483 | |||
484 | id: LANG_ID3_SCREEN | ||
485 | desc: in the browse_id3() function | ||
486 | eng: "--Screen-- " | ||
487 | new: | ||
488 | |||
489 | id: LANG_ID3_TITLE | ||
490 | desc: in wps | ||
491 | eng: "[Title]" | ||
492 | new: | ||
493 | |||
494 | id: LANG_ID3_NO_TITLE | ||
495 | desc: in wps when no title is avaible | ||
496 | eng: "<no title>" | ||
497 | new: | ||
498 | |||
499 | id: LANG_ID3_ARTIST | ||
500 | desc: in wps | ||
501 | eng: "[Artist]" | ||
502 | new: | ||
503 | |||
504 | id: LANG_ID3_NO_ARTIST | ||
505 | desc: in wps when no artist is avaible | ||
506 | eng: "<no artist>" | ||
507 | new: | ||
508 | |||
509 | id: LANG_ID3_ALBUM | ||
510 | desc: in wps | ||
511 | eng: "[Album]" | ||
512 | new: | ||
513 | |||
514 | id: LANG_ID3_NO_ALBUM | ||
515 | desc: in wps when no album is avaible | ||
516 | eng: "<no album>" | ||
517 | new: | ||
518 | |||
519 | id: LANG_ID3_TRACKNUM | ||
520 | desc: in wps | ||
521 | eng: "[Tracknum]" | ||
522 | new: | ||
523 | |||
524 | id: LANG_ID3_NO_TRACKNUM | ||
525 | desc: in wps if no track number is avaible | ||
526 | eng: "<no tracknum>" | ||
527 | new: | ||
528 | |||
529 | id: LANG_ID3_LENGHT | ||
530 | desc: in wps | ||
531 | eng: "[Length]" | ||
532 | new: | ||
533 | |||
534 | id: LANG_ID3_PLAYLIST | ||
535 | desc: in wps | ||
536 | eng: "[Playlist]" | ||
537 | new: | ||
538 | |||
539 | id: LANG_ID3_BITRATE | ||
540 | desc: in wps | ||
541 | eng: "[Bitrate]" | ||
542 | new: | ||
543 | |||
544 | id: LANG_ID3_FRECUENCY | ||
545 | desc: in wps | ||
546 | eng: "[Frecuency]" | ||
547 | new: | ||
548 | |||
549 | id: LANG_ID3_PATH | ||
550 | desc: in wps | ||
551 | eng: "[PATH]" | ||
552 | new: | ||
553 | |||
554 | id: LANG_PITCH_UP | ||
555 | desc: in wps | ||
556 | eng: "Pitch up" | ||
557 | new: | ||
558 | |||
559 | id: LANG_PITCH_DOWN | ||
560 | desc: in wps | ||
561 | eng: "Pitch down" | ||
562 | new: | ||
563 | |||
564 | id: LANG_PAUSE | ||
565 | desc: in wps | ||
566 | eng: "Pause" | ||
567 | new: | ||
568 | |||
569 | id: LANG_F2_MODE | ||
570 | desc: in wps F2 pressed | ||
571 | eng: "mode:" | ||
572 | new: | ||
573 | |||
574 | id: LANG_DIR_FILTER | ||
575 | desc: in wps F2 pressed | ||
576 | eng: "Dir filter: %s" | ||
577 | new: | ||
578 | |||
579 | id: LANG_F3_STATUS | ||
580 | desc: in wps F3 pressed | ||
581 | eng: "Status" | ||
582 | new: | ||
583 | |||
584 | id: LANG_F3_SCROLL | ||
585 | desc: in wps F3 pressed | ||
586 | eng: "Scroll" | ||
587 | new: | ||
588 | |||
589 | id: LANG_F3_BAR | ||
590 | desc: in wps F3 pressed | ||
591 | eng: "bar" | ||
592 | new: | ||
593 | |||
594 | id: LANG_END_PLAYLIST_PLAYER | ||
595 | desc: when playlist has finished | ||
596 | eng: "End of list" | ||
597 | new: | ||
598 | |||
599 | id: LANG_END_CONFIRM_PLAYER | ||
600 | desc: when playlist has finished | ||
601 | eng: "<Press ON>" | ||
602 | new: | ||
603 | |||
604 | id: LANG_END_PLAYLIST_RECORDER | ||
605 | desc: when playlist has finished | ||
606 | eng: "<End of song list>" | ||
607 | new: | ||
608 | |||
609 | id: LANG_END_CONFIRM_RECORDER | ||
610 | desc: when playlist has finished | ||
611 | eng: "Press ON" | ||
612 | new: | ||
613 | |||
614 | id: LANG_SNAKE_SCORE | ||
615 | desc: when you die in snake game | ||
616 | eng: "Your score :" | ||
617 | new: | ||
618 | |||
619 | id: LANG_SNAKE_HISCORE | ||
620 | desc: high score in snake game | ||
621 | eng: "High Score: %d" | ||
622 | new: | ||
623 | |||
624 | id: LANG_SNAKE_HISCORE_NEW | ||
625 | desc: new high score in snake game | ||
626 | eng: "New High Score!" | ||
627 | new: | ||
628 | |||
629 | id: LANG_SNAKE_PAUSE | ||
630 | desc: displayed when game is paused | ||
631 | eng: "Game Paused" | ||
632 | new: | ||
633 | |||
634 | id: LANG_SNAKE_RESUME | ||
635 | desc: what to do to resume game | ||
636 | eng: "[Play] to resume" | ||
637 | new: | ||
638 | |||
639 | id: LANG_SNAKE_QUIT | ||
640 | desc: how to quit game | ||
641 | eng: "[Off] to quit" | ||
642 | new: | ||
643 | |||
644 | id: LANG_SNAKE_LEVEL | ||
645 | desc: level of difficulty | ||
646 | eng: "Level - %d" | ||
647 | new: | ||
648 | |||
649 | id: LANG_SNAKE_RANGE | ||
650 | desc: range of levels | ||
651 | eng: "(1 - slow, 9 - fast)" | ||
652 | new: | ||
653 | |||
654 | id: LANG_SNAKE_START | ||
655 | desc: how to start or pause the game | ||
656 | eng: "[Play] to start/pause" | ||
657 | new: | ||
658 | |||
659 | id: LANG_SOKOBAN_LEVEL | ||
660 | desc: must be smaller than 6 characters | ||
661 | eng: "Level" | ||
662 | new: | ||
663 | |||
664 | id: LANG_SOKOBAN_MOVE | ||
665 | desc: must be smaller than 6 characters | ||
666 | eng: "Moves" | ||
667 | new: | ||
668 | |||
669 | id: LANG_SOKOBAN_WIN | ||
670 | desc: displayed when you win | ||
671 | eng: "YOU WIN!!" | ||
672 | new: | ||
673 | |||
674 | id: LANG_SOKOBAN_QUIT | ||
675 | desc: how to quit game | ||
676 | eng: "[Off] to stop" | ||
677 | new: | ||
678 | |||
679 | id: LANG_SOKOBAN_F1 | ||
680 | desc: what does F1 do | ||
681 | eng: "[F1] - level" | ||
682 | new: | ||
683 | |||
684 | id: LANG_SOKOBAN_F2 | ||
685 | desc: what does F2 do | ||
686 | eng: "[F2] same level" | ||
687 | new: | ||
688 | |||
689 | id: LANG_SOKOBAN_F3 | ||
690 | desc: what does F3 do | ||
691 | eng: "[F3] + level" | ||
692 | new: | ||
693 | |||
694 | # Next ids are for Worlmet Game. | ||
695 | # Lenght restrictions for score board strings (LANG_SB_XXX): | ||
696 | # LCD_PROPFONTS: max 43 pixel | ||
697 | # fix font: max 7 characters | ||
698 | |||
699 | id: LANG_WORMLET_LENGTH | ||
700 | desc: wormlet game | ||
701 | eng: "Len:%d" | ||
702 | new: | ||
703 | |||
704 | id: LANG_WORMLET_GROWING | ||
705 | desc: wormlet game | ||
706 | eng: "Growing" | ||
707 | new: | ||
708 | |||
709 | id: LANG_WORMLET_HUNGRY | ||
710 | desc: wormlet game | ||
711 | eng: "Hungry" | ||
712 | new: | ||
713 | |||
714 | id: LANG_WORMLET_WORMED | ||
715 | desc: wormlet game | ||
716 | eng: "Wormed" | ||
717 | new: | ||
718 | |||
719 | id: LANG_WORMLET_ARGH | ||
720 | desc: wormlet game | ||
721 | eng: "Argh" | ||
722 | new: | ||
723 | |||
724 | id: LANG_WORMLET_CRASHED | ||
725 | desc: wormlet game | ||
726 | eng: "Crashed" | ||
727 | new: | ||
728 | |||
729 | id: LANG_WORMLET_HIGHSCORE | ||
730 | desc: wormlet game | ||
731 | eng: "Hs: %d" | ||
732 | new: | ||
733 | |||
734 | # Length restrictions for wormlet config screen strings (LANG_CS_XXX) | ||
735 | # They must fit on the entire screen - preferably with the | ||
736 | # key names aligned right | ||
737 | |||
738 | id: LANG_WORMLET_PLAYERS | ||
739 | desc: wormlet game | ||
740 | eng: "%d Players up/dn" | ||
741 | new: | ||
742 | |||
743 | id: LANG_WORMLET_WORMS | ||
744 | desc: wormlet game | ||
745 | eng: "%d Worms l/r" | ||
746 | new: | ||
747 | |||
748 | id: LANG_WORMLET_REMOTE_CTRL | ||
749 | desc: wormlet game | ||
750 | eng: "Remote control F1" | ||
751 | new: | ||
752 | |||
753 | id: LANG_WORMLET_NO_REM_CTRL | ||
754 | desc: wormlet game | ||
755 | eng: "No rem. control F1" | ||
756 | new: | ||
757 | |||
758 | id: LANG_WORMLET_2_KEY_CTRL | ||
759 | desc: wormlet game | ||
760 | eng: "2 key control F1" | ||
761 | new: | ||
762 | |||
763 | id: LANG_WORMLET_4_KEY_CTRL | ||
764 | desc: wormlet game | ||
765 | eng: "4 key control F1" | ||
766 | new: | ||
767 | |||
768 | id: LANG_WORMLET_NO_CONTROL | ||
769 | desc: wormlet game | ||
770 | eng: "Out of control" | ||
771 | new: | ||
772 | |||
773 | # Wormlet game ids ended | ||
774 | |||
775 | id: LANG_TETRIS_LOSE | ||
776 | desc: tetris game | ||
777 | eng: "You lose!" | ||
778 | new: | ||
779 | |||
780 | id: LANG_TETRIS_LEVEL | ||
781 | desc: tetris game | ||
782 | eng: "0 Rows - Level 0" | ||
783 | new: | ||
diff --git a/apps/main_menu.c b/apps/main_menu.c index 7430671fc0..ad5388ec6f 100644 --- a/apps/main_menu.c +++ b/apps/main_menu.c | |||
@@ -172,19 +172,19 @@ Menu show_info(void) | |||
172 | #endif | 172 | #endif |
173 | 173 | ||
174 | #ifdef HAVE_LCD_CHARCELLS | 174 | #ifdef HAVE_LCD_CHARCELLS |
175 | snprintf(s, sizeof(s), "Batt: %d%%%s", | 175 | snprintf(s, sizeof(s), str(LANG_BATTERY_LEVEL_PLAYER), |
176 | battery_level(), battery_level_safe() ? "" : "!"); | 176 | battery_level(), battery_level_safe() ? "" : "!"); |
177 | lcd_puts(0, 1, s); | 177 | lcd_puts(0, 1, s); |
178 | #else | 178 | #else |
179 | #ifdef HAVE_CHARGE_CTRL | 179 | #ifdef HAVE_CHARGE_CTRL |
180 | if (charger_enabled) | 180 | if (charger_enabled) |
181 | snprintf(s, sizeof(s), "Battery: charging"); | 181 | snprintf(s, sizeof(s), str(LANG_BATTERY_CHARGE)); |
182 | else | 182 | else |
183 | snprintf(s, sizeof(s), "Battery: %d%%%s", | 183 | snprintf(s, sizeof(s), str(LANG_BATTERY_LEVEL_RECORDER), |
184 | battery_level(), battery_level_safe() ? "" : " !!"); | 184 | battery_level(), battery_level_safe() ? "" : " !!"); |
185 | lcd_puts(0, 3, s); | 185 | lcd_puts(0, 3, s); |
186 | #else | 186 | #else |
187 | snprintf(s, sizeof(s), "Battery: %d%%%s", | 187 | snprintf(s, sizeof(s), str(LANG_BATTERY_LEVEL_RECORDER), |
188 | battery_level(), battery_level_safe() ? "" : " !!"); | 188 | battery_level(), battery_level_safe() ? "" : " !!"); |
189 | lcd_puts(0, 3, s); | 189 | lcd_puts(0, 3, s); |
190 | #endif | 190 | #endif |
@@ -224,7 +224,7 @@ Menu main_menu(void) | |||
224 | #ifndef SIMULATOR | 224 | #ifndef SIMULATOR |
225 | { str(LANG_DEBUG), debug_menu }, | 225 | { str(LANG_DEBUG), debug_menu }, |
226 | #else | 226 | #else |
227 | { "USB (sim)", simulate_usb }, | 227 | { str(LANG_USB), simulate_usb }, |
228 | #endif | 228 | #endif |
229 | }; | 229 | }; |
230 | 230 | ||
diff --git a/apps/playlist.c b/apps/playlist.c index 76ce81b51a..b81aed8763 100644 --- a/apps/playlist.c +++ b/apps/playlist.c | |||
@@ -35,6 +35,8 @@ | |||
35 | #include "widgets.h" | 35 | #include "widgets.h" |
36 | #endif | 36 | #endif |
37 | 37 | ||
38 | #include "lang.h" | ||
39 | |||
38 | struct playlist_info playlist; | 40 | struct playlist_info playlist; |
39 | 41 | ||
40 | #define PLAYLIST_BUFFER_SIZE (AVERAGE_FILENAME_LENGTH*MAX_FILES_IN_DIR) | 42 | #define PLAYLIST_BUFFER_SIZE (AVERAGE_FILENAME_LENGTH*MAX_FILES_IN_DIR) |
@@ -209,7 +211,7 @@ int play_list(char *dir, /* "current directory" */ | |||
209 | /* If file is NULL, the list is in RAM */ | 211 | /* If file is NULL, the list is in RAM */ |
210 | if(file) { | 212 | if(file) { |
211 | lcd_clear_display(); | 213 | lcd_clear_display(); |
212 | lcd_puts(0,0,"Loading..."); | 214 | lcd_puts(0,0,str(LANG_PLAYLIST_LOAD)); |
213 | status_draw(); | 215 | status_draw(); |
214 | lcd_update(); | 216 | lcd_update(); |
215 | playlist.in_ram = false; | 217 | playlist.in_ram = false; |
@@ -273,7 +275,7 @@ int play_list(char *dir, /* "current directory" */ | |||
273 | } | 275 | } |
274 | 276 | ||
275 | if(!playlist.in_ram) { | 277 | if(!playlist.in_ram) { |
276 | lcd_puts(0,0,"Playing... "); | 278 | lcd_puts(0,0,str(LANG_PLAYLIST_PLAY)); |
277 | status_draw(); | 279 | status_draw(); |
278 | lcd_update(); | 280 | lcd_update(); |
279 | } | 281 | } |
@@ -350,8 +352,8 @@ void add_indices_to_playlist(void) | |||
350 | close(fd); | 352 | close(fd); |
351 | 353 | ||
352 | lcd_clear_display(); | 354 | lcd_clear_display(); |
353 | lcd_puts(0,0,"Playlist"); | 355 | lcd_puts(0,0,str(LANG_PLAYINDICES_PLAYLIST)); |
354 | lcd_puts(0,1,"buffer full"); | 356 | lcd_puts(0,1,str(LANG_PLAYINDICES_BUFFER)); |
355 | lcd_update(); | 357 | lcd_update(); |
356 | sleep(HZ*2); | 358 | sleep(HZ*2); |
357 | lcd_clear_display(); | 359 | lcd_clear_display(); |
@@ -363,7 +365,8 @@ void add_indices_to_playlist(void) | |||
363 | if(!playlist.in_ram) { | 365 | if(!playlist.in_ram) { |
364 | if ( current_tick >= next_tick ) { | 366 | if ( current_tick >= next_tick ) { |
365 | next_tick = current_tick + HZ; | 367 | next_tick = current_tick + HZ; |
366 | snprintf(line, sizeof line, "%d files", | 368 | snprintf(line, sizeof line, |
369 | str(LANG_PLAYINDICES_AMOUNT), | ||
367 | playlist.amount); | 370 | playlist.amount); |
368 | lcd_puts(0,1,line); | 371 | lcd_puts(0,1,line); |
369 | status_draw(); | 372 | status_draw(); |
@@ -380,7 +383,8 @@ void add_indices_to_playlist(void) | |||
380 | break; | 383 | break; |
381 | } | 384 | } |
382 | if(!playlist.in_ram) { | 385 | if(!playlist.in_ram) { |
383 | snprintf(line, sizeof line, "%d files", playlist.amount); | 386 | snprintf(line, sizeof line, str(LANG_PLAYINDICES_AMOUNT), |
387 | playlist.amount); | ||
384 | lcd_puts(0,1,line); | 388 | lcd_puts(0,1,line); |
385 | status_draw(); | 389 | status_draw(); |
386 | lcd_update(); | 390 | lcd_update(); |
diff --git a/apps/recorder/snake.c b/apps/recorder/snake.c index b0e42d8fd0..8c14527bd5 100644 --- a/apps/recorder/snake.c +++ b/apps/recorder/snake.c | |||
@@ -20,7 +20,7 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left; | |||
20 | #include "button.h" | 20 | #include "button.h" |
21 | #include "kernel.h" | 21 | #include "kernel.h" |
22 | #include "menu.h" | 22 | #include "menu.h" |
23 | 23 | #include "lang.h" | |
24 | 24 | ||
25 | int board[28][16],snakelength; | 25 | int board[28][16],snakelength; |
26 | unsigned int score,hiscore=0; | 26 | unsigned int score,hiscore=0; |
@@ -35,14 +35,14 @@ void die (void) { | |||
35 | lcd_clear_display(); | 35 | lcd_clear_display(); |
36 | snprintf(pscore,sizeof(pscore),"%d",score); | 36 | snprintf(pscore,sizeof(pscore),"%d",score); |
37 | lcd_putsxy(3,12,"oops...",0); | 37 | lcd_putsxy(3,12,"oops...",0); |
38 | lcd_putsxy(3,22,"Your Score :",0); | 38 | lcd_putsxy(3,22,str(LANG_SNAKE_SCORE),0); |
39 | lcd_putsxy(3,32, pscore,0); | 39 | lcd_putsxy(3,32, pscore,0); |
40 | if (score>hiscore) { | 40 | if (score>hiscore) { |
41 | hiscore=score; | 41 | hiscore=score; |
42 | lcd_putsxy(3,42,"New High Score!",0); | 42 | lcd_putsxy(3,42,str(LANG_SNAKE_HISCORE_NEW),0); |
43 | } | 43 | } |
44 | else { | 44 | else { |
45 | snprintf(hscore,sizeof(hscore),"High Score %d",hiscore); | 45 | snprintf(hscore,sizeof(hscore),str(LANG_SNAKE_HISCORE),hiscore); |
46 | lcd_putsxy(3,42,hscore,0); | 46 | lcd_putsxy(3,42,hscore,0); |
47 | } | 47 | } |
48 | lcd_update(); | 48 | lcd_update(); |
@@ -141,9 +141,9 @@ void redraw (void) { | |||
141 | 141 | ||
142 | void game_pause (void) { | 142 | void game_pause (void) { |
143 | lcd_clear_display(); | 143 | lcd_clear_display(); |
144 | lcd_putsxy(3,12,"Game Paused",0); | 144 | lcd_putsxy(3,12,str(LANG_SNAKE_PAUSE),0); |
145 | lcd_putsxy(3,22,"[play] to resume",0); | 145 | lcd_putsxy(3,22,str(LANG_SNAKE_RESUME),0); |
146 | lcd_putsxy(3,32,"[off] to quit",0); | 146 | lcd_putsxy(3,32,str(LANG_SNAKE_QUIT),0); |
147 | lcd_update(); | 147 | lcd_update(); |
148 | while (1) { | 148 | while (1) { |
149 | switch (button_get(true)) { | 149 | switch (button_get(true)) { |
@@ -221,12 +221,12 @@ void game_init(void) { | |||
221 | 221 | ||
222 | 222 | ||
223 | lcd_clear_display(); | 223 | lcd_clear_display(); |
224 | snprintf(plevel,sizeof(plevel),"Level - %d",level); | 224 | snprintf(plevel,sizeof(plevel),str(LANG_SNAKE_LEVEL),level); |
225 | snprintf(phscore,sizeof(phscore),"High Score - %d",hiscore); | 225 | snprintf(phscore,sizeof(phscore),str(LANG_SNAKE_HISCORE),hiscore); |
226 | lcd_putsxy(3,2, plevel,0); | 226 | lcd_putsxy(3,2, plevel,0); |
227 | lcd_putsxy(3,12, "(1 - slow, 9 - fast)",0); | 227 | lcd_putsxy(3,12, str(LANG_SNAKE_RANGE),0); |
228 | lcd_putsxy(3,22, "[off] to quit",0); | 228 | lcd_putsxy(3,22, str(LANG_SNAKE_QUIT),0); |
229 | lcd_putsxy(3,32, "[play] to start/pause",0); | 229 | lcd_putsxy(3,32, str(LANG_SNAKE_START),0); |
230 | lcd_putsxy(3,42, phscore,0); | 230 | lcd_putsxy(3,42, phscore,0); |
231 | lcd_update(); | 231 | lcd_update(); |
232 | 232 | ||
@@ -250,7 +250,7 @@ void game_init(void) { | |||
250 | return; | 250 | return; |
251 | break; | 251 | break; |
252 | } | 252 | } |
253 | snprintf(plevel,sizeof(plevel),"Level - %d",level); | 253 | snprintf(plevel,sizeof(plevel),str(LANG_SNAKE_LEVEL),level); |
254 | lcd_putsxy(3,2, plevel,0); | 254 | lcd_putsxy(3,2, plevel,0); |
255 | lcd_update(); | 255 | lcd_update(); |
256 | } | 256 | } |
diff --git a/apps/recorder/sokoban.c b/apps/recorder/sokoban.c index 078153077e..bec556054a 100644 --- a/apps/recorder/sokoban.c +++ b/apps/recorder/sokoban.c | |||
@@ -32,7 +32,7 @@ | |||
32 | #include <stdio.h> | 32 | #include <stdio.h> |
33 | #endif | 33 | #endif |
34 | #include <string.h> | 34 | #include <string.h> |
35 | 35 | #include "lang.h" | |
36 | #define SOKOBAN_TITLE "Sokoban" | 36 | #define SOKOBAN_TITLE "Sokoban" |
37 | #define SOKOBAN_TITLE_FONT 2 | 37 | #define SOKOBAN_TITLE_FONT 2 |
38 | #define NUM_LEVELS sizeof(levels)/320 | 38 | #define NUM_LEVELS sizeof(levels)/320 |
@@ -1847,8 +1847,8 @@ void update_screen(void) { | |||
1847 | 1847 | ||
1848 | lcd_drawrect (80,0,32,32); | 1848 | lcd_drawrect (80,0,32,32); |
1849 | lcd_drawrect (80,32,32,64); | 1849 | lcd_drawrect (80,32,32,64); |
1850 | lcd_putsxy (81, 10, "Level", 0); | 1850 | lcd_putsxy (81, 10, str(LANG_SOKOBAN_LEVEL), 0); |
1851 | lcd_putsxy (81, 42, "Moves", 0); | 1851 | lcd_putsxy (81, 42, str(LANG_SOKOBAN_MOVE), 0); |
1852 | /* print out the screen */ | 1852 | /* print out the screen */ |
1853 | lcd_update(); | 1853 | lcd_update(); |
1854 | } | 1854 | } |
@@ -2187,7 +2187,7 @@ void sokoban_loop(void) { | |||
2187 | if (current_level == NUM_LEVELS) { | 2187 | if (current_level == NUM_LEVELS) { |
2188 | for(ii=0; ii<30 ; ii++) { | 2188 | for(ii=0; ii<30 ; ii++) { |
2189 | lcd_clear_display(); | 2189 | lcd_clear_display(); |
2190 | lcd_putsxy(10, 20, "YOU WIN!!", 2); | 2190 | lcd_putsxy(10, 20, str(LANG_SOKOBAN_WIN), 2); |
2191 | lcd_update(); | 2191 | lcd_update(); |
2192 | lcd_invertrect(0,0,111,63); | 2192 | lcd_invertrect(0,0,111,63); |
2193 | lcd_update(); | 2193 | lcd_update(); |
@@ -2232,10 +2232,10 @@ Menu sokoban(void) | |||
2232 | 2232 | ||
2233 | lcd_clear_display(); | 2233 | lcd_clear_display(); |
2234 | 2234 | ||
2235 | lcd_putsxy( 3,12, "[Off] to stop", 0); | 2235 | lcd_putsxy( 3,12, str(LANG_SOKOBAN_QUIT), 0); |
2236 | lcd_putsxy( 3,22, "[F1] - level",0); | 2236 | lcd_putsxy( 3,22, str(LANG_SOKOBAN_F1),0); |
2237 | lcd_putsxy( 3,32, "[F2] same level",0); | 2237 | lcd_putsxy( 3,32, str(LANG_SOKOBAN_F2),0); |
2238 | lcd_putsxy( 3,42, "[F3] + level",0); | 2238 | lcd_putsxy( 3,42, str(LANG_SOKOBAN_F3),0); |
2239 | 2239 | ||
2240 | lcd_update(); | 2240 | lcd_update(); |
2241 | sleep(HZ*2); | 2241 | sleep(HZ*2); |
diff --git a/apps/recorder/tetris.c b/apps/recorder/tetris.c index ba7ff546f7..2455f269b3 100644 --- a/apps/recorder/tetris.c +++ b/apps/recorder/tetris.c | |||
@@ -35,7 +35,7 @@ | |||
35 | #include <stdio.h> | 35 | #include <stdio.h> |
36 | #endif | 36 | #endif |
37 | #include "sprintf.h" | 37 | #include "sprintf.h" |
38 | 38 | #include "lang.h" | |
39 | #define TETRIS_TITLE "Tetris!" | 39 | #define TETRIS_TITLE "Tetris!" |
40 | #define TETRIS_TITLE_FONT 1 | 40 | #define TETRIS_TITLE_FONT 1 |
41 | #define TETRIS_TITLE_XLOC 43 | 41 | #define TETRIS_TITLE_XLOC 43 |
@@ -366,7 +366,7 @@ void game_loop(void) | |||
366 | if(gameover()) | 366 | if(gameover()) |
367 | { | 367 | { |
368 | lcd_clearrect(0, 52, LCD_WIDTH, LCD_HEIGHT - 52); | 368 | lcd_clearrect(0, 52, LCD_WIDTH, LCD_HEIGHT - 52); |
369 | lcd_putsxy (2, 52, "You lose!", 0); | 369 | lcd_putsxy (2, 52, str(LANG_TETRIS_LOSE), 0); |
370 | lcd_update(); | 370 | lcd_update(); |
371 | sleep(HZ * 3); | 371 | sleep(HZ * 3); |
372 | return; | 372 | return; |
@@ -396,7 +396,7 @@ Menu tetris(void) | |||
396 | init_tetris(); | 396 | init_tetris(); |
397 | 397 | ||
398 | draw_frame(start_x, start_x + max_x - 1, start_y - 1, start_y + max_y); | 398 | draw_frame(start_x, start_x + max_x - 1, start_y - 1, start_y + max_y); |
399 | lcd_putsxy (2, 42, "0 Rows - Level 0", 0); | 399 | lcd_putsxy (2, 42, str(LANG_TETRIS_LEVEL), 0); |
400 | lcd_update(); | 400 | lcd_update(); |
401 | 401 | ||
402 | next_b = t_rand(blocks); | 402 | next_b = t_rand(blocks); |
diff --git a/apps/recorder/wormlet.c b/apps/recorder/wormlet.c index 71a356134f..acebbad8bf 100644 --- a/apps/recorder/wormlet.c +++ b/apps/recorder/wormlet.c | |||
@@ -33,36 +33,7 @@ | |||
33 | #include "kernel.h" | 33 | #include "kernel.h" |
34 | #include "menu.h" | 34 | #include "menu.h" |
35 | #include "rtc.h" | 35 | #include "rtc.h" |
36 | 36 | #include "lang.h" | |
37 | /* I extracted string constants for output to | ||
38 | simplify inernationalization - once we have | ||
39 | decided how to do that exactly. Even though | ||
40 | there are other strings in the code they don't | ||
41 | have to be internationalized because they are | ||
42 | only for debugging purposes and are only included | ||
43 | if DEBUG_WORMLET is defined anyway.*/ | ||
44 | |||
45 | /* Length restriction for score board strings (LANG_SB_XXX): | ||
46 | LCD_PROPFONTS: max 43 pixel | ||
47 | fix font: max 7 characters*/ | ||
48 | #define LANG_SB_LENGTH "Len:%d" | ||
49 | #define LANG_SB_GROWING "Growing" | ||
50 | #define LANG_SB_HUNGRY "Hungry" | ||
51 | #define LANG_SB_WORMED "Wormed" | ||
52 | #define LANG_SB_ARGH "Argh" | ||
53 | #define LANG_SB_CRASHED "Crashed" | ||
54 | #define LANG_SB_HIGHSCORE "Hs: %d" | ||
55 | |||
56 | /* Length restriction for config screen strings (LANG_CS_XXX): | ||
57 | The must fit on the entire screen - preferably | ||
58 | with the key names aligned right. */ | ||
59 | #define LANG_CS_PLAYERS "%d Players up/dn" | ||
60 | #define LANG_CS_WORMS "%d Worms l/r" | ||
61 | #define LANG_CS_REMOTE_CTRL "Remote control F1" | ||
62 | #define LANG_CS_NO_REM_CTRL "No rem. control F1" | ||
63 | #define LANG_CS_2_KEY_CTRL "2 key control F1" | ||
64 | #define LANG_CS_4_KEY_CTRL "4 key control F1" | ||
65 | #define LANG_CS_NO_CONTROL "Out of control" | ||
66 | 37 | ||
67 | /* size of the field the worm lives in */ | 38 | /* size of the field the worm lives in */ |
68 | #define FIELD_RECT_X 1 | 39 | #define FIELD_RECT_X 1 |
@@ -1208,37 +1179,37 @@ static void score_board(void) | |||
1208 | } | 1179 | } |
1209 | 1180 | ||
1210 | /* length */ | 1181 | /* length */ |
1211 | snprintf(buf, sizeof (buf), LANG_SB_LENGTH, score); | 1182 | snprintf(buf, sizeof (buf),str(LANG_WORMLET_LENGTH), score); |
1212 | 1183 | ||
1213 | /* worm state */ | 1184 | /* worm state */ |
1214 | switch (check_collision(&worms[i])) { | 1185 | switch (check_collision(&worms[i])) { |
1215 | case COLLISION_NONE: | 1186 | case COLLISION_NONE: |
1216 | if (worms[i].growing > 0){ | 1187 | if (worms[i].growing > 0){ |
1217 | snprintf(buf2, sizeof(buf2), LANG_SB_GROWING); | 1188 | snprintf(buf2, sizeof(buf2), str(LANG_WORMLET_GROWING)); |
1218 | } | 1189 | } |
1219 | else { | 1190 | else { |
1220 | if (worms[i].alive) { | 1191 | if (worms[i].alive) { |
1221 | snprintf(buf2, sizeof(buf2), LANG_SB_HUNGRY); | 1192 | snprintf(buf2, sizeof(buf2), str(LANG_WORMLET_HUNGRY)); |
1222 | } else { | 1193 | } else { |
1223 | snprintf(buf2, sizeof(buf2), LANG_SB_WORMED); | 1194 | snprintf(buf2, sizeof(buf2), str(LANG_WORMLET_WORMED)); |
1224 | } | 1195 | } |
1225 | } | 1196 | } |
1226 | break; | 1197 | break; |
1227 | 1198 | ||
1228 | case COLLISION_WORM: | 1199 | case COLLISION_WORM: |
1229 | snprintf(buf2, sizeof(buf2), LANG_SB_WORMED); | 1200 | snprintf(buf2, sizeof(buf2), str(LANG_WORMLET_WORMED)); |
1230 | break; | 1201 | break; |
1231 | 1202 | ||
1232 | case COLLISION_FOOD: | 1203 | case COLLISION_FOOD: |
1233 | snprintf(buf2, sizeof(buf2), LANG_SB_GROWING); | 1204 | snprintf(buf2, sizeof(buf2), str(LANG_WORMLET_GROWING)); |
1234 | break; | 1205 | break; |
1235 | 1206 | ||
1236 | case COLLISION_ARGH: | 1207 | case COLLISION_ARGH: |
1237 | snprintf(buf2, sizeof(buf2), LANG_SB_ARGH); | 1208 | snprintf(buf2, sizeof(buf2), str(LANG_WORMLET_ARGH)); |
1238 | break; | 1209 | break; |
1239 | 1210 | ||
1240 | case COLLISION_FIELD: | 1211 | case COLLISION_FIELD: |
1241 | snprintf(buf2, sizeof(buf2), LANG_SB_CRASHED); | 1212 | snprintf(buf2, sizeof(buf2), str(LANG_WORMLET_CRASHED)); |
1242 | break; | 1213 | break; |
1243 | } | 1214 | } |
1244 | lcd_putsxy(FIELD_RECT_WIDTH + 3, y , buf, 0); | 1215 | lcd_putsxy(FIELD_RECT_WIDTH + 3, y , buf, 0); |
@@ -1250,7 +1221,7 @@ static void score_board(void) | |||
1250 | } | 1221 | } |
1251 | y += 19; | 1222 | y += 19; |
1252 | } | 1223 | } |
1253 | snprintf(buf , sizeof(buf), LANG_SB_HIGHSCORE, highscore); | 1224 | snprintf(buf , sizeof(buf), str(LANG_WORMLET_HIGHSCORE), highscore); |
1254 | #ifndef DEBUG_WORMLET | 1225 | #ifndef DEBUG_WORMLET |
1255 | lcd_putsxy(FIELD_RECT_WIDTH + 3, LCD_HEIGHT - 8, buf, 0); | 1226 | lcd_putsxy(FIELD_RECT_WIDTH + 3, LCD_HEIGHT - 8, buf, 0); |
1256 | #else | 1227 | #else |
@@ -1937,29 +1908,29 @@ Menu wormlet(void) | |||
1937 | lcd_clear_display(); | 1908 | lcd_clear_display(); |
1938 | 1909 | ||
1939 | /* first line players */ | 1910 | /* first line players */ |
1940 | snprintf(buf, sizeof buf, LANG_CS_PLAYERS, players); | 1911 | snprintf(buf, sizeof buf, str(LANG_WORMLET_PLAYERS), players); |
1941 | lcd_puts(0, 0, buf); | 1912 | lcd_puts(0, 0, buf); |
1942 | 1913 | ||
1943 | /* second line worms */ | 1914 | /* second line worms */ |
1944 | snprintf(buf, sizeof buf, LANG_CS_WORMS, worm_count); | 1915 | snprintf(buf, sizeof buf, str(LANG_WORMLET_WORMS), worm_count); |
1945 | lcd_puts(0, 1, buf); | 1916 | lcd_puts(0, 1, buf); |
1946 | 1917 | ||
1947 | /* third line control */ | 1918 | /* third line control */ |
1948 | if (players > 1) { | 1919 | if (players > 1) { |
1949 | if (use_remote) { | 1920 | if (use_remote) { |
1950 | snprintf(buf, sizeof buf, LANG_CS_REMOTE_CTRL); | 1921 | snprintf(buf, sizeof buf, str(LANG_WORMLET_REMOTE_CTRL)); |
1951 | } else { | 1922 | } else { |
1952 | snprintf(buf, sizeof buf, LANG_CS_NO_REM_CTRL); | 1923 | snprintf(buf, sizeof buf, str(LANG_WORMLET_NO_REM_CTRL)); |
1953 | } | 1924 | } |
1954 | } else { | 1925 | } else { |
1955 | if (players > 0) { | 1926 | if (players > 0) { |
1956 | if (use_remote) { | 1927 | if (use_remote) { |
1957 | snprintf(buf, sizeof buf, LANG_CS_2_KEY_CTRL); | 1928 | snprintf(buf, sizeof buf, str(LANG_WORMLET_2_KEY_CTRL)); |
1958 | } else { | 1929 | } else { |
1959 | snprintf(buf, sizeof buf, LANG_CS_4_KEY_CTRL); | 1930 | snprintf(buf, sizeof buf, str(LANG_WORMLET_4_KEY_CTRL)); |
1960 | } | 1931 | } |
1961 | } else { | 1932 | } else { |
1962 | snprintf(buf, sizeof buf, LANG_CS_NO_CONTROL); | 1933 | snprintf(buf, sizeof buf, str(LANG_WORMLET_NO_CONTROL)); |
1963 | } | 1934 | } |
1964 | } | 1935 | } |
1965 | lcd_puts(0, 2, buf); | 1936 | lcd_puts(0, 2, buf); |
diff --git a/apps/settings.c b/apps/settings.c index 76b0cc5088..3bc39ed6d2 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -43,6 +43,8 @@ | |||
43 | #include "font.h" | 43 | #include "font.h" |
44 | #endif | 44 | #endif |
45 | 45 | ||
46 | #include "lang.h" | ||
47 | |||
46 | struct user_settings global_settings; | 48 | struct user_settings global_settings; |
47 | char rockboxdir[] = ROCKBOX_DIR; /* config/font/data file directory */ | 49 | char rockboxdir[] = ROCKBOX_DIR; /* config/font/data file directory */ |
48 | 50 | ||
@@ -304,11 +306,11 @@ int settings_save( void ) | |||
304 | { | 306 | { |
305 | lcd_clear_display(); | 307 | lcd_clear_display(); |
306 | #ifdef HAVE_LCD_CHARCELLS | 308 | #ifdef HAVE_LCD_CHARCELLS |
307 | lcd_puts(0, 0, "Save failed"); | 309 | lcd_puts(0, 0, str(LANG_SETTINGS_SAVE_PLAYER)); |
308 | lcd_puts(0, 1, "Batt. low?"); | 310 | lcd_puts(0, 1, str(LANG_SETTINGS_BATTERY_PLAYER)); |
309 | #else | 311 | #else |
310 | lcd_puts(4, 2, "Save failed"); | 312 | lcd_puts(4, 2, str(LANG_SETTINGS_SAVE_RECORDER)); |
311 | lcd_puts(2, 4, "Is battery low?"); | 313 | lcd_puts(2, 4, str(LANG_SETTINGS_BATTERY_RECORDER)); |
312 | lcd_update(); | 314 | lcd_update(); |
313 | #endif | 315 | #endif |
314 | sleep(HZ*2); | 316 | sleep(HZ*2); |
@@ -944,8 +946,8 @@ void set_time(char* string, int timedate[]) | |||
944 | cursor[cursorpos][INDEX_WIDTH], | 946 | cursor[cursorpos][INDEX_WIDTH], |
945 | line_height); | 947 | line_height); |
946 | 948 | ||
947 | lcd_puts(0, 4, "ON to set"); | 949 | lcd_puts(0, 4, str(LANG_TIME_SET)); |
948 | lcd_puts(0, 5, "OFF to revert"); | 950 | lcd_puts(0, 5, str(LANG_TIME_REVERT)); |
949 | #ifdef HAVE_LCD_BITMAP | 951 | #ifdef HAVE_LCD_BITMAP |
950 | status_draw(); | 952 | status_draw(); |
951 | #endif | 953 | #endif |
diff --git a/apps/settings_menu.c b/apps/settings_menu.c index d40263cd00..678eda437e 100644 --- a/apps/settings_menu.c +++ b/apps/settings_menu.c | |||
@@ -36,17 +36,18 @@ | |||
36 | #include "powermgmt.h" | 36 | #include "powermgmt.h" |
37 | #include "rtc.h" | 37 | #include "rtc.h" |
38 | #include "ata.h" | 38 | #include "ata.h" |
39 | #include "lang.h" | ||
39 | 40 | ||
40 | static Menu show_hidden_files(void) | 41 | static Menu show_hidden_files(void) |
41 | { | 42 | { |
42 | set_bool_options( "Hidden Files", &global_settings.show_hidden_files, | 43 | set_bool_options( str(LANG_HIDDEN), &global_settings.show_hidden_files, |
43 | "show", "hide" ); | 44 | str(LANG_HIDDEN_SHOW), str(LANG_HIDDEN_HIDE) ); |
44 | return MENU_OK; | 45 | return MENU_OK; |
45 | } | 46 | } |
46 | 47 | ||
47 | static Menu contrast(void) | 48 | static Menu contrast(void) |
48 | { | 49 | { |
49 | set_int( "Contrast", "", &global_settings.contrast, | 50 | set_int( str(LANG_CONTRAST), "", &global_settings.contrast, |
50 | lcd_set_contrast, 1, 0, MAX_CONTRAST_SETTING ); | 51 | lcd_set_contrast, 1, 0, MAX_CONTRAST_SETTING ); |
51 | return MENU_OK; | 52 | return MENU_OK; |
52 | } | 53 | } |
@@ -54,50 +55,53 @@ static Menu contrast(void) | |||
54 | #ifndef HAVE_RECORDER_KEYPAD | 55 | #ifndef HAVE_RECORDER_KEYPAD |
55 | static Menu shuffle(void) | 56 | static Menu shuffle(void) |
56 | { | 57 | { |
57 | set_bool( "Shuffle", &global_settings.playlist_shuffle ); | 58 | set_bool( str(LANG_SHUFFLE), &global_settings.playlist_shuffle ); |
58 | return MENU_OK; | 59 | return MENU_OK; |
59 | } | 60 | } |
60 | #endif | 61 | #endif |
61 | 62 | ||
62 | static Menu play_selected(void) | 63 | static Menu play_selected(void) |
63 | { | 64 | { |
64 | set_bool( "Play Selected", &global_settings.play_selected ); | 65 | set_bool( str(LANG_PLAY_SELECTED), &global_settings.play_selected ); |
65 | return MENU_OK; | 66 | return MENU_OK; |
66 | } | 67 | } |
67 | 68 | ||
68 | static Menu mp3_filter(void) | 69 | static Menu mp3_filter(void) |
69 | { | 70 | { |
70 | set_bool( "Music Filter", &global_settings.mp3filter ); | 71 | set_bool( str(LANG_MP3FILTER), &global_settings.mp3filter ); |
71 | return MENU_OK; | 72 | return MENU_OK; |
72 | } | 73 | } |
73 | 74 | ||
74 | static Menu sort_case(void) | 75 | static Menu sort_case(void) |
75 | { | 76 | { |
76 | set_bool( "Sort Case Sensitive", &global_settings.sort_case ); | 77 | set_bool( str(LANG_SORT_CASE), &global_settings.sort_case ); |
77 | return MENU_OK; | 78 | return MENU_OK; |
78 | } | 79 | } |
79 | 80 | ||
80 | static Menu resume(void) | 81 | static Menu resume(void) |
81 | { | 82 | { |
82 | char* names[] = { "off", "ask", "on" }; | 83 | char* names[] = { str(LANG_OFF), |
83 | set_option( "Resume", &global_settings.resume, names, 3, NULL ); | 84 | str(LANG_RESUME_SETTING_ASK), |
85 | str(LANG_ON) }; | ||
86 | set_option( str(LANG_RESUME), &global_settings.resume, names, 3, NULL ); | ||
84 | return MENU_OK; | 87 | return MENU_OK; |
85 | } | 88 | } |
86 | 89 | ||
87 | static Menu backlight_timer(void) | 90 | static Menu backlight_timer(void) |
88 | { | 91 | { |
89 | char* names[] = { "off", "on ", | 92 | char* names[] = { str(LANG_OFF), str(LANG_ON), |
90 | "1s ", "2s ", "3s ", "4s ", "5s ", | 93 | "1s ", "2s ", "3s ", "4s ", "5s ", |
91 | "6s ", "7s ", "8s ", "9s ", "10s", | 94 | "6s ", "7s ", "8s ", "9s ", "10s", |
92 | "15s", "20s", "25s", "30s", "45s", | 95 | "15s", "20s", "25s", "30s", "45s", |
93 | "60s", "90s"}; | 96 | "60s", "90s"}; |
94 | set_option("Backlight", &global_settings.backlight, names, 19, backlight_time ); | 97 | set_option(str(LANG_BACKLIGHT), &global_settings.backlight, names, 19, |
98 | backlight_time ); | ||
95 | return MENU_OK; | 99 | return MENU_OK; |
96 | } | 100 | } |
97 | 101 | ||
98 | static Menu scroll_speed(void) | 102 | static Menu scroll_speed(void) |
99 | { | 103 | { |
100 | set_int("Scroll Speed Setting Example", "", &global_settings.scroll_speed, | 104 | set_int(str(LANG_SCROLL), "", &global_settings.scroll_speed, |
101 | &lcd_scroll_speed, 1, 1, 30 ); | 105 | &lcd_scroll_speed, 1, 1, 30 ); |
102 | return MENU_OK; | 106 | return MENU_OK; |
103 | } | 107 | } |
@@ -105,7 +109,7 @@ static Menu scroll_speed(void) | |||
105 | #ifdef HAVE_CHARGE_CTRL | 109 | #ifdef HAVE_CHARGE_CTRL |
106 | static Menu deep_discharge(void) | 110 | static Menu deep_discharge(void) |
107 | { | 111 | { |
108 | set_bool( "Deep Discharge", &global_settings.discharge ); | 112 | set_bool( str(LANG_DISCHARGE), &global_settings.discharge ); |
109 | charge_restart_level = global_settings.discharge ? | 113 | charge_restart_level = global_settings.discharge ? |
110 | CHARGE_RESTART_LO : CHARGE_RESTART_HI; | 114 | CHARGE_RESTART_LO : CHARGE_RESTART_HI; |
111 | return MENU_OK; | 115 | return MENU_OK; |
@@ -139,7 +143,7 @@ static Menu timedate_set(void) | |||
139 | timedate[5] = ((timedate[5] & 0x30) >> 4) * 10 + (timedate[5] & 0x0f); | 143 | timedate[5] = ((timedate[5] & 0x30) >> 4) * 10 + (timedate[5] & 0x0f); |
140 | 144 | ||
141 | 145 | ||
142 | set_time("Set time/date",timedate); | 146 | set_time(str(LANG_TIME),timedate); |
143 | 147 | ||
144 | if(timedate[0] != -1) { | 148 | if(timedate[0] != -1) { |
145 | /* hour */ | 149 | /* hour */ |
@@ -155,14 +159,14 @@ static Menu timedate_set(void) | |||
155 | /* day */ | 159 | /* day */ |
156 | timedate[5] = ((timedate[5]/10) << 4 | timedate[5]%10) & 0x3f; | 160 | timedate[5] = ((timedate[5]/10) << 4 | timedate[5]%10) & 0x3f; |
157 | 161 | ||
158 | rtc_write(0x03, timedate[0] | (rtc_read(0x03) & 0xc0)); /* hour */ | 162 | rtc_write(0x03, timedate[0] | (rtc_read(0x03) & 0xc0)); /* hour */ |
159 | rtc_write(0x02, timedate[1] | (rtc_read(0x02) & 0x80)); /* minute */ | 163 | rtc_write(0x02, timedate[1] | (rtc_read(0x02) & 0x80)); /* minute */ |
160 | rtc_write(0x01, timedate[2] | (rtc_read(0x01) & 0x80)); /* second */ | 164 | rtc_write(0x01, timedate[2] | (rtc_read(0x01) & 0x80)); /* second */ |
161 | rtc_write(0x07, timedate[3]); /* year */ | 165 | rtc_write(0x07, timedate[3]); /* year */ |
162 | rtc_write(0x06, timedate[4] | (rtc_read(0x06) & 0xe0)); /* month */ | 166 | rtc_write(0x06, timedate[4] | (rtc_read(0x06) & 0xe0)); /* month */ |
163 | rtc_write(0x05, timedate[5] | (rtc_read(0x05) & 0xc0)); /* day */ | 167 | rtc_write(0x05, timedate[5] | (rtc_read(0x05) & 0xc0)); /* day */ |
164 | rtc_write(0x04, timedate[6] | (rtc_read(0x04) & 0xf8)); /* dayofweek */ | 168 | rtc_write(0x04, timedate[6] | (rtc_read(0x04) & 0xf8)); /* dayofweek */ |
165 | rtc_write(0x00, 0x00); /* 0.1 + 0.01 seconds */ | 169 | rtc_write(0x00, 0x00); /* 0.1 + 0.01 seconds */ |
166 | } | 170 | } |
167 | return MENU_OK; | 171 | return MENU_OK; |
168 | } | 172 | } |
@@ -170,7 +174,7 @@ static Menu timedate_set(void) | |||
170 | 174 | ||
171 | static Menu spindown(void) | 175 | static Menu spindown(void) |
172 | { | 176 | { |
173 | set_int("Disk Spindown", "s", &global_settings.disk_spindown, | 177 | set_int(str(LANG_SPINDOWN), "s", &global_settings.disk_spindown, |
174 | ata_spindown, 1, 3, 254 ); | 178 | ata_spindown, 1, 3, 254 ); |
175 | return MENU_OK; | 179 | return MENU_OK; |
176 | } | 180 | } |
@@ -181,25 +185,25 @@ static Menu ff_rewind_min_step(void) | |||
181 | "5s", "6s", "8s", "10s", | 185 | "5s", "6s", "8s", "10s", |
182 | "15s", "20s", "25s", "30s", | 186 | "15s", "20s", "25s", "30s", |
183 | "45s", "60s" }; | 187 | "45s", "60s" }; |
184 | set_option("FF/RW Min Step", &global_settings.ff_rewind_min_step, | 188 | set_option(str(LANG_FFRW_STEP), &global_settings.ff_rewind_min_step, |
185 | names, 14, NULL ); | 189 | names, 14, NULL ); |
186 | return MENU_OK; | 190 | return MENU_OK; |
187 | } | 191 | } |
188 | 192 | ||
189 | static Menu ff_rewind_accel(void) | 193 | static Menu ff_rewind_accel(void) |
190 | { | 194 | { |
191 | char* names[] = { "off", "2x/1s", "2x/2s", "2x/3s", | 195 | char* names[] = { str(LANG_OFF), "2x/1s", "2x/2s", "2x/3s", |
192 | "2x/4s", "2x/5s", "2x/6s", "2x/7s", | 196 | "2x/4s", "2x/5s", "2x/6s", "2x/7s", |
193 | "2x/8s", "2x/9s", "2x/10s", "2x/11s", | 197 | "2x/8s", "2x/9s", "2x/10s", "2x/11s", |
194 | "2x/12s", "2x/13s", "2x/14s", "2x/15s", }; | 198 | "2x/12s", "2x/13s", "2x/14s", "2x/15s", }; |
195 | set_option("FF/RW Accel", &global_settings.ff_rewind_accel, | 199 | set_option(str(LANG_FFRW_ACCEL), &global_settings.ff_rewind_accel, |
196 | names, 16, NULL ); | 200 | names, 16, NULL ); |
197 | return MENU_OK; | 201 | return MENU_OK; |
198 | } | 202 | } |
199 | 203 | ||
200 | static Menu browse_current(void) | 204 | static Menu browse_current(void) |
201 | { | 205 | { |
202 | set_bool( "Follow Playlist", &global_settings.browse_current ); | 206 | set_bool( str(LANG_FOLLOW), &global_settings.browse_current ); |
203 | return MENU_OK; | 207 | return MENU_OK; |
204 | } | 208 | } |
205 | 209 | ||
@@ -210,13 +214,14 @@ Menu playback_settings_menu(void) | |||
210 | 214 | ||
211 | struct menu_items items[] = { | 215 | struct menu_items items[] = { |
212 | #ifndef HAVE_RECORDER_KEYPAD | 216 | #ifndef HAVE_RECORDER_KEYPAD |
213 | { "Shuffle", shuffle }, | 217 | { str(LANG_SHUFFLE), shuffle }, |
214 | #endif | 218 | #endif |
215 | { "Play Selected", play_selected }, | 219 | { str(LANG_PLAY_SELECTED), play_selected }, |
216 | { "Resume", resume }, | 220 | { str(LANG_RESUME), resume }, |
217 | { "FF/RW Min Step", ff_rewind_min_step }, | 221 | { str(LANG_FFRW_STEP), ff_rewind_min_step }, |
218 | { "FF/RW Accel", ff_rewind_accel }, | 222 | { str(LANG_FFRW_ACCEL), ff_rewind_accel }, |
219 | }; | 223 | }; |
224 | |||
220 | bool old_shuffle = global_settings.playlist_shuffle; | 225 | bool old_shuffle = global_settings.playlist_shuffle; |
221 | 226 | ||
222 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | 227 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); |
@@ -243,26 +248,26 @@ static Menu reset_settings(void) | |||
243 | 248 | ||
244 | lcd_clear_display(); | 249 | lcd_clear_display(); |
245 | #ifdef HAVE_LCD_CHARCELLS | 250 | #ifdef HAVE_LCD_CHARCELLS |
246 | lcd_puts(0,0,"Really?"); | 251 | lcd_puts(0,0,str(LANG_RESET_ASK_PLAYER)); |
247 | lcd_puts(0,1,"Play/Stop"); | 252 | lcd_puts(0,1,str(LANG_RESET_CONFIRM_PLAYER)); |
248 | #else | 253 | #else |
249 | lcd_puts(0,0,"Are you sure?"); | 254 | lcd_puts(0,0,str(LANG_RESET_ASK_RECORDER)); |
250 | lcd_puts(0,1,"Play = Yes"); | 255 | lcd_puts(0,1,str(LANG_RESET_CONFIRM_RECORDER)); |
251 | lcd_puts(0,2,"Any Other = No"); | 256 | lcd_puts(0,2,str(LANG_RESET_CANCEL_RECORDER)); |
252 | #endif | 257 | #endif |
253 | lcd_update(); | 258 | lcd_update(); |
254 | button = button_get(true); | 259 | button = button_get(true); |
255 | if (button == BUTTON_PLAY) { | 260 | if (button == BUTTON_PLAY) { |
256 | settings_reset(); | 261 | settings_reset(); |
257 | lcd_clear_display(); | 262 | lcd_clear_display(); |
258 | lcd_puts(0,0,"Settings"); | 263 | lcd_puts(0,0,str(LANG_RESET_DONE_SETTING)); |
259 | lcd_puts(0,1,"Cleared"); | 264 | lcd_puts(0,1,str(LANG_RESET_DONE_CLEAR)); |
260 | lcd_update(); | 265 | lcd_update(); |
261 | sleep(HZ); | 266 | sleep(HZ); |
262 | return(true); | 267 | return(true); |
263 | } else { | 268 | } else { |
264 | lcd_clear_display(); | 269 | lcd_clear_display(); |
265 | lcd_puts(0,0,"Canceled"); | 270 | lcd_puts(0,0,str(LANG_RESET_DONE_CANCEL)); |
266 | lcd_update(); | 271 | lcd_update(); |
267 | sleep(HZ); | 272 | sleep(HZ); |
268 | return(false); | 273 | return(false); |
@@ -275,10 +280,10 @@ static Menu fileview_settings_menu(void) | |||
275 | Menu result; | 280 | Menu result; |
276 | 281 | ||
277 | struct menu_items items[] = { | 282 | struct menu_items items[] = { |
278 | { "Sort Mode", sort_case }, | 283 | { str(LANG_CASE_MENU), sort_case }, |
279 | { "Music Filter", mp3_filter }, | 284 | { str(LANG_MP3FILTER), mp3_filter }, |
280 | { "Hidden Files", show_hidden_files }, | 285 | { str(LANG_HIDDEN), show_hidden_files }, |
281 | { "Follow Playlist", browse_current }, | 286 | { str(LANG_FOLLOW), browse_current }, |
282 | }; | 287 | }; |
283 | 288 | ||
284 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | 289 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); |
@@ -293,9 +298,9 @@ static Menu display_settings_menu(void) | |||
293 | Menu result; | 298 | Menu result; |
294 | 299 | ||
295 | struct menu_items items[] = { | 300 | struct menu_items items[] = { |
296 | { "Scroll Speed", scroll_speed }, | 301 | { str(LANG_SCROLL_MENU), scroll_speed }, |
297 | { "Backlight", backlight_timer }, | 302 | { str(LANG_BACKLIGHT), backlight_timer }, |
298 | { "Contrast", contrast }, | 303 | { str(LANG_CONTRAST), contrast }, |
299 | }; | 304 | }; |
300 | 305 | ||
301 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | 306 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); |
@@ -310,14 +315,14 @@ static Menu system_settings_menu(void) | |||
310 | Menu result; | 315 | Menu result; |
311 | 316 | ||
312 | struct menu_items items[] = { | 317 | struct menu_items items[] = { |
313 | { "Disk Spindown", spindown }, | 318 | { str(LANG_SPINDOWN), spindown }, |
314 | #ifdef HAVE_CHARGE_CTRL | 319 | #ifdef HAVE_CHARGE_CTRL |
315 | { "Deep Discharge", deep_discharge }, | 320 | { str(LANG_DISCHARGE), deep_discharge }, |
316 | #endif | 321 | #endif |
317 | #ifdef HAVE_RTC | 322 | #ifdef HAVE_RTC |
318 | { "Time/Date", timedate_set }, | 323 | { str(LANG_TIME), timedate_set }, |
319 | #endif | 324 | #endif |
320 | { "Reset settings", reset_settings }, | 325 | { str(LANG_RESET), reset_settings }, |
321 | }; | 326 | }; |
322 | 327 | ||
323 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | 328 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); |
@@ -332,10 +337,10 @@ Menu settings_menu(void) | |||
332 | Menu result; | 337 | Menu result; |
333 | 338 | ||
334 | struct menu_items items[] = { | 339 | struct menu_items items[] = { |
335 | { "Playback", playback_settings_menu }, | 340 | { str(LANG_PLAYBACK), playback_settings_menu }, |
336 | { "File View", fileview_settings_menu }, | 341 | { str(LANG_FILE), fileview_settings_menu }, |
337 | { "Display", display_settings_menu }, | 342 | { str(LANG_DISPLAY), display_settings_menu }, |
338 | { "System", system_settings_menu }, | 343 | { str(LANG_SYSTEM), system_settings_menu }, |
339 | }; | 344 | }; |
340 | 345 | ||
341 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); | 346 | m=menu_init( items, sizeof items / sizeof(struct menu_items) ); |
diff --git a/apps/sound_menu.c b/apps/sound_menu.c index 664ad0b9fb..c7d72cf553 100644 --- a/apps/sound_menu.c +++ b/apps/sound_menu.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #ifdef HAVE_LCD_BITMAP | 29 | #ifdef HAVE_LCD_BITMAP |
30 | #include "icons.h" | 30 | #include "icons.h" |
31 | #endif | 31 | #endif |
32 | #include "lang.h" | ||
32 | 33 | ||
33 | static char *fmt[] = | 34 | static char *fmt[] = |
34 | { | 35 | { |
@@ -147,38 +148,38 @@ void set_sound(char* string, | |||
147 | 148 | ||
148 | static Menu volume(void) | 149 | static Menu volume(void) |
149 | { | 150 | { |
150 | set_sound("Volume", &global_settings.volume, SOUND_VOLUME); | 151 | set_sound(str(LANG_VOLUME), &global_settings.volume, SOUND_VOLUME); |
151 | return MENU_OK; | 152 | return MENU_OK; |
152 | } | 153 | } |
153 | 154 | ||
154 | static Menu balance(void) | 155 | static Menu balance(void) |
155 | { | 156 | { |
156 | set_sound("Balance", &global_settings.balance, SOUND_BALANCE); | 157 | set_sound(str(LANG_BALANCE), &global_settings.balance, SOUND_BALANCE); |
157 | return MENU_OK; | 158 | return MENU_OK; |
158 | } | 159 | } |
159 | 160 | ||
160 | static Menu bass(void) | 161 | static Menu bass(void) |
161 | { | 162 | { |
162 | set_sound("Bass", &global_settings.bass, SOUND_BASS); | 163 | set_sound(str(LANG_BASS), &global_settings.bass, SOUND_BASS); |
163 | return MENU_OK; | 164 | return MENU_OK; |
164 | }; | 165 | }; |
165 | 166 | ||
166 | static Menu treble(void) | 167 | static Menu treble(void) |
167 | { | 168 | { |
168 | set_sound("Treble", &global_settings.treble, SOUND_TREBLE); | 169 | set_sound(str(LANG_TREBLE), &global_settings.treble, SOUND_TREBLE); |
169 | return MENU_OK; | 170 | return MENU_OK; |
170 | } | 171 | } |
171 | 172 | ||
172 | #ifdef HAVE_MAS3587F | 173 | #ifdef HAVE_MAS3587F |
173 | static Menu loudness(void) | 174 | static Menu loudness(void) |
174 | { | 175 | { |
175 | set_sound("Loudness", &global_settings.loudness, SOUND_LOUDNESS); | 176 | set_sound(str(LANG_LOUDNESS), &global_settings.loudness, SOUND_LOUDNESS); |
176 | return MENU_OK; | 177 | return MENU_OK; |
177 | }; | 178 | }; |
178 | 179 | ||
179 | static Menu bass_boost(void) | 180 | static Menu bass_boost(void) |
180 | { | 181 | { |
181 | set_sound("Bass boost", &global_settings.bass_boost, SOUND_SUPERBASS); | 182 | set_sound(str(LANG_BBOOST), &global_settings.bass_boost, SOUND_SUPERBASS); |
182 | return MENU_OK; | 183 | return MENU_OK; |
183 | }; | 184 | }; |
184 | 185 | ||
@@ -189,8 +190,8 @@ static void set_avc(int val) | |||
189 | 190 | ||
190 | static Menu avc(void) | 191 | static Menu avc(void) |
191 | { | 192 | { |
192 | char* names[] = { "off", "2s", "4s", "8s" }; | 193 | char* names[] = { str(LANG_OFF), "2s", "4s", "8s" }; |
193 | set_option("AV decay time", &global_settings.avc, names, 4, set_avc ); | 194 | set_option(str(LANG_DECAY), &global_settings.avc, names, 4, set_avc ); |
194 | return MENU_OK; | 195 | return MENU_OK; |
195 | } | 196 | } |
196 | #endif /* ARCHOS_RECORDER */ | 197 | #endif /* ARCHOS_RECORDER */ |
@@ -202,8 +203,9 @@ static void set_chanconf(int val) | |||
202 | 203 | ||
203 | static Menu chanconf(void) | 204 | static Menu chanconf(void) |
204 | { | 205 | { |
205 | char *names[] = {"Stereo", "Mono", "Mono Left", "Mono Right" }; | 206 | char *names[] = {str(LANG_CHANNEL_STEREO), str(LANG_CHANNEL_MONO), |
206 | set_option("Channel configuration", | 207 | str(LANG_CHANNEL_LEFT),str(LANG_CHANNEL_RIGHT) }; |
208 | set_option(str(LANG_CHANNEL), | ||
207 | &global_settings.channel_config, names, 4, set_chanconf ); | 209 | &global_settings.channel_config, names, 4, set_chanconf ); |
208 | return MENU_OK; | 210 | return MENU_OK; |
209 | } | 211 | } |
@@ -213,15 +215,15 @@ Menu sound_menu(void) | |||
213 | int m; | 215 | int m; |
214 | Menu result; | 216 | Menu result; |
215 | struct menu_items items[] = { | 217 | struct menu_items items[] = { |
216 | { "Volume", volume }, | 218 | { str(LANG_VOLUME), volume }, |
217 | { "Bass", bass }, | 219 | { str(LANG_BASS), bass }, |
218 | { "Treble", treble }, | 220 | { str(LANG_TREBLE), treble }, |
219 | { "Balance", balance }, | 221 | { str(LANG_BALANCE), balance }, |
220 | { "Channels", chanconf }, | 222 | { str(LANG_CHANNEL_MENU), chanconf }, |
221 | #ifdef HAVE_MAS3587F | 223 | #ifdef HAVE_MAS3587F |
222 | { "Loudness", loudness }, | 224 | { str(LANG_LOUDNESS), loudness }, |
223 | { "Bass Boost", bass_boost }, | 225 | { str(LANG_BBOOST), bass_boost }, |
224 | { "Auto Volume", avc } | 226 | { str(LANG_AUTOVOL), avc } |
225 | #endif | 227 | #endif |
226 | }; | 228 | }; |
227 | 229 | ||
diff --git a/apps/tree.c b/apps/tree.c index b86f606cc6..40d686490a 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include "ata.h" | 45 | #include "ata.h" |
46 | #include "rolo.h" | 46 | #include "rolo.h" |
47 | #include "icons.h" | 47 | #include "icons.h" |
48 | #include "lang.h" | ||
48 | 49 | ||
49 | #ifdef HAVE_LCD_BITMAP | 50 | #ifdef HAVE_LCD_BITMAP |
50 | #include "widgets.h" | 51 | #include "widgets.h" |
@@ -289,8 +290,8 @@ static int showdir(char *path, int start) | |||
289 | lcd_double_height(false); | 290 | lcd_double_height(false); |
290 | #endif | 291 | #endif |
291 | lcd_clear_display(); | 292 | lcd_clear_display(); |
292 | lcd_puts(0,0,"Dir buffer"); | 293 | lcd_puts(0,0,str(LANG_SHOWDIR_ERROR_BUFFER)); |
293 | lcd_puts(0,1,"is full!"); | 294 | lcd_puts(0,1,str(LANG_SHOWDIR_ERROR_FULL)); |
294 | lcd_update(); | 295 | lcd_update(); |
295 | sleep(HZ*2); | 296 | sleep(HZ*2); |
296 | lcd_clear_display(); | 297 | lcd_clear_display(); |
@@ -420,12 +421,12 @@ bool ask_resume(void) | |||
420 | return true; | 421 | return true; |
421 | 422 | ||
422 | lcd_clear_display(); | 423 | lcd_clear_display(); |
423 | lcd_puts(0,0,"Resume?"); | 424 | lcd_puts(0,0,str(LANG_RESUME_ASK)); |
424 | #ifdef HAVE_LCD_CHARCELLS | 425 | #ifdef HAVE_LCD_CHARCELLS |
425 | lcd_puts(0,1,"(Play/Stop)"); | 426 | lcd_puts(0,1,str(LANG_RESUME_CONFIRM_PLAYER)); |
426 | #else | 427 | #else |
427 | lcd_puts(0,1,"Play = Yes"); | 428 | lcd_puts(0,1,str(LANG_RESUME_CONFIRM_RECORDER)); |
428 | lcd_puts(0,2,"Any other = No"); | 429 | lcd_puts(0,2,str(LANG_RESUME_CANCEL_RECORDER)); |
429 | #endif | 430 | #endif |
430 | lcd_update(); | 431 | lcd_update(); |
431 | if (button_get(true) == BUTTON_PLAY) | 432 | if (button_get(true) == BUTTON_PLAY) |
diff --git a/apps/wps-display.c b/apps/wps-display.c index 8d33c723a4..72905e441b 100644 --- a/apps/wps-display.c +++ b/apps/wps-display.c | |||
@@ -37,7 +37,7 @@ | |||
37 | #include "status.h" | 37 | #include "status.h" |
38 | #include "wps-display.h" | 38 | #include "wps-display.h" |
39 | #include "debug.h" | 39 | #include "debug.h" |
40 | 40 | #include "lang.h" | |
41 | #ifdef HAVE_LCD_BITMAP | 41 | #ifdef HAVE_LCD_BITMAP |
42 | #include "icons.h" | 42 | #include "icons.h" |
43 | #include "widgets.h" | 43 | #include "widgets.h" |
@@ -579,11 +579,11 @@ void wps_display(struct mp3entry* id3) | |||
579 | if (!id3 && !mpeg_is_playing()) | 579 | if (!id3 && !mpeg_is_playing()) |
580 | { | 580 | { |
581 | #ifdef HAVE_LCD_CHARCELLS | 581 | #ifdef HAVE_LCD_CHARCELLS |
582 | lcd_puts(0, 0, "End of list"); | 582 | lcd_puts(0, 0, str(LANG_END_PLAYLIST_PLAYER)); |
583 | lcd_puts(0, 1, "<Press ON>"); | 583 | lcd_puts(0, 1, str(LANG_END_CONFIRM_PLAYER)); |
584 | #else | 584 | #else |
585 | lcd_puts(0, 2, "<End of song list>"); | 585 | lcd_puts(0, 2, str(LANG_END_PLAYLIST_RECORDER)); |
586 | lcd_puts(5, 4, "Press ON"); | 586 | lcd_puts(5, 4, str(LANG_END_CONFIRM_RECORDER)); |
587 | #endif | 587 | #endif |
588 | } | 588 | } |
589 | else | 589 | else |
diff --git a/apps/wps.c b/apps/wps.c index c912cdd9b0..8f093f8a0a 100644 --- a/apps/wps.c +++ b/apps/wps.c | |||
@@ -40,7 +40,7 @@ | |||
40 | #ifdef HAVE_LCD_BITMAP | 40 | #ifdef HAVE_LCD_BITMAP |
41 | #include "icons.h" | 41 | #include "icons.h" |
42 | #endif | 42 | #endif |
43 | 43 | #include "lang.h" | |
44 | #define FF_REWIND_MAX_PERCENT 3 /* cap ff/rewind step size at max % of file */ | 44 | #define FF_REWIND_MAX_PERCENT 3 /* cap ff/rewind step size at max % of file */ |
45 | /* 3% of 30min file == 54s step size */ | 45 | /* 3% of 30min file == 54s step size */ |
46 | 46 | ||
@@ -116,17 +116,17 @@ void display_keylock_text(bool locked) | |||
116 | 116 | ||
117 | #ifdef HAVE_LCD_CHARCELLS | 117 | #ifdef HAVE_LCD_CHARCELLS |
118 | if(locked) | 118 | if(locked) |
119 | lcd_puts(0, 0, "Keylock ON"); | 119 | lcd_puts(0, 0, str(LANG_KEYLOCK_ON_PLAYER)); |
120 | else | 120 | else |
121 | lcd_puts(0, 0, "Keylock OFF"); | 121 | lcd_puts(0, 0, str(LANG_KEYLOCK_OFF_PLAYER)); |
122 | #else | 122 | #else |
123 | if(locked) | 123 | if(locked) |
124 | { | 124 | { |
125 | lcd_puts(2, 3, "Key lock is ON"); | 125 | lcd_puts(2, 3, str(LANG_KEYLOCK_ON_RECORDER)); |
126 | } | 126 | } |
127 | else | 127 | else |
128 | { | 128 | { |
129 | lcd_puts(2, 3, "Key lock is OFF"); | 129 | lcd_puts(2, 3, str(LANG_KEYLOCK_OFF_RECORDER)); |
130 | } | 130 | } |
131 | lcd_update(); | 131 | lcd_update(); |
132 | #endif | 132 | #endif |
@@ -141,17 +141,17 @@ void display_mute_text(bool muted) | |||
141 | 141 | ||
142 | #ifdef HAVE_LCD_CHARCELLS | 142 | #ifdef HAVE_LCD_CHARCELLS |
143 | if (muted) | 143 | if (muted) |
144 | lcd_puts(0, 0, "Mute ON"); | 144 | lcd_puts(0, 0, str(LANG_MUTE_ON_PLAYER)); |
145 | else | 145 | else |
146 | lcd_puts(0, 0, "Mute OFF"); | 146 | lcd_puts(0, 0, str(LANG_MUTE_OFF_PLAYER)); |
147 | #else | 147 | #else |
148 | if (muted) | 148 | if (muted) |
149 | { | 149 | { |
150 | lcd_puts(2, 3, "Mute is ON"); | 150 | lcd_puts(2, 3, str(LANG_MUTE_ON_RECORDER)); |
151 | } | 151 | } |
152 | else | 152 | else |
153 | { | 153 | { |
154 | lcd_puts(2, 3, "Mute is OFF"); | 154 | lcd_puts(2, 3, str(LANG_MUTE_OFF_RECORDER)); |
155 | } | 155 | } |
156 | lcd_update(); | 156 | lcd_update(); |
157 | #endif | 157 | #endif |
@@ -185,8 +185,8 @@ static int browse_id3(void) | |||
185 | 185 | ||
186 | lcd_stop_scroll(); | 186 | lcd_stop_scroll(); |
187 | lcd_clear_display(); | 187 | lcd_clear_display(); |
188 | lcd_puts(0, 0, "-ID3 Info- "); | 188 | lcd_puts(0, 0, str(LANG_ID3_INFO)); |
189 | lcd_puts(0, 1, "--Screen-- "); | 189 | lcd_puts(0, 1, str(LANG_ID3_SCREEN)); |
190 | lcd_update(); | 190 | lcd_update(); |
191 | sleep(HZ); | 191 | sleep(HZ); |
192 | 192 | ||
@@ -198,23 +198,26 @@ static int browse_id3(void) | |||
198 | switch (menu_pos) | 198 | switch (menu_pos) |
199 | { | 199 | { |
200 | case 0: | 200 | case 0: |
201 | lcd_puts(0, 0, "[Title]"); | 201 | lcd_puts(0, 0, str(LANG_ID3_TITLE)); |
202 | lcd_puts_scroll(0, 1, id3->title ? id3->title : "<no title>"); | 202 | lcd_puts_scroll(0, 1, id3->title ? id3->title : |
203 | (char*)str(LANG_ID3_NO_TITLE)); | ||
203 | break; | 204 | break; |
204 | 205 | ||
205 | case 1: | 206 | case 1: |
206 | lcd_puts(0, 0, "[Artist]"); | 207 | lcd_puts(0, 0, str(LANG_ID3_ARTIST)); |
207 | lcd_puts_scroll(0, 1, | 208 | lcd_puts_scroll(0, 1, |
208 | id3->artist ? id3->artist : "<no artist>"); | 209 | id3->artist ? id3->artist : |
210 | (char*)str(LANG_ID3_NO_ARTIST)); | ||
209 | break; | 211 | break; |
210 | 212 | ||
211 | case 2: | 213 | case 2: |
212 | lcd_puts(0, 0, "[Album]"); | 214 | lcd_puts(0, 0, str(LANG_ID3_ALBUM)); |
213 | lcd_puts_scroll(0, 1, id3->album ? id3->album : "<no album>"); | 215 | lcd_puts_scroll(0, 1, id3->album ? id3->album : |
216 | (char*)str(LANG_ID3_NO_ALBUM)); | ||
214 | break; | 217 | break; |
215 | 218 | ||
216 | case 3: | 219 | case 3: |
217 | lcd_puts(0, 0, "[Tracknum]"); | 220 | lcd_puts(0, 0, str(LANG_ID3_TRACKNUM)); |
218 | 221 | ||
219 | if (id3->tracknum) | 222 | if (id3->tracknum) |
220 | { | 223 | { |
@@ -224,12 +227,12 @@ static int browse_id3(void) | |||
224 | } | 227 | } |
225 | else | 228 | else |
226 | { | 229 | { |
227 | lcd_puts_scroll(0, 1, "<no tracknum>"); | 230 | lcd_puts_scroll(0, 1, str(LANG_ID3_NO_TRACKNUM)); |
228 | } | 231 | } |
229 | break; | 232 | break; |
230 | 233 | ||
231 | case 4: | 234 | case 4: |
232 | lcd_puts(0, 0, "[Length]"); | 235 | lcd_puts(0, 0, str(LANG_ID3_LENGHT)); |
233 | snprintf(scroll_text,sizeof(scroll_text), "%d:%02d", | 236 | snprintf(scroll_text,sizeof(scroll_text), "%d:%02d", |
234 | id3->length / 60000, | 237 | id3->length / 60000, |
235 | id3->length % 60000 / 1000 ); | 238 | id3->length % 60000 / 1000 ); |
@@ -237,7 +240,7 @@ static int browse_id3(void) | |||
237 | break; | 240 | break; |
238 | 241 | ||
239 | case 5: | 242 | case 5: |
240 | lcd_puts(0, 0, "[Playlist]"); | 243 | lcd_puts(0, 0, str(LANG_ID3_PLAYLIST)); |
241 | snprintf(scroll_text,sizeof(scroll_text), "%d/%d", | 244 | snprintf(scroll_text,sizeof(scroll_text), "%d/%d", |
242 | id3->index + 1, playlist.amount); | 245 | id3->index + 1, playlist.amount); |
243 | lcd_puts_scroll(0, 1, scroll_text); | 246 | lcd_puts_scroll(0, 1, scroll_text); |
@@ -245,21 +248,21 @@ static int browse_id3(void) | |||
245 | 248 | ||
246 | 249 | ||
247 | case 6: | 250 | case 6: |
248 | lcd_puts(0, 0, "[Bitrate]"); | 251 | lcd_puts(0, 0, str(LANG_ID3_BITRATE)); |
249 | snprintf(scroll_text,sizeof(scroll_text), "%d kbps", | 252 | snprintf(scroll_text,sizeof(scroll_text), "%d kbps", |
250 | id3->bitrate); | 253 | id3->bitrate); |
251 | lcd_puts(0, 1, scroll_text); | 254 | lcd_puts(0, 1, scroll_text); |
252 | break; | 255 | break; |
253 | 256 | ||
254 | case 7: | 257 | case 7: |
255 | lcd_puts(0, 0, "[Frequency]"); | 258 | lcd_puts(0, 0, str(LANG_ID3_FRECUENCY)); |
256 | snprintf(scroll_text,sizeof(scroll_text), "%d Hz", | 259 | snprintf(scroll_text,sizeof(scroll_text), "%d Hz", |
257 | id3->frequency); | 260 | id3->frequency); |
258 | lcd_puts(0, 1, scroll_text); | 261 | lcd_puts(0, 1, scroll_text); |
259 | break; | 262 | break; |
260 | 263 | ||
261 | case 8: | 264 | case 8: |
262 | lcd_puts(0, 0, "[Path]"); | 265 | lcd_puts(0, 0, str(LANG_ID3_PATH)); |
263 | lcd_puts_scroll(0, 1, id3->path); | 266 | lcd_puts_scroll(0, 1, id3->path); |
264 | break; | 267 | break; |
265 | } | 268 | } |
@@ -644,7 +647,7 @@ int on_screen(void) | |||
644 | lcd_scroll_pause(); | 647 | lcd_scroll_pause(); |
645 | lcd_clear_display(); | 648 | lcd_clear_display(); |
646 | 649 | ||
647 | ptr = "Pitch up"; | 650 | ptr = str(LANG_PITCH_UP); |
648 | lcd_getstringsize(ptr,FONT_UI,&w,&h); | 651 | lcd_getstringsize(ptr,FONT_UI,&w,&h); |
649 | lcd_putsxy((LCD_WIDTH-w)/2, 0, ptr, FONT_UI); | 652 | lcd_putsxy((LCD_WIDTH-w)/2, 0, ptr, FONT_UI); |
650 | lcd_bitmap(bitmap_icons_7x8[Icon_UpArrow], | 653 | lcd_bitmap(bitmap_icons_7x8[Icon_UpArrow], |
@@ -654,13 +657,13 @@ int on_screen(void) | |||
654 | lcd_getstringsize(buf,FONT_UI,&w,&h); | 657 | lcd_getstringsize(buf,FONT_UI,&w,&h); |
655 | lcd_putsxy((LCD_WIDTH-w)/2, h, buf, FONT_UI); | 658 | lcd_putsxy((LCD_WIDTH-w)/2, h, buf, FONT_UI); |
656 | 659 | ||
657 | ptr = "Pitch down"; | 660 | ptr = str(LANG_PITCH_DOWN); |
658 | lcd_getstringsize(ptr,FONT_UI,&w,&h); | 661 | lcd_getstringsize(ptr,FONT_UI,&w,&h); |
659 | lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr, FONT_UI); | 662 | lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr, FONT_UI); |
660 | lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], | 663 | lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], |
661 | LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); | 664 | LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); |
662 | 665 | ||
663 | ptr = "Pause"; | 666 | ptr = str(LANG_PAUSE); |
664 | lcd_getstringsize(ptr,FONT_UI,&w,&h); | 667 | lcd_getstringsize(ptr,FONT_UI,&w,&h); |
665 | lcd_putsxy((LCD_WIDTH-(w/2))/2, LCD_HEIGHT/2 - h/2, ptr, FONT_UI); | 668 | lcd_putsxy((LCD_WIDTH-(w/2))/2, LCD_HEIGHT/2 - h/2, ptr, FONT_UI); |
666 | lcd_bitmap(bitmap_icons_7x8[Icon_Pause], | 669 | lcd_bitmap(bitmap_icons_7x8[Icon_Pause], |
@@ -753,15 +756,15 @@ bool f2_screen(void) | |||
753 | while (!exit) { | 756 | while (!exit) { |
754 | lcd_clear_display(); | 757 | lcd_clear_display(); |
755 | 758 | ||
756 | lcd_putsxy(0, LCD_HEIGHT/2 - h*2, "Shuffle", FONT_UI); | 759 | lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_SHUFFLE), FONT_UI); |
757 | lcd_putsxy(0, LCD_HEIGHT/2 - h, "mode:", FONT_UI); | 760 | lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F2_MODE), FONT_UI); |
758 | lcd_putsxy(0, LCD_HEIGHT/2, | 761 | lcd_putsxy(0, LCD_HEIGHT/2, |
759 | global_settings.playlist_shuffle ? "on" : "off", FONT_UI); | 762 | global_settings.playlist_shuffle ? str(LANG_ON) : str(LANG_OFF), FONT_UI); |
760 | lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], | 763 | lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], |
761 | LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); | 764 | LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); |
762 | 765 | ||
763 | snprintf(buf, sizeof buf, "Dir filter: %s", | 766 | snprintf(buf, sizeof buf, str(LANG_DIR_FILTER), |
764 | global_settings.mp3filter ? "on" : "off"); | 767 | global_settings.mp3filter ? str(LANG_ON) : str(LANG_OFF)); |
765 | 768 | ||
766 | /* Get the string width and height */ | 769 | /* Get the string width and height */ |
767 | lcd_getstringsize(buf,FONT_UI,&w,&h); | 770 | lcd_getstringsize(buf,FONT_UI,&w,&h); |
@@ -819,21 +822,21 @@ bool f3_screen(void) | |||
819 | int w,h; | 822 | int w,h; |
820 | char* ptr; | 823 | char* ptr; |
821 | 824 | ||
822 | ptr = "Status"; | 825 | ptr = str(LANG_F3_STATUS); |
823 | lcd_getstringsize(ptr,FONT_UI,&w,&h); | 826 | lcd_getstringsize(ptr,FONT_UI,&w,&h); |
824 | lcd_clear_display(); | 827 | lcd_clear_display(); |
825 | 828 | ||
826 | lcd_putsxy(0, LCD_HEIGHT/2 - h*2, "Scroll", FONT_UI); | 829 | lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_F3_SCROLL), FONT_UI); |
827 | lcd_putsxy(0, LCD_HEIGHT/2 - h, "bar:", FONT_UI); | 830 | lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F3_BAR), FONT_UI); |
828 | lcd_putsxy(0, LCD_HEIGHT/2, | 831 | lcd_putsxy(0, LCD_HEIGHT/2, |
829 | global_settings.scrollbar ? "on" : "off", FONT_UI); | 832 | global_settings.scrollbar ? str(LANG_ON) : str(LANG_OFF), FONT_UI); |
830 | lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], | 833 | lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], |
831 | LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); | 834 | LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); |
832 | 835 | ||
833 | lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr, FONT_UI); | 836 | lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr, FONT_UI); |
834 | lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, "bar:", FONT_UI); | 837 | lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, str(LANG_F3_BAR), FONT_UI); |
835 | lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, | 838 | lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, |
836 | global_settings.statusbar ? "on" : "off", FONT_UI); | 839 | global_settings.statusbar ? str(LANG_ON) : str(LANG_OFF), FONT_UI); |
837 | lcd_bitmap(bitmap_icons_7x8[Icon_FastForward], | 840 | lcd_bitmap(bitmap_icons_7x8[Icon_FastForward], |
838 | LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true); | 841 | LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true); |
839 | lcd_update(); | 842 | lcd_update(); |