waiting is over: initial unicode commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8169 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
01917ec980
commit
b0fee17d6e
70 changed files with 253032 additions and 14343 deletions
|
@ -47,9 +47,9 @@ void gui_buttonbar_set_display(struct gui_buttonbar * buttonbar,
|
|||
void gui_buttonbar_draw_button(struct gui_buttonbar * buttonbar, int num)
|
||||
{
|
||||
int xpos, ypos, button_width, text_width;
|
||||
int fw, fh;
|
||||
int fh;
|
||||
struct screen * display = buttonbar->display;
|
||||
display->getstringsize("M", &fw, &fh);
|
||||
display->getstringsize("M", NULL, &fh);
|
||||
|
||||
button_width = display->width/BUTTONBAR_MAX_BUTTONS;
|
||||
xpos = num * button_width;
|
||||
|
@ -58,7 +58,7 @@ void gui_buttonbar_draw_button(struct gui_buttonbar * buttonbar, int num)
|
|||
if(buttonbar->caption[num][0] != 0)
|
||||
{
|
||||
/* center the text */
|
||||
text_width = fw * strlen(buttonbar->caption[num]);
|
||||
text_width = display->getstringsize(buttonbar->caption[num], NULL, NULL);
|
||||
display->putsxy(xpos + (button_width - text_width)/2,
|
||||
ypos, buttonbar->caption[num]);
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ void gui_quickscreen_draw(struct gui_quickscreen * qs, struct screen * display)
|
|||
#endif
|
||||
gui_textarea_clear(display);
|
||||
display->setfont(FONT_SYSFIXED);
|
||||
display->getstringsize((unsigned char *)"M",&w,&h);
|
||||
display->getstringsize((unsigned char *)"M", NULL, &h);
|
||||
/* Displays the icons */
|
||||
display->mono_bitmap(bitmap_icons_7x8[Icon_FastBackward],
|
||||
display->width/2 - 16,
|
||||
|
|
|
@ -128,12 +128,12 @@ new: "buffer vol"
|
|||
id: LANG_PLAYINDICES_AMOUNT
|
||||
desc: number of files in playlist
|
||||
eng: "%d files"
|
||||
new: "%d lęers"
|
||||
new: "%d lêers"
|
||||
|
||||
id: LANG_SETTINGS_SAVE_PLAYER
|
||||
desc: displayed if save settings has failed
|
||||
eng: "Save failed"
|
||||
new: "Bęre gebreek"
|
||||
new: "Bêre gebreek"
|
||||
|
||||
id: LANG_SETTINGS_BATTERY_PLAYER
|
||||
desc: if save settings has failed
|
||||
|
@ -143,7 +143,7 @@ new: "Batt. leeg?"
|
|||
id: LANG_SETTINGS_SAVE_RECORDER
|
||||
desc: displayed if save settings has failed
|
||||
eng: "Save failed"
|
||||
new: "Bęre gebreek"
|
||||
new: "Bêre gebreek"
|
||||
|
||||
id: LANG_SETTINGS_BATTERY_RECORDER
|
||||
desc: if save settings has failed
|
||||
|
@ -323,7 +323,7 @@ new: "Speel"
|
|||
id: LANG_FILE
|
||||
desc: in settings_menu()
|
||||
eng: "File View"
|
||||
new: "Lęers"
|
||||
new: "Lêers"
|
||||
|
||||
id: LANG_DISPLAY
|
||||
desc: in settings_menu()
|
||||
|
@ -783,7 +783,7 @@ new: "Nuwe Taal"
|
|||
id: LANG_FILTER
|
||||
desc: setting name for dir filter
|
||||
eng: "Show Files"
|
||||
new: "Wys Lęers"
|
||||
new: "Wys Lêers"
|
||||
|
||||
id: LANG_FILTER_MUSIC
|
||||
desc: show only music-related files
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,7 @@
|
|||
# Translated by:
|
||||
# - Rune Wiinberg
|
||||
# - Jakob Givoni
|
||||
# - Jonas Häggqvist
|
||||
# - Jonas Häggqvist
|
||||
#
|
||||
# Try to follow the guidelines from http://www.sslug.dk/locale/ Specifically
|
||||
# try to avoid english words at (almost) all costs.
|
||||
|
@ -41,7 +41,7 @@ id: LANG_DEBUG
|
|||
desc: in the main menu
|
||||
eng: "Debug (Keep Out!)"
|
||||
voice: "Debug, keep out!"
|
||||
new: "Fejlfinding, bliv væk!"
|
||||
new: "Fejlfinding, bliv væk!"
|
||||
|
||||
id: LANG_USB
|
||||
desc: in the main menu
|
||||
|
@ -77,7 +77,7 @@ id: LANG_PLAYLIST_LOAD
|
|||
desc: displayed on screen while loading a playlist
|
||||
eng: "Loading..."
|
||||
voice: ""
|
||||
new: "Indlæser..."
|
||||
new: "Indlæser..."
|
||||
|
||||
id: LANG_PLAYLIST_SHUFFLE
|
||||
desc: displayed on screen while shuffling a playlist
|
||||
|
@ -125,7 +125,7 @@ id: LANG_TIME_SET
|
|||
desc: used in set_time()
|
||||
eng: "ON To Set"
|
||||
voice: ""
|
||||
new: "TÆND: Indstil"
|
||||
new: "TÆND: Indstil"
|
||||
|
||||
id: LANG_TIME_REVERT
|
||||
desc: used in set_time()
|
||||
|
@ -149,7 +149,7 @@ id: LANG_PLAY_SELECTED
|
|||
desc: in settings_menu
|
||||
eng: "Play Selected First"
|
||||
voice: "Play Selected File First"
|
||||
new: "Spil valgte først"
|
||||
new: "Spil valgte først"
|
||||
|
||||
id: LANG_SORT_CASE
|
||||
desc: in settings_menu
|
||||
|
@ -161,7 +161,7 @@ id: LANG_RESUME
|
|||
desc: in settings_menu
|
||||
eng: "Resume on startup"
|
||||
voice: "Resume on startup"
|
||||
new: "Forsæt ved tænd"
|
||||
new: "Forsæt ved tænd"
|
||||
|
||||
id: LANG_OFF
|
||||
desc: Used in a lot of places
|
||||
|
@ -173,7 +173,7 @@ id: LANG_RESUME_SETTING_ASK
|
|||
desc: in settings_menu
|
||||
eng: "Ask"
|
||||
voice: "Ask"
|
||||
new: "Spørg"
|
||||
new: "Spørg"
|
||||
|
||||
id: LANG_ON
|
||||
desc: Used in a lot of places
|
||||
|
@ -191,7 +191,7 @@ id: LANG_SCROLL
|
|||
desc: in settings_menu
|
||||
eng: "Scroll Speed Setting Example"
|
||||
voice: ""
|
||||
new: "Eksempel på rulle-hastighed"
|
||||
new: "Eksempel på rulle-hastighed"
|
||||
|
||||
id: LANG_DISCHARGE
|
||||
desc: DEPRECATED
|
||||
|
@ -227,7 +227,7 @@ id: LANG_FOLLOW
|
|||
desc: in settings_menu
|
||||
eng: "Follow Playlist"
|
||||
voice: "Follow Playlist"
|
||||
new: "Følg spilleliste"
|
||||
new: "Følg spilleliste"
|
||||
|
||||
id: LANG_RESET_ASK_RECORDER
|
||||
desc: confirm to reset settings
|
||||
|
@ -269,7 +269,7 @@ id: LANG_RESET
|
|||
desc: in system_settings_menu()
|
||||
eng: "Reset Settings"
|
||||
voice: "Reset Settings"
|
||||
new: "Nulstil opsætning"
|
||||
new: "Nulstil opsætning"
|
||||
|
||||
id: LANG_PLAYBACK
|
||||
desc: in settings_menu()
|
||||
|
@ -287,7 +287,7 @@ id: LANG_DISPLAY
|
|||
desc: in settings_menu()
|
||||
eng: "Display"
|
||||
voice: "Display"
|
||||
new: "Skærm"
|
||||
new: "Skærm"
|
||||
|
||||
id: LANG_SYSTEM
|
||||
desc: in settings_menu()
|
||||
|
@ -371,7 +371,7 @@ id: LANG_CHANNEL_RIGHT
|
|||
desc: in sound_settings
|
||||
eng: "Mono Right"
|
||||
voice: "Mono Right"
|
||||
new: "Mono højre"
|
||||
new: "Mono højre"
|
||||
|
||||
id: LANG_AUTOVOL
|
||||
desc: in sound_settings
|
||||
|
@ -395,7 +395,7 @@ id: LANG_RESUME_ASK
|
|||
desc: DEPRECATED
|
||||
eng: ""
|
||||
voice: ""
|
||||
new: "Forsæt?"
|
||||
new: "Forsæt?"
|
||||
|
||||
id: LANG_RESUME_CONFIRM_PLAYER
|
||||
desc: possible answers to resume question
|
||||
|
@ -407,25 +407,25 @@ id: LANG_KEYLOCK_ON_PLAYER
|
|||
desc: displayed when key lock is on
|
||||
eng: "Key Lock ON"
|
||||
voice: ""
|
||||
new: "Lås TIL"
|
||||
new: "Lås TIL"
|
||||
|
||||
id: LANG_KEYLOCK_OFF_PLAYER
|
||||
desc: displayed when key lock is turned off
|
||||
eng: "Key Lock OFF"
|
||||
voice: ""
|
||||
new: "Lås FRA"
|
||||
new: "Lås FRA"
|
||||
|
||||
id: LANG_KEYLOCK_ON_RECORDER
|
||||
desc: displayed when key lock is on
|
||||
eng: "Key Lock Is ON"
|
||||
voice: ""
|
||||
new: "Tast. lås er TIL"
|
||||
new: "Tast. lås er TIL"
|
||||
|
||||
id: LANG_KEYLOCK_OFF_RECORDER
|
||||
desc: displayed when key lock is turned off
|
||||
eng: "Key Lock Is OFF"
|
||||
voice: ""
|
||||
new: "Tast. lås er FRA"
|
||||
new: "Tast. lås er FRA"
|
||||
|
||||
id: LANG_MUTE_ON_PLAYER
|
||||
desc: DEPRECATED
|
||||
|
@ -515,7 +515,7 @@ id: LANG_ID3_LENGHT
|
|||
desc: in wps
|
||||
eng: "[Length]"
|
||||
voice: ""
|
||||
new: "[Længde]"
|
||||
new: "[Længde]"
|
||||
|
||||
id: LANG_ID3_PLAYLIST
|
||||
desc: in wps
|
||||
|
@ -581,19 +581,19 @@ id: LANG_F3_BAR
|
|||
desc: in wps F3 pressed
|
||||
eng: "Bar"
|
||||
voice: ""
|
||||
new: "Bjælke"
|
||||
new: "Bjælke"
|
||||
|
||||
id: LANG_END_PLAYLIST_PLAYER
|
||||
desc: when playlist has finished
|
||||
eng: "End Of List"
|
||||
voice: ""
|
||||
new: "Slut på liste"
|
||||
new: "Slut på liste"
|
||||
|
||||
id: LANG_END_PLAYLIST_RECORDER
|
||||
desc: when playlist has finished
|
||||
eng: "End Of Song List"
|
||||
voice: ""
|
||||
new: "Slut på liste"
|
||||
new: "Slut på liste"
|
||||
|
||||
id: LANG_POWEROFF_IDLE
|
||||
desc: in settings_menu
|
||||
|
@ -623,7 +623,7 @@ id: LANG_FILTER_SUPPORTED
|
|||
desc: show all file types supported by Rockbox
|
||||
eng: "Supported"
|
||||
voice: "Supported"
|
||||
new: "Understøttede"
|
||||
new: "Understøttede"
|
||||
|
||||
id: LANG_FILTER_ALL
|
||||
desc: show all files
|
||||
|
@ -647,7 +647,7 @@ id: LANG_PM_MENU
|
|||
desc: in the display menu
|
||||
eng: "Peak Meter"
|
||||
voice: "Peak Meter"
|
||||
new: "Spids markør"
|
||||
new: "Spids markør"
|
||||
|
||||
id: LANG_PM_RELEASE
|
||||
desc: in the peak meter menu
|
||||
|
@ -677,7 +677,7 @@ id: LANG_PM_UNITS_PER_READ
|
|||
desc: in the peak meter menu
|
||||
eng: "Units Per Read"
|
||||
voice: "Units Per Read"
|
||||
new: "Enheder per læsning"
|
||||
new: "Enheder per læsning"
|
||||
|
||||
id: LANG_BACKLIGHT_ON_WHEN_CHARGING
|
||||
desc: in display_settings_menu
|
||||
|
@ -737,7 +737,7 @@ id: LANG_WEEKDAY_SUNDAY
|
|||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Sun"
|
||||
voice: ""
|
||||
new: "Søn"
|
||||
new: "Søn"
|
||||
|
||||
id: LANG_WEEKDAY_MONDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
|
@ -767,7 +767,7 @@ id: LANG_WEEKDAY_SATURDAY
|
|||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Sat"
|
||||
voice: ""
|
||||
new: "Lør"
|
||||
new: "Lør"
|
||||
|
||||
id: LANG_MONTH_JANUARY
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
|
@ -845,7 +845,7 @@ id: LANG_RESUME_SETTING_ASK_ONCE
|
|||
desc: DEPRECATED
|
||||
eng: ""
|
||||
voice: ""
|
||||
new: "Spørg én gang"
|
||||
new: "Spørg én gang"
|
||||
|
||||
id: LANG_BATTERY_DISPLAY
|
||||
desc: Battery type title
|
||||
|
@ -905,19 +905,19 @@ id: LANG_PM_LINEAR
|
|||
desc: in the peak meter menu
|
||||
eng: "Linear(%)"
|
||||
voice: "Linear percent"
|
||||
new: "lineær(%)"
|
||||
new: "lineær(%)"
|
||||
|
||||
id: LANG_PM_MIN
|
||||
desc: in the peak meter menu
|
||||
eng: "Minimum Of Range"
|
||||
voice: "Minimum Of Range"
|
||||
new: "Mindste værdi"
|
||||
new: "Mindste værdi"
|
||||
|
||||
id: LANG_PM_MAX
|
||||
desc: in the peak meter menu
|
||||
eng: "Maximum Of Range"
|
||||
voice: "Maximum Of Range"
|
||||
new: "Største værdi"
|
||||
new: "Største værdi"
|
||||
|
||||
id: LANG_RECORDING
|
||||
desc: in the main menu
|
||||
|
@ -929,7 +929,7 @@ id: LANG_RECORDING_GAIN
|
|||
desc: in the recording screen
|
||||
eng: "Gain"
|
||||
voice: ""
|
||||
new: "Forstærkning"
|
||||
new: "Forstærkning"
|
||||
|
||||
id: LANG_RECORDING_LEFT
|
||||
desc: in the recording screen
|
||||
|
@ -941,7 +941,7 @@ id: LANG_RECORDING_RIGHT
|
|||
desc: in the recording screen
|
||||
eng: "Right"
|
||||
voice: ""
|
||||
new: "Højre"
|
||||
new: "Højre"
|
||||
|
||||
id: LANG_RECORDING_QUALITY
|
||||
desc: in the recording settings
|
||||
|
@ -1025,19 +1025,19 @@ id: LANG_SLEEP_TIMER
|
|||
desc: sleep timer setting
|
||||
eng: "Sleep Timer"
|
||||
voice: "Sleep Timer"
|
||||
new: "Søvntimer"
|
||||
new: "Søvntimer"
|
||||
|
||||
id: LANG_STATUS_BAR
|
||||
desc: display menu, F3 substitute
|
||||
eng: "Status Bar"
|
||||
voice: "Status Bar"
|
||||
new: "Status bjælke"
|
||||
new: "Status bjælke"
|
||||
|
||||
id: LANG_SCROLL_BAR
|
||||
desc: display menu, F3 substitute
|
||||
eng: "Scroll Bar"
|
||||
voice: "Scroll Bar"
|
||||
new: "Rullebjælke"
|
||||
new: "Rullebjælke"
|
||||
|
||||
id: LANG_WEEKDAY_THURSDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
|
@ -1055,7 +1055,7 @@ id: LANG_BIDIR_SCROLL
|
|||
desc: Bidirectional scroll limit
|
||||
eng: "Bidirectional Scroll Limit"
|
||||
voice: "Bidirectional Scroll Limit"
|
||||
new: "Tovejs-rul grænse"
|
||||
new: "Tovejs-rul grænse"
|
||||
|
||||
id: LANG_SCROLL_DELAY
|
||||
desc: Delay before scrolling
|
||||
|
@ -1067,7 +1067,7 @@ id: LANG_SCROLL_STEP
|
|||
desc: Pixels to advance per scroll
|
||||
eng: "Scroll Step Size"
|
||||
voice: "Scroll Step Size"
|
||||
new: "Rul trin størrelse"
|
||||
new: "Rul trin størrelse"
|
||||
|
||||
id: LANG_SCROLL_STEP_EXAMPLE
|
||||
desc: Pixels to advance per scroll
|
||||
|
@ -1115,7 +1115,7 @@ id: LANG_QUEUE
|
|||
desc: The verb/action Queue
|
||||
eng: "Queue"
|
||||
voice: "Queue"
|
||||
new: "Sæt i kø"
|
||||
new: "Sæt i kø"
|
||||
|
||||
id: LANG_DELETE
|
||||
desc: The verb/action Delete
|
||||
|
@ -1139,7 +1139,7 @@ id: LANG_RENAME
|
|||
desc: The verb/action Rename
|
||||
eng: "Rename"
|
||||
voice: "Rename"
|
||||
new: "Omdøb"
|
||||
new: "Omdøb"
|
||||
|
||||
id: LANG_FAILED
|
||||
desc: Something failed. To be appended after above actions
|
||||
|
@ -1151,7 +1151,7 @@ id: LANG_ALARM_MOD_ALARM_MENU
|
|||
desc: The name of the additional entry in the main menu for the RTC alarm mod.
|
||||
eng: "Wake-Up Alarm"
|
||||
voice: "Wake-Up Alarm"
|
||||
new: "Vækkeur"
|
||||
new: "Vækkeur"
|
||||
|
||||
id: LANG_ALARM_MOD_TIME
|
||||
desc: The current alarm time shown in the alarm menu for the RTC alarm mod.
|
||||
|
@ -1163,7 +1163,7 @@ id: LANG_ALARM_MOD_TIME_TO_GO
|
|||
desc: The time until the alarm will go off shown in the alarm menu for the RTC alarm mod.
|
||||
eng: "Waking Up In %d:%02d"
|
||||
voice: ""
|
||||
new: "Vågner om om %d:%02d"
|
||||
new: "Vågner om om %d:%02d"
|
||||
|
||||
id: LANG_ALARM_MOD_SHUTDOWN
|
||||
desc: The text that tells the user that the alarm time is ok and the device shuts off (for the RTC alarm mod).
|
||||
|
@ -1181,7 +1181,7 @@ id: LANG_ALARM_MOD_KEYS
|
|||
desc: Shown key functions in alarm menu (for the RTC alarm mod).
|
||||
eng: "PLAY=Set OFF=Cancel"
|
||||
voice: ""
|
||||
new: "SPIL=Sæt SLUK=Anuller"
|
||||
new: "SPIL=Sæt SLUK=Anuller"
|
||||
|
||||
id: LANG_CREATE_PLAYLIST
|
||||
desc: Menu option for creating a playlist
|
||||
|
@ -1235,7 +1235,7 @@ id: LANG_ID3_YEAR
|
|||
desc: ID3 info 'year'
|
||||
eng: "[Year]"
|
||||
voice: ""
|
||||
new: "[År]"
|
||||
new: "[År]"
|
||||
|
||||
id: LANG_ID3_NO_INFO
|
||||
desc: ID3 info is missing
|
||||
|
@ -1253,7 +1253,7 @@ id: LANG_RECORDING_SIZE
|
|||
desc: Display of recorded file size
|
||||
eng: "Size:"
|
||||
voice: ""
|
||||
new: "Størrelse:"
|
||||
new: "Størrelse:"
|
||||
|
||||
id: LANG_SETTINGS_LOADED1
|
||||
desc: Feedback shown when a .cfg file is loaded
|
||||
|
@ -1283,7 +1283,7 @@ id: LANG_INVERT
|
|||
desc: in settings_menu
|
||||
eng: "LCD Mode"
|
||||
voice: "LCD Mode"
|
||||
new: "Skærm tilstand"
|
||||
new: "Skærm tilstand"
|
||||
|
||||
id: LANG_CHANNEL_STEREO_NARROW_PLAYER
|
||||
desc: DEPRECATED
|
||||
|
@ -1349,13 +1349,13 @@ id: LANG_INVERT_CURSOR
|
|||
desc: in settings_menu
|
||||
eng: "Line Selector"
|
||||
voice: "Line Selector"
|
||||
new: "Linje vælger"
|
||||
new: "Linje vælger"
|
||||
|
||||
id: LANG_RECORDING_EDITABLE
|
||||
desc: Editable recordings setting
|
||||
eng: "Independent frames"
|
||||
voice: "Independent frames"
|
||||
new: "Uafhængige rammer"
|
||||
new: "Uafhængige rammer"
|
||||
|
||||
id: LANG_CAPTION_BACKLIGHT
|
||||
desc: in settings_menu
|
||||
|
@ -1367,13 +1367,13 @@ id: LANG_INVERT_CURSOR_POINTER
|
|||
desc: in settings_menu
|
||||
eng: "Pointer"
|
||||
voice: "Pointer"
|
||||
new: "Markør"
|
||||
new: "Markør"
|
||||
|
||||
id: LANG_INVERT_CURSOR_BAR
|
||||
desc: in settings_menu
|
||||
eng: "Bar(Inverse)"
|
||||
voice: "Inverse Bar"
|
||||
new: "Bjælke (omvendt)"
|
||||
new: "Bjælke (omvendt)"
|
||||
|
||||
id: LANG_INVERT_LCD_NORMAL
|
||||
desc: in settings_menu
|
||||
|
@ -1391,13 +1391,13 @@ id: LANG_MAX_FILES_IN_DIR
|
|||
desc: in settings_menu
|
||||
eng: "Max files in dir browser"
|
||||
voice: "Max files in directory browser"
|
||||
new: "Maks filer i dir vælger"
|
||||
new: "Maks filer i dir vælger"
|
||||
|
||||
id: LANG_MAX_FILES_IN_PLAYLIST
|
||||
desc: in settings_menu
|
||||
eng: "Max playlist size"
|
||||
voice: "Max playlist size"
|
||||
new: "Maks spilleliste størrelse"
|
||||
new: "Maks spilleliste størrelse"
|
||||
|
||||
id: LANG_JUMP_SCROLL
|
||||
desc: (player) menu altarnative for jump scroll
|
||||
|
@ -1445,7 +1445,7 @@ id: LANG_DISK_FULL
|
|||
desc: in recording screen
|
||||
eng: "The disk is full. Press OFF to continue."
|
||||
voice: ""
|
||||
new: "Disken er fuld. Tryk SLUK for at fortsætte."
|
||||
new: "Disken er fuld. Tryk SLUK for at fortsætte."
|
||||
|
||||
id: LANG_CONFIRM_WITH_PLAY_RECORDER
|
||||
desc: Generic recorder string to use to confirm
|
||||
|
@ -1463,13 +1463,13 @@ id: LANG_PLUGIN_CANT_OPEN
|
|||
desc: Plugin open error message
|
||||
eng: "Can't open %s"
|
||||
voice: ""
|
||||
new: "Kan ikke åbne %s"
|
||||
new: "Kan ikke åbne %s"
|
||||
|
||||
id: LANG_READ_FAILED
|
||||
desc: There was an error reading a file
|
||||
eng: "Failed reading %s"
|
||||
voice: ""
|
||||
new: "Læsning af %s fejlede"
|
||||
new: "Læsning af %s fejlede"
|
||||
|
||||
id: LANG_PLUGIN_WRONG_MODEL
|
||||
desc: The plugin is not compatible with the archos model trying to run it
|
||||
|
@ -1493,7 +1493,7 @@ id: LANG_BOOT_CHANGED
|
|||
desc: File browser discovered the boot file was changed
|
||||
eng: "Boot changed"
|
||||
voice: ""
|
||||
new: "Boot ændret"
|
||||
new: "Boot ændret"
|
||||
|
||||
id: LANG_REBOOT_NOW
|
||||
desc: Do you want to reboot?
|
||||
|
@ -1505,31 +1505,31 @@ id: LANG_QUEUE_LAST
|
|||
desc: in onplay menu. queue a track/playlist at end of playlist.
|
||||
eng: "Queue last"
|
||||
voice: "Queue last"
|
||||
new: "Sæt sidst i køen"
|
||||
new: "Sæt sidst i køen"
|
||||
|
||||
id: LANG_INSERT
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
eng: "Insert"
|
||||
voice: "Insert"
|
||||
new: "Indsæt"
|
||||
new: "Indsæt"
|
||||
|
||||
id: LANG_INSERT_LAST
|
||||
desc: in onplay menu. append a track/playlist into dynamic playlist.
|
||||
eng: "Insert last"
|
||||
voice: "Insert last"
|
||||
new: "Indsæt tilsidst"
|
||||
new: "Indsæt tilsidst"
|
||||
|
||||
id: LANG_QUEUE_FIRST
|
||||
desc: in onplay menu. queue a track/playlist into dynamic playlist.
|
||||
eng: "Queue next"
|
||||
voice: "Queue next"
|
||||
new: "Set i kø som næste"
|
||||
new: "Set i kø som næste"
|
||||
|
||||
id: LANG_INSERT_FIRST
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
eng: "Insert next"
|
||||
voice: "Insert next"
|
||||
new: "Indsæt som næste"
|
||||
new: "Indsæt som næste"
|
||||
|
||||
id: LANG_SAVE_DYNAMIC_PLAYLIST
|
||||
desc: in playlist menu.
|
||||
|
@ -1553,7 +1553,7 @@ id: LANG_PLAYLIST_QUEUE_COUNT
|
|||
desc: splash number of tracks queued
|
||||
eng: "Queued %d tracks (%s)"
|
||||
voice: ""
|
||||
new: "Har sat %d numre i kø (%s)"
|
||||
new: "Har sat %d numre i kø (%s)"
|
||||
|
||||
id: LANG_PLAYLIST_SAVE_COUNT
|
||||
desc: splash number of tracks saved
|
||||
|
@ -1607,13 +1607,13 @@ id: LANG_RECURSE_DIRECTORY
|
|||
desc: In playlist menu
|
||||
eng: "Recursively Insert Directories"
|
||||
voice: "Recursively Insert Directories"
|
||||
new: "Indsæt mapper og undermapper"
|
||||
new: "Indsæt mapper og undermapper"
|
||||
|
||||
id: LANG_RECURSE_DIRECTORY_QUESTION
|
||||
desc: Asked from onplay screen
|
||||
eng: "Recursively?"
|
||||
voice: ""
|
||||
new: "Indsæt undermapper?"
|
||||
new: "Indsæt undermapper?"
|
||||
|
||||
id: LANG_CUSTOM_FONT
|
||||
desc: in setting_menu()
|
||||
|
@ -1637,7 +1637,7 @@ id: LANG_WHILE_PLAYING
|
|||
desc: in settings_menu()
|
||||
eng: "Browse .wps files"
|
||||
voice: "Browse while-playing-screen files"
|
||||
new: "Vis afspilnings-skærm filer"
|
||||
new: "Vis afspilnings-skærm filer"
|
||||
|
||||
id: LANG_CUSTOM_CFG
|
||||
desc: in setting_menu()
|
||||
|
@ -1733,7 +1733,7 @@ id: LANG_VIEW_DYNAMIC_PLAYLIST
|
|||
desc: in playlist menu.
|
||||
eng: "View Current Playlist"
|
||||
voice: "View Current Playlist"
|
||||
new: "Vis nuværende spilleliste"
|
||||
new: "Vis nuværende spilleliste"
|
||||
|
||||
id: LANG_MOVE
|
||||
desc: The verb/action Move
|
||||
|
@ -1751,7 +1751,7 @@ id: LANG_FLIP_DISPLAY
|
|||
desc: in settings_menu, option to turn display+buttos by 180 degreed
|
||||
eng: "Upside Down"
|
||||
voice: "Upside Down"
|
||||
new: "På hovedet"
|
||||
new: "På hovedet"
|
||||
|
||||
id: LANG_RECORD_PRERECORD
|
||||
desc: in recording and radio screen
|
||||
|
@ -1769,13 +1769,13 @@ id: LANG_BOOKMARK_AUTOLOAD_QUERY
|
|||
desc: prompt for user to decide to create a bookmark
|
||||
eng: "Load Last Bookmark?"
|
||||
voice: ""
|
||||
new: "Hent seneste bogmærke?"
|
||||
new: "Hent seneste bogmærke?"
|
||||
|
||||
id: LANG_AUTO_BOOKMARK_QUERY
|
||||
desc: prompt for user to decide to create an bookmark
|
||||
eng: "Create a Bookmark?"
|
||||
voice: ""
|
||||
new: "Opret bogmærke?"
|
||||
new: "Opret bogmærke?"
|
||||
|
||||
id: LANG_BOOKMARK_SELECT_LIST_BOOKMARKS
|
||||
desc: From the auto-load screen, allows user to list all bookmarks
|
||||
|
@ -1793,7 +1793,7 @@ id: LANG_BOOKMARK_SELECT_BOOKMARK_TEXT
|
|||
desc: Used on the bookmark select window to label bookmark number
|
||||
eng: "Bookmark"
|
||||
voice: ""
|
||||
new: "Bogmærke"
|
||||
new: "Bogmærke"
|
||||
|
||||
id: LANG_BOOKMARK_SELECT_INDEX_TEXT
|
||||
desc: Used on the bookmark select window to label index number
|
||||
|
@ -1811,55 +1811,55 @@ id: LANG_BOOKMARK_SELECT_PLAY
|
|||
desc: Used on the bookmark select window to indicated the play option
|
||||
eng: "PLAY = Select"
|
||||
voice: ""
|
||||
new: "SPIL = Vælg"
|
||||
new: "SPIL = Vælg"
|
||||
|
||||
id: LANG_BOOKMARK_SELECT_DELETE
|
||||
desc: Used on the bookmark select window to indicated the bookmark delete option
|
||||
eng: "ON+Play = Delete"
|
||||
voice: ""
|
||||
new: "TÆND+Spil = Slet"
|
||||
new: "TÆND+Spil = Slet"
|
||||
|
||||
id: LANG_BOOKMARK_CREATE_SUCCESS
|
||||
desc: Indicates bookmark was successfully created
|
||||
eng: "Bookmark Created"
|
||||
voice: ""
|
||||
new: "Bogmærke oprettet"
|
||||
new: "Bogmærke oprettet"
|
||||
|
||||
id: LANG_BOOKMARK_CREATE_FAILURE
|
||||
desc: Indicates bookmark was not created
|
||||
eng: "Bookmark Failed!"
|
||||
voice: ""
|
||||
new: "Bogmærke fejlede!"
|
||||
new: "Bogmærke fejlede!"
|
||||
|
||||
id: LANG_BOOKMARK_LOAD_EMPTY
|
||||
desc: Indicates bookmark was empty
|
||||
eng: "Bookmark Empty"
|
||||
voice: ""
|
||||
new: "Bogmærke tomt"
|
||||
new: "Bogmærke tomt"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS
|
||||
desc: in general settings
|
||||
eng: "Bookmarking"
|
||||
voice: "Bookmarking"
|
||||
new: "Bogmærker"
|
||||
new: "Bogmærker"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_AUTOLOAD
|
||||
desc: prompt for user to decide to create a bookmark
|
||||
eng: "Load Last Bookmark"
|
||||
voice: "Load Last Bookmark"
|
||||
new: "Hent seneste bogmærke"
|
||||
new: "Hent seneste bogmærke"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_AUTOCREATE
|
||||
desc: prompt for user to decide to create an bookmark
|
||||
eng: "Bookmark on Stop"
|
||||
voice: "Bookmark on Stop"
|
||||
new: "Opret bogmærke ved stop"
|
||||
new: "Opret bogmærke ved stop"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_MAINTAIN_RECENT_BOOKMARKS
|
||||
desc: Configuration option to maintain a list of recent bookmarks
|
||||
eng: "Maintain a List of Recent Bookmarks?"
|
||||
voice: "Maintain a List of Recent Bookmarks?"
|
||||
new: "Vedligehold liste af seneste bogmærker?"
|
||||
new: "Vedligehold liste af seneste bogmærker?"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_RECENT_ONLY_YES
|
||||
desc: Save in recent bookmarks only
|
||||
|
@ -1871,7 +1871,7 @@ id: LANG_BOOKMARK_SETTINGS_RECENT_ONLY_ASK
|
|||
desc: Save in recent bookmarks only
|
||||
eng: "Ask - Recent only"
|
||||
voice: "Ask - Recent only"
|
||||
new: "Spørg - kun seneste"
|
||||
new: "Spørg - kun seneste"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_UNIQUE_ONLY
|
||||
desc: Save only on bookmark for each playlist in recent bookmarks
|
||||
|
@ -1883,25 +1883,25 @@ id: LANG_BOOKMARK_MENU
|
|||
desc: Text on main menu to get to bookmark commands
|
||||
eng: "Bookmarks"
|
||||
voice: "Bookmarks"
|
||||
new: "Bogmærker"
|
||||
new: "Bogmærker"
|
||||
|
||||
id: LANG_BOOKMARK_MENU_CREATE
|
||||
desc: Used off of the bookmark menu to create a bookmark
|
||||
eng: "Create Bookmark"
|
||||
voice: "Create Bookmark"
|
||||
new: "Opret bogmærke"
|
||||
new: "Opret bogmærke"
|
||||
|
||||
id: LANG_BOOKMARK_MENU_LIST
|
||||
desc: Used off of the bookmark menu to list available bookmarks for the currently playing directory or M3U
|
||||
eng: "List Bookmarks"
|
||||
voice: "List Bookmarks"
|
||||
new: "Vis bogmærker"
|
||||
new: "Vis bogmærker"
|
||||
|
||||
id: LANG_BOOKMARK_MENU_RECENT_BOOKMARKS
|
||||
desc: Text for the menu text to access the most recent bookmarks list
|
||||
eng: "Recent Bookmarks"
|
||||
voice: "Recent Bookmarks"
|
||||
new: "Seneste bogmærker"
|
||||
new: "Seneste bogmærker"
|
||||
|
||||
id: LANG_INFO_MENU
|
||||
desc: in the info sub menu
|
||||
|
@ -1913,7 +1913,7 @@ id: LANG_RECORDING_MENU
|
|||
desc: in the recording sub menu
|
||||
eng: "Recording screen"
|
||||
voice: "Recording screen"
|
||||
new: "Optage skærm"
|
||||
new: "Optage skærm"
|
||||
|
||||
id: LANG_WIND_MENU
|
||||
desc: in the playback sub menu
|
||||
|
@ -1925,13 +1925,13 @@ id: LANG_LCD_MENU
|
|||
desc: in the display sub menu
|
||||
eng: "LCD Settings"
|
||||
voice: "LCD Settings"
|
||||
new: "Skærm indstillinger"
|
||||
new: "Skærm indstillinger"
|
||||
|
||||
id: LANG_BARS_MENU
|
||||
desc: in the display sub menu
|
||||
eng: "Status-/Scrollbar"
|
||||
voice: "Status- and Scrollbar"
|
||||
new: "Status- og rulle-bjælke"
|
||||
new: "Status- og rulle-bjælke"
|
||||
|
||||
id: LANG_BATTERY_MENU
|
||||
desc: in the system sub menu
|
||||
|
@ -1955,13 +1955,13 @@ id: LANG_LIMITS_MENU
|
|||
desc: in the system sub menu
|
||||
eng: "Limits"
|
||||
voice: "Limits"
|
||||
new: "Begrænsninger"
|
||||
new: "Begrænsninger"
|
||||
|
||||
id: LANG_MANAGE_MENU
|
||||
desc: in the system sub menu
|
||||
eng: "Manage Settings"
|
||||
voice: "Manage Settings"
|
||||
new: "Håndter opsætning"
|
||||
new: "Håndter opsætning"
|
||||
|
||||
id: LANG_RECORD_DIRECTORY
|
||||
desc: in recording settings_menu
|
||||
|
@ -1973,7 +1973,7 @@ id: LANG_RECORD_CURRENT_DIR
|
|||
desc: in recording directory options
|
||||
eng: "Current dir"
|
||||
voice: "Current directory"
|
||||
new: "Nuværende mappe"
|
||||
new: "Nuværende mappe"
|
||||
|
||||
id: LANG_CREATE_DIR
|
||||
desc: in main menu
|
||||
|
@ -1997,7 +1997,7 @@ id: LANG_TRACK_DISPLAY
|
|||
desc: in playlist viewer on+play menu
|
||||
eng: "Track Display"
|
||||
voice: "Track Display"
|
||||
new: "Nummer skærm"
|
||||
new: "Nummer skærm"
|
||||
|
||||
id: LANG_DISPLAY_TRACK_NAME_ONLY
|
||||
desc: track display options
|
||||
|
@ -2027,7 +2027,7 @@ id: LANG_BUTTON_BAR
|
|||
desc: in settings menu
|
||||
eng: "Button bar"
|
||||
voice: "Button bar"
|
||||
new: "Knap bjælke"
|
||||
new: "Knap bjælke"
|
||||
|
||||
id: LANG_DIRBROWSE_F1
|
||||
desc: in dir browser, F1 button bar text
|
||||
|
@ -2045,7 +2045,7 @@ id: LANG_DIRBROWSE_F3
|
|||
desc: in dir browser, F3 button bar text
|
||||
eng: "LCD"
|
||||
voice: ""
|
||||
new: "Skærm"
|
||||
new: "Skærm"
|
||||
|
||||
id: VOICE_ZERO
|
||||
desc: spoken only, for composing numbers
|
||||
|
@ -2663,7 +2663,7 @@ id: LANG_ONPLAY_OPEN_WITH
|
|||
desc: Onplay open with
|
||||
eng: "Open with"
|
||||
voice: "open with"
|
||||
new: "Åben med"
|
||||
new: "Åben med"
|
||||
|
||||
id: LANG_SORT_DIR
|
||||
desc: browser sorting setting
|
||||
|
@ -2729,7 +2729,7 @@ id: LANG_FM_BUTTONBAR_ADD
|
|||
desc: in radio screen
|
||||
eng: "Add"
|
||||
voice: ""
|
||||
new: "Tilføj"
|
||||
new: "Tilføj"
|
||||
|
||||
id: LANG_FM_BUTTONBAR_ACTION
|
||||
desc: in radio screen
|
||||
|
@ -2795,19 +2795,19 @@ id: LANG_ID3_ORDER
|
|||
desc: in playback settings screen
|
||||
eng: "ID3 tag priority"
|
||||
voice: "ID3 tag priority"
|
||||
new: "ID3 mærke prioritet"
|
||||
new: "ID3 mærke prioritet"
|
||||
|
||||
id: LANG_ID3_V1_FIRST
|
||||
desc: in playback settings screen
|
||||
eng: "V1 then V2"
|
||||
voice: "Version 1 then version 2"
|
||||
new: "V1 før V2"
|
||||
new: "V1 før V2"
|
||||
|
||||
id: LANG_ID3_V2_FIRST
|
||||
desc: in playback settings screen
|
||||
eng: "V2 then V1"
|
||||
voice: "Version 2 then version 1"
|
||||
new: "V2 før V1"
|
||||
new: "V2 før V1"
|
||||
|
||||
id: LANG_NO_ROCKBOX_DIR
|
||||
desc: in browse root
|
||||
|
@ -2819,7 +2819,7 @@ id: LANG_INSTALLATION_INCOMPLETE
|
|||
desc: in browse root
|
||||
eng: "Installation incomplete"
|
||||
voice: ""
|
||||
new: "Installation fuldført"
|
||||
new: "Installation fuldført"
|
||||
|
||||
id: LANG_REMOVE_MMC
|
||||
desc: before acknowledging usb in case an MMC is inserted (Ondio)
|
||||
|
@ -2879,25 +2879,25 @@ id: LANG_ID3DB_SEARCH
|
|||
desc: ID3 virtual folder name
|
||||
eng: "Search"
|
||||
voice: ""
|
||||
new: "Søg"
|
||||
new: "Søg"
|
||||
|
||||
id: LANG_ID3DB_SEARCH_ARTISTS
|
||||
desc: ID3 virtual folder name
|
||||
eng: "Search Artists"
|
||||
voice: ""
|
||||
new: "Søg på kunstnere"
|
||||
new: "Søg på kunstnere"
|
||||
|
||||
id: LANG_ID3DB_SEARCH_ALBUMS
|
||||
desc: ID3 virtual folder name
|
||||
eng: "Search Albums"
|
||||
voice: ""
|
||||
new: "Søg på albums"
|
||||
new: "Søg på albums"
|
||||
|
||||
id: LANG_ID3DB_SEARCH_SONGS
|
||||
desc: ID3 virtual folder name
|
||||
eng: "Search Songs"
|
||||
voice: ""
|
||||
new: "Søg på sange"
|
||||
new: "Søg på sange"
|
||||
|
||||
id: LANG_ID3DB_MATCHES
|
||||
desc: ID3 virtual folder name
|
||||
|
@ -2981,19 +2981,19 @@ id: LANG_RECORD_STARTUP
|
|||
desc: Start Rockbox in Recording screen
|
||||
eng: "Show recording screen on startup"
|
||||
voice: "Show recording screen on startup"
|
||||
new: "Vis optage skærm ved start"
|
||||
new: "Vis optage skærm ved start"
|
||||
|
||||
id: LANG_ALARM_MOD_DISABLE
|
||||
desc: Announce that the RTC alarm has been turned off
|
||||
eng: "Alarm Disabled"
|
||||
voice: "Alarm Disabled"
|
||||
new: "Alarm slået fra"
|
||||
new: "Alarm slået fra"
|
||||
|
||||
id: LANG_RECORD_TRIGGER
|
||||
desc: in recording settings_menu
|
||||
eng: "Trigger"
|
||||
voice:
|
||||
new: "Udløser"
|
||||
new: "Udløser"
|
||||
|
||||
id: LANG_RECORD_START_THRESHOLD
|
||||
desc: in recording settings_menu
|
||||
|
@ -3023,13 +3023,13 @@ id: LANG_RECORD_STOP_GAP
|
|||
desc: in recording settings_menu
|
||||
eng: "Presplit gap"
|
||||
voice:
|
||||
new: "Pause før deling"
|
||||
new: "Pause før deling"
|
||||
|
||||
id: LANG_RECORD_TRIGGER_MODE
|
||||
desc: in recording settings_menu
|
||||
eng: "Trigger"
|
||||
voice:
|
||||
new: "Udløser"
|
||||
new: "Udløser"
|
||||
|
||||
id: LANG_RECORD_TRIG_NOREARM
|
||||
desc: in recording settings_menu
|
||||
|
@ -3053,19 +3053,19 @@ id: LANG_RECORD_TRIG_IDLE
|
|||
desc: waiting for threshold
|
||||
eng: "Trigger idle"
|
||||
voice:
|
||||
new: "Udløser venter"
|
||||
new: "Udløser venter"
|
||||
|
||||
id: LANG_RECORD_TRIGGER_ACTIVE
|
||||
desc:
|
||||
eng: "Trigger active"
|
||||
voice:
|
||||
new: "Udløser klar"
|
||||
new: "Udløser klar"
|
||||
|
||||
id: LANG_LCD_REMOTE_MENU
|
||||
desc: in the display sub menu
|
||||
eng: "Remote-LCD Settings"
|
||||
voice:
|
||||
new: "Fjernbetjenings-skærm indstillinger"
|
||||
new: "Fjernbetjenings-skærm indstillinger"
|
||||
|
||||
id: LANG_DISK_NAME_INTERNAL
|
||||
desc: in info menu; name for internal disk with multivolume (keep short!)
|
||||
|
@ -3089,13 +3089,13 @@ id: LANG_BACKLIGHT_FADE_IN
|
|||
desc: in settings_menu
|
||||
eng: "Backlight fade in"
|
||||
voice: "Backlight fade in"
|
||||
new: "Tænd lys langsomt"
|
||||
new: "Tænd lys langsomt"
|
||||
|
||||
id: LANG_BACKLIGHT_FADE_OUT
|
||||
desc: in settings_menu
|
||||
eng: "Backlight fade out"
|
||||
voice: "Backlight fade out"
|
||||
new: "Dæmp lys"
|
||||
new: "Dæmp lys"
|
||||
|
||||
id: LANG_SHUFFLE_PLAYLIST
|
||||
desc: in playlist menu, reshuffles the order in which songs are played
|
||||
|
@ -3107,13 +3107,13 @@ id: LANG_INSERT_SHUFFLED
|
|||
desc: in onplay menu. insert a track/playlist randomly into dynamic playlist
|
||||
eng: "Insert shuffled"
|
||||
voice: "Insert shuffled"
|
||||
new: "Indsæt blandet"
|
||||
new: "Indsæt blandet"
|
||||
|
||||
id: LANG_NOTHING_TO_RESUME
|
||||
desc: Error message displayed when resume button pressed but no playlist
|
||||
eng: "Nothing to resume"
|
||||
voice: ""
|
||||
new: "Intet at fortsætte"
|
||||
new: "Intet at fortsætte"
|
||||
|
||||
id: LANG_SPDIF_ENABLE
|
||||
desc: in playback settings menu. enable/disable the optical out
|
||||
|
@ -3125,7 +3125,7 @@ id: LANG_NEXT_FOLDER
|
|||
desc: in settings_menu. Should we move to next folder when current one ends
|
||||
eng: "Move to Next Folder"
|
||||
voice: "Move to Next Folder"
|
||||
new: "Fortsæt med næste mappe"
|
||||
new: "Fortsæt med næste mappe"
|
||||
|
||||
id: LANG_RUNTIMEDB_ACTIVE
|
||||
desc: in settings_menu.
|
||||
|
@ -3137,19 +3137,19 @@ id: LANG_MENU_SET_RATING
|
|||
desc: in wps context menu
|
||||
eng: "Set song rating"
|
||||
voice: "Set song rating"
|
||||
new: "Sæt bedømmelse"
|
||||
new: "Sæt bedømmelse"
|
||||
|
||||
id: LANG_RATING
|
||||
desc: in set_rating
|
||||
eng: "Rating:"
|
||||
voice: "Rating"
|
||||
new: "Bedømmelse:"
|
||||
new: "Bedømmelse:"
|
||||
|
||||
id: LANG_CROSSFADE_DURATION
|
||||
desc: in playback settings
|
||||
eng: "Crossfade duration"
|
||||
voice: "Crossfade duration"
|
||||
new: "Længde af glidende overgang"
|
||||
new: "Længde af glidende overgang"
|
||||
|
||||
id: LANG_MIX
|
||||
desc: in playback settings, crossfade option
|
||||
|
@ -3179,7 +3179,7 @@ id: LANG_REPLAYGAIN_NOCLIP
|
|||
desc: in replaygain
|
||||
eng: "Prevent clipping"
|
||||
voice:
|
||||
new: "Undgå klipning"
|
||||
new: "Undgå klipning"
|
||||
|
||||
id: LANG_REPLAYGAIN_MODE
|
||||
desc: in replaygain
|
||||
|
@ -3221,13 +3221,13 @@ id: LANG_BIDI_SUPPORT
|
|||
desc: in settings_menu, option to enable reversal of hebrew/arabic text
|
||||
eng: "BiDi Hebrew/Arabic"
|
||||
voice:
|
||||
new: "Højre mod venstre sprog"
|
||||
new: "Højre mod venstre sprog"
|
||||
|
||||
id: LANG_REPLAYGAIN_PREAMP
|
||||
desc: in browse_id3
|
||||
eng: "Pre-amp"
|
||||
voice:
|
||||
new: "Forforstærkning"
|
||||
new: "Forforstærkning"
|
||||
|
||||
id: LANG_UNIT_DB
|
||||
desc: in browse_id3
|
||||
|
|
|
@ -58,7 +58,7 @@ id: LANG_BATTERY_CHARGE
|
|||
desc: tells that the battery is charging, instead of battery level
|
||||
eng: "Battery: Charging"
|
||||
voice: ""
|
||||
new: "Akku: lädt"
|
||||
new: "Akku: lädt"
|
||||
|
||||
id: LANG_PLAYLIST_LOAD
|
||||
desc: displayed on screen while loading a playlist
|
||||
|
@ -135,14 +135,14 @@ new: "Zufallswiedergabe"
|
|||
id: LANG_PLAY_SELECTED
|
||||
desc: in settings_menu
|
||||
eng: "Play Selected First"
|
||||
voice: "Gewählte zuerst wiedergeben"
|
||||
new: "Gewählte zuerst wiedergeben"
|
||||
voice: "Gewählte zuerst wiedergeben"
|
||||
new: "Gewählte zuerst wiedergeben"
|
||||
|
||||
id: LANG_SORT_CASE
|
||||
desc: in settings_menu
|
||||
eng: "Sort Case Sensitive"
|
||||
voice: "Sortiere Groß- und Kleinschreibung"
|
||||
new: "Sortiere Groß-/Kleinschreibung"
|
||||
voice: "Sortiere Groß- und Kleinschreibung"
|
||||
new: "Sortiere Groß-/Kleinschreibung"
|
||||
|
||||
id: LANG_RESUME
|
||||
desc: in settings_menu
|
||||
|
@ -178,7 +178,7 @@ id: LANG_SCROLL
|
|||
desc: in settings_menu
|
||||
eng: "Scroll Speed Setting Example"
|
||||
voice: ""
|
||||
new: "Beispieltext für die Scrollgeschwindigkeit"
|
||||
new: "Beispieltext für die Scrollgeschwindigkeit"
|
||||
|
||||
id: LANG_DISCHARGE
|
||||
desc: DEPRECATED
|
||||
|
@ -232,7 +232,7 @@ id: LANG_RESET_DONE_CLEAR
|
|||
desc: visual confirmation after settings reset
|
||||
eng: "Cleared"
|
||||
voice: ""
|
||||
new: "Gelöscht"
|
||||
new: "Gelöscht"
|
||||
|
||||
id: LANG_RESET_DONE_CANCEL
|
||||
desc: Visual confirmation of cancelation
|
||||
|
@ -255,8 +255,8 @@ new: "Scroll-Einstellungen"
|
|||
id: LANG_RESET
|
||||
desc: in system_settings_menu()
|
||||
eng: "Reset Settings"
|
||||
voice: "Einstellungen zurücksetzen"
|
||||
new: "Einstellungen zurücksetzen"
|
||||
voice: "Einstellungen zurücksetzen"
|
||||
new: "Einstellungen zurücksetzen"
|
||||
|
||||
id: LANG_PLAYBACK
|
||||
desc: in settings_menu()
|
||||
|
@ -285,8 +285,8 @@ new: "System"
|
|||
id: LANG_VOLUME
|
||||
desc: in sound_settings
|
||||
eng: "Volume"
|
||||
voice: "Lautstärke"
|
||||
new: "Lautstärke"
|
||||
voice: "Lautstärke"
|
||||
new: "Lautstärke"
|
||||
|
||||
id: LANG_BALANCE
|
||||
desc: in sound_settings
|
||||
|
@ -303,8 +303,8 @@ new: "Bass"
|
|||
id: LANG_TREBLE
|
||||
desc: in sound_settings
|
||||
eng: "Treble"
|
||||
voice: "Höhen"
|
||||
new: "Höhen"
|
||||
voice: "Höhen"
|
||||
new: "Höhen"
|
||||
|
||||
id: LANG_LOUDNESS
|
||||
desc: in sound_settings
|
||||
|
@ -322,13 +322,13 @@ id: LANG_DECAY
|
|||
desc: in sound_settings
|
||||
eng: "AV Decay Time"
|
||||
voice: ""
|
||||
new: "AV-Trägheit"
|
||||
new: "AV-Trägheit"
|
||||
|
||||
id: LANG_CHANNEL_MENU
|
||||
desc: in sound_settings
|
||||
eng: "Channels"
|
||||
voice: "Kanäle"
|
||||
new: "Kanäle"
|
||||
voice: "Kanäle"
|
||||
new: "Kanäle"
|
||||
|
||||
id: LANG_CHANNEL
|
||||
desc: in sound_settings
|
||||
|
@ -363,8 +363,8 @@ new: "Mono rechts"
|
|||
id: LANG_AUTOVOL
|
||||
desc: in sound_settings
|
||||
eng: "Auto Volume"
|
||||
voice: "Automatische Lautstärke"
|
||||
new: "Autom. Lautstärke"
|
||||
voice: "Automatische Lautstärke"
|
||||
new: "Autom. Lautstärke"
|
||||
|
||||
id: LANG_SHOWDIR_ERROR_BUFFER
|
||||
desc: in showdir(), displayed on screen when you reach buffer limit
|
||||
|
@ -466,7 +466,7 @@ id: LANG_ID3_ARTIST
|
|||
desc: in wps
|
||||
eng: "[Artist]"
|
||||
voice: ""
|
||||
new: "[Künstler]"
|
||||
new: "[Künstler]"
|
||||
|
||||
id: LANG_ID3_NO_ARTIST
|
||||
desc: DEPRECATED
|
||||
|
@ -502,7 +502,7 @@ id: LANG_ID3_LENGHT
|
|||
desc: in wps
|
||||
eng: "[Length]"
|
||||
voice: ""
|
||||
new: "[Länge]"
|
||||
new: "[Länge]"
|
||||
|
||||
id: LANG_ID3_PLAYLIST
|
||||
desc: in wps
|
||||
|
@ -609,8 +609,8 @@ new: "Musik"
|
|||
id: LANG_FILTER_SUPPORTED
|
||||
desc: show all file types supported by Rockbox
|
||||
eng: "Supported"
|
||||
voice: "Unterstützte"
|
||||
new: "Unterstützte"
|
||||
voice: "Unterstützte"
|
||||
new: "Unterstützte"
|
||||
|
||||
id: LANG_FILTER_ALL
|
||||
desc: show all files
|
||||
|
@ -651,8 +651,8 @@ new: "Aussteuerung Haltezeit"
|
|||
id: LANG_PM_CLIP_HOLD
|
||||
desc: in the peak meter menu
|
||||
eng: "Clip Hold Time"
|
||||
voice: "Übersteuerung Haltezeit"
|
||||
new: "Übersteuerung Haltezeit"
|
||||
voice: "Übersteuerung Haltezeit"
|
||||
new: "Übersteuerung Haltezeit"
|
||||
|
||||
id: LANG_PM_ETERNAL
|
||||
desc: in the peak meter menu
|
||||
|
@ -777,8 +777,8 @@ new: "Feb"
|
|||
id: LANG_MONTH_MARCH
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
eng: "Mar"
|
||||
voice: "März"
|
||||
new: "Mär"
|
||||
voice: "März"
|
||||
new: "Mär"
|
||||
|
||||
id: LANG_MONTH_APRIL
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
|
@ -849,8 +849,8 @@ new: "Batterieanzeige"
|
|||
id: LANG_VOLUME_DISPLAY
|
||||
desc: Volume type title
|
||||
eng: "Volume Display"
|
||||
voice: "Lautstärkeanzeige"
|
||||
new: "Lautstärkeanzeige"
|
||||
voice: "Lautstärkeanzeige"
|
||||
new: "Lautstärkeanzeige"
|
||||
|
||||
id: LANG_DISPLAY_GRAPHIC
|
||||
desc: Label for type of icon display
|
||||
|
@ -909,8 +909,8 @@ new: "Kleinster Wert"
|
|||
id: LANG_PM_MAX
|
||||
desc: in the peak meter menu
|
||||
eng: "Maximum Of Range"
|
||||
voice: "Größter Wert"
|
||||
new: "Größter Wert"
|
||||
voice: "Größter Wert"
|
||||
new: "Größter Wert"
|
||||
|
||||
id: LANG_RECORDING
|
||||
desc: in the main menu
|
||||
|
@ -939,8 +939,8 @@ new: "V. Rechts"
|
|||
id: LANG_RECORDING_QUALITY
|
||||
desc: in the recording settings
|
||||
eng: "Quality"
|
||||
voice: "Qualität"
|
||||
new: "Qualität"
|
||||
voice: "Qualität"
|
||||
new: "Qualität"
|
||||
|
||||
id: LANG_RECORDING_FREQUENCY
|
||||
desc: in the recording settings
|
||||
|
@ -957,8 +957,8 @@ new: "Quelle"
|
|||
id: LANG_RECORDING_CHANNELS
|
||||
desc: in the recording settings
|
||||
eng: "Channels"
|
||||
voice: "Kanäle"
|
||||
new: "Kanäle"
|
||||
voice: "Kanäle"
|
||||
new: "Kanäle"
|
||||
|
||||
id: LANG_RECORDING_SRC_MIC
|
||||
desc: in the recording settings
|
||||
|
@ -1023,8 +1023,8 @@ new: "Einschlaftimer"
|
|||
id: LANG_MP3BUFFER_MARGIN
|
||||
desc: MP3 buffer margin time
|
||||
eng: "Anti-Skip Buffer"
|
||||
voice: "Puffer vorzeitig füllen"
|
||||
new: "Puffer vorzeitig füllen"
|
||||
voice: "Puffer vorzeitig füllen"
|
||||
new: "Puffer vorzeitig füllen"
|
||||
|
||||
id: LANG_BIDIR_SCROLL
|
||||
desc: Bidirectional scroll limit
|
||||
|
@ -1035,8 +1035,8 @@ new: "Bidirektionales Scroll-Limit"
|
|||
id: LANG_SCROLL_DELAY
|
||||
desc: Delay before scrolling
|
||||
eng: "Scroll Start Delay"
|
||||
voice: "Start-Verzögerung"
|
||||
new: "Start-Verzögerung"
|
||||
voice: "Start-Verzögerung"
|
||||
new: "Start-Verzögerung"
|
||||
|
||||
id: LANG_SCROLL_STEP
|
||||
desc: Pixels to advance per scroll
|
||||
|
@ -1048,7 +1048,7 @@ id: LANG_SCROLL_STEP_EXAMPLE
|
|||
desc: Pixels to advance per scroll
|
||||
eng: "Scroll Step Size Setting Example Text"
|
||||
voice: ""
|
||||
new: "Beispieltext für die Schrittweite"
|
||||
new: "Beispieltext für die Schrittweite"
|
||||
|
||||
id: LANG_SCROLL_SPEED
|
||||
desc: in display_settings_menu()
|
||||
|
@ -1066,7 +1066,7 @@ id: LANG_BATTERY_TOPOFF_CHARGE
|
|||
desc: in info display, shows that top off charge is running
|
||||
eng: "Battery: Top-Off Chg"
|
||||
voice: ""
|
||||
new: "Akku: Übergangsladen"
|
||||
new: "Akku: Übergangsladen"
|
||||
|
||||
id: LANG_BATTERY_TRICKLE_CHARGE
|
||||
desc: in info display, shows that trickle charge is running
|
||||
|
@ -1077,8 +1077,8 @@ new: "Akku: Erhaltladen"
|
|||
id: LANG_BATTERY_CAPACITY
|
||||
desc: in settings_menu
|
||||
eng: "Battery Capacity"
|
||||
voice: "Batteriekapazität"
|
||||
new: "Batteriekapazität"
|
||||
voice: "Batteriekapazität"
|
||||
new: "Batteriekapazität"
|
||||
|
||||
id: LANG_MENU_SETTING_CANCEL
|
||||
desc: Visual confirmation of canceling a changed setting
|
||||
|
@ -1095,20 +1095,20 @@ new: "In Warteschlange stellen"
|
|||
id: LANG_DELETE
|
||||
desc: The verb/action Delete
|
||||
eng: "Delete"
|
||||
voice: "Löschen"
|
||||
new: "Löschen"
|
||||
voice: "Löschen"
|
||||
new: "Löschen"
|
||||
|
||||
id: LANG_REALLY_DELETE
|
||||
desc: Really Delete?
|
||||
eng: "Delete?"
|
||||
voice: ""
|
||||
new: "Löschen?"
|
||||
new: "Löschen?"
|
||||
|
||||
id: LANG_DELETED
|
||||
desc: A file has beed deleted
|
||||
eng: "Deleted"
|
||||
voice: ""
|
||||
new: "Gelöscht"
|
||||
new: "Gelöscht"
|
||||
|
||||
id: LANG_RENAME
|
||||
desc: The verb/action Rename
|
||||
|
@ -1150,7 +1150,7 @@ id: LANG_ALARM_MOD_ERROR
|
|||
desc: The text that tells that the time is incorrect (for the RTC alarm mod).
|
||||
eng: "Alarm Time Is Too Soon!"
|
||||
voice: ""
|
||||
new: "Weckzeit ist zu früh!"
|
||||
new: "Weckzeit ist zu früh!"
|
||||
|
||||
id: LANG_ALARM_MOD_KEYS
|
||||
desc: Shown key functions in alarm menu (for the RTC alarm mod).
|
||||
|
@ -1228,7 +1228,7 @@ id: LANG_RECORDING_SIZE
|
|||
desc: Display of recorded file size
|
||||
eng: "Size:"
|
||||
voice: ""
|
||||
new: "Größe:"
|
||||
new: "Größe:"
|
||||
|
||||
id: LANG_SETTINGS_LOADED1
|
||||
desc: Feedback shown when a .cfg file is loaded
|
||||
|
@ -1329,8 +1329,8 @@ new: "Zeilenauswahl"
|
|||
id: LANG_RECORDING_EDITABLE
|
||||
desc: Editable recordings setting
|
||||
eng: "Independent frames"
|
||||
voice: "Unabhängige mp3-Rahmen"
|
||||
new: "Unabhängige mp3-Frames"
|
||||
voice: "Unabhängige mp3-Rahmen"
|
||||
new: "Unabhängige mp3-Frames"
|
||||
|
||||
id: LANG_STATUS_BAR
|
||||
desc: display menu, F3 substitute
|
||||
|
@ -1383,8 +1383,8 @@ new: "Max Anzahl Dateien in Verzeichnisanzeige"
|
|||
id: LANG_MAX_FILES_IN_PLAYLIST
|
||||
desc: in settings_menu
|
||||
eng: "Max playlist size"
|
||||
voice: "Maximale Länge Abspielliste"
|
||||
new: "Max Playlist-Länge"
|
||||
voice: "Maximale Länge Abspielliste"
|
||||
new: "Max Playlist-Länge"
|
||||
|
||||
id: LANG_JUMP_SCROLL
|
||||
desc: (player) menu altarnative for jump scroll
|
||||
|
@ -1407,14 +1407,14 @@ new: "Immer"
|
|||
id: LANG_JUMP_SCROLL_DELAY
|
||||
desc: (player) Delay before making a jump scroll
|
||||
eng: "Jump Scroll Delay"
|
||||
voice: "Sprung-Scroll Verzögerung"
|
||||
new: "Sprung-Scroll Verzögerung"
|
||||
voice: "Sprung-Scroll Verzögerung"
|
||||
new: "Sprung-Scroll Verzögerung"
|
||||
|
||||
id: LANG_RECORD_TIMESPLIT
|
||||
desc: Prompt for record timer interval setting, in the record settings menu
|
||||
eng: "Time Split"
|
||||
voice: "Zeitabhängiges Aufteilen"
|
||||
new: "Zeitabhängiges Aufteilen"
|
||||
voice: "Zeitabhängiges Aufteilen"
|
||||
new: "Zeitabhängiges Aufteilen"
|
||||
|
||||
id: LANG_RECORD_TIMESPLIT_REC
|
||||
desc: Display of record timer interval setting, on the record screen
|
||||
|
@ -1432,7 +1432,7 @@ id: LANG_DISK_FULL
|
|||
desc: in recording screen
|
||||
eng: "The disk is full. Press OFF to continue."
|
||||
voice: ""
|
||||
new: "Festplatte voll. Drücke OFF zum fortfahren."
|
||||
new: "Festplatte voll. Drücke OFF zum fortfahren."
|
||||
|
||||
id: LANG_CONFIRM_WITH_PLAY_RECORDER
|
||||
desc: Generic recorder string to use to confirm
|
||||
|
@ -1454,7 +1454,7 @@ id: LANG_PLUGIN_CANT_OPEN
|
|||
desc: Plugin open error message
|
||||
eng: "Can't open %s"
|
||||
voice: ""
|
||||
new: "Kann %s nicht öffnen"
|
||||
new: "Kann %s nicht öffnen"
|
||||
|
||||
id: LANG_READ_FAILED
|
||||
desc: There was an error reading a file
|
||||
|
@ -1488,7 +1488,7 @@ id: LANG_BOOT_CHANGED
|
|||
desc: File browser discovered the boot file was changed
|
||||
eng: "Boot changed"
|
||||
voice: ""
|
||||
new: "Boot geändert"
|
||||
new: "Boot geändert"
|
||||
|
||||
id: LANG_REBOOT_NOW
|
||||
desc: Do you want to reboot?
|
||||
|
@ -1505,26 +1505,26 @@ new: "Warteschlange als Letzten"
|
|||
id: LANG_INSERT
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
eng: "Insert"
|
||||
voice: "Einfügen"
|
||||
new: "Einfügen"
|
||||
voice: "Einfügen"
|
||||
new: "Einfügen"
|
||||
|
||||
id: LANG_INSERT_LAST
|
||||
desc: in onplay menu. append a track/playlist into dynamic playlist.
|
||||
eng: "Insert last"
|
||||
voice: "Einfügen als Letzten"
|
||||
new: "Einfügen als Letzten"
|
||||
voice: "Einfügen als Letzten"
|
||||
new: "Einfügen als Letzten"
|
||||
|
||||
id: LANG_QUEUE_FIRST
|
||||
desc: in onplay menu. queue a track/playlist into dynamic playlist.
|
||||
eng: "Queue next"
|
||||
voice: "Warteschlange als Nächsten"
|
||||
new: "Warteschlange als Nächsten"
|
||||
voice: "Warteschlange als Nächsten"
|
||||
new: "Warteschlange als Nächsten"
|
||||
|
||||
id: LANG_INSERT_FIRST
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
eng: "Insert next"
|
||||
voice: "Einfügen als Nächsten"
|
||||
new: "Einfügen als Nächsten"
|
||||
voice: "Einfügen als Nächsten"
|
||||
new: "Einfügen als Nächsten"
|
||||
|
||||
id: LANG_SAVE_DYNAMIC_PLAYLIST
|
||||
desc: in playlist menu.
|
||||
|
@ -1542,7 +1542,7 @@ id: LANG_PLAYLIST_INSERT_COUNT
|
|||
desc: splash number of tracks inserted
|
||||
eng: "Inserted %d tracks (%s)"
|
||||
voice: ""
|
||||
new: "%d Tracks eingefügt (%s)"
|
||||
new: "%d Tracks eingefügt (%s)"
|
||||
|
||||
id: LANG_PLAYLIST_QUEUE_COUNT
|
||||
desc: splash number of tracks queued
|
||||
|
@ -1596,13 +1596,13 @@ id: LANG_PLAYLIST_CONTROL_INVALID
|
|||
desc: Playlist resume error
|
||||
eng: "Playlist control file is invalid"
|
||||
voice: ""
|
||||
new: "Playlist-Steuerdatei ist ungültig"
|
||||
new: "Playlist-Steuerdatei ist ungültig"
|
||||
|
||||
id: LANG_RECURSE_DIRECTORY
|
||||
desc: In playlist menu
|
||||
eng: "Recursively Insert Directories"
|
||||
voice: "Verzeichnisse rekursiv hinzufügen"
|
||||
new: "Verzeichnisse rekursiv hinzufügen"
|
||||
voice: "Verzeichnisse rekursiv hinzufügen"
|
||||
new: "Verzeichnisse rekursiv hinzufügen"
|
||||
|
||||
id: LANG_RECURSE_DIRECTORY_QUESTION
|
||||
desc: Asked from onplay screen
|
||||
|
@ -1613,8 +1613,8 @@ new: "Rekursiv?"
|
|||
id: LANG_CUSTOM_FONT
|
||||
desc: in setting_menu()
|
||||
eng: "Browse Fonts"
|
||||
voice: "Zeige Zeichensätze"
|
||||
new: "Zeige Zeichensätze"
|
||||
voice: "Zeige Zeichensätze"
|
||||
new: "Zeige Zeichensätze"
|
||||
|
||||
id: LANG_FIRMWARE
|
||||
desc: in the main menu
|
||||
|
@ -1668,7 +1668,7 @@ id: LANG_BUTTONBAR_MENU
|
|||
desc: in button bar
|
||||
eng: "Menu"
|
||||
voice: ""
|
||||
new: "Menü"
|
||||
new: "Menü"
|
||||
|
||||
id: LANG_FM_BUTTONBAR_PRESETS
|
||||
desc: in button bar
|
||||
|
@ -1757,8 +1757,8 @@ new: "Vorab-Aufnahme"
|
|||
id: LANG_RECORD_PRERECORD_TIME
|
||||
desc: in recording settings_menu
|
||||
eng: "Prerecord time"
|
||||
voice: "Vorab-Aufnahme-Länge"
|
||||
new: "Vorab-Aufnahme-Länge"
|
||||
voice: "Vorab-Aufnahme-Länge"
|
||||
new: "Vorab-Aufnahme-Länge"
|
||||
|
||||
#Auto bookmark prompts
|
||||
|
||||
|
@ -1810,13 +1810,13 @@ id: LANG_BOOKMARK_SELECT_PLAY
|
|||
desc: Used on the bookmark select window to indicated the play option
|
||||
eng: "PLAY = Select"
|
||||
voice: ""
|
||||
new: "PLAY = Auswählen"
|
||||
new: "PLAY = Auswählen"
|
||||
|
||||
id: LANG_BOOKMARK_SELECT_DELETE
|
||||
desc: Used on the bookmark select window to indicated the bookmark delete option
|
||||
eng: "ON+Play = Delete"
|
||||
voice: ""
|
||||
new: "ON+Play = Löschen"
|
||||
new: "ON+Play = Löschen"
|
||||
|
||||
# Bookmark creation/failure text
|
||||
|
||||
|
@ -1925,7 +1925,7 @@ new: "Aufnahmemodus"
|
|||
id: LANG_WIND_MENU
|
||||
desc: in the playback sub menu
|
||||
eng: "FFwd/Rewind"
|
||||
voice: "Vor- und Rücklauf"
|
||||
voice: "Vor- und Rücklauf"
|
||||
new: "FF/RW"
|
||||
|
||||
id: LANG_LCD_MENU
|
||||
|
@ -2042,7 +2042,7 @@ id: LANG_DIRBROWSE_F1
|
|||
desc: in dir browser, F1 button bar text
|
||||
eng: "Menu"
|
||||
voice: ""
|
||||
new: "Menü"
|
||||
new: "Menü"
|
||||
|
||||
id: LANG_DIRBROWSE_F2
|
||||
desc: in dir browser, F2 button bar text
|
||||
|
@ -2375,8 +2375,8 @@ new: "Sprachausgabe"
|
|||
id: LANG_VOICE_MENU
|
||||
desc: item of voice menu, enable/disable the voice UI
|
||||
eng: "Voice Menus"
|
||||
voice: "Menüs"
|
||||
new: "Menüs"
|
||||
voice: "Menüs"
|
||||
new: "Menüs"
|
||||
|
||||
id: LANG_VOICE_DIR
|
||||
desc: item of voice menu, set the "talkbox" mode for directories
|
||||
|
@ -2639,8 +2639,8 @@ new:
|
|||
id: LANG_DELETE_DIR
|
||||
desc: in on+play menu
|
||||
eng: "Delete directory"
|
||||
voice: "Verzeichnis löschen"
|
||||
new: "Verzeichnis löschen"
|
||||
voice: "Verzeichnis löschen"
|
||||
new: "Verzeichnis löschen"
|
||||
|
||||
id: VOICE_CURRENT_TIME
|
||||
desc: spoken only, for wall clock announce
|
||||
|
@ -2677,8 +2677,8 @@ new: "Dateitypen-Zeichenpuffer leer"
|
|||
id: LANG_ONPLAY_OPEN_WITH
|
||||
desc: Onplay open with
|
||||
eng: "Open with"
|
||||
voice: "öffnen mit"
|
||||
new: "Öffnen mit"
|
||||
voice: "öffnen mit"
|
||||
new: "Öffnen mit"
|
||||
|
||||
id: LANG_SORT_DIR
|
||||
desc: browser sorting setting
|
||||
|
@ -2755,14 +2755,14 @@ new: "Aktion"
|
|||
id: LANG_MDB_STRENGTH
|
||||
desc: in sound settings
|
||||
eng: "MDB Strength"
|
||||
voice: "MDB Stärke"
|
||||
new: "MDB Stärke"
|
||||
voice: "MDB Stärke"
|
||||
new: "MDB Stärke"
|
||||
|
||||
id: LANG_MDB_HARMONICS
|
||||
desc: in sound settings
|
||||
eng: "MDB Harmonics"
|
||||
voice: "MDB Obertöne"
|
||||
new: "MDB Obertöne"
|
||||
voice: "MDB Obertöne"
|
||||
new: "MDB Obertöne"
|
||||
|
||||
id: LANG_MDB_CENTER
|
||||
desc: in sound settings
|
||||
|
@ -2834,7 +2834,7 @@ id: LANG_INSTALLATION_INCOMPLETE
|
|||
desc: in browse root
|
||||
eng: "Installation incomplete"
|
||||
voice: ""
|
||||
new: "Installation unvollständig"
|
||||
new: "Installation unvollständig"
|
||||
|
||||
id: LANG_REMOVE_MMC
|
||||
desc: before acknowledging usb in case an MMC is inserted (Ondio)
|
||||
|
@ -2876,7 +2876,7 @@ id: LANG_ID3DB_ARTISTS
|
|||
desc: ID3 virtual folder name
|
||||
eng: "Artists"
|
||||
voice: ""
|
||||
new: "Künstler"
|
||||
new: "Künstler"
|
||||
|
||||
id: LANG_ID3DB_ALBUMS
|
||||
desc: ID3 virtual folder name
|
||||
|
@ -2900,7 +2900,7 @@ id: LANG_ID3DB_SEARCH_ARTISTS
|
|||
desc: ID3 virtual folder name
|
||||
eng: "Search Artists"
|
||||
voice: ""
|
||||
new: "Suche Künstler"
|
||||
new: "Suche Künstler"
|
||||
|
||||
id: LANG_ID3DB_SEARCH_ALBUMS
|
||||
desc: ID3 virtual folder name
|
||||
|
@ -3020,7 +3020,7 @@ id: LANG_RECORD_MIN_DURATION
|
|||
desc: in recording settings_menu
|
||||
eng: "for at least"
|
||||
voice:
|
||||
new: "für mindestens"
|
||||
new: "für mindestens"
|
||||
|
||||
id: LANG_RECORD_STOP_THRESHOLD
|
||||
desc: in recording settings_menu
|
||||
|
@ -3032,7 +3032,7 @@ id: LANG_RECORD_STOP_POSTREC
|
|||
desc: in recording settings_menu
|
||||
eng: "for at least"
|
||||
voice:
|
||||
new: "für mindestens"
|
||||
new: "für mindestens"
|
||||
|
||||
id: LANG_RECORD_STOP_GAP
|
||||
desc: in recording settings_menu
|
||||
|
@ -3097,8 +3097,8 @@ new: "MMC:"
|
|||
id: LANG_CROSSFADE
|
||||
desc: in playback settings
|
||||
eng: "Crossfade"
|
||||
voice: "Überblenden"
|
||||
new: "Überblenden"
|
||||
voice: "Überblenden"
|
||||
new: "Überblenden"
|
||||
|
||||
id: LANG_BACKLIGHT_FADE_IN
|
||||
desc: in settings_menu
|
||||
|
@ -3127,8 +3127,8 @@ new: "Nichts fortzusetzen"
|
|||
id: LANG_INSERT_SHUFFLED
|
||||
desc: in onplay menu. insert a track/playlist randomly into dynamic playlist
|
||||
eng: "Insert shuffled"
|
||||
voice: "Zufällig einfügen"
|
||||
new: "Zufällig einfügen"
|
||||
voice: "Zufällig einfügen"
|
||||
new: "Zufällig einfügen"
|
||||
|
||||
id: LANG_SPDIF_ENABLE
|
||||
desc: in playback settings menu. enable/disable the optical out
|
||||
|
@ -3181,50 +3181,50 @@ new: "Neustart der Wiedergabe..."
|
|||
id: LANG_REPLAYGAIN
|
||||
desc: in replaygain
|
||||
eng: "Replaygain"
|
||||
voice: "Lautstärkeanpassung"
|
||||
new: "Lautstärkeanpassung"
|
||||
voice: "Lautstärkeanpassung"
|
||||
new: "Lautstärkeanpassung"
|
||||
|
||||
id: LANG_REPLAYGAIN_ENABLE
|
||||
desc: in replaygain
|
||||
eng: "Enable replaygain"
|
||||
voice: "Lautstärkeanpassung aktivieren"
|
||||
new: "Lautstärkeanpassung aktivieren"
|
||||
voice: "Lautstärkeanpassung aktivieren"
|
||||
new: "Lautstärkeanpassung aktivieren"
|
||||
|
||||
id: LANG_REPLAYGAIN_NOCLIP
|
||||
desc: in replaygain
|
||||
eng: "Prevent clipping"
|
||||
voice: "Übersteuerung verhindern"
|
||||
new: "Übersteuerung verhindern"
|
||||
voice: "Übersteuerung verhindern"
|
||||
new: "Übersteuerung verhindern"
|
||||
|
||||
id: LANG_REPLAYGAIN_MODE
|
||||
desc: in replaygain
|
||||
eng: "Replaygain type"
|
||||
voice: "Lautstärkeanpassungstyp"
|
||||
new: "Lautstärkeanpassungstyp"
|
||||
voice: "Lautstärkeanpassungstyp"
|
||||
new: "Lautstärkeanpassungstyp"
|
||||
|
||||
id: LANG_TRACK_GAIN
|
||||
desc: in replaygain
|
||||
eng: "Track gain"
|
||||
voice: "Titellautstärke"
|
||||
new: "Titellautstärke"
|
||||
voice: "Titellautstärke"
|
||||
new: "Titellautstärke"
|
||||
|
||||
id: LANG_ALBUM_GAIN
|
||||
desc: in replaygain
|
||||
eng: "Album gain"
|
||||
voice: "Albumlautstärke"
|
||||
new: "Albumlautstärke"
|
||||
voice: "Albumlautstärke"
|
||||
new: "Albumlautstärke"
|
||||
|
||||
id: LANG_ID3_TRACK_GAIN
|
||||
desc: in browse_id3
|
||||
eng: "[Track gain]"
|
||||
voice:
|
||||
new: "[Titellautstärke]"
|
||||
new: "[Titellautstärke]"
|
||||
|
||||
id: LANG_ID3_ALBUM_GAIN
|
||||
desc: in browse_id3
|
||||
eng: "[Album gain]"
|
||||
voice:
|
||||
new: "[Albumlautstärke]"
|
||||
new: "[Albumlautstärke]"
|
||||
|
||||
id: LANG_ID3_NO_GAIN
|
||||
desc: DEPRECATED
|
||||
|
@ -3236,13 +3236,13 @@ id: LANG_BIDI_SUPPORT
|
|||
desc: in settings_menu, option to enable reversal of hebrew/arabic text
|
||||
eng: "BiDi Hebrew/Arabic"
|
||||
voice: "Bidirektionaler Text"
|
||||
new: "BiDi Hebräisch/Arabisch"
|
||||
new: "BiDi Hebräisch/Arabisch"
|
||||
|
||||
id: LANG_REPLAYGAIN_PREAMP
|
||||
desc: in replaygain settings
|
||||
eng: "Pre-amp"
|
||||
voice: "Vorverstärkung"
|
||||
new: "Vorverstärkung"
|
||||
voice: "Vorverstärkung"
|
||||
new: "Vorverstärkung"
|
||||
|
||||
id: LANG_UNIT_DB
|
||||
desc: in browse_id3
|
||||
|
@ -3259,8 +3259,8 @@ new: " (VBR)"
|
|||
id: LANG_BEEP
|
||||
desc: in playback settings
|
||||
eng: "Beep volume"
|
||||
voice: "Piep-Lautstärke"
|
||||
new: "Piep-Lautstärke"
|
||||
voice: "Piep-Lautstärke"
|
||||
new: "Piep-Lautstärke"
|
||||
|
||||
id: LANG_WEAK
|
||||
desc: in beep volume in playback settings
|
||||
|
@ -3289,8 +3289,8 @@ new: "A-B"
|
|||
id: LANG_SHUFFLE_GAIN
|
||||
desc: use track gain if shuffle mode is on, album gain otherwise
|
||||
eng: "Track gain if shuffling"
|
||||
voice: "Titellautstärke beim Mischen"
|
||||
new: "Titellautstärke beim Mischen"
|
||||
voice: "Titellautstärke beim Mischen"
|
||||
new: "Titellautstärke beim Mischen"
|
||||
|
||||
id: LANG_DIRCACHE_ENABLE
|
||||
desc: in directory cache settings
|
||||
|
@ -3313,20 +3313,20 @@ new: "Lese Festplatte..."
|
|||
id: LANG_CROSSFADE_ENABLE
|
||||
desc: in crossfade settings menu
|
||||
eng: "Enable crossfade"
|
||||
voice: "Überblenden aktivieren"
|
||||
new: "Überblenden aktivieren"
|
||||
voice: "Überblenden aktivieren"
|
||||
new: "Überblenden aktivieren"
|
||||
|
||||
id: LANG_CROSSFADE_FADE_IN_DELAY
|
||||
desc: in crossfade settings menu
|
||||
eng: "Fade in delay"
|
||||
voice: "Einblendverzögerung"
|
||||
new: "Einblendverzögerung"
|
||||
voice: "Einblendverzögerung"
|
||||
new: "Einblendverzögerung"
|
||||
|
||||
id: LANG_CROSSFADE_FADE_OUT_DELAY
|
||||
desc: in crossfade settings menu
|
||||
eng: "Fade out delay"
|
||||
voice: "Ausblendverzögerung"
|
||||
new: "Ausblendverzögerung"
|
||||
voice: "Ausblendverzögerung"
|
||||
new: "Ausblendverzögerung"
|
||||
|
||||
id: LANG_CROSSFADE_FADE_IN_DURATION
|
||||
desc: in crossfade settings menu
|
||||
|
@ -3349,14 +3349,14 @@ new: "Ausblendmodus"
|
|||
id: LANG_RECORDING_ADC_RIGHT
|
||||
desc: in the recording settings
|
||||
eng: "ADC Gain Right"
|
||||
voice: "Verstärkung rechts"
|
||||
new: "Verstärkung rechts"
|
||||
voice: "Verstärkung rechts"
|
||||
new: "Verstärkung rechts"
|
||||
|
||||
id: LANG_RECORDING_ADC_LEFT
|
||||
desc: in the recording settings
|
||||
eng: "ADC Gain Left"
|
||||
voice: "Verstärkung links"
|
||||
new: "Verstärkung links"
|
||||
voice: "Verstärkung links"
|
||||
new: "Verstärkung links"
|
||||
|
||||
id: LANG_RECORDING_MONITOR
|
||||
desc: DEPRECATED
|
||||
|
@ -3415,14 +3415,14 @@ new: "%d,%01dMHz"
|
|||
id: LANG_FM_ADD_PRESET
|
||||
desc: in radio menu
|
||||
eng: "Add preset"
|
||||
voice: "Sender hinzufügen"
|
||||
new: "Sender hinzufügen"
|
||||
voice: "Sender hinzufügen"
|
||||
new: "Sender hinzufügen"
|
||||
|
||||
id: LANG_FM_CLEAR_PRESETS
|
||||
desc: confirmation if presets can be cleared
|
||||
eng: "Clear current presets?"
|
||||
voice: ""
|
||||
new: "Alle Sender löschen?"
|
||||
new: "Alle Sender löschen?"
|
||||
|
||||
id: LANG_WAIT
|
||||
desc: general please wait splash
|
||||
|
|
|
@ -3240,9 +3240,9 @@ voice: ""
|
|||
new:
|
||||
|
||||
id: LANG_BIDI_SUPPORT
|
||||
desc: in settings_menu, option to enable reversal of hebrew/arabic text
|
||||
eng: "BiDi Hebrew/Arabic"
|
||||
voice: "Bidirectional text"
|
||||
desc: DEPRECATED
|
||||
eng: ""
|
||||
voice: ""
|
||||
new:
|
||||
|
||||
id: LANG_REPLAYGAIN_PREAMP
|
||||
|
@ -3389,6 +3389,90 @@ eng: "Screen frozen!"
|
|||
voice: ""
|
||||
new:
|
||||
|
||||
id: LANG_DEFAULT_CODEPAGE
|
||||
desc: default encoding used with id3 tags
|
||||
eng: "Default Codepage"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_LATIN1
|
||||
desc: in codepage setting menu
|
||||
eng: "Latin1 (ISO-8859-1)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_GREEK
|
||||
desc: in codepage setting menu
|
||||
eng: "Greek (ISO-8859-7)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_HEBREW
|
||||
desc: in codepage setting menu
|
||||
eng: "Hebrew (ISO-8859-8)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_RUSSIAN
|
||||
desc: in codepage setting menu
|
||||
eng: "Russian (CP1251)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_THAI
|
||||
desc: in codepage setting menu
|
||||
eng: "Thai (ISO-8859-11)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_ARABIC
|
||||
desc: in codepage setting menu
|
||||
eng: "Arabic (ISO-8859-6)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_TURKISH
|
||||
desc: in codepage setting menu
|
||||
eng: "Turkish (ISO-8859-9)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_LATIN_EXTENDED
|
||||
desc: in codepage setting menu
|
||||
eng: "Latin Extended (ISO-8859-2)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_JAPANESE
|
||||
desc: in codepage setting menu
|
||||
eng: "Japanese (SJIS)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_SIMPLIFIED
|
||||
desc: in codepage setting menu
|
||||
eng: "Simp. Chinese (GB2312)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_KOREAN
|
||||
desc: in codepage setting menu
|
||||
eng: "Korean (KSX1001)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_TRADITIONAL
|
||||
desc: in codepage setting menu
|
||||
eng: "Trad. Chinese (BIG5)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CODEPAGE_UTF8
|
||||
decs: in codepage setting menu
|
||||
eng: "Unicode (UTF-8)"
|
||||
voice:
|
||||
new:
|
||||
|
||||
id: LANG_CROSSFEED_ENABLE
|
||||
desc: DEPRECATED
|
||||
eng: ""
|
||||
|
|
|
@ -14,20 +14,20 @@ new: "Opciones Generales"
|
|||
id: LANG_INFO
|
||||
desc: in the main menu
|
||||
eng: "Info"
|
||||
voice: "Información"
|
||||
new: "Información"
|
||||
voice: "Información"
|
||||
new: "Información"
|
||||
|
||||
id: LANG_VERSION
|
||||
desc: in the main menu
|
||||
eng: "Version"
|
||||
voice: "Versión"
|
||||
new: "Versión"
|
||||
voice: "Versión"
|
||||
new: "Versión"
|
||||
|
||||
id: LANG_DEBUG
|
||||
desc: in the main menu
|
||||
eng: "Debug (Keep Out!)"
|
||||
voice: "Depuración (¡no tocar!)"
|
||||
new: "Depuración (¡no tocar!)"
|
||||
voice: "Depuración (¡no tocar!)"
|
||||
new: "Depuración (¡no tocar!)"
|
||||
|
||||
id: LANG_USB
|
||||
desc: in the main menu
|
||||
|
@ -57,7 +57,7 @@ id: LANG_BATTERY_CHARGE
|
|||
desc: tells that the battery is charging, instead of battery level
|
||||
eng: "Battery: Charging"
|
||||
voice: ""
|
||||
new: "Batería: Cargando"
|
||||
new: "Batería: Cargando"
|
||||
|
||||
id: LANG_PLAYLIST_LOAD
|
||||
desc: displayed on screen while loading a playlist
|
||||
|
@ -93,7 +93,7 @@ id: LANG_SETTINGS_BATTERY_PLAYER
|
|||
desc: if save settings has failed
|
||||
eng: "Partition?"
|
||||
voice: ""
|
||||
new: "Partición?"
|
||||
new: "Partición?"
|
||||
|
||||
id: LANG_SETTINGS_SAVE_RECORDER
|
||||
desc: displayed if save settings has failed
|
||||
|
@ -105,7 +105,7 @@ id: LANG_SETTINGS_BATTERY_RECORDER
|
|||
desc: if save settings has failed
|
||||
eng: "No partition?"
|
||||
voice: ""
|
||||
new: "¿No hay partición?"
|
||||
new: "¿No hay partición?"
|
||||
|
||||
id: LANG_TIME_SET
|
||||
desc: used in set_time()
|
||||
|
@ -134,14 +134,14 @@ new: "Aleatorio"
|
|||
id: LANG_PLAY_SELECTED
|
||||
desc: in settings_menu
|
||||
eng: "Play Selected First"
|
||||
voice: "Reproducir primero la canción marcada"
|
||||
new: "Reproducir primero la canción marcada"
|
||||
voice: "Reproducir primero la canción marcada"
|
||||
new: "Reproducir primero la canción marcada"
|
||||
|
||||
id: LANG_SORT_CASE
|
||||
desc: in settings_menu
|
||||
eng: "Sort Case Sensitive"
|
||||
voice: "Sensible a May/minúsculas"
|
||||
new: "Sensible a May/minúsculas"
|
||||
voice: "Sensible a May/minúsculas"
|
||||
new: "Sensible a May/minúsculas"
|
||||
|
||||
id: LANG_RESUME
|
||||
desc: in settings_menu
|
||||
|
@ -170,8 +170,8 @@ new: "Activo"
|
|||
id: LANG_BACKLIGHT
|
||||
desc: in settings_menu
|
||||
eng: "Backlight"
|
||||
voice: "Iluminación"
|
||||
new: "Iluminación"
|
||||
voice: "Iluminación"
|
||||
new: "Iluminación"
|
||||
|
||||
id: LANG_SCROLL
|
||||
desc: in settings_menu
|
||||
|
@ -200,26 +200,26 @@ new: "Parada del disco duro"
|
|||
id: LANG_FFRW_STEP
|
||||
desc: in settings_menu
|
||||
eng: "FF/RW Min Step"
|
||||
voice: "Paso mínimo"
|
||||
new: "Paso mínimo FF/RW"
|
||||
voice: "Paso mínimo"
|
||||
new: "Paso mínimo FF/RW"
|
||||
|
||||
id: LANG_FFRW_ACCEL
|
||||
desc: in settings_menu
|
||||
eng: "FF/RW Accel"
|
||||
voice: "Aceleración"
|
||||
new: "Aceleración FF/RW"
|
||||
voice: "Aceleración"
|
||||
new: "Aceleración FF/RW"
|
||||
|
||||
id: LANG_FOLLOW
|
||||
desc: in settings_menu
|
||||
eng: "Follow Playlist"
|
||||
voice: "Seguir lista de reproducción"
|
||||
voice: "Seguir lista de reproducción"
|
||||
new: "Seguir lista de repr."
|
||||
|
||||
id: LANG_RESET_ASK_RECORDER
|
||||
desc: confirm to reset settings
|
||||
eng: "Are You Sure?"
|
||||
voice: ""
|
||||
new: "¿Estás seguro?"
|
||||
new: "¿Estás seguro?"
|
||||
|
||||
id: LANG_RESET_DONE_SETTING
|
||||
desc: visual confirmation after settings reset
|
||||
|
@ -260,8 +260,8 @@ new: "Reiniciar opciones"
|
|||
id: LANG_PLAYBACK
|
||||
desc: in settings_menu()
|
||||
eng: "Playback"
|
||||
voice: "Reproducción"
|
||||
new: "Reproducción"
|
||||
voice: "Reproducción"
|
||||
new: "Reproducción"
|
||||
|
||||
id: LANG_FILE
|
||||
desc: in settings_menu()
|
||||
|
@ -321,7 +321,7 @@ id: LANG_DECAY
|
|||
desc: in sound_settings
|
||||
eng: "AV Decay Time"
|
||||
voice: ""
|
||||
new: "Tiempo de caída del AV"
|
||||
new: "Tiempo de caída del AV"
|
||||
|
||||
id: LANG_CHANNEL_MENU
|
||||
desc: in sound_settings
|
||||
|
@ -333,13 +333,13 @@ id: LANG_CHANNEL
|
|||
desc: in sound_settings
|
||||
eng: "Channel Configuration"
|
||||
voice: ""
|
||||
new: "Configuración de canales"
|
||||
new: "Configuración de canales"
|
||||
|
||||
id: LANG_CHANNEL_STEREO
|
||||
desc: in sound_settings
|
||||
eng: "Stereo"
|
||||
voice: "Estéreo"
|
||||
new: "Estéreo"
|
||||
voice: "Estéreo"
|
||||
new: "Estéreo"
|
||||
|
||||
id: LANG_CHANNEL_MONO
|
||||
desc: in sound_settings
|
||||
|
@ -453,13 +453,13 @@ id: LANG_ID3_TITLE
|
|||
desc: in wps
|
||||
eng: "[Title]"
|
||||
voice: ""
|
||||
new: "[Título]"
|
||||
new: "[Título]"
|
||||
|
||||
id: LANG_ID3_NO_TITLE
|
||||
desc: in wps when no title is avaible
|
||||
eng: "<No Title>"
|
||||
voice: ""
|
||||
new: "<sin título>"
|
||||
new: "<sin título>"
|
||||
|
||||
id: LANG_ID3_ARTIST
|
||||
desc: in wps
|
||||
|
@ -477,31 +477,31 @@ id: LANG_ID3_ALBUM
|
|||
desc: in wps
|
||||
eng: "[Album]"
|
||||
voice: ""
|
||||
new: "[Álbum]"
|
||||
new: "[Álbum]"
|
||||
|
||||
id: LANG_ID3_NO_ALBUM
|
||||
desc: in wps when no album is avaible
|
||||
eng: "<No Album>"
|
||||
voice: ""
|
||||
new: "<sin álbum>"
|
||||
new: "<sin álbum>"
|
||||
|
||||
id: LANG_ID3_TRACKNUM
|
||||
desc: in wps
|
||||
eng: "[Tracknum]"
|
||||
voice: ""
|
||||
new: "[Nº pista]"
|
||||
new: "[Nº pista]"
|
||||
|
||||
id: LANG_ID3_NO_TRACKNUM
|
||||
desc: in wps if no track number is avaible
|
||||
eng: "<No Tracknum>"
|
||||
voice: ""
|
||||
new: "<sin nº pista>"
|
||||
new: "<sin nº pista>"
|
||||
|
||||
id: LANG_ID3_LENGHT
|
||||
desc: in wps
|
||||
eng: "[Length]"
|
||||
voice: ""
|
||||
new: "[Tamaño]"
|
||||
new: "[Tamaño]"
|
||||
|
||||
id: LANG_ID3_PLAYLIST
|
||||
desc: in wps
|
||||
|
@ -602,8 +602,8 @@ new: "Mostrar archivos"
|
|||
id: LANG_FILTER_MUSIC
|
||||
desc: show only music-related files
|
||||
eng: "Music"
|
||||
voice: "Música"
|
||||
new: "Música"
|
||||
voice: "Música"
|
||||
new: "Música"
|
||||
|
||||
id: LANG_FILTER_SUPPORTED
|
||||
desc: show all file types supported by Rockbox
|
||||
|
@ -668,8 +668,8 @@ new: "Unidades por lectura"
|
|||
id: LANG_BACKLIGHT_ON_WHEN_CHARGING
|
||||
desc: in display_settings_menu
|
||||
eng: "Backlight On When Plugged"
|
||||
voice: "Iluminación estando enchufado"
|
||||
new: "Iluminación estando enchufado"
|
||||
voice: "Iluminación estando enchufado"
|
||||
new: "Iluminación estando enchufado"
|
||||
|
||||
id: LANG_REPEAT
|
||||
desc: in settings_menu
|
||||
|
@ -746,44 +746,44 @@ new: "Despertandose en %d:%02d"
|
|||
id: LANG_BATTERY_CAPACITY
|
||||
desc: in settings_menu
|
||||
eng: "Battery Capacity"
|
||||
voice: "Capacidad Batería"
|
||||
new: "Capacidad Batería"
|
||||
voice: "Capacidad Batería"
|
||||
new: "Capacidad Batería"
|
||||
|
||||
id: LANG_BATTERY_DISPLAY
|
||||
desc: Battery type title
|
||||
eng: "Battery Display"
|
||||
voice: "Mostrar Batería"
|
||||
new: "Mostrar Batería"
|
||||
voice: "Mostrar Batería"
|
||||
new: "Mostrar Batería"
|
||||
|
||||
id: LANG_BATTERY_TIME
|
||||
desc: battery level in % and estimated time remaining
|
||||
eng: "%d%% %dh %dm"
|
||||
voice: "Nivel de batería"
|
||||
voice: "Nivel de batería"
|
||||
new: "%d%% %dh %dm"
|
||||
|
||||
id: LANG_BATTERY_TOPOFF_CHARGE
|
||||
desc: in info display, shows that top off charge is running
|
||||
eng: "Battery: Top-Off Chg"
|
||||
voice: ""
|
||||
new: "Batería: Top-Off Chg"
|
||||
new: "Batería: Top-Off Chg"
|
||||
|
||||
id: LANG_BATTERY_TRICKLE_CHARGE
|
||||
desc: in info display, shows that trickle charge is running
|
||||
eng: "Battery: Trickle Chg"
|
||||
voice: ""
|
||||
new: "Batería: Trickle Chg"
|
||||
new: "Batería: Trickle Chg"
|
||||
|
||||
id: LANG_BIDIR_SCROLL
|
||||
desc: Bidirectional scroll limit
|
||||
eng: "Bidirectional Scroll Limit"
|
||||
voice: "Límite de desplazamiento bidireccional"
|
||||
new: "Límite de desplaz. bidireccional"
|
||||
voice: "Límite de desplazamiento bidireccional"
|
||||
new: "Límite de desplaz. bidireccional"
|
||||
|
||||
id: LANG_CREATE_PLAYLIST
|
||||
desc: Menu option for creating a playlist
|
||||
eng: "Create Playlist"
|
||||
voice: "Crear lista de reproducción"
|
||||
new: "Crear Lista de Reproducción"
|
||||
voice: "Crear lista de reproducción"
|
||||
new: "Crear Lista de Reproducción"
|
||||
|
||||
id: LANG_CREATING
|
||||
desc: Screen feedback during playlist creation
|
||||
|
@ -818,14 +818,14 @@ new:
|
|||
id: LANG_DISPLAY_GRAPHIC
|
||||
desc: Label for type of icon display
|
||||
eng: "Graphic"
|
||||
voice: "Gráfico"
|
||||
new: "Gráfico"
|
||||
voice: "Gráfico"
|
||||
new: "Gráfico"
|
||||
|
||||
id: LANG_DISPLAY_NUMERIC
|
||||
desc: Label for type of icon display
|
||||
eng: "Numeric"
|
||||
voice: "Numérico"
|
||||
new: "Numérico"
|
||||
voice: "Numérico"
|
||||
new: "Numérico"
|
||||
|
||||
id: LANG_FAILED
|
||||
desc: Something failed. To be appended after above actions
|
||||
|
@ -836,14 +836,14 @@ new: "Fallido"
|
|||
id: LANG_FILTER_PLAYLIST
|
||||
desc: show only playlist
|
||||
eng: "Playlists"
|
||||
voice: "Listas de reproducción"
|
||||
new: "Listas de reproducción"
|
||||
voice: "Listas de reproducción"
|
||||
new: "Listas de reproducción"
|
||||
|
||||
id: LANG_ID3_GENRE
|
||||
desc: ID3 frame 'genre'
|
||||
eng: "[Genre]"
|
||||
voice: ""
|
||||
new: "[Género]"
|
||||
new: "[Género]"
|
||||
|
||||
id: LANG_ID3_NO_INFO
|
||||
desc: ID3 info is missing
|
||||
|
@ -855,7 +855,7 @@ id: LANG_ID3_YEAR
|
|||
desc: ID3 info 'year'
|
||||
eng: "[Year]"
|
||||
voice: ""
|
||||
new: "[Año]"
|
||||
new: "[Año]"
|
||||
|
||||
id: LANG_MENU_SETTING_CANCEL
|
||||
desc: Visual confirmation of canceling a changed setting
|
||||
|
@ -974,13 +974,13 @@ new:
|
|||
id: LANG_PM_DBFS
|
||||
desc: in the peak meter menu
|
||||
eng: "Logarithmic(dB)"
|
||||
voice: "Logarítmica decibelio"
|
||||
new: "Logarítmica(dB)"
|
||||
voice: "Logarítmica decibelio"
|
||||
new: "Logarítmica(dB)"
|
||||
|
||||
id: LANG_PM_ENERGY_SAVER
|
||||
desc: in the peak meter menu
|
||||
eng: "Save Energy"
|
||||
voice: "Ahorrar energía"
|
||||
voice: "Ahorrar energía"
|
||||
new: "Ahorrar energia"
|
||||
|
||||
id: LANG_PM_HIGH_PERFORMANCE
|
||||
|
@ -998,14 +998,14 @@ new: "Lineal(%)"
|
|||
id: LANG_PM_MAX
|
||||
desc: in the peak meter menu
|
||||
eng: "Maximum Of Range"
|
||||
voice: "Máximo de rango"
|
||||
new: "Máximo de rango"
|
||||
voice: "Máximo de rango"
|
||||
new: "Máximo de rango"
|
||||
|
||||
id: LANG_PM_MIN
|
||||
desc: in the peak meter menu
|
||||
eng: "Minimum Of Range"
|
||||
voice: "Mínimo de rango"
|
||||
new: "Mínimo de rango"
|
||||
voice: "Mínimo de rango"
|
||||
new: "Mínimo de rango"
|
||||
|
||||
id: LANG_PM_PERFORMANCE
|
||||
desc: in the peak meter menu
|
||||
|
@ -1035,13 +1035,13 @@ id: LANG_REALLY_DELETE
|
|||
desc: Really Delete?
|
||||
eng: "Delete?"
|
||||
voice: ""
|
||||
new: "¿Borrar?"
|
||||
new: "¿Borrar?"
|
||||
|
||||
id: LANG_RECORDING
|
||||
desc: in the main menu
|
||||
eng: "Recording"
|
||||
voice: "Grabación"
|
||||
new: "Grabación"
|
||||
voice: "Grabación"
|
||||
new: "Grabación"
|
||||
|
||||
id: LANG_RECORDING_CHANNELS
|
||||
desc: in the recording settings
|
||||
|
@ -1082,8 +1082,8 @@ new: "Derecho"
|
|||
id: LANG_RECORDING_SETTINGS
|
||||
desc: in the main menu
|
||||
eng: "Recording Settings"
|
||||
voice: "Opciones de Grabación"
|
||||
new: "Opciones de Grabación"
|
||||
voice: "Opciones de Grabación"
|
||||
new: "Opciones de Grabación"
|
||||
|
||||
id: LANG_RECORDING_SOURCE
|
||||
desc: in the recording settings
|
||||
|
@ -1100,13 +1100,13 @@ new: "Digital"
|
|||
id: LANG_RECORDING_SRC_LINE
|
||||
desc: in the recording settings
|
||||
eng: "Line In"
|
||||
voice: "Analógica"
|
||||
new: "Analógica"
|
||||
voice: "Analógica"
|
||||
new: "Analógica"
|
||||
|
||||
id: LANG_RECORDING_SRC_MIC
|
||||
desc: in the recording settings
|
||||
eng: "Mic"
|
||||
voice: "Micrófono"
|
||||
voice: "Micrófono"
|
||||
new: "Micro"
|
||||
|
||||
id: LANG_RENAME
|
||||
|
@ -1148,14 +1148,14 @@ new: "Velocidad de Desplazamiento"
|
|||
id: LANG_SCROLL_STEP
|
||||
desc: Pixels to advance per scroll
|
||||
eng: "Scroll Step Size"
|
||||
voice: "Tamaño del paso de Desplazamiento"
|
||||
new: "Tamaño del paso de Desplaz."
|
||||
voice: "Tamaño del paso de Desplazamiento"
|
||||
new: "Tamaño del paso de Desplaz."
|
||||
|
||||
id: LANG_SCROLL_STEP_EXAMPLE
|
||||
desc: Pixels to advance per scroll
|
||||
eng: "Scroll Step Size Setting Example Text"
|
||||
voice: ""
|
||||
new: "Texto de ejemplo del tamaño de paso de desplazamiento"
|
||||
new: "Texto de ejemplo del tamaño de paso de desplazamiento"
|
||||
|
||||
id: LANG_SLEEP_TIMER
|
||||
desc: sleep timer setting
|
||||
|
@ -1257,7 +1257,7 @@ id: LANG_RECORDING_SIZE
|
|||
desc: Display of recorded file size
|
||||
eng: "Size:"
|
||||
voice: ""
|
||||
new: "Tamaño:"
|
||||
new: "Tamaño:"
|
||||
|
||||
id: LANG_RECORDING_TIME
|
||||
desc: Display of recorded time
|
||||
|
@ -1268,7 +1268,7 @@ new: "Tiempo"
|
|||
id: LANG_SAVE_SETTINGS
|
||||
desc: in system_settings_menu()
|
||||
eng: "Write .cfg file"
|
||||
voice: "Escribir archivo de configuración"
|
||||
voice: "Escribir archivo de configuración"
|
||||
new: "Escribir archivo .cfg"
|
||||
|
||||
id: LANG_SETTINGS_LOADED1
|
||||
|
@ -1346,8 +1346,8 @@ new: "Barra de Desplazamiento"
|
|||
id: LANG_CAPTION_BACKLIGHT
|
||||
desc: in settings_menu
|
||||
eng: "Caption backlight"
|
||||
voice: "Iluminacion al iniciar Canción"
|
||||
new: "Iluminación al iniciar Canción"
|
||||
voice: "Iluminacion al iniciar Canción"
|
||||
new: "Iluminación al iniciar Canción"
|
||||
|
||||
id: LANG_INVERT_CURSOR_POINTER
|
||||
desc: in settings_menu
|
||||
|
@ -1383,7 +1383,7 @@ id: LANG_AUTO_BOOKMARK_QUERY
|
|||
desc: prompt for user to decide to create an bookmark
|
||||
eng: "Create a Bookmark?"
|
||||
voice: ""
|
||||
new: "¿Crear un marcapáginas?"
|
||||
new: "¿Crear un marcapáginas?"
|
||||
|
||||
id: LANG_BARS_MENU
|
||||
desc: in the display sub menu
|
||||
|
@ -1394,62 +1394,62 @@ new: "Barras de Estado/Desplazamiento"
|
|||
id: LANG_BATTERY_MENU
|
||||
desc: in the system sub menu
|
||||
eng: "Battery"
|
||||
voice: "Batería"
|
||||
new: "Batería"
|
||||
voice: "Batería"
|
||||
new: "Batería"
|
||||
|
||||
id: LANG_BOOKMARK_AUTOLOAD_QUERY
|
||||
desc: prompt for user to decide to create a bookmark
|
||||
eng: "Load Last Bookmark?"
|
||||
voice: ""
|
||||
new: "¿Cargar último Marcapáginas?"
|
||||
new: "¿Cargar último Marcapáginas?"
|
||||
|
||||
id: LANG_BOOKMARK_CREATE_FAILURE
|
||||
desc: Indicates bookmark was not created
|
||||
eng: "Bookmark Failed!"
|
||||
voice: ""
|
||||
new: "Falló el Marcapáginas"
|
||||
new: "Falló el Marcapáginas"
|
||||
|
||||
id: LANG_BOOKMARK_CREATE_SUCCESS
|
||||
desc: Indicates bookmark was successfully created
|
||||
eng: "Bookmark Created"
|
||||
voice: ""
|
||||
new: "Marcapáginas Creado"
|
||||
new: "Marcapáginas Creado"
|
||||
|
||||
id: LANG_BOOKMARK_LOAD_EMPTY
|
||||
desc: Indicates bookmark was empty
|
||||
eng: "Bookmark Empty"
|
||||
voice: ""
|
||||
new: "Marcapáginas Vacio"
|
||||
new: "Marcapáginas Vacio"
|
||||
|
||||
id: LANG_BOOKMARK_MENU
|
||||
desc: Text on main menu to get to bookmark commands
|
||||
eng: "Bookmarks"
|
||||
voice: "Marcapáginas"
|
||||
new: "Marcapáginas"
|
||||
voice: "Marcapáginas"
|
||||
new: "Marcapáginas"
|
||||
|
||||
id: LANG_BOOKMARK_MENU_CREATE
|
||||
desc: Used off of the bookmark menu to create a bookmark
|
||||
eng: "Create Bookmark"
|
||||
voice: "Crear Marcapáginas"
|
||||
new: "Crear Marcapáginas"
|
||||
voice: "Crear Marcapáginas"
|
||||
new: "Crear Marcapáginas"
|
||||
|
||||
id: LANG_BOOKMARK_MENU_LIST
|
||||
desc: Used off of the bookmark menu to list available bookmarks for the currently playing directory or M3U
|
||||
eng: "List Bookmarks"
|
||||
voice: "Listar Marcapáginas"
|
||||
new: "Listar Marcapáginas"
|
||||
voice: "Listar Marcapáginas"
|
||||
new: "Listar Marcapáginas"
|
||||
|
||||
id: LANG_BOOKMARK_MENU_RECENT_BOOKMARKS
|
||||
desc: Text for the menu text to access the most recent bookmarks list
|
||||
eng: "Recent Bookmarks"
|
||||
voice: "Marcapáginas Recientes"
|
||||
new: "Marcapáginas Recientes"
|
||||
voice: "Marcapáginas Recientes"
|
||||
new: "Marcapáginas Recientes"
|
||||
|
||||
id: LANG_BOOKMARK_SELECT_BOOKMARK_TEXT
|
||||
desc: Used on the bookmark select window to label bookmark number
|
||||
eng: "Bookmark"
|
||||
voice: ""
|
||||
new: "Marcapáginas"
|
||||
new: "Marcapáginas"
|
||||
|
||||
id: LANG_BOOKMARK_SELECT_DELETE
|
||||
desc: Used on the bookmark select window to indicated the bookmark delete option
|
||||
|
@ -1466,8 +1466,8 @@ new: "OFF = Salir"
|
|||
id: LANG_BOOKMARK_SELECT_INDEX_TEXT
|
||||
desc: Used on the bookmark select window to label index number
|
||||
eng: "Index"
|
||||
voice: "Índice"
|
||||
new: "Índice"
|
||||
voice: "Índice"
|
||||
new: "Índice"
|
||||
|
||||
id: LANG_BOOKMARK_SELECT_LIST_BOOKMARKS
|
||||
desc: From the auto-load screen, allows user to list all bookmarks
|
||||
|
@ -1490,44 +1490,44 @@ new: "Tiempo"
|
|||
id: LANG_BOOKMARK_SETTINGS
|
||||
desc: in general settings
|
||||
eng: "Bookmarking"
|
||||
voice: "Marcapáginas"
|
||||
new: "Marcapáginas"
|
||||
voice: "Marcapáginas"
|
||||
new: "Marcapáginas"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_AUTOCREATE
|
||||
desc: prompt for user to decide to create an bookmark
|
||||
eng: "Bookmark on Stop"
|
||||
voice: "Marcar página al Detener"
|
||||
new: "Marcar página al Detener"
|
||||
voice: "Marcar página al Detener"
|
||||
new: "Marcar página al Detener"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_AUTOLOAD
|
||||
desc: prompt for user to decide to create a bookmark
|
||||
eng: "Load Last Bookmark"
|
||||
voice: "Cargar último Marcapáginas"
|
||||
new: "Cargar último Marcapáginas"
|
||||
voice: "Cargar último Marcapáginas"
|
||||
new: "Cargar último Marcapáginas"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_MAINTAIN_RECENT_BOOKMARKS
|
||||
desc: Configuration option to maintain a list of recent bookmarks
|
||||
eng: "Maintain a List of Recent Bookmarks?"
|
||||
voice: "¿Mantener una Lista de Marcapáginas Recientes?"
|
||||
new: "¿Mantener una Lista de Marcapáginas Recientes?"
|
||||
voice: "¿Mantener una Lista de Marcapáginas Recientes?"
|
||||
new: "¿Mantener una Lista de Marcapáginas Recientes?"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_RECENT_ONLY_ASK
|
||||
desc: Save in recent bookmarks only
|
||||
eng: "Ask - Recent only"
|
||||
voice: "Preguntar - Sólo Recientes"
|
||||
new: "Preguntar - Sólo Recientes"
|
||||
voice: "Preguntar - Sólo Recientes"
|
||||
new: "Preguntar - Sólo Recientes"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_RECENT_ONLY_YES
|
||||
desc: Save in recent bookmarks only
|
||||
eng: "Yes - Recent only"
|
||||
voice: "Si - Sólo Recientes"
|
||||
new: "Si - Sólo Recientes"
|
||||
voice: "Si - Sólo Recientes"
|
||||
new: "Si - Sólo Recientes"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_UNIQUE_ONLY
|
||||
desc: Save only on bookmark for each playlist in recent bookmarks
|
||||
eng: "Unique only"
|
||||
voice: "Sólo único"
|
||||
new: "Sólo único"
|
||||
voice: "Sólo único"
|
||||
new: "Sólo único"
|
||||
|
||||
id: LANG_BOOT_CHANGED
|
||||
desc: File browser discovered the boot file was changed
|
||||
|
@ -1562,7 +1562,7 @@ new: "PLAY = SI"
|
|||
id: LANG_CUSTOM_CFG
|
||||
desc: in setting_menu()
|
||||
eng: "Browse .cfg files"
|
||||
voice: "Mostrar archivos de configuración"
|
||||
voice: "Mostrar archivos de configuración"
|
||||
new: "Mostrar archivos .cfg"
|
||||
|
||||
id: LANG_CUSTOM_FONT
|
||||
|
@ -1652,26 +1652,26 @@ new: "Emisora: %d.%dMHz"
|
|||
id: LANG_INFO_MENU
|
||||
desc: in the info sub menu
|
||||
eng: "Rockbox Info"
|
||||
voice: "Información de Rockbox"
|
||||
voice: "Información de Rockbox"
|
||||
new: "Info. de Rockbox"
|
||||
|
||||
id: LANG_INSERT
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
eng: "Insert"
|
||||
voice: "Añadir"
|
||||
new: "Añadir"
|
||||
voice: "Añadir"
|
||||
new: "Añadir"
|
||||
|
||||
id: LANG_INSERT_FIRST
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
eng: "Insert next"
|
||||
voice: "Añadir como próxima"
|
||||
new: "Añadir como próxima"
|
||||
voice: "Añadir como próxima"
|
||||
new: "Añadir como próxima"
|
||||
|
||||
id: LANG_INSERT_LAST
|
||||
desc: in onplay menu. append a track/playlist into dynamic playlist.
|
||||
eng: "Insert last"
|
||||
voice: "Añadir al final"
|
||||
new: "Añadir al final"
|
||||
voice: "Añadir al final"
|
||||
new: "Añadir al final"
|
||||
|
||||
id: LANG_JUMP_SCROLL
|
||||
desc: (player) menu altarnative for jump scroll
|
||||
|
@ -1700,14 +1700,14 @@ new: "Opciones del LCD"
|
|||
id: LANG_LIMITS_MENU
|
||||
desc: in the system sub menu
|
||||
eng: "Limits"
|
||||
voice: "Límites"
|
||||
new: "Límites"
|
||||
voice: "Límites"
|
||||
new: "Límites"
|
||||
|
||||
id: LANG_LINE_IN
|
||||
desc: in settings_menu
|
||||
eng: "Line In"
|
||||
voice: "Entrada Analógica"
|
||||
new: "Analógica"
|
||||
voice: "Entrada Analógica"
|
||||
new: "Analógica"
|
||||
|
||||
id: LANG_MANAGE_MENU
|
||||
desc: in the system sub menu
|
||||
|
@ -1718,14 +1718,14 @@ new: "Gestionar Opciones"
|
|||
id: LANG_MAX_FILES_IN_DIR
|
||||
desc: in settings_menu
|
||||
eng: "Max files in dir browser"
|
||||
voice: "Número maximo de archivos por directorio"
|
||||
voice: "Número maximo de archivos por directorio"
|
||||
new: "Max. Archivos por directorio"
|
||||
|
||||
id: LANG_MAX_FILES_IN_PLAYLIST
|
||||
desc: in settings_menu
|
||||
eng: "Max playlist size"
|
||||
voice: "Tamaño maximo de Lista de Reproducción"
|
||||
new: "Tamaño maximo de Lista de Reproducción"
|
||||
voice: "Tamaño maximo de Lista de Reproducción"
|
||||
new: "Tamaño maximo de Lista de Reproducción"
|
||||
|
||||
id: LANG_MOVE
|
||||
desc: The verb/action Move
|
||||
|
@ -1761,25 +1761,25 @@ id: LANG_PLAYLIST_ACCESS_ERROR
|
|||
desc: Playlist error
|
||||
eng: "Error accessing playlist file"
|
||||
voice: ""
|
||||
new: "Error al acceder a la Lista de Reproducción"
|
||||
new: "Error al acceder a la Lista de Reproducción"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_ACCESS_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error accessing playlist control file"
|
||||
voice: ""
|
||||
new: "Error al acceder al archivo de control de Listas de Reproducción"
|
||||
new: "Error al acceder al archivo de control de Listas de Reproducción"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_INVALID
|
||||
desc: Playlist resume error
|
||||
eng: "Playlist control file is invalid"
|
||||
voice: ""
|
||||
new: "Archivo de Control de Listas de Reproducción inválido"
|
||||
new: "Archivo de Control de Listas de Reproducción inválido"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_UPDATE_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error updating playlist control file"
|
||||
voice: ""
|
||||
new: "Error al Actualizar el Archivo de Control de Listas de Reproducción"
|
||||
new: "Error al Actualizar el Archivo de Control de Listas de Reproducción"
|
||||
|
||||
id: LANG_PLAYLIST_DIRECTORY_ACCESS_ERROR
|
||||
desc: Playlist error
|
||||
|
@ -1791,13 +1791,13 @@ id: LANG_PLAYLIST_INSERT_COUNT
|
|||
desc: splash number of tracks inserted
|
||||
eng: "Inserted %d tracks (%s)"
|
||||
voice: ""
|
||||
new: "Añadidas %d Pistas (%s)"
|
||||
new: "Añadidas %d Pistas (%s)"
|
||||
|
||||
id: LANG_PLAYLIST_MENU
|
||||
desc: in main menu.
|
||||
eng: "Playlist Options"
|
||||
voice: "Opciones de la Lista de Reproducción"
|
||||
new: "Opciones de la Lista de Reproducción"
|
||||
voice: "Opciones de la Lista de Reproducción"
|
||||
new: "Opciones de la Lista de Reproducción"
|
||||
|
||||
id: LANG_PLAYLIST_QUEUE_COUNT
|
||||
desc: splash number of tracks queued
|
||||
|
@ -1839,7 +1839,7 @@ id: LANG_PLUGIN_WRONG_VERSION
|
|||
desc: The plugin is not compatible with the rockbox version trying to run it
|
||||
eng: "Incompatible version"
|
||||
voice: ""
|
||||
new: "Versión Incompatible"
|
||||
new: "Versión Incompatible"
|
||||
|
||||
id: LANG_QUEUE_FIRST
|
||||
desc: in onplay menu. queue a track/playlist into dynamic playlist.
|
||||
|
@ -1868,50 +1868,50 @@ new: "Reiniciar ahora?"
|
|||
id: LANG_RECORDING_MENU
|
||||
desc: in the recording sub menu
|
||||
eng: "Recording screen"
|
||||
voice: "Pantalla de Grabación"
|
||||
new: "Pantalla de Grabación"
|
||||
voice: "Pantalla de Grabación"
|
||||
new: "Pantalla de Grabación"
|
||||
|
||||
id: LANG_RECORD_PRERECORD
|
||||
desc: in recording and radio screen
|
||||
eng: "Prerecording"
|
||||
voice: ""
|
||||
new: "Pregrabación"
|
||||
new: "Pregrabación"
|
||||
|
||||
id: LANG_RECORD_PRERECORD_TIME
|
||||
desc: in recording settings_menu
|
||||
eng: "Prerecord time"
|
||||
voice: "Tiempo de Pregrabación"
|
||||
new: "Tiempo de Pregrabación"
|
||||
voice: "Tiempo de Pregrabación"
|
||||
new: "Tiempo de Pregrabación"
|
||||
|
||||
id: LANG_RECORD_TIMESPLIT
|
||||
desc: Prompt for record timer interval setting, in the record settings menu
|
||||
eng: "Time Split"
|
||||
voice: "Separación por Tiempo"
|
||||
new: "Separación por Tiempo"
|
||||
voice: "Separación por Tiempo"
|
||||
new: "Separación por Tiempo"
|
||||
|
||||
id: LANG_RECORD_TIMESPLIT_REC
|
||||
desc: Display of record timer interval setting, on the record screen
|
||||
eng: "Split time:"
|
||||
voice: ""
|
||||
new: "Tiempo de Separación:"
|
||||
new: "Tiempo de Separación:"
|
||||
|
||||
id: LANG_RECURSE_DIRECTORY
|
||||
desc: In playlist menu
|
||||
eng: "Recursively Insert Directories"
|
||||
voice: "Añadir Directorios Recursivamente"
|
||||
new: "Añadir Directorios Recursivamente"
|
||||
voice: "Añadir Directorios Recursivamente"
|
||||
new: "Añadir Directorios Recursivamente"
|
||||
|
||||
id: LANG_RECURSE_DIRECTORY_QUESTION
|
||||
desc: Asked from onplay screen
|
||||
eng: "Recursively?"
|
||||
voice: ""
|
||||
new: "¿Recursivamente?"
|
||||
new: "¿Recursivamente?"
|
||||
|
||||
id: LANG_SAVE_DYNAMIC_PLAYLIST
|
||||
desc: in playlist menu.
|
||||
eng: "Save Current Playlist"
|
||||
voice: "Guardar Lista de Reproducción Actual"
|
||||
new: "Guardar Lista de Reproducción Actual"
|
||||
voice: "Guardar Lista de Reproducción Actual"
|
||||
new: "Guardar Lista de Reproducción Actual"
|
||||
|
||||
id: LANG_SHOW_ICONS
|
||||
desc: in settings_menu
|
||||
|
@ -1934,20 +1934,20 @@ new: "Fecha y Hora"
|
|||
id: LANG_VIEW_DYNAMIC_PLAYLIST
|
||||
desc: in playlist menu.
|
||||
eng: "View Current Playlist"
|
||||
voice: "Ver Lista de Reproducción Actual"
|
||||
new: "Ver Lista de Reproducción Actual"
|
||||
voice: "Ver Lista de Reproducción Actual"
|
||||
new: "Ver Lista de Reproducción Actual"
|
||||
|
||||
id: LANG_WHILE_PLAYING
|
||||
desc: in settings_menu()
|
||||
eng: "Browse .wps files"
|
||||
voice: "Mostrar archivos de pantalla de reproducción"
|
||||
voice: "Mostrar archivos de pantalla de reproducción"
|
||||
new: "Mostrar archivos .wps"
|
||||
|
||||
id: LANG_WIND_MENU
|
||||
desc: in the playback sub menu
|
||||
eng: "FFwd/Rewind"
|
||||
voice: "Avance rápido y rebobinar"
|
||||
new: "Av.Rápido/Rebobinar"
|
||||
voice: "Avance rápido y rebobinar"
|
||||
new: "Av.Rápido/Rebobinar"
|
||||
|
||||
id: LANG_CREATE_DIR
|
||||
desc: in main menu
|
||||
|
@ -1964,8 +1964,8 @@ new: "Ruta Completa"
|
|||
id: LANG_DISPLAY_TRACK_NAME_ONLY
|
||||
desc: track display options
|
||||
eng: "Track name only"
|
||||
voice: "Sólo nombre de pista"
|
||||
new: "Sólo nombre de pista"
|
||||
voice: "Sólo nombre de pista"
|
||||
new: "Sólo nombre de pista"
|
||||
|
||||
id: LANG_FILE_OPTIONS
|
||||
desc: in playlist viewer on+play menu
|
||||
|
@ -1994,8 +1994,8 @@ new: "Eliminar"
|
|||
id: LANG_SHOW_INDICES
|
||||
desc: in playlist viewer menu
|
||||
eng: "Show Indices"
|
||||
voice: "Mostrar Índices"
|
||||
new: "Mostrar Índices"
|
||||
voice: "Mostrar Índices"
|
||||
new: "Mostrar Índices"
|
||||
|
||||
id: LANG_TRACK_DISPLAY
|
||||
desc: in playlist viewer on+play menu
|
||||
|
@ -2036,7 +2036,7 @@ new: "LCD"
|
|||
id: VOICE_BILLION
|
||||
desc: spoken only, for composing numbers
|
||||
eng: ""
|
||||
voice: "billón"
|
||||
voice: "billón"
|
||||
new: ""
|
||||
|
||||
id: VOICE_DB
|
||||
|
@ -2144,7 +2144,7 @@ new:
|
|||
id: VOICE_MILLION
|
||||
desc: spoken only, for composing numbers
|
||||
eng: ""
|
||||
voice: "millón"
|
||||
voice: "millón"
|
||||
new: ""
|
||||
|
||||
id: VOICE_MILLISECONDS
|
||||
|
@ -2204,7 +2204,7 @@ new: ""
|
|||
id: VOICE_PLUS
|
||||
desc: spoken only, for composing numbers
|
||||
eng: ""
|
||||
voice: "más"
|
||||
voice: "más"
|
||||
new: ""
|
||||
|
||||
id: VOICE_POINT
|
||||
|
@ -2391,13 +2391,13 @@ id: LANG_FM_BUTTONBAR_ACTION
|
|||
desc: in radio screen
|
||||
eng: "Action"
|
||||
voice: ""
|
||||
new: "Acción"
|
||||
new: "Acción"
|
||||
|
||||
id: LANG_FM_BUTTONBAR_ADD
|
||||
desc: in radio screen
|
||||
eng: "Add"
|
||||
voice: ""
|
||||
new: "Añadir"
|
||||
new: "Añadir"
|
||||
|
||||
id: LANG_FM_BUTTONBAR_EDIT
|
||||
desc: DEPRECATED
|
||||
|
@ -2415,7 +2415,7 @@ id: LANG_FM_EDIT_PRESET
|
|||
desc: in radio screen
|
||||
eng: "Edit preset"
|
||||
voice: ""
|
||||
new: "Edit presintonía"
|
||||
new: "Edit presintonía"
|
||||
|
||||
id: LANG_FM_MONO_MODE
|
||||
desc: in radio screen
|
||||
|
@ -2432,20 +2432,20 @@ new: "Prioridad etiqueta ID3"
|
|||
id: LANG_ID3_V1_FIRST
|
||||
desc: in playback settings screen
|
||||
eng: "V1 then V2"
|
||||
voice: "Versión 1 y despues versión 2"
|
||||
voice: "Versión 1 y despues versión 2"
|
||||
new: "V1 y despues V2"
|
||||
|
||||
id: LANG_ID3_V2_FIRST
|
||||
desc: in playback settings screen
|
||||
eng: "V2 then V1"
|
||||
voice: "Versión 2 y despues versión 1"
|
||||
voice: "Versión 2 y despues versión 1"
|
||||
new: "V2 y despues V1"
|
||||
|
||||
id: LANG_INSTALLATION_INCOMPLETE
|
||||
desc: in browse root
|
||||
eng: "Installation incomplete"
|
||||
voice: ""
|
||||
new: "Instalación incompleta"
|
||||
new: "Instalación incompleta"
|
||||
|
||||
id: LANG_MDB_CENTER
|
||||
desc: in sound settings
|
||||
|
@ -2462,8 +2462,8 @@ new: "Activar MDB"
|
|||
id: LANG_MDB_HARMONICS
|
||||
desc: in sound settings
|
||||
eng: "MDB Harmonics"
|
||||
voice: "Armónicos MDB"
|
||||
new: "Armónicos MDB"
|
||||
voice: "Armónicos MDB"
|
||||
new: "Armónicos MDB"
|
||||
|
||||
id: LANG_MDB_SHAPE
|
||||
desc: in sound settings
|
||||
|
@ -2510,8 +2510,8 @@ new: "Apagando..."
|
|||
id: LANG_SORT_ALPHA
|
||||
desc: browser sorting setting
|
||||
eng: "Alphabetical"
|
||||
voice: "Alfabético"
|
||||
new: "Alfabético"
|
||||
voice: "Alfabético"
|
||||
new: "Alfabético"
|
||||
|
||||
id: LANG_SORT_DATE
|
||||
desc: browser sorting setting
|
||||
|
@ -2522,8 +2522,8 @@ new: "Por fecha"
|
|||
id: LANG_SORT_DATE_REVERSE
|
||||
desc: browser sorting setting
|
||||
eng: "by newest date"
|
||||
voice: "más reciente"
|
||||
new: "más reciente"
|
||||
voice: "más reciente"
|
||||
new: "más reciente"
|
||||
|
||||
id: LANG_SORT_DIR
|
||||
desc: browser sorting setting
|
||||
|
@ -2546,8 +2546,8 @@ new: "por tipo"
|
|||
id: LANG_STEREO_WIDTH
|
||||
desc: in sound_settings
|
||||
eng: "Stereo width"
|
||||
voice: "Amplitud estéreo"
|
||||
new: "Amplitud Estéreo"
|
||||
voice: "Amplitud estéreo"
|
||||
new: "Amplitud Estéreo"
|
||||
|
||||
id: LANG_SUPERBASS
|
||||
desc: in sound settings
|
||||
|
@ -2595,7 +2595,7 @@ id: LANG_VOICE_NUMBER
|
|||
desc: "talkbox" mode for files+directories
|
||||
eng: "Numbers"
|
||||
voice: "Numeros"
|
||||
new: "Números"
|
||||
new: "Números"
|
||||
|
||||
id: LANG_VOICE_SPELL
|
||||
desc: "talkbox" mode for files+directories
|
||||
|
@ -2786,13 +2786,13 @@ new: ""
|
|||
id: VOICE_EXT_BMARK
|
||||
desc: spoken only, for file extension and the word in general
|
||||
eng: ""
|
||||
voice: "marcapáginas"
|
||||
voice: "marcapáginas"
|
||||
new: ""
|
||||
|
||||
id: VOICE_EXT_CFG
|
||||
desc: spoken only, for file extension
|
||||
eng: ""
|
||||
voice: "configuración"
|
||||
voice: "configuración"
|
||||
new: ""
|
||||
|
||||
id: VOICE_EXT_FONT
|
||||
|
@ -2846,8 +2846,8 @@ new: ""
|
|||
id: LANG_BATTERY_TYPE
|
||||
desc: in battery settings
|
||||
eng: "Battery Type"
|
||||
voice: "Tipo de batería"
|
||||
new: "Tipo de batería"
|
||||
voice: "Tipo de batería"
|
||||
new: "Tipo de batería"
|
||||
|
||||
id: LANG_BATTERY_TYPE_ALKALINE
|
||||
desc: in battery settings
|
||||
|
@ -2858,7 +2858,7 @@ new: "Alcalina"
|
|||
id: LANG_BATTERY_TYPE_NIMH
|
||||
desc: in battery settings
|
||||
eng: "NiMH"
|
||||
voice: "Níquel hidruro de metal"
|
||||
voice: "Níquel hidruro de metal"
|
||||
new: "NiMH"
|
||||
|
||||
id: LANG_BYTE
|
||||
|
@ -2907,7 +2907,7 @@ id: LANG_ID3DB_SEARCH
|
|||
desc: ID3 virtual folder name
|
||||
eng: "Search"
|
||||
voice: ""
|
||||
new: "Búsqueda"
|
||||
new: "Búsqueda"
|
||||
|
||||
id: LANG_ID3DB_SEARCH_ALBUMS
|
||||
desc: ID3 virtual folder name
|
||||
|
@ -2960,14 +2960,14 @@ new: "<Todas las Canciones>"
|
|||
id: LANG_PLAYLIST
|
||||
desc: Used when you need to say playlist, also voiced
|
||||
eng: "Playlist"
|
||||
voice: "Lista de reproducción"
|
||||
new: "Lista de reproducción"
|
||||
voice: "Lista de reproducción"
|
||||
new: "Lista de reproducción"
|
||||
|
||||
id: LANG_RECORD_STARTUP
|
||||
desc: Start Rockbox in Recording screen
|
||||
eng: "Show recording screen on startup"
|
||||
voice: "Mostrar pantalla de grabación al encender"
|
||||
new: "Mostrar pantalla de grabación al encender"
|
||||
voice: "Mostrar pantalla de grabación al encender"
|
||||
new: "Mostrar pantalla de grabación al encender"
|
||||
|
||||
id: LANG_ALARM_MOD_DISABLE
|
||||
desc: Announce that the RTC alarm has been turned off
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -17,31 +17,31 @@ id: LANG_SOUND_SETTINGS
|
|||
desc: in the main menu
|
||||
eng: "Sound Settings"
|
||||
voice: "Sound Settings"
|
||||
new: "Opcións de Son"
|
||||
new: "Opcións de Son"
|
||||
|
||||
id: LANG_GENERAL_SETTINGS
|
||||
desc: in the main menu
|
||||
eng: "General Settings"
|
||||
voice: "General Settings"
|
||||
new: "Opcións Xerais"
|
||||
new: "Opcións Xerais"
|
||||
|
||||
id: LANG_INFO
|
||||
desc: in the main menu
|
||||
eng: "Info"
|
||||
voice: "Info"
|
||||
new: "Información"
|
||||
new: "Información"
|
||||
|
||||
id: LANG_VERSION
|
||||
desc: in the main menu
|
||||
eng: "Version"
|
||||
voice: "Version"
|
||||
new: "Versión"
|
||||
new: "Versión"
|
||||
|
||||
id: LANG_DEBUG
|
||||
desc: in the main menu
|
||||
eng: "Debug (Keep Out!)"
|
||||
voice: "Debug, keep out!"
|
||||
new: "Depuración (¡non tocar!)"
|
||||
new: "Depuración (¡non tocar!)"
|
||||
|
||||
id: LANG_USB
|
||||
desc: in the main menu
|
||||
|
@ -71,7 +71,7 @@ id: LANG_BATTERY_CHARGE
|
|||
desc: tells that the battery is charging, instead of battery level
|
||||
eng: "Battery: Charging"
|
||||
voice: ""
|
||||
new: "Batería: Cargando"
|
||||
new: "Batería: Cargando"
|
||||
|
||||
id: LANG_PLAYLIST_LOAD
|
||||
desc: displayed on screen while loading a playlist
|
||||
|
@ -89,13 +89,13 @@ id: LANG_PLAYINDICES_PLAYLIST
|
|||
desc: in playlist.indices() when playlist is full *WARNING* this and next ID are only used in this function.
|
||||
eng: "Playlist"
|
||||
voice: ""
|
||||
new: "O búfer da"
|
||||
new: "O búfer da"
|
||||
|
||||
ií: LANG_PLAYINDICES_BUFFER
|
||||
ií: LANG_PLAYINDICES_BUFFER
|
||||
desc: in playlist.indices() when playlist is full
|
||||
eng: "Buffer Full"
|
||||
voice: ""
|
||||
new: "lista está cheo"
|
||||
new: "lista está cheo"
|
||||
|
||||
id: LANG_SETTINGS_SAVE_PLAYER
|
||||
desc: displayed if save settings has failed
|
||||
|
@ -149,13 +149,13 @@ id: LANG_PLAY_SELECTED
|
|||
desc: in settings_menu
|
||||
eng: "Play Selected First"
|
||||
voice: "Play Selected File First"
|
||||
new: "Reproducir primeiro a canción marcada"
|
||||
new: "Reproducir primeiro a canción marcada"
|
||||
|
||||
id: LANG_SORT_CASE
|
||||
desc: in settings_menu
|
||||
eng: "Sort Case Sensitive"
|
||||
voice: "Sort Case Sensitive"
|
||||
new: "Sensible a Mai/minúsculas"
|
||||
new: "Sensible a Mai/minúsculas"
|
||||
|
||||
id: LANG_RESUME
|
||||
desc: in settings_menu
|
||||
|
@ -185,7 +185,7 @@ id: LANG_BACKLIGHT
|
|||
desc: in settings_menu
|
||||
eng: "Backlight"
|
||||
voice: "Backlight"
|
||||
new: "Ilumicación"
|
||||
new: "Ilumicación"
|
||||
|
||||
id: LANG_SCROLL
|
||||
desc: in settings_menu
|
||||
|
@ -215,13 +215,13 @@ id: LANG_FFRW_STEP
|
|||
desc: in settings_menu
|
||||
eng: "FF/RW Min Step"
|
||||
voice: "Minimum Step"
|
||||
new: "Paso mínimo FF/RW"
|
||||
new: "Paso mínimo FF/RW"
|
||||
|
||||
id: LANG_FFRW_ACCEL
|
||||
desc: in settings_menu
|
||||
eng: "FF/RW Accel"
|
||||
voice: "Acceleration"
|
||||
new: "Aceleración FF/RW"
|
||||
new: "Aceleración FF/RW"
|
||||
|
||||
id: LANG_FOLLOW
|
||||
desc: in settings_menu
|
||||
|
@ -233,7 +233,7 @@ id: LANG_RESET_ASK_RECORDER
|
|||
desc: confirm to reset settings
|
||||
eng: "Are You Sure?"
|
||||
voice: ""
|
||||
new: "¿Estas certo?"
|
||||
new: "¿Estas certo?"
|
||||
|
||||
id: LANG_RESET_DONE_SETTING
|
||||
desc: visual confirmation after settings reset
|
||||
|
@ -269,13 +269,13 @@ id: LANG_RESET
|
|||
desc: in system_settings_menu()
|
||||
eng: "Reset Settings"
|
||||
voice: "Reset Settings"
|
||||
new: "Reiniciar opcións"
|
||||
new: "Reiniciar opcións"
|
||||
|
||||
id: LANG_PLAYBACK
|
||||
desc: in settings_menu()
|
||||
eng: "Playback"
|
||||
voice: "Playback"
|
||||
new: "Reproducción"
|
||||
new: "Reproducción"
|
||||
|
||||
id: LANG_FILE
|
||||
desc: in settings_menu()
|
||||
|
@ -335,7 +335,7 @@ id: LANG_DECAY
|
|||
desc: in sound_settings
|
||||
eng: "AV Decay Time"
|
||||
voice: ""
|
||||
new: "Tempo de caída do AV"
|
||||
new: "Tempo de caída do AV"
|
||||
|
||||
id: LANG_CHANNEL_MENU
|
||||
desc: in sound_settings
|
||||
|
@ -347,13 +347,13 @@ id: LANG_CHANNEL
|
|||
desc: in sound_settings
|
||||
eng: "Channel Configuration"
|
||||
voice: ""
|
||||
new: "Configuración de canais"
|
||||
new: "Configuración de canais"
|
||||
|
||||
id: LANG_CHANNEL_STEREO
|
||||
desc: in sound_settings
|
||||
eng: "Stereo"
|
||||
voice: "Stereo"
|
||||
new: "Estéreo"
|
||||
new: "Estéreo"
|
||||
|
||||
id: LANG_CHANNEL_MONO
|
||||
desc: in sound_settings
|
||||
|
@ -377,13 +377,13 @@ id: LANG_AUTOVOL
|
|||
desc: in sound_settings
|
||||
eng: "Auto Volume"
|
||||
voice: "Auto Volume"
|
||||
new: "Volumen automático"
|
||||
new: "Volumen automático"
|
||||
|
||||
id: LANG_SHOWDIR_ERROR_BUFFER
|
||||
desc: in showdir(), displayed on screen when you reach buffer limit
|
||||
eng: "Dir Buffer"
|
||||
voice: ""
|
||||
new: "Búfer do directorio"
|
||||
new: "Búfer do directorio"
|
||||
|
||||
id: LANG_SHOWDIR_ERROR_FULL
|
||||
desc: in showdir(), displayed on screen when you reach buffer limit
|
||||
|
@ -467,13 +467,13 @@ id: LANG_ID3_TITLE
|
|||
desc: in wps
|
||||
eng: "[Title]"
|
||||
voice: ""
|
||||
new: "[Título]"
|
||||
new: "[Título]"
|
||||
|
||||
id: LANG_ID3_NO_TITLE
|
||||
desc: in wps when no title is avaible
|
||||
eng: "<No Title>"
|
||||
voice: ""
|
||||
new: "[Sen Títuo]"
|
||||
new: "[Sen Títuo]"
|
||||
|
||||
id: LANG_ID3_ARTIST
|
||||
desc: in wps
|
||||
|
@ -503,13 +503,13 @@ id: LANG_ID3_TRACKNUM
|
|||
desc: in wps
|
||||
eng: "[Tracknum]"
|
||||
voice: ""
|
||||
new: "[Nº Pista]"
|
||||
new: "[Nº Pista]"
|
||||
|
||||
id: LANG_ID3_NO_TRACKNUM
|
||||
desc: in wps if no track number is avaible
|
||||
eng: "<No Tracknum>"
|
||||
voice: ""
|
||||
new: "<Sen Nº de Pista>"
|
||||
new: "<Sen Nº de Pista>"
|
||||
|
||||
id: LANG_ID3_LENGHT
|
||||
desc: in wps
|
||||
|
@ -593,7 +593,7 @@ id: LANG_END_PLAYLIST_RECORDER
|
|||
desc: when playlist has finished
|
||||
eng: "End Of Song List"
|
||||
voice: ""
|
||||
new: "Fin da lista de cancións"
|
||||
new: "Fin da lista de cancións"
|
||||
|
||||
id: LANG_POWEROFF_IDLE
|
||||
desc: in settings_menu
|
||||
|
@ -617,7 +617,7 @@ id: LANG_FILTER_MUSIC
|
|||
desc: show only music-related files
|
||||
eng: "Music"
|
||||
voice: "Music"
|
||||
new: "Música"
|
||||
new: "Música"
|
||||
|
||||
id: LANG_FILTER_SUPPORTED
|
||||
desc: show all file types supported by Rockbox
|
||||
|
@ -635,7 +635,7 @@ id: LANG_SET_BOOL_YES
|
|||
desc: bool true representation
|
||||
eng: "Yes"
|
||||
voice: "Yes"
|
||||
new: "Sí"
|
||||
new: "Sí"
|
||||
|
||||
id: LANG_SET_BOOL_NO
|
||||
desc: bool false representation
|
||||
|
@ -683,7 +683,7 @@ id: LANG_BACKLIGHT_ON_WHEN_CHARGING
|
|||
desc: in display_settings_menu
|
||||
eng: "Backlight On When Plugged"
|
||||
voice: "Backlight On When Plugged"
|
||||
new: "Iluminación estando enchufado"
|
||||
new: "Iluminación estando enchufado"
|
||||
|
||||
id: LANG_REPEAT
|
||||
desc: in settings_menu
|
||||
|
@ -809,7 +809,7 @@ id: LANG_MONTH_JUNE
|
|||
desc: Maximum 3-letter abbreviation for monthname
|
||||
eng: "Jun"
|
||||
voice: "June"
|
||||
new: "Xuñ"
|
||||
new: "Xuñ"
|
||||
|
||||
id: LANG_MONTH_JULY
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
|
@ -857,7 +857,7 @@ id: LANG_BATTERY_DISPLAY
|
|||
desc: Battery type title
|
||||
eng: "Battery Display"
|
||||
voice: "Battery Display"
|
||||
new: "Amosar Batería"
|
||||
new: "Amosar Batería"
|
||||
|
||||
id: LANG_VOLUME_DISPLAY
|
||||
desc: Volume type title
|
||||
|
@ -869,13 +869,13 @@ id: LANG_DISPLAY_GRAPHIC
|
|||
desc: Label for type of icon display
|
||||
eng: "Graphic"
|
||||
voice: "Graphic"
|
||||
new: "Gráfico"
|
||||
new: "Gráfico"
|
||||
|
||||
id: LANG_DISPLAY_NUMERIC
|
||||
desc: Label for type of icon display
|
||||
eng: "Numeric"
|
||||
voice: "Numeric"
|
||||
new: "Numérico"
|
||||
new: "Numérico"
|
||||
|
||||
id: LANG_PM_PERFORMANCE
|
||||
desc: in the peak meter menu
|
||||
|
@ -893,7 +893,7 @@ id: LANG_PM_ENERGY_SAVER
|
|||
desc: in the peak meter menu
|
||||
eng: "Save Energy"
|
||||
voice: "Save Energy"
|
||||
new: "Aforrar Enerxía"
|
||||
new: "Aforrar Enerxía"
|
||||
|
||||
id: LANG_PM_SCALE
|
||||
desc: in the peak meter menu
|
||||
|
@ -905,7 +905,7 @@ id: LANG_PM_DBFS
|
|||
desc: in the peak meter menu
|
||||
eng: "Logarithmic(dB)"
|
||||
voice: "Logarithmic decibel"
|
||||
new: "Logarítmico(dB)"
|
||||
new: "Logarítmico(dB)"
|
||||
|
||||
id: LANG_PM_LINEAR
|
||||
desc: in the peak meter menu
|
||||
|
@ -917,25 +917,25 @@ id: LANG_PM_MIN
|
|||
desc: in the peak meter menu
|
||||
eng: "Minimum Of Range"
|
||||
voice: "Minimum Of Range"
|
||||
new: "Mínimo do Rango"
|
||||
new: "Mínimo do Rango"
|
||||
|
||||
id: LANG_PM_MAX
|
||||
desc: in the peak meter menu
|
||||
eng: "Maximum Of Range"
|
||||
voice: "Maximum Of Range"
|
||||
new: "Máximo do Rango"
|
||||
new: "Máximo do Rango"
|
||||
|
||||
id: LANG_RECORDING
|
||||
desc: in the main menu
|
||||
eng: "Recording"
|
||||
voice: "Recording"
|
||||
new: "Gravación"
|
||||
new: "Gravación"
|
||||
|
||||
id: LANG_RECORDING_GAIN
|
||||
desc: in the recording screen
|
||||
eng: "Gain"
|
||||
voice: ""
|
||||
new: "Gañanza"
|
||||
new: "Gañanza"
|
||||
|
||||
id: LANG_RECORDING_LEFT
|
||||
desc: in the recording screen
|
||||
|
@ -983,7 +983,7 @@ id: LANG_RECORDING_SRC_LINE
|
|||
desc: in the recording settings
|
||||
eng: "Line In"
|
||||
voice: "Line In"
|
||||
new: "Entrada Analóxica"
|
||||
new: "Entrada Analóxica"
|
||||
|
||||
id: LANG_RECORDING_SRC_DIGITAL
|
||||
desc: in the recording settings
|
||||
|
@ -995,7 +995,7 @@ id: LANG_RECORDING_SETTINGS
|
|||
desc: in the main menu
|
||||
eng: "Recording Settings"
|
||||
voice: "Recording Settings"
|
||||
new: "Opcións de Gravación"
|
||||
new: "Opcións de Gravación"
|
||||
|
||||
id: LANG_DISK_STAT
|
||||
desc: DEPRECATED
|
||||
|
@ -1019,7 +1019,7 @@ id: LANG_FILTER_PLAYLIST
|
|||
desc: show only playlist
|
||||
eng: "Playlists"
|
||||
voice: "Playlists"
|
||||
new: "Listas de Reprodución"
|
||||
new: "Listas de Reprodución"
|
||||
|
||||
id: LANG_BATTERY_TIME
|
||||
desc: battery level in % and estimated time remaining
|
||||
|
@ -1043,7 +1043,7 @@ id: LANG_BIDIR_SCROLL
|
|||
desc: Bidirectional scroll limit
|
||||
eng: "Bidirectional Scroll Limit"
|
||||
voice: "Bidirectional Scroll Limit"
|
||||
new: "Límite de despraz. bidireccional"
|
||||
new: "Límite de despraz. bidireccional"
|
||||
|
||||
id: LANG_SCROLL_DELAY
|
||||
desc: Delay before scrolling
|
||||
|
@ -1055,13 +1055,13 @@ id: LANG_SCROLL_STEP
|
|||
desc: Pixels to advance per scroll
|
||||
eng: "Scroll Step Size"
|
||||
voice: "Scroll Step Size"
|
||||
new: "Tamaño do paso de Despraz."
|
||||
new: "Tamaño do paso de Despraz."
|
||||
|
||||
id: LANG_SCROLL_STEP_EXAMPLE
|
||||
desc: Pixels to advance per scroll
|
||||
eng: "Scroll Step Size Setting Example Text"
|
||||
voice: ""
|
||||
new: "Texto de exemplo do tamaño de paso de desprazamento"
|
||||
new: "Texto de exemplo do tamaño de paso de desprazamento"
|
||||
|
||||
id: LANG_SCROLL_SPEED
|
||||
desc: in display_settings_menu()
|
||||
|
@ -1079,19 +1079,19 @@ id: LANG_BATTERY_TOPOFF_CHARGE
|
|||
desc: in info display, shows that top off charge is running
|
||||
eng: "Battery: Top-Off Chg"
|
||||
voice: ""
|
||||
new: "Batería: Tope-de-Carga"
|
||||
new: "Batería: Tope-de-Carga"
|
||||
|
||||
id: LANG_BATTERY_TRICKLE_CHARGE
|
||||
desc: in info display, shows that trickle charge is running
|
||||
eng: "Battery: Trickle Chg"
|
||||
voice: ""
|
||||
new: "Batería: Trickle Chg"
|
||||
new: "Batería: Trickle Chg"
|
||||
|
||||
id: LANG_BATTERY_CAPACITY
|
||||
desc: in settings_menu
|
||||
eng: "Battery Capacity"
|
||||
voice: "Battery Capacity"
|
||||
new: "Capacidade da Batería"
|
||||
new: "Capacidade da Batería"
|
||||
|
||||
id: LANG_MENU_SETTING_CANCEL
|
||||
desc: Visual confirmation of canceling a changed setting
|
||||
|
@ -1115,7 +1115,7 @@ id: LANG_REALLY_DELETE
|
|||
desc: Really Delete?
|
||||
eng: "Delete?"
|
||||
voice: ""
|
||||
new: "¿Borrar?"
|
||||
new: "¿Borrar?"
|
||||
|
||||
id: LANG_DELETED
|
||||
desc: A file has beed deleted
|
||||
|
@ -1175,7 +1175,7 @@ id: LANG_CREATE_PLAYLIST
|
|||
desc: Menu option for creating a playlist
|
||||
eng: "Create Playlist"
|
||||
voice: "Create Playlist"
|
||||
new: "Crear Lista de Reproducción"
|
||||
new: "Crear Lista de Reproducción"
|
||||
|
||||
id: LANG_CREATING
|
||||
desc: Screen feedback during playlist creation
|
||||
|
@ -1217,7 +1217,7 @@ id: LANG_ID3_GENRE
|
|||
desc: ID3 frame 'genre'
|
||||
eng: "[Genre]"
|
||||
voice: ""
|
||||
new: "[Xénero]"
|
||||
new: "[Xénero]"
|
||||
|
||||
id: LANG_ID3_YEAR
|
||||
desc: ID3 info 'year'
|
||||
|
@ -1241,13 +1241,13 @@ id: LANG_RECORDING_SIZE
|
|||
desc: Display of recorded file size
|
||||
eng: "Size:"
|
||||
voice: ""
|
||||
new: "Tamaño:"
|
||||
new: "Tamaño:"
|
||||
|
||||
id: LANG_SETTINGS_LOADED1
|
||||
desc: Feedback shown when a .cfg file is loaded
|
||||
eng: "Settings"
|
||||
voice: ""
|
||||
new: "Optións"
|
||||
new: "Optións"
|
||||
|
||||
id: LANG_SETTINGS_LOADED2
|
||||
desc: Feedback shown when a .cfg file is loaded
|
||||
|
@ -1259,7 +1259,7 @@ id: LANG_FADE_ON_STOP
|
|||
desc: options menu to set fade on stop or pause
|
||||
eng: "Fade On Stop/Pause"
|
||||
voice: "Fade On Stop and Pause"
|
||||
new: "Fade ó Parar/Pausar"
|
||||
new: "Fade ó Parar/Pausar"
|
||||
|
||||
id: LANG_SOKOBAN_ON
|
||||
desc: DEPRECATED
|
||||
|
@ -1337,7 +1337,7 @@ id: LANG_INVERT_CURSOR
|
|||
desc: in settings_menu
|
||||
eng: "Line Selector"
|
||||
voice: "Line Selector"
|
||||
new: "Selector de liña"
|
||||
new: "Selector de liña"
|
||||
|
||||
id: LANG_RECORDING_EDITABLE
|
||||
desc: Editable recordings setting
|
||||
|
@ -1361,7 +1361,7 @@ id: LANG_CAPTION_BACKLIGHT
|
|||
desc: in settings_menu
|
||||
eng: "Caption backlight"
|
||||
voice: "Caption backlight"
|
||||
new: "Iluminación ó iniciar MP3"
|
||||
new: "Iluminación ó iniciar MP3"
|
||||
|
||||
id: LANG_INVERT_CURSOR_POINTER
|
||||
desc: in settings_menu
|
||||
|
@ -1391,13 +1391,13 @@ id: LANG_MAX_FILES_IN_DIR
|
|||
desc: in settings_menu
|
||||
eng: "Max files in dir browser"
|
||||
voice: "Max files in directory browser"
|
||||
new: "Máx arquivos no visor de directorios"
|
||||
new: "Máx arquivos no visor de directorios"
|
||||
|
||||
id: LANG_MAX_FILES_IN_PLAYLIST
|
||||
desc: in settings_menu
|
||||
eng: "Max playlist size"
|
||||
voice: "Max playlist size"
|
||||
new: "Tamaño Max da lista de reproducción"
|
||||
new: "Tamaño Max da lista de reproducción"
|
||||
|
||||
id: LANG_JUMP_SCROLL
|
||||
desc: (player) menu altarnative for jump scroll
|
||||
|
@ -1433,7 +1433,7 @@ id: LANG_RECORD_TIMESPLIT_REC
|
|||
desc: Display of record timer interval setting, on the record screen
|
||||
eng: "Split time:"
|
||||
voice: ""
|
||||
new: "Tempo de División"
|
||||
new: "Tempo de División"
|
||||
|
||||
id: LANG_SHOW_ICONS
|
||||
desc: in settings_menu
|
||||
|
@ -1485,7 +1485,7 @@ id: LANG_PLUGIN_WRONG_VERSION
|
|||
desc: The plugin is not compatible with the rockbox version trying to run it
|
||||
eng: "Incompatible version"
|
||||
voice: ""
|
||||
new: "Versión Incompatible"
|
||||
new: "Versión Incompatible"
|
||||
|
||||
id: LANG_PLUGIN_ERROR
|
||||
desc: The plugin return an error code
|
||||
|
@ -1507,13 +1507,13 @@ id: LANG_REBOOT_NOW
|
|||
desc: Do you want to reboot?
|
||||
eng: "Reboot now?"
|
||||
voice: ""
|
||||
new: "¿Reiniciar agora?"
|
||||
new: "¿Reiniciar agora?"
|
||||
|
||||
id: LANG_QUEUE_LAST
|
||||
desc: in onplay menu. queue a track/playlist at end of playlist.
|
||||
eng: "Queue last"
|
||||
voice: "Queue last"
|
||||
new: "Poñer último na cola"
|
||||
new: "Poñer último na cola"
|
||||
|
||||
id: LANG_INSERT
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
|
@ -1525,19 +1525,19 @@ id: LANG_INSERT_LAST
|
|||
desc: in onplay menu. append a track/playlist into dynamic playlist.
|
||||
eng: "Insert last"
|
||||
voice: "Insert last"
|
||||
new: "Insertar de último"
|
||||
new: "Insertar de último"
|
||||
|
||||
id: LANG_QUEUE_FIRST
|
||||
desc: in onplay menu. queue a track/playlist into dynamic playlist.
|
||||
eng: "Queue next"
|
||||
voice: "Queue next"
|
||||
new: "Poñer seguinte na cola"
|
||||
new: "Poñer seguinte na cola"
|
||||
|
||||
id: LANG_INSERT_FIRST
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
eng: "Insert next"
|
||||
voice: "Insert next"
|
||||
new: "Insertar como próximo"
|
||||
new: "Insertar como próximo"
|
||||
|
||||
id: LANG_SAVE_DYNAMIC_PLAYLIST
|
||||
desc: in playlist menu.
|
||||
|
@ -1549,7 +1549,7 @@ id: LANG_PLAYLIST_MENU
|
|||
desc: in main menu.
|
||||
eng: "Playlist Options"
|
||||
voice: "Playlist Options"
|
||||
new: "Opcións da lista de reproducción"
|
||||
new: "Opcións da lista de reproducción"
|
||||
|
||||
id: LANG_PLAYLIST_INSERT_COUNT
|
||||
desc: splash number of tracks inserted
|
||||
|
@ -1591,7 +1591,7 @@ id: LANG_PLAYLIST_ACCESS_ERROR
|
|||
desc: Playlist error
|
||||
eng: "Error accessing playlist file"
|
||||
voice: ""
|
||||
new: "Erro acedendo o arquivo da lista de reproducción"
|
||||
new: "Erro acedendo o arquivo da lista de reproducción"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_ACCESS_ERROR
|
||||
desc: Playlist error
|
||||
|
@ -1621,7 +1621,7 @@ id: LANG_RECURSE_DIRECTORY_QUESTION
|
|||
desc: Asked from onplay screen
|
||||
eng: "Recursively?"
|
||||
voice: ""
|
||||
new: "¿Recursivamente?"
|
||||
new: "¿Recursivamente?"
|
||||
|
||||
id: LANG_CUSTOM_FONT
|
||||
desc: in setting_menu()
|
||||
|
@ -1651,7 +1651,7 @@ id: LANG_CUSTOM_CFG
|
|||
desc: in setting_menu()
|
||||
eng: "Browse .cfg files"
|
||||
voice: "Browse configuration files"
|
||||
new: "Visualizar arquivos de configuración"
|
||||
new: "Visualizar arquivos de configuración"
|
||||
|
||||
id: LANG_PLUGINS
|
||||
desc: in main_menu()
|
||||
|
@ -1669,7 +1669,7 @@ id: LANG_LINE_IN
|
|||
desc: in settings_menu
|
||||
eng: "Line In"
|
||||
voice: "Line In"
|
||||
new: "Entrada de liña"
|
||||
new: "Entrada de liña"
|
||||
|
||||
id: LANG_NO_FILES
|
||||
desc: in settings_menu
|
||||
|
@ -1681,13 +1681,13 @@ id: LANG_BUTTONBAR_MENU
|
|||
desc: in button bar
|
||||
eng: "Menu"
|
||||
voice: ""
|
||||
new: "Menú"
|
||||
new: "Menú"
|
||||
|
||||
id: LANG_FM_BUTTONBAR_PRESETS
|
||||
desc: in button bar
|
||||
eng: "Preset"
|
||||
voice: ""
|
||||
new: "Presintonía"
|
||||
new: "Presintonía"
|
||||
|
||||
id: LANG_FM_SAVE_PRESET
|
||||
desc: DEPRECATED
|
||||
|
@ -1699,19 +1699,19 @@ id: LANG_FM_DELETE_PRESET
|
|||
desc: in radio screen
|
||||
eng: "Remove preset"
|
||||
voice: ""
|
||||
new: "Borrar presintonía"
|
||||
new: "Borrar presintonía"
|
||||
|
||||
id: LANG_FM_STATION
|
||||
desc: in radio screen
|
||||
eng: "Station: %d.%dMHz"
|
||||
voice: ""
|
||||
new: "Estación: %d.%dMHz"
|
||||
new: "Estación: %d.%dMHz"
|
||||
|
||||
id: LANG_FM_PRESET_SAVE_FAILED
|
||||
desc: in radio screen
|
||||
eng: "Preset save failed"
|
||||
voice: ""
|
||||
new: "Fallo o gardar a presintonía"
|
||||
new: "Fallo o gardar a presintonía"
|
||||
|
||||
id: LANG_FM_NO_PRESETS
|
||||
desc: DEPRECATED
|
||||
|
@ -1735,7 +1735,7 @@ id: LANG_FM_BUTTONBAR_RECORD
|
|||
desc: in main menu
|
||||
eng: "Record"
|
||||
voice: ""
|
||||
new: "Gravación"
|
||||
new: "Gravación"
|
||||
|
||||
id: LANG_VIEW_DYNAMIC_PLAYLIST
|
||||
desc: in playlist menu.
|
||||
|
@ -1765,26 +1765,26 @@ id: LANG_RECORD_PRERECORD
|
|||
desc: in recording and radio screen
|
||||
eng: "Prerecording"
|
||||
voice: ""
|
||||
new: "Pregravación"
|
||||
new: "Pregravación"
|
||||
|
||||
id: LANG_RECORD_PRERECORD_TIME
|
||||
desc: in recording settings_menu
|
||||
eng: "Prerecord time"
|
||||
voice: "Pre-Record time"
|
||||
new: "Tempo de Pre-gravación"
|
||||
new: "Tempo de Pre-gravación"
|
||||
|
||||
#Auto bookmark prompts
|
||||
id: LANG_BOOKMARK_AUTOLOAD_QUERY
|
||||
desc: prompt for user to decide to create a bookmark
|
||||
voice: ""
|
||||
eng: "Load Last Bookmark?"
|
||||
new: "¿Cargar o último marcador?"
|
||||
new: "¿Cargar o último marcador?"
|
||||
|
||||
id: LANG_AUTO_BOOKMARK_QUERY
|
||||
desc: prompt for user to decide to create an bookmark
|
||||
voice: ""
|
||||
eng: "Create a Bookmark?"
|
||||
new: "¿Crear un marcador?"
|
||||
new: "¿Crear un marcador?"
|
||||
|
||||
# Bookmark Select Menu Text
|
||||
id: LANG_BOOKMARK_SELECT_LIST_BOOKMARKS
|
||||
|
@ -1860,7 +1860,7 @@ id: LANG_BOOKMARK_SETTINGS_AUTOLOAD
|
|||
desc: prompt for user to decide to create a bookmark
|
||||
eng: "Load Last Bookmark"
|
||||
voice: "Load Last Bookmark"
|
||||
new: "Cargar o último marcador"
|
||||
new: "Cargar o último marcador"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_AUTOCREATE
|
||||
desc: prompt for user to decide to create an bookmark
|
||||
|
@ -1872,7 +1872,7 @@ id: LANG_BOOKMARK_SETTINGS_MAINTAIN_RECENT_BOOKMARKS
|
|||
desc: Configuration option to maintain a list of recent bookmarks
|
||||
eng: "Maintain a List of Recent Bookmarks?"
|
||||
voice: "Maintain a List of Recent Bookmarks?"
|
||||
new: "¿Manter unha lista de marcadores recentes?"
|
||||
new: "¿Manter unha lista de marcadores recentes?"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_RECENT_ONLY_YES
|
||||
desc: Save in recent bookmarks only
|
||||
|
@ -1928,7 +1928,7 @@ id: LANG_RECORDING_MENU
|
|||
desc: in the recording sub menu
|
||||
eng: "Recording screen"
|
||||
voice: "Recording screen"
|
||||
new: "Pantalla de Gravación"
|
||||
new: "Pantalla de Gravación"
|
||||
|
||||
id: LANG_WIND_MENU
|
||||
desc: in the playback sub menu
|
||||
|
@ -1952,7 +1952,7 @@ id: LANG_BATTERY_MENU
|
|||
desc: in the system sub menu
|
||||
eng: "Battery"
|
||||
voice: "Battery"
|
||||
new: "Batería"
|
||||
new: "Batería"
|
||||
|
||||
id: LANG_DISK_MENU
|
||||
desc: in the system sub menu
|
||||
|
@ -1971,7 +1971,7 @@ id: LANG_LIMITS_MENU
|
|||
desc: in the system sub menu
|
||||
eng: "Limits"
|
||||
voice: "Limits"
|
||||
new: "Límites"
|
||||
new: "Límites"
|
||||
|
||||
id: LANG_MANAGE_MENU
|
||||
desc: in the system sub menu
|
||||
|
@ -2037,7 +2037,7 @@ id: LANG_FILE_OPTIONS
|
|||
desc: in playlist viewer on+play menu
|
||||
eng: "File Options"
|
||||
voice: "File Options"
|
||||
new: "Opcións de arquivo"
|
||||
new: "Opcións de arquivo"
|
||||
|
||||
id: LANG_BUTTON_BAR
|
||||
desc: in settings menu
|
||||
|
@ -2055,7 +2055,7 @@ id: LANG_DIRBROWSE_F2
|
|||
desc: in dir browser, F2 button bar text
|
||||
eng: "Option"
|
||||
voice: ""
|
||||
new: "Opción"
|
||||
new: "Opción"
|
||||
|
||||
id: LANG_DIRBROWSE_F3
|
||||
desc: in dir browser, F3 button bar text
|
||||
|
@ -2401,7 +2401,7 @@ id: LANG_VOICE_NUMBER
|
|||
desc: "talkbox" mode for files+directories
|
||||
eng: "Numbers"
|
||||
voice: "Numbers"
|
||||
new: "Números"
|
||||
new: "Números"
|
||||
|
||||
id: LANG_VOICE_DIR_ENTER
|
||||
desc: DEPRECATED
|
||||
|
@ -2702,7 +2702,7 @@ id: LANG_SORT_ALPHA
|
|||
desc: browser sorting setting
|
||||
eng: "Alphabetical"
|
||||
voice: "Alphabetical"
|
||||
new: "Alfanumérico"
|
||||
new: "Alfanumérico"
|
||||
|
||||
id: LANG_SORT_DATE
|
||||
desc: browser sorting setting
|
||||
|
@ -2726,7 +2726,7 @@ id: LANG_FM_EDIT_PRESET
|
|||
desc: in radio screen
|
||||
eng: "Edit preset"
|
||||
voice: ""
|
||||
new: "Editar presintonía"
|
||||
new: "Editar presintonía"
|
||||
|
||||
id: LANG_FM_MONO_MODE
|
||||
desc: in radio screen
|
||||
|
@ -2750,13 +2750,13 @@ id: LANG_FM_BUTTONBAR_ADD
|
|||
desc: in radio screen
|
||||
eng: "Add"
|
||||
voice: ""
|
||||
new: "Añadir"
|
||||
new: "Añadir"
|
||||
|
||||
id: LANG_FM_BUTTONBAR_ACTION
|
||||
desc: in radio screen
|
||||
eng: "Action"
|
||||
voice: ""
|
||||
new: "Acción"
|
||||
new: "Acción"
|
||||
|
||||
id: LANG_MDB_STRENGTH
|
||||
desc: in sound settings
|
||||
|
@ -2822,13 +2822,13 @@ id: LANG_ID3_V1_FIRST
|
|||
desc: in playback settings screen
|
||||
eng: "V1 then V2"
|
||||
voice: "Version 1 then version 2"
|
||||
new: "Versión 1 entonces versión 2"
|
||||
new: "Versión 1 entonces versión 2"
|
||||
|
||||
id: LANG_ID3_V2_FIRST
|
||||
desc: in playback settings screen
|
||||
eng: "V2 then V1"
|
||||
voice: "Version 2 then version 1"
|
||||
new: "Versión 2 entonces version 1"
|
||||
new: "Versión 2 entonces version 1"
|
||||
|
||||
id: LANG_NO_ROCKBOX_DIR
|
||||
desc: in browse root
|
||||
|
@ -2840,7 +2840,7 @@ id: LANG_INSTALLATION_INCOMPLETE
|
|||
desc: in browse root
|
||||
eng: "Installation incomplete"
|
||||
voice: ""
|
||||
new: "Intalación incompleta"
|
||||
new: "Intalación incompleta"
|
||||
|
||||
id: LANG_REMOVE_MMC
|
||||
desc: before acknowledging usb in case an MMC is inserted (Ondio)
|
||||
|
@ -2930,7 +2930,7 @@ id: LANG_BATTERY_TYPE
|
|||
desc: in battery settings
|
||||
eng: "Battery Type"
|
||||
voice: "Battery type"
|
||||
new: "Tipo de batería"
|
||||
new: "Tipo de batería"
|
||||
|
||||
id: LANG_BATTERY_TYPE_ALKALINE
|
||||
desc: in battery settings
|
||||
|
@ -3002,7 +3002,7 @@ id: LANG_RECORD_STARTUP
|
|||
desc: Start Rockbox in Recording screen
|
||||
eng: "Show recording screen on startup"
|
||||
voice: "Show recording screen on startup"
|
||||
new: "Ve la pantalla de gravación no comenzo"
|
||||
new: "Ve la pantalla de gravación no comenzo"
|
||||
|
||||
id: LANG_ALARM_MOD_DISABLE
|
||||
desc: Announce that the RTC alarm has been turned off
|
||||
|
@ -3045,7 +3045,7 @@ id: LANG_RECORD_STOP_GAP
|
|||
desc: in recording settings_menu
|
||||
eng: "Presplit gap"
|
||||
voice:
|
||||
new: "Espacio Predivisión"
|
||||
new: "Espacio Predivisión"
|
||||
|
||||
id: LANG_RECORD_TRIGGER_MODE
|
||||
desc: in recording settings_menu
|
||||
|
@ -3111,13 +3111,13 @@ id: LANG_BACKLIGHT_FADE_IN
|
|||
desc: in settings_menu
|
||||
eng: "Backlight fade in"
|
||||
voice: "Backlight fade in"
|
||||
new: "Incrementar Iluminación"
|
||||
new: "Incrementar Iluminación"
|
||||
|
||||
id: LANG_BACKLIGHT_FADE_OUT
|
||||
desc: in settings_menu
|
||||
eng: "Backlight fade out"
|
||||
voice: "Backlight fade out"
|
||||
new: "Decrementar Iluminación"
|
||||
new: "Decrementar Iluminación"
|
||||
|
||||
id: LANG_SHUFFLE_PLAYLIST
|
||||
desc: in playlist menu, reshuffles the order in which songs are played
|
||||
|
@ -3141,7 +3141,7 @@ id: LANG_SPDIF_ENABLE
|
|||
desc: in playback settings menu. enable/disable the optical out
|
||||
eng: "Optical output"
|
||||
voice: "Optical output"
|
||||
new: "Saida óptica"
|
||||
new: "Saida óptica"
|
||||
|
||||
id: LANG_NEXT_FOLDER
|
||||
desc: in settings_menu. Should we move to next folder when current one ends
|
||||
|
@ -3153,16 +3153,16 @@ id: LANG_RUNTIMEDB_ACTIVE
|
|||
desc: in settings_menu.
|
||||
eng: "Gather runtime data (experimental)"
|
||||
voice: "Gather runtime data"
|
||||
new: "Recoller datos en tempo de execución"
|
||||
new: "Recoller datos en tempo de execución"
|
||||
|
||||
id: LANG_MENU_SET_RATING
|
||||
desc: in wps context menu
|
||||
eng: "Set song rating"
|
||||
voice: "Set song rating"
|
||||
new: "Establecer a evaluación da canción"
|
||||
new: "Establecer a evaluación da canción"
|
||||
|
||||
id: LANG_RATING
|
||||
desc: in set_rating
|
||||
eng: "Rating:"
|
||||
voice "Rating"
|
||||
new: "Evaluación:"
|
||||
new: "Evaluación:"
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -177,7 +177,7 @@ id: LANG_SCROLL
|
|||
desc: in settings_menu
|
||||
eng: "Scroll Speed Setting Example"
|
||||
voice:
|
||||
new: "Esempio velocità scorrimento impostata"
|
||||
new: "Esempio velocità scorrimento impostata"
|
||||
|
||||
id: LANG_DISCHARGE
|
||||
desc: DEPRECATED
|
||||
|
@ -375,7 +375,7 @@ id: LANG_SHOWDIR_ERROR_FULL
|
|||
desc: in showdir(), displayed on screen when you reach buffer limit
|
||||
eng: "Is Full!"
|
||||
voice:
|
||||
new: "è pieno!"
|
||||
new: "è pieno!"
|
||||
|
||||
id: LANG_RESUME_ASK
|
||||
desc: DEPRECATED
|
||||
|
@ -537,7 +537,7 @@ id: LANG_PITCH_DOWN
|
|||
desc: in wps
|
||||
eng: "Pitch Down"
|
||||
voice:
|
||||
new: "Tono giù"
|
||||
new: "Tono giù"
|
||||
|
||||
id: LANG_PAUSE
|
||||
desc: in wps
|
||||
|
@ -584,8 +584,8 @@ new: "Fine della playlist"
|
|||
id: LANG_POWEROFF_IDLE
|
||||
desc: in settings_menu
|
||||
eng: "Idle Poweroff"
|
||||
voice: "Spegnimento per Inattività"
|
||||
new: "Spegnimento per inattività"
|
||||
voice: "Spegnimento per Inattività"
|
||||
new: "Spegnimento per inattività"
|
||||
|
||||
id: LANG_LANGUAGE_LOADED
|
||||
desc: shown when a language has been loaded from the dir browser
|
||||
|
@ -662,8 +662,8 @@ new: "Eterno"
|
|||
id: LANG_PM_UNITS_PER_READ
|
||||
desc: in the peak meter menu
|
||||
eng: "Units Per Read"
|
||||
voice: "Unità per lettura"
|
||||
new: "Unità per lettura"
|
||||
voice: "Unità per lettura"
|
||||
new: "Unità per lettura"
|
||||
|
||||
id: LANG_BACKLIGHT_ON_WHEN_CHARGING
|
||||
desc: in display_settings_menu
|
||||
|
@ -938,8 +938,8 @@ new: "Destro"
|
|||
id: LANG_RECORDING_QUALITY
|
||||
desc: in the recording settings
|
||||
eng: "Quality"
|
||||
voice: "Qualità"
|
||||
new: "Qualità"
|
||||
voice: "Qualità"
|
||||
new: "Qualità"
|
||||
|
||||
id: LANG_RECORDING_FREQUENCY
|
||||
desc: in the recording settings
|
||||
|
@ -1052,8 +1052,8 @@ new: "Testo d'esempio per il passo di scorrimento corrente"
|
|||
id: LANG_SCROLL_SPEED
|
||||
desc: in display_settings_menu()
|
||||
eng: "Scroll Speed"
|
||||
voice: "Velocità Scorrimento"
|
||||
new: "Velocità scorrimento"
|
||||
voice: "Velocità Scorrimento"
|
||||
new: "Velocità scorrimento"
|
||||
|
||||
id: LANG_TRICKLE_CHARGE
|
||||
desc: DEPRECATED
|
||||
|
@ -1076,8 +1076,8 @@ new: "Batteria: Mantenimento carica"
|
|||
id: LANG_BATTERY_CAPACITY
|
||||
desc: in settings_menu
|
||||
eng: "Battery Capacity"
|
||||
voice: "Capacità Batteria"
|
||||
new: "Capacità batteria"
|
||||
voice: "Capacità Batteria"
|
||||
new: "Capacità batteria"
|
||||
|
||||
id: LANG_MENU_SETTING_CANCEL
|
||||
desc: Visual confirmation of canceling a changed setting
|
||||
|
@ -1149,7 +1149,7 @@ id: LANG_ALARM_MOD_ERROR
|
|||
desc: The text that tells that the time is incorrect (for the RTC alarm mod).
|
||||
eng: "Alarm Time Is Too Soon!"
|
||||
voice:
|
||||
new: "L'orario impostato è troppo vicino!"
|
||||
new: "L'orario impostato è troppo vicino!"
|
||||
|
||||
id: LANG_ALARM_MOD_KEYS
|
||||
desc: Shown key functions in alarm menu (for the RTC alarm mod).
|
||||
|
@ -1648,8 +1648,8 @@ new: "Avvia plugins"
|
|||
id: LANG_CAR_ADAPTER_MODE
|
||||
desc: Displayed for setting car adapter mode to on/off
|
||||
eng: "Car Adapter Mode"
|
||||
voice: "Modalità Adattatore Auto"
|
||||
new: "Modalità adattatore auto"
|
||||
voice: "Modalità Adattatore Auto"
|
||||
new: "Modalità adattatore auto"
|
||||
|
||||
id: LANG_LINE_IN
|
||||
desc: in settings_menu
|
||||
|
@ -1667,7 +1667,7 @@ id: LANG_BUTTONBAR_MENU
|
|||
desc: in button bar
|
||||
eng: "Menu"
|
||||
voice: ""
|
||||
new: "Menù"
|
||||
new: "Menù"
|
||||
|
||||
id: LANG_FM_BUTTONBAR_PRESETS
|
||||
desc: in button bar
|
||||
|
@ -1709,7 +1709,7 @@ id: LANG_FM_NO_FREE_PRESETS
|
|||
desc: in radio screen
|
||||
eng: "The preset list is full"
|
||||
voice: ""
|
||||
new: "La lista delle stazioni è piena"
|
||||
new: "La lista delle stazioni è piena"
|
||||
|
||||
id: LANG_FM_RADIO
|
||||
desc: in main menu
|
||||
|
@ -2027,7 +2027,7 @@ id: LANG_DIRBROWSE_F1
|
|||
desc: in dir browser, F1 button bar text
|
||||
eng: "Menu"
|
||||
voice: ""
|
||||
new: "Menù"
|
||||
new: "Menù"
|
||||
|
||||
id: LANG_DIRBROWSE_F2
|
||||
desc: in dir browser, F2 button bar text
|
||||
|
@ -2242,7 +2242,7 @@ new:
|
|||
id: VOICE_PLUS
|
||||
desc: spoken only, for composing numbers
|
||||
eng: ""
|
||||
voice: "più"
|
||||
voice: "più"
|
||||
new:
|
||||
|
||||
id: VOICE_POINT
|
||||
|
@ -2356,8 +2356,8 @@ new: "Voce"
|
|||
id: LANG_VOICE_MENU
|
||||
desc: item of voice menu, enable/disable the voice UI
|
||||
eng: "Voice Menus"
|
||||
voice: "Pronuncia Menù"
|
||||
new: "Pronuncia menù"
|
||||
voice: "Pronuncia Menù"
|
||||
new: "Pronuncia menù"
|
||||
|
||||
id: LANG_VOICE_DIR
|
||||
desc: item of voice menu, set the "talkbox" mode for directories
|
||||
|
@ -2686,8 +2686,8 @@ new: "Per data"
|
|||
id: LANG_SORT_DATE_REVERSE
|
||||
desc: browser sorting setting
|
||||
eng: "by newest date"
|
||||
voice: "dal più recente"
|
||||
new: "Dal più recente"
|
||||
voice: "dal più recente"
|
||||
new: "Dal più recente"
|
||||
|
||||
id: LANG_SORT_TYPE
|
||||
desc: browser sorting setting
|
||||
|
@ -2734,8 +2734,8 @@ new: "Azione"
|
|||
id: LANG_MDB_STRENGTH
|
||||
desc: in sound settings
|
||||
eng: "MDB Strength"
|
||||
voice: "Intensità MDB"
|
||||
new: "Intensità MDB"
|
||||
voice: "Intensità MDB"
|
||||
new: "Intensità MDB"
|
||||
|
||||
id: LANG_MDB_HARMONICS
|
||||
desc: in sound settings
|
||||
|
@ -2788,8 +2788,8 @@ new: "Premere OFF per spegnere"
|
|||
id: LANG_ID3_ORDER
|
||||
desc: in playback settings screen
|
||||
eng: "ID3 tag priority"
|
||||
voice: "Priorità ID3 tag"
|
||||
new: "Priorità info ID3"
|
||||
voice: "Priorità ID3 tag"
|
||||
new: "Priorità info ID3"
|
||||
|
||||
id: LANG_ID3_V1_FIRST
|
||||
desc: in playback settings screen
|
||||
|
|
|
@ -1168,7 +1168,7 @@ id: LANG_CREATING
|
|||
desc: Screen feedback during playlist creation
|
||||
eng: "Creating"
|
||||
voice: ""
|
||||
new: "Creeëren..."
|
||||
new: "Creeëren..."
|
||||
|
||||
id: LANG_FADE_ON_STOP
|
||||
desc: options menu to set fade on stop or pause
|
||||
|
@ -1365,8 +1365,8 @@ new: ""
|
|||
id: LANG_INVERT_LCD_INVERSE
|
||||
desc: in settings_menu
|
||||
eng: "Inverse"
|
||||
voice: "Geïnverteerd"
|
||||
new: "Geïnverteerd"
|
||||
voice: "Geïnverteerd"
|
||||
new: "Geïnverteerd"
|
||||
|
||||
id: LANG_INVERT_LCD_NORMAL
|
||||
desc: in settings_menu
|
||||
|
|
|
@ -28,7 +28,7 @@ id: LANG_DEBUG
|
|||
desc: in the main menu
|
||||
eng: "Debug (Keep Out!)"
|
||||
voice: "Debug, keep out!"
|
||||
new: "Debug (ikke rør!)"
|
||||
new: "Debug (ikke rør!)"
|
||||
|
||||
id: LANG_USB
|
||||
desc: in the main menu
|
||||
|
@ -112,13 +112,13 @@ id: LANG_TIME_SET
|
|||
desc: used in set_time()
|
||||
eng: "ON To Set"
|
||||
voice: ""
|
||||
new: "PÅ for å stille"
|
||||
new: "PÅ for å stille"
|
||||
|
||||
id: LANG_TIME_REVERT
|
||||
desc: used in set_time()
|
||||
eng: "OFF To Revert"
|
||||
voice: ""
|
||||
new: "AV for å tilbakestille"
|
||||
new: "AV for å tilbakestille"
|
||||
|
||||
id: LANG_CONTRAST
|
||||
desc: in settings_menu
|
||||
|
@ -130,19 +130,19 @@ id: LANG_SHUFFLE
|
|||
desc: in settings_menu
|
||||
eng: "Shuffle"
|
||||
voice: "Shuffle"
|
||||
new: "Stokk om rekkefølge"
|
||||
new: "Stokk om rekkefølge"
|
||||
|
||||
id: LANG_PLAY_SELECTED
|
||||
desc: in settings_menu
|
||||
eng: "Play Selected First"
|
||||
voice: "Play Selected File First"
|
||||
new: "Spill valgte først"
|
||||
new: "Spill valgte først"
|
||||
|
||||
id: LANG_SORT_CASE
|
||||
desc: in settings_menu
|
||||
eng: "Sort Case Sensitive"
|
||||
voice: "Sort Case Sensitive"
|
||||
new: "Sortere små/store bokstaver"
|
||||
new: "Sortere små/store bokstaver"
|
||||
|
||||
id: LANG_RESUME
|
||||
desc: in settings_menu
|
||||
|
@ -160,13 +160,13 @@ id: LANG_RESUME_SETTING_ASK
|
|||
desc: in settings_menu
|
||||
eng: "Ask"
|
||||
voice: "Ask"
|
||||
new: "Spør"
|
||||
new: "Spør"
|
||||
|
||||
id: LANG_ON
|
||||
desc: Used in a lot of places
|
||||
eng: "On"
|
||||
voice: "On"
|
||||
new: "På"
|
||||
new: "På"
|
||||
|
||||
id: LANG_BACKLIGHT
|
||||
desc: in settings_menu
|
||||
|
@ -196,25 +196,25 @@ id: LANG_SPINDOWN
|
|||
desc: in settings_menu
|
||||
eng: "Disk Spindown"
|
||||
voice: "Disk Spindown"
|
||||
new: "Slå av harddiskmotor"
|
||||
new: "Slå av harddiskmotor"
|
||||
|
||||
id: LANG_FFRW_STEP
|
||||
desc: in settings_menu
|
||||
eng: "FF/RW Min Step"
|
||||
voice: "Minimum Step"
|
||||
new: "Minimum søkesteg"
|
||||
new: "Minimum søkesteg"
|
||||
|
||||
id: LANG_FFRW_ACCEL
|
||||
desc: in settings_menu
|
||||
eng: "FF/RW Accel"
|
||||
voice: "Acceleration"
|
||||
new: "Søkeaksellerasjon"
|
||||
new: "Søkeaksellerasjon"
|
||||
|
||||
id: LANG_FOLLOW
|
||||
desc: in settings_menu
|
||||
eng: "Follow Playlist"
|
||||
voice: "Follow Playlist"
|
||||
new: "Følg spillelisten"
|
||||
new: "Følg spillelisten"
|
||||
|
||||
id: LANG_RESET_ASK_RECORDER
|
||||
desc: confirm to reset settings
|
||||
|
@ -358,7 +358,7 @@ id: LANG_CHANNEL_RIGHT
|
|||
desc: in sound_settings
|
||||
eng: "Mono Right"
|
||||
voice: "Mono Right"
|
||||
new: "Mono høyre"
|
||||
new: "Mono høyre"
|
||||
|
||||
id: LANG_AUTOVOL
|
||||
desc: in sound_settings
|
||||
|
@ -394,25 +394,25 @@ id: LANG_KEYLOCK_ON_PLAYER
|
|||
desc: displayed when key lock is on
|
||||
eng: "Key Lock ON"
|
||||
voice: ""
|
||||
new: "Tastelås PÅ"
|
||||
new: "Tastelås PÅ"
|
||||
|
||||
id: LANG_KEYLOCK_OFF_PLAYER
|
||||
desc: displayed when key lock is turned off
|
||||
eng: "Key Lock OFF"
|
||||
voice: ""
|
||||
new: "Tastelås AV"
|
||||
new: "Tastelås AV"
|
||||
|
||||
id: LANG_KEYLOCK_ON_RECORDER
|
||||
desc: displayed when key lock is on
|
||||
eng: "Key Lock Is ON"
|
||||
voice: ""
|
||||
new: "Tastelås er PÅ"
|
||||
new: "Tastelås er PÅ"
|
||||
|
||||
id: LANG_KEYLOCK_OFF_RECORDER
|
||||
desc: displayed when key lock is turned off
|
||||
eng: "Key Lock Is OFF"
|
||||
voice: ""
|
||||
new: "Tastelås er AV"
|
||||
new: "Tastelås er AV"
|
||||
|
||||
id: LANG_MUTE_ON_PLAYER
|
||||
desc: DEPRECATED
|
||||
|
@ -586,13 +586,13 @@ id: LANG_POWEROFF_IDLE
|
|||
desc: in settings_menu
|
||||
eng: "Idle Poweroff"
|
||||
voice: "Idle Poweroff"
|
||||
new: "Slå av når ikke i bruk"
|
||||
new: "Slå av når ikke i bruk"
|
||||
|
||||
id: LANG_LANGUAGE_LOADED
|
||||
desc: shown when a language has been loaded from the dir browser
|
||||
eng: "New Language"
|
||||
voice: ""
|
||||
new: "Nytt språk"
|
||||
new: "Nytt språk"
|
||||
|
||||
id: LANG_FILTER
|
||||
desc: setting name for dir filter
|
||||
|
@ -610,7 +610,7 @@ id: LANG_FILTER_SUPPORTED
|
|||
desc: show all file types supported by Rockbox
|
||||
eng: "Supported"
|
||||
voice: "Supported"
|
||||
new: "Støttede"
|
||||
new: "Støttede"
|
||||
|
||||
id: LANG_FILTER_ALL
|
||||
desc: show all files
|
||||
|
@ -634,7 +634,7 @@ id: LANG_BACKLIGHT_ON_WHEN_CHARGING
|
|||
desc: in display_settings_menu
|
||||
eng: "Backlight On When Plugged"
|
||||
voice: "Backlight On When Plugged"
|
||||
new: "Skjermlys på ved tilkoblet strøm"
|
||||
new: "Skjermlys på ved tilkoblet strøm"
|
||||
|
||||
id: LANG_PM_CLIP_HOLD
|
||||
desc: in the peak meter menu
|
||||
|
@ -652,7 +652,7 @@ id: LANG_PM_MENU
|
|||
desc: in the display menu
|
||||
eng: "Peak Meter"
|
||||
voice: "Peak Meter"
|
||||
new: "Toppmåler"
|
||||
new: "Toppmåler"
|
||||
|
||||
id: LANG_PM_PEAK_HOLD
|
||||
desc: in the peak meter menu
|
||||
|
@ -820,13 +820,13 @@ id: LANG_WEEKDAY_SATURDAY
|
|||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Sat"
|
||||
voice: ""
|
||||
new: "Lør"
|
||||
new: "Lør"
|
||||
|
||||
id: LANG_WEEKDAY_SUNDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Sun"
|
||||
voice: ""
|
||||
new: "Søn"
|
||||
new: "Søn"
|
||||
|
||||
id: LANG_WEEKDAY_TUESDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
|
@ -892,13 +892,13 @@ id: LANG_PM_LINEAR
|
|||
desc: in the peak meter menu
|
||||
eng: "Linear(%)"
|
||||
voice: "Linear percent"
|
||||
new: "Lineær(%)"
|
||||
new: "Lineær(%)"
|
||||
|
||||
id: LANG_PM_MAX
|
||||
desc: in the peak meter menu
|
||||
eng: "Maximum Of Range"
|
||||
voice: "Maximum Of Range"
|
||||
new: "Største verdi"
|
||||
new: "Største verdi"
|
||||
|
||||
id: LANG_PM_MIN
|
||||
desc: in the peak meter menu
|
||||
|
@ -958,7 +958,7 @@ id: LANG_RECORDING_RIGHT
|
|||
desc: in the recording screen
|
||||
eng: "Right"
|
||||
voice: ""
|
||||
new: "Høyre"
|
||||
new: "Høyre"
|
||||
|
||||
id: LANG_RECORDING_SETTINGS
|
||||
desc: in the main menu
|
||||
|
@ -1006,7 +1006,7 @@ id: LANG_POWEROFF
|
|||
desc: disk poweroff flag
|
||||
eng: "Disk Poweroff"
|
||||
voice: "Disk Poweroff"
|
||||
new: "Disken slås av"
|
||||
new: "Disken slås av"
|
||||
|
||||
id: LANG_BATTERY_TIME
|
||||
desc: battery level in % and estimated time remaining
|
||||
|
@ -1054,7 +1054,7 @@ id: LANG_SCROLL_DELAY
|
|||
desc: Delay before scrolling
|
||||
eng: "Scroll Start Delay"
|
||||
voice: "Scroll Start Delay"
|
||||
new: "Pause før rullestart"
|
||||
new: "Pause før rullestart"
|
||||
|
||||
id: LANG_SCROLL_SPEED
|
||||
desc: in display_settings_menu()
|
||||
|
@ -1072,7 +1072,7 @@ id: LANG_SCROLL_STEP_EXAMPLE
|
|||
desc: Pixels to advance per scroll
|
||||
eng: "Scroll Step Size Setting Example Text"
|
||||
voice: ""
|
||||
new: "Eksempel for å sette rullesteglengde"
|
||||
new: "Eksempel for å sette rullesteglengde"
|
||||
|
||||
id: LANG_TRICKLE_CHARGE
|
||||
desc: DEPRECATED
|
||||
|
@ -1120,7 +1120,7 @@ id: LANG_ALARM_MOD_TIME_TO_GO
|
|||
desc: The time until the alarm will go off shown in the alarm menu for the RTC alarm mod.
|
||||
eng: "Waking Up In %d:%02d"
|
||||
voice: ""
|
||||
new: "Våkner om %d:%02d"
|
||||
new: "Våkner om %d:%02d"
|
||||
|
||||
id: LANG_CREATE_PLAYLIST
|
||||
desc: Menu option for creating a playlist
|
||||
|
@ -1156,7 +1156,7 @@ id: LANG_QUEUE
|
|||
desc: The verb/action Queue
|
||||
eng: "Queue"
|
||||
voice: "Queue"
|
||||
new: "Legg til i kø"
|
||||
new: "Legg til i kø"
|
||||
|
||||
id: LANG_REALLY_DELETE
|
||||
desc: Really Delete?
|
||||
|
@ -1210,7 +1210,7 @@ id: LANG_ID3_YEAR
|
|||
desc: ID3 info 'year'
|
||||
eng: "[Year]"
|
||||
voice: ""
|
||||
new: "[År]"
|
||||
new: "[År]"
|
||||
|
||||
id: LANG_MENU_SHOW_ID3_INFO
|
||||
desc: Menu option to start id3 viewer
|
||||
|
@ -1228,7 +1228,7 @@ id: LANG_RECORDING_SIZE
|
|||
desc: Display of recorded file size
|
||||
eng: "Size:"
|
||||
voice: ""
|
||||
new: "Størrelse:"
|
||||
new: "Størrelse:"
|
||||
|
||||
id: LANG_RECORDING_TIME
|
||||
desc: Display of recorded time
|
||||
|
@ -1384,7 +1384,7 @@ id: LANG_MAX_FILES_IN_PLAYLIST
|
|||
desc: in settings_menu
|
||||
eng: "Max playlist size"
|
||||
voice: "Max playlist size"
|
||||
new: "Maks. spillelistestørrelse"
|
||||
new: "Maks. spillelistestørrelse"
|
||||
|
||||
id: LANG_JUMP_SCROLL
|
||||
desc: (player) menu altarnative for jump scroll
|
||||
|
@ -1396,7 +1396,7 @@ id: LANG_ONE_TIME
|
|||
desc: (player) the jump scroll shall be done "one time"
|
||||
eng: "One time"
|
||||
voice: "One time"
|
||||
new: "Én gang"
|
||||
new: "Én gang"
|
||||
|
||||
id: LANG_ALWAYS
|
||||
desc: (player) the jump scroll shall be done "always"
|
||||
|
@ -1432,7 +1432,7 @@ id: LANG_DISK_FULL
|
|||
desc: in recording screen
|
||||
eng: "The disk is full. Press OFF to continue."
|
||||
voice: ""
|
||||
new: "Disken er full. Trykk AV for å fortsette."
|
||||
new: "Disken er full. Trykk AV for å fortsette."
|
||||
|
||||
id: LANG_CONFIRM_WITH_PLAY_RECORDER
|
||||
desc: Generic recorder string to use to confirm
|
||||
|
@ -1450,7 +1450,7 @@ id: LANG_PLUGIN_CANT_OPEN
|
|||
desc: Plugin open error message
|
||||
eng: "Can't open %s"
|
||||
voice: ""
|
||||
new: "Kan ikke åpne %s"
|
||||
new: "Kan ikke åpne %s"
|
||||
|
||||
id: LANG_READ_FAILED
|
||||
desc: There was an error reading a file
|
||||
|
@ -1486,13 +1486,13 @@ id: LANG_REBOOT_NOW
|
|||
desc: Do you want to reboot?
|
||||
eng: "Reboot now?"
|
||||
voice: ""
|
||||
new: "Omstart nå?"
|
||||
new: "Omstart nå?"
|
||||
|
||||
id: LANG_QUEUE_LAST
|
||||
desc: in onplay menu. queue a track/playlist at end of playlist.
|
||||
eng: "Queue last"
|
||||
voice: "Queue last"
|
||||
new: "Legg til sist i kø"
|
||||
new: "Legg til sist i kø"
|
||||
|
||||
id: LANG_INSERT
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
|
@ -1510,7 +1510,7 @@ id: LANG_QUEUE_FIRST
|
|||
desc: in onplay menu. queue a track/playlist into dynamic playlist.
|
||||
eng: "Queue next"
|
||||
voice: "Queue next"
|
||||
new: "Legg til som neste i kø"
|
||||
new: "Legg til som neste i kø"
|
||||
|
||||
id: LANG_INSERT_FIRST
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
|
@ -1522,7 +1522,7 @@ id: LANG_SAVE_DYNAMIC_PLAYLIST
|
|||
desc: in playlist menu.
|
||||
eng: "Save Current Playlist"
|
||||
voice: "Save Current Playlist"
|
||||
new: "Lagre nåværende spilleliste"
|
||||
new: "Lagre nåværende spilleliste"
|
||||
|
||||
id: LANG_PLAYLIST_MENU
|
||||
desc: in main menu.
|
||||
|
@ -1540,7 +1540,7 @@ id: LANG_PLAYLIST_QUEUE_COUNT
|
|||
desc: splash number of tracks queued
|
||||
eng: "Queued %d tracks (%s)"
|
||||
voice: ""
|
||||
new: "La til %d spor i køen (%s)"
|
||||
new: "La til %d spor i køen (%s)"
|
||||
|
||||
id: LANG_PLAYLIST_SAVE_COUNT
|
||||
desc: splash number of tracks saved
|
||||
|
@ -1552,13 +1552,13 @@ id: LANG_OFF_ABORT
|
|||
desc: Used on recorder models
|
||||
eng: "OFF to abort"
|
||||
voice: ""
|
||||
new: "AV for å avbryte"
|
||||
new: "AV for å avbryte"
|
||||
|
||||
id: LANG_STOP_ABORT
|
||||
desc: Used on player models
|
||||
eng: "STOP to abort"
|
||||
voice: ""
|
||||
new: "STOP for å avbryte"
|
||||
new: "STOP for å avbryte"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_UPDATE_ERROR
|
||||
desc: Playlist error
|
||||
|
@ -1618,7 +1618,7 @@ id: LANG_LANGUAGE
|
|||
desc: in settings_menu
|
||||
eng: "Language"
|
||||
voice: "Language"
|
||||
new: "Språk"
|
||||
new: "Språk"
|
||||
|
||||
id: LANG_WHILE_PLAYING
|
||||
desc: in settings_menu()
|
||||
|
@ -1666,7 +1666,7 @@ id: LANG_FM_BUTTONBAR_PRESETS
|
|||
desc: in button bar
|
||||
eng: "Preset"
|
||||
voice: ""
|
||||
new: "Forhåndsinnstilling"
|
||||
new: "Forhåndsinnstilling"
|
||||
|
||||
id: LANG_FM_SAVE_PRESET
|
||||
desc: DEPRECATED
|
||||
|
@ -1678,7 +1678,7 @@ id: LANG_FM_DELETE_PRESET
|
|||
desc: in radio screen
|
||||
eng: "Remove preset"
|
||||
voice: ""
|
||||
new: "Fjern forhåndsinnstilling"
|
||||
new: "Fjern forhåndsinnstilling"
|
||||
|
||||
id: LANG_FM_STATION
|
||||
desc: in radio screen
|
||||
|
@ -1690,7 +1690,7 @@ id: LANG_FM_PRESET_SAVE_FAILED
|
|||
desc: in radio screen
|
||||
eng: "Preset save failed"
|
||||
voice: ""
|
||||
new: "Lagring av forhåndsinnstilling feilet"
|
||||
new: "Lagring av forhåndsinnstilling feilet"
|
||||
|
||||
id: LANG_FM_NO_PRESETS
|
||||
desc: DEPRECATED
|
||||
|
@ -1702,7 +1702,7 @@ id: LANG_FM_NO_FREE_PRESETS
|
|||
desc: in radio screen
|
||||
eng: "The preset list is full"
|
||||
voice: ""
|
||||
new: "Forhåndsinnstillingslisten er full"
|
||||
new: "Forhåndsinnstillingslisten er full"
|
||||
|
||||
id: LANG_FM_RADIO
|
||||
desc: in main menu
|
||||
|
@ -1720,7 +1720,7 @@ id: LANG_VIEW_DYNAMIC_PLAYLIST
|
|||
desc: in playlist menu.
|
||||
eng: "View Current Playlist"
|
||||
voice: "View Current Playlist"
|
||||
new: "Vis nåværende spilleliste"
|
||||
new: "Vis nåværende spilleliste"
|
||||
|
||||
id: LANG_MOVE
|
||||
desc: The verb/action Move
|
||||
|
@ -1804,7 +1804,7 @@ id: LANG_BOOKMARK_SELECT_DELETE
|
|||
desc: Used on the bookmark select window to indicated the bookmark delete option
|
||||
eng: "ON+Play = Delete"
|
||||
voice: ""
|
||||
new: "PÅ+Play = Slett"
|
||||
new: "PÅ+Play = Slett"
|
||||
|
||||
id: LANG_BOOKMARK_CREATE_SUCCESS
|
||||
desc: Indicates bookmark was successfully created
|
||||
|
@ -1858,7 +1858,7 @@ id: LANG_BOOKMARK_SETTINGS_RECENT_ONLY_ASK
|
|||
desc: Save in recent bookmarks only
|
||||
eng: "Ask - Recent only"
|
||||
voice: "Ask - Recent only"
|
||||
new: "Spør - Kun nylige"
|
||||
new: "Spør - Kun nylige"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_UNIQUE_ONLY
|
||||
desc: Save only on bookmark for each playlist in recent bookmarks
|
||||
|
@ -1960,7 +1960,7 @@ id: LANG_RECORD_CURRENT_DIR
|
|||
desc: in recording directory options
|
||||
eng: "Current dir"
|
||||
voice: "Current directory"
|
||||
new: "Nåværende katalog"
|
||||
new: "Nåværende katalog"
|
||||
|
||||
id: LANG_CREATE_DIR
|
||||
desc: in main menu
|
||||
|
@ -2650,7 +2650,7 @@ id: LANG_ONPLAY_OPEN_WITH
|
|||
desc: Onplay open with
|
||||
eng: "Open with"
|
||||
voice: "open with"
|
||||
new: "Åpne med"
|
||||
new: "Åpne med"
|
||||
|
||||
id: LANG_SORT_DIR
|
||||
desc: browser sorting setting
|
||||
|
@ -2692,7 +2692,7 @@ id: LANG_FM_EDIT_PRESET
|
|||
desc: in radio screen
|
||||
eng: "Edit preset"
|
||||
voice: ""
|
||||
new: "Editer forhåndsinnstilling"
|
||||
new: "Editer forhåndsinnstilling"
|
||||
|
||||
id: LANG_FM_MONO_MODE
|
||||
desc: in radio screen
|
||||
|
@ -2752,7 +2752,7 @@ id: LANG_MDB_ENABLE
|
|||
desc: in sound settings
|
||||
eng: "MDB Enable"
|
||||
voice: "MDB Enable"
|
||||
new: "MDB på"
|
||||
new: "MDB på"
|
||||
|
||||
id: LANG_SUPERBASS
|
||||
desc: in sound settings
|
||||
|
@ -2776,7 +2776,7 @@ id: LANG_CONFIRM_SHUTDOWN
|
|||
desc: in shutdown screen
|
||||
eng: "Press OFF to shut down"
|
||||
voice: ""
|
||||
new: "Trykk AV for å avslutte"
|
||||
new: "Trykk AV for å avslutte"
|
||||
|
||||
id: LANG_ID3_ORDER
|
||||
desc: in playback settings screen
|
||||
|
@ -2788,13 +2788,13 @@ id: LANG_ID3_V1_FIRST
|
|||
desc: in playback settings screen
|
||||
eng: "V1 then V2"
|
||||
voice: "Version 1 then version 2"
|
||||
new: "V1 så V2"
|
||||
new: "V1 så V2"
|
||||
|
||||
id: LANG_ID3_V2_FIRST
|
||||
desc: in playback settings screen
|
||||
eng: "V2 then V1"
|
||||
voice: "Version 2 then version 1"
|
||||
new: "V2 så V1"
|
||||
new: "V2 så V1"
|
||||
|
||||
id: LANG_NO_ROCKBOX_DIR
|
||||
desc: in browse root
|
||||
|
@ -2866,25 +2866,25 @@ id: LANG_ID3DB_SEARCH
|
|||
desc: ID3 virtual folder name
|
||||
eng: "Search"
|
||||
voice: ""
|
||||
new: "Søk"
|
||||
new: "Søk"
|
||||
|
||||
id: LANG_ID3DB_SEARCH_ARTISTS
|
||||
desc: ID3 virtual folder name
|
||||
eng: "Search Artists"
|
||||
voice: ""
|
||||
new: "Søk i artister"
|
||||
new: "Søk i artister"
|
||||
|
||||
id: LANG_ID3DB_SEARCH_ALBUMS
|
||||
desc: ID3 virtual folder name
|
||||
eng: "Search Albums"
|
||||
voice: ""
|
||||
new: "Søk i album"
|
||||
new: "Søk i album"
|
||||
|
||||
id: LANG_ID3DB_SEARCH_SONGS
|
||||
desc: ID3 virtual folder name
|
||||
eng: "Search Songs"
|
||||
voice: ""
|
||||
new: "Søk i sanger"
|
||||
new: "Søk i sanger"
|
||||
|
||||
id: LANG_ID3DB_MATCHES
|
||||
desc: ID3 virtual folder name
|
||||
|
@ -2974,13 +2974,13 @@ id: LANG_ALARM_MOD_DISABLE
|
|||
desc: Announce that the RTC alarm has been turned off
|
||||
eng: "Alarm Disabled"
|
||||
voice: "Alarm Disabled"
|
||||
new: "Alarm avslått"
|
||||
new: "Alarm avslått"
|
||||
|
||||
id: LANG_RECORD_TRIGGER
|
||||
desc: in recording settings_menu
|
||||
eng: "Trigger"
|
||||
voice:
|
||||
new: "Utløser"
|
||||
new: "Utløser"
|
||||
|
||||
id: LANG_RECORD_START_THRESHOLD
|
||||
desc: in recording settings_menu
|
||||
|
@ -3010,19 +3010,19 @@ id: LANG_RECORD_STOP_GAP
|
|||
desc: in recording settings_menu
|
||||
eng: "Presplit gap"
|
||||
voice:
|
||||
new: "Førsplitt-mellomrom"
|
||||
new: "Førsplitt-mellomrom"
|
||||
|
||||
id: LANG_RECORD_TRIGGER_MODE
|
||||
desc: in recording settings_menu
|
||||
eng: "Trigger"
|
||||
voice:
|
||||
new: "Utløser"
|
||||
new: "Utløser"
|
||||
|
||||
id: LANG_RECORD_TRIG_NOREARM
|
||||
desc: in recording settings_menu
|
||||
eng: "Once"
|
||||
voice:
|
||||
new: "Én gang"
|
||||
new: "Én gang"
|
||||
|
||||
id: LANG_RECORD_TRIG_REARM
|
||||
desc: in recording settings_menu
|
||||
|
@ -3040,13 +3040,13 @@ id: LANG_RECORD_TRIG_IDLE
|
|||
desc: waiting for threshold
|
||||
eng: "Trigger idle"
|
||||
voice:
|
||||
new: "Utløser venter"
|
||||
new: "Utløser venter"
|
||||
|
||||
id: LANG_RECORD_TRIGGER_ACTIVE
|
||||
desc:
|
||||
eng: "Trigger active"
|
||||
voice:
|
||||
new: "Utløser aktiv"
|
||||
new: "Utløser aktiv"
|
||||
|
||||
id: LANG_LCD_REMOTE_MENU
|
||||
desc: in the display sub menu
|
||||
|
@ -3100,7 +3100,7 @@ id: LANG_NOTHING_TO_RESUME
|
|||
desc: Error message displayed when resume button pressed but no playlist
|
||||
eng: "Nothing to resume"
|
||||
voice: ""
|
||||
new: "Ingenting å fortsette"
|
||||
new: "Ingenting å fortsette"
|
||||
|
||||
id: LANG_SPDIF_ENABLE
|
||||
desc: in playback settings menu. enable/disable the optical out
|
||||
|
@ -3124,13 +3124,13 @@ id: LANG_MENU_SET_RATING
|
|||
desc: in wps context menu
|
||||
eng: "Set song rating"
|
||||
voice: "Set song rating"
|
||||
new: "Sett sangbedømmelse"
|
||||
new: "Sett sangbedømmelse"
|
||||
|
||||
id: LANG_RATING
|
||||
desc: in set_rating
|
||||
eng: "Rating:"
|
||||
voice:
|
||||
new: "Bedømmelse:"
|
||||
new: "Bedømmelse:"
|
||||
|
||||
id: LANG_CROSSFADE_DURATION
|
||||
desc: in playback settings
|
||||
|
@ -3160,7 +3160,7 @@ id: LANG_REPLAYGAIN_ENABLE
|
|||
desc: in replaygain
|
||||
eng: "Enable replaygain"
|
||||
voice:
|
||||
new: "Slå på replaygain"
|
||||
new: "Slå på replaygain"
|
||||
|
||||
id: LANG_REPLAYGAIN_NOCLIP
|
||||
desc: in replaygain
|
||||
|
@ -3178,25 +3178,25 @@ id: LANG_TRACK_GAIN
|
|||
desc: in replaygain
|
||||
eng: "Track gain"
|
||||
voice:
|
||||
new: "Spornivå"
|
||||
new: "Spornivå"
|
||||
|
||||
id: LANG_ALBUM_GAIN
|
||||
desc: in replaygain
|
||||
eng: "Album gain"
|
||||
voice:
|
||||
new: "Albumnivå"
|
||||
new: "Albumnivå"
|
||||
|
||||
id: LANG_ID3_TRACK_GAIN
|
||||
desc: in browse_id3
|
||||
eng: "[Track gain]"
|
||||
voice:
|
||||
new: "[Spornivå]"
|
||||
new: "[Spornivå]"
|
||||
|
||||
id: LANG_ID3_ALBUM_GAIN
|
||||
desc: in browse_id3
|
||||
eng: "[Album gain]"
|
||||
voice:
|
||||
new: "[Albumnivå]"
|
||||
new: "[Albumnivå]"
|
||||
|
||||
id: LANG_ID3_NO_GAIN
|
||||
desc: DEPRECATED
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
id: LANG_SOUND_SETTINGS
|
||||
desc: in the main menu
|
||||
eng: "Sound Settings"
|
||||
new: "Ustawienia dźwięku"
|
||||
new: "Ustawienia dźwięku"
|
||||
|
||||
id: LANG_GENERAL_SETTINGS
|
||||
desc: in the main menu
|
||||
eng: "General Settings"
|
||||
new: "Ustawienia główne"
|
||||
new: "Ustawienia główne"
|
||||
|
||||
id: LANG_GAMES
|
||||
desc: in the main menu
|
||||
|
@ -35,7 +35,7 @@ new: "Wersja"
|
|||
id: LANG_DEBUG
|
||||
desc: in the main menu
|
||||
eng: "Debug (Keep Out!)"
|
||||
new: "Podgląd procesów"
|
||||
new: "Podgląd procesów"
|
||||
|
||||
id: LANG_USB
|
||||
desc: in the main menu
|
||||
|
@ -70,17 +70,17 @@ new: "Bateria: %d%%%s"
|
|||
id: LANG_BATTERY_CHARGE
|
||||
desc: tells that the battery is charging, instead of battery level
|
||||
eng: "Battery: Charging"
|
||||
new: "Bateria: Ładowanie"
|
||||
new: "Bateria: Ładowanie"
|
||||
|
||||
id: LANG_BOUNCE
|
||||
desc: in the demos menu
|
||||
eng: "Bounce"
|
||||
new: "Skaczący napis"
|
||||
new: "Skaczący napis"
|
||||
|
||||
id: LANG_SNOW
|
||||
desc: in the demos menu
|
||||
eng: "Snow"
|
||||
new: "Śnieg"
|
||||
new: "Śnieg"
|
||||
|
||||
id: LANG_TETRIS
|
||||
desc: in the games menu
|
||||
|
@ -100,18 +100,18 @@ new: "Robal"
|
|||
id: LANG_SNAKE
|
||||
desc: in the games menu
|
||||
eng: "Snake"
|
||||
new: "Wąż"
|
||||
new: "Wąż"
|
||||
|
||||
id: LANG_PLAYLIST_LOAD
|
||||
desc: displayed on screen while loading a playlist
|
||||
eng: "Loading..."
|
||||
new: "Ładuję..."
|
||||
new: "Ładuję..."
|
||||
|
||||
# NO LONGER USED
|
||||
id: LANG_PLAYLIST_SHUFFLE
|
||||
desc: displayed on screen while shuffling a playlist
|
||||
eng: "Shuffling..."
|
||||
new: "Losuję..."
|
||||
new: "Losuję..."
|
||||
|
||||
# NO LONGER USED
|
||||
id: LANG_PLAYLIST_PLAY
|
||||
|
@ -127,18 +127,18 @@ new: "Playlista"
|
|||
id: LANG_PLAYINDICES_BUFFER
|
||||
desc: in playlist.indices() when playlist is full
|
||||
eng: "Buffer Full"
|
||||
new: "Pełny bufor"
|
||||
new: "Pełny bufor"
|
||||
|
||||
# NO LONGER USED
|
||||
id: LANG_PLAYINDICES_AMOUNT
|
||||
desc: number of files in playlist
|
||||
eng: "%d Files"
|
||||
new: "%d plików"
|
||||
new: "%d plików"
|
||||
|
||||
id: LANG_SETTINGS_SAVE_PLAYER
|
||||
desc: displayed if save settings has failed
|
||||
eng: "Save Failed"
|
||||
new: "Błąd zapisu"
|
||||
new: "Błąd zapisu"
|
||||
|
||||
id: LANG_SETTINGS_BATTERY_PLAYER
|
||||
desc: if save settings has failed
|
||||
|
@ -148,7 +148,7 @@ new: "Partycja?"
|
|||
id: LANG_SETTINGS_SAVE_RECORDER
|
||||
desc: displayed if save settings has failed
|
||||
eng: "Save Failed"
|
||||
new: "Błąd zapisu"
|
||||
new: "Błąd zapisu"
|
||||
|
||||
id: LANG_SETTINGS_BATTERY_RECORDER
|
||||
desc: if save settings has failed
|
||||
|
@ -163,7 +163,7 @@ new: "ON - ustaw"
|
|||
id: LANG_TIME_REVERT
|
||||
desc: used in set_time()
|
||||
eng: "OFF To Revert"
|
||||
new: "OFF - przywróć"
|
||||
new: "OFF - przywróć"
|
||||
|
||||
id: LANG_HIDDEN
|
||||
desc: in settings_menu
|
||||
|
@ -203,17 +203,17 @@ new:
|
|||
id: LANG_SORT_CASE
|
||||
desc: in settings_menu
|
||||
eng: "Sort Case Sensitive"
|
||||
new: "Sortuj uwzgl. wielkość liter"
|
||||
new: "Sortuj uwzgl. wielkość liter"
|
||||
|
||||
id: LANG_RESUME
|
||||
desc: in settings_menu
|
||||
eng: "Resume"
|
||||
new: "Dokończ"
|
||||
new: "Dokończ"
|
||||
|
||||
id: LANG_OFF
|
||||
desc: Used in a lot of places
|
||||
eng: "Off"
|
||||
new: "wył."
|
||||
new: "wył."
|
||||
|
||||
id: LANG_RESUME_SETTING_ASK
|
||||
desc: in settings_menu
|
||||
|
@ -223,17 +223,17 @@ new: "Pytaj"
|
|||
id: LANG_ON
|
||||
desc: Used in a lot of places
|
||||
eng: "On"
|
||||
new: "włącz"
|
||||
new: "włącz"
|
||||
|
||||
id: LANG_BACKLIGHT
|
||||
desc: in settings_menu
|
||||
eng: "Backlight"
|
||||
new: "Podświetlenie"
|
||||
new: "Podświetlenie"
|
||||
|
||||
id: LANG_SCROLL
|
||||
desc: in settings_menu
|
||||
eng: "Scroll Speed Setting Example"
|
||||
new: "Przykładowa prędkość przesuwu"
|
||||
new: "Przykładowa prędkość przesuwu"
|
||||
|
||||
id: LANG_DISCHARGE
|
||||
desc: DEPRECATED
|
||||
|
@ -243,7 +243,7 @@ new: ""
|
|||
id: LANG_TIME
|
||||
desc: in settings_menu
|
||||
eng: "Set Time/Date"
|
||||
new: "Ustaw datę/czas"
|
||||
new: "Ustaw datę/czas"
|
||||
|
||||
id: LANG_SPINDOWN
|
||||
desc: in settings_menu
|
||||
|
@ -258,12 +258,12 @@ new: "Minim. skok przewijania"
|
|||
id: LANG_FFRW_ACCEL
|
||||
desc: in settings_menu
|
||||
eng: "FF/RW Accel"
|
||||
new: "Przyśpieszenie przewijania"
|
||||
new: "Przyśpieszenie przewijania"
|
||||
|
||||
id: LANG_FOLLOW
|
||||
desc: in settings_menu
|
||||
eng: "Follow Playlist"
|
||||
new: "Idź do playlisty"
|
||||
new: "Idź do playlisty"
|
||||
|
||||
# depreciated
|
||||
id: LANG_RESET_ASK_PLAYER
|
||||
|
@ -280,7 +280,7 @@ new:
|
|||
id: LANG_RESET_ASK_RECORDER
|
||||
desc: confirm to reset settings
|
||||
eng: "Are You Sure?"
|
||||
new: "Jesteś pewny?"
|
||||
new: "Jesteś pewny?"
|
||||
|
||||
# depreciated
|
||||
id: LANG_RESET_CONFIRM_RECORDER
|
||||
|
@ -317,12 +317,12 @@ new: "Tryb sortowania"
|
|||
id: LANG_SCROLL_MENU
|
||||
desc: in display_settings_menu()
|
||||
eng: "Scroll"
|
||||
new: "Przesuwanie napisów"
|
||||
new: "Przesuwanie napisów"
|
||||
|
||||
id: LANG_RESET
|
||||
desc: in system_settings_menu()
|
||||
eng: "Reset Settings"
|
||||
new: "Ustawienia domyślne"
|
||||
new: "Ustawienia domyślne"
|
||||
|
||||
id: LANG_PLAYBACK
|
||||
desc: in settings_menu()
|
||||
|
@ -332,12 +332,12 @@ new: "Odtwarzanie"
|
|||
id: LANG_FILE
|
||||
desc: in settings_menu()
|
||||
eng: "File View"
|
||||
new: "Widok plików"
|
||||
new: "Widok plików"
|
||||
|
||||
id: LANG_DISPLAY
|
||||
desc: in settings_menu()
|
||||
eng: "Display"
|
||||
new: "Wyświetlanie"
|
||||
new: "Wyświetlanie"
|
||||
|
||||
id: LANG_SYSTEM
|
||||
desc: in settings_menu()
|
||||
|
@ -367,7 +367,7 @@ new: "Wysokie"
|
|||
id: LANG_LOUDNESS
|
||||
desc: in sound_settings
|
||||
eng: "Loudness"
|
||||
new: "Głośność"
|
||||
new: "Głośność"
|
||||
|
||||
id: LANG_BBOOST
|
||||
desc: in sound settings
|
||||
|
@ -382,12 +382,12 @@ new: "Czas wyciszenia"
|
|||
id: LANG_CHANNEL_MENU
|
||||
desc: in sound_settings
|
||||
eng: "Channels"
|
||||
new: "Kanały"
|
||||
new: "Kanały"
|
||||
|
||||
id: LANG_CHANNEL
|
||||
desc: in sound_settings
|
||||
eng: "Channel Configuration"
|
||||
new: "Konfiguracja kanałów"
|
||||
new: "Konfiguracja kanałów"
|
||||
|
||||
id: LANG_CHANNEL_STEREO
|
||||
desc: in sound_settings
|
||||
|
@ -417,17 +417,17 @@ new: "Aut. wzmocnienie"
|
|||
id: LANG_SHOWDIR_ERROR_BUFFER
|
||||
desc: in showdir(), displayed on screen when you reach buffer limit
|
||||
eng: "Dir Buffer"
|
||||
new: "Bufor katalogów"
|
||||
new: "Bufor katalogów"
|
||||
|
||||
id: LANG_SHOWDIR_ERROR_FULL
|
||||
desc: in showdir(), displayed on screen when you reach buffer limit
|
||||
eng: "Is Full!"
|
||||
new: "jest pełny!"
|
||||
new: "jest pełny!"
|
||||
|
||||
id: LANG_RESUME_ASK
|
||||
desc: question asked at the begining when resume is on
|
||||
eng: "Resume?"
|
||||
new: "Dokończyć?"
|
||||
new: "Dokończyć?"
|
||||
|
||||
id: LANG_RESUME_CONFIRM_PLAYER
|
||||
desc: possible answers to resume question
|
||||
|
@ -459,12 +459,12 @@ new: "Klawisze odblokowane"
|
|||
id: LANG_KEYLOCK_ON_RECORDER
|
||||
desc: displayed when key lock is on
|
||||
eng: "Key Lock Is ON"
|
||||
new: "Klawisze są zablokowane"
|
||||
new: "Klawisze są zablokowane"
|
||||
|
||||
id: LANG_KEYLOCK_OFF_RECORDER
|
||||
desc: displayed when key lock is turned off
|
||||
eng: "Key Lock Is OFF"
|
||||
new: "Klawisze są odblokowane"
|
||||
new: "Klawisze są odblokowane"
|
||||
|
||||
id: LANG_MUTE_ON_PLAYER
|
||||
desc: displayed when mute is on
|
||||
|
@ -499,12 +499,12 @@ new: "--Ekran-- "
|
|||
id: LANG_ID3_TITLE
|
||||
desc: in wps
|
||||
eng: "[Title]"
|
||||
new: "[Tytuł]"
|
||||
new: "[Tytuł]"
|
||||
|
||||
id: LANG_ID3_NO_TITLE
|
||||
desc: in wps when no title is avaible
|
||||
eng: "<No Title>"
|
||||
new: "<bez tytułu>"
|
||||
new: "<bez tytułu>"
|
||||
|
||||
id: LANG_ID3_ARTIST
|
||||
desc: in wps
|
||||
|
@ -529,17 +529,17 @@ new: "<brak albumu>"
|
|||
id: LANG_ID3_TRACKNUM
|
||||
desc: in wps
|
||||
eng: "[Tracknum]"
|
||||
new: "[Ścieżka nr]"
|
||||
new: "[Ścieżka nr]"
|
||||
|
||||
id: LANG_ID3_NO_TRACKNUM
|
||||
desc: in wps if no track number is avaible
|
||||
eng: "<No Tracknum>"
|
||||
new: "<brak nru ścieżki>"
|
||||
new: "<brak nru ścieżki>"
|
||||
|
||||
id: LANG_ID3_LENGHT
|
||||
desc: in wps
|
||||
eng: "[Length]"
|
||||
new: "[Długość]"
|
||||
new: "[Długość]"
|
||||
|
||||
id: LANG_ID3_PLAYLIST
|
||||
desc: in wps
|
||||
|
@ -554,22 +554,22 @@ new: "[Bitrate]"
|
|||
id: LANG_ID3_FRECUENCY
|
||||
desc: in wps
|
||||
eng: "[Frequency]"
|
||||
new: "[Częstotl.]"
|
||||
new: "[Częstotl.]"
|
||||
|
||||
id: LANG_ID3_PATH
|
||||
desc: in wps
|
||||
eng: "[Path]"
|
||||
new: "[Ścieżka]"
|
||||
new: "[Ścieżka]"
|
||||
|
||||
id: LANG_PITCH_UP
|
||||
desc: in wps
|
||||
eng: "Pitch Up"
|
||||
new: "Podnieś"
|
||||
new: "Podnieś"
|
||||
|
||||
id: LANG_PITCH_DOWN
|
||||
desc: in wps
|
||||
eng: "Pitch Down"
|
||||
new: "Obniż"
|
||||
new: "Obniż"
|
||||
|
||||
id: LANG_PAUSE
|
||||
desc: in wps
|
||||
|
@ -589,7 +589,7 @@ new:
|
|||
id: LANG_F3_STATUS
|
||||
desc: in wps F3 pressed
|
||||
eng: "Status"
|
||||
new: "Górny"
|
||||
new: "Górny"
|
||||
|
||||
id: LANG_F3_SCROLL
|
||||
desc: in wps F3 pressed
|
||||
|
@ -624,7 +624,7 @@ new:
|
|||
id: LANG_SNAKE_SCORE
|
||||
desc: when you die in snake game
|
||||
eng: "Your score:"
|
||||
new: "Twój wynik:"
|
||||
new: "Twój wynik:"
|
||||
|
||||
id: LANG_SNAKE_HISCORE
|
||||
desc: high score in snake game
|
||||
|
@ -649,7 +649,7 @@ new: "[GRAJ] dalej"
|
|||
id: LANG_SNAKE_QUIT
|
||||
desc: how to quit game
|
||||
eng: "[OFF] To Quit"
|
||||
new: "[OFF] zakończ"
|
||||
new: "[OFF] zakończ"
|
||||
|
||||
id: LANG_SNAKE_LEVEL
|
||||
desc: level of difficulty
|
||||
|
@ -795,17 +795,17 @@ new:
|
|||
id: LANG_POWEROFF_IDLE
|
||||
desc: in settings_menu
|
||||
eng: "Idle Poweroff"
|
||||
new: "Aut. wylączanie"
|
||||
new: "Aut. wylączanie"
|
||||
|
||||
id: LANG_LANGUAGE_LOADED
|
||||
desc: shown when a language has been loaded from the dir browser
|
||||
eng: "New Language"
|
||||
new: "Nowy język"
|
||||
new: "Nowy język"
|
||||
|
||||
id: LANG_FILTER
|
||||
desc: setting name for dir filter
|
||||
eng: "Show Files"
|
||||
new: "Pokaż pliki"
|
||||
new: "Pokaż pliki"
|
||||
|
||||
id: LANG_FILTER_MUSIC
|
||||
desc: show only music-related files
|
||||
|
@ -835,7 +835,7 @@ new: "Nie"
|
|||
id: LANG_PM_MENU
|
||||
desc: in the display menu
|
||||
eng: "Peak Meter"
|
||||
new: "Wskaźnik szczyt."
|
||||
new: "Wskaźnik szczyt."
|
||||
|
||||
id: LANG_PM_RELEASE
|
||||
desc: in the peak meter menu
|
||||
|
@ -865,12 +865,12 @@ new: "fragm. na odczyt"
|
|||
id: LANG_BACKLIGHT_ON_WHEN_CHARGING
|
||||
desc: in display_settings_menu
|
||||
eng: "Backlight On When Plugged"
|
||||
new: "Podświetl kiedy podłączony"
|
||||
new: "Podświetl kiedy podłączony"
|
||||
|
||||
id: LANG_REPEAT
|
||||
desc: in settings_menu
|
||||
eng: "Repeat"
|
||||
new: "Powtórz"
|
||||
new: "Powtórz"
|
||||
|
||||
id: LANG_REPEAT_ALL
|
||||
desc: repeat playlist once all songs have completed
|
||||
|
@ -929,7 +929,7 @@ new: "Wto"
|
|||
id: LANG_WEEKDAY_WEDNESDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Wed"
|
||||
new: "Śro"
|
||||
new: "Śro"
|
||||
|
||||
id: LANG_WEEKDAY_THURSDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
|
@ -939,7 +939,7 @@ new: "Czw"
|
|||
id: LANG_WEEKDAY_FRIDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Fri"
|
||||
new: "Pią"
|
||||
new: "Pią"
|
||||
|
||||
id: LANG_WEEKDAY_SATURDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
|
@ -994,7 +994,7 @@ new: "Wrz"
|
|||
id: LANG_MONTH_OCTOBER
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
eng: "Oct"
|
||||
new: "Paź"
|
||||
new: "Paź"
|
||||
|
||||
id: LANG_MONTH_NOVEMBER
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
|
@ -1009,7 +1009,7 @@ new: "Gru"
|
|||
id: LANG_CUBE
|
||||
desc: the name of the cube demo in the demo menu
|
||||
eng: "Cube"
|
||||
new: "Bryła"
|
||||
new: "Bryła"
|
||||
|
||||
id: LANG_OSCILLOGRAPH
|
||||
desc: the name of the oscillograph demo in the demo menu
|
||||
|
@ -1024,12 +1024,12 @@ new: "Zapytaj raz"
|
|||
id: LANG_BATTERY_DISPLAY
|
||||
desc: Battery type title
|
||||
eng: "Battery Display"
|
||||
new: "Wyświetlanie baterii"
|
||||
new: "Wyświetlanie baterii"
|
||||
|
||||
id: LANG_VOLUME_DISPLAY
|
||||
desc: Volume type title
|
||||
eng: "Volume Display"
|
||||
new: "Wyświetlanie wzmocnienia"
|
||||
new: "Wyświetlanie wzmocnienia"
|
||||
|
||||
id: LANG_DISPLAY_GRAPHIC
|
||||
desc: Label for type of icon display
|
||||
|
@ -1044,22 +1044,22 @@ new: "numerycznie"
|
|||
id: LANG_PM_PERFORMANCE
|
||||
desc: in the peak meter menu
|
||||
eng: "Performance"
|
||||
new: "Wydajność"
|
||||
new: "Wydajność"
|
||||
|
||||
id: LANG_PM_HIGH_PERFORMANCE
|
||||
desc: in the peak meter menu
|
||||
eng: "High performance"
|
||||
new: "Wysoka wydajność"
|
||||
new: "Wysoka wydajność"
|
||||
|
||||
id: LANG_PM_ENERGY_SAVER
|
||||
desc: in the peak meter menu
|
||||
eng: "Save Energy"
|
||||
new: "Oszczędz. energii"
|
||||
new: "Oszczędz. energii"
|
||||
|
||||
id: LANG_PM_SCALE
|
||||
desc: in the peak meter menu
|
||||
eng: "Scale"
|
||||
new: "Wskaźnik"
|
||||
new: "Wskaźnik"
|
||||
|
||||
id: LANG_PM_DBFS
|
||||
desc: in the peak meter menu
|
||||
|
@ -1104,22 +1104,22 @@ new: "prawy"
|
|||
id: LANG_RECORDING_QUALITY
|
||||
desc: in the recording settings
|
||||
eng: "Quality"
|
||||
new: "Jakość"
|
||||
new: "Jakość"
|
||||
|
||||
id: LANG_RECORDING_FREQUENCY
|
||||
desc: in the recording settings
|
||||
eng: "Frequency"
|
||||
new: "Częstotliwość"
|
||||
new: "Częstotliwość"
|
||||
|
||||
id: LANG_RECORDING_SOURCE
|
||||
desc: in the recording settings
|
||||
eng: "Source"
|
||||
new: "Źródło"
|
||||
new: "Źródło"
|
||||
|
||||
id: LANG_RECORDING_CHANNELS
|
||||
desc: in the recording settings
|
||||
eng: "Channels"
|
||||
new: "Kanały"
|
||||
new: "Kanały"
|
||||
|
||||
id: LANG_RECORDING_SRC_MIC
|
||||
desc: in the recording settings
|
||||
|
@ -1154,7 +1154,7 @@ new: "Wolne: %d.%GB"
|
|||
id: LANG_POWEROFF
|
||||
desc: disk poweroff flag
|
||||
eng: "Disk Poweroff"
|
||||
new: "Wyłączanie dysku"
|
||||
new: "Wyłączanie dysku"
|
||||
|
||||
id: LANG_FILTER_PLAYLIST
|
||||
desc: show only playlist
|
||||
|
@ -1174,7 +1174,7 @@ new: "Usypiacz"
|
|||
id: LANG_MP3BUFFER_MARGIN
|
||||
desc: MP3 buffer margin time
|
||||
eng: "Anti-Skip Buffer"
|
||||
new: "Bufor antywstrząsowy"
|
||||
new: "Bufor antywstrząsowy"
|
||||
|
||||
id: LANG_BIDIR_SCROLL
|
||||
desc: Bidirectional scroll limit
|
||||
|
@ -1184,7 +1184,7 @@ new: "Limit przesuwania dwukierunkowego"
|
|||
id: LANG_SCROLL_DELAY
|
||||
desc: Delay before scrolling
|
||||
eng: "Scroll Start Delay"
|
||||
new: "Opóźnienie rozpoczęcia przesuwania"
|
||||
new: "Opóźnienie rozpoczęcia przesuwania"
|
||||
|
||||
id: LANG_SCROLL_STEP
|
||||
desc: Pixels to advance per scroll
|
||||
|
@ -1194,12 +1194,12 @@ new: "Rozmiar skoku przesuwania"
|
|||
id: LANG_SCROLL_STEP_EXAMPLE
|
||||
desc: Pixels to advance per scroll
|
||||
eng: "Scroll Step Size Setting Example Text"
|
||||
new: "Przykładowy rozmiar skoku przesuwania"
|
||||
new: "Przykładowy rozmiar skoku przesuwania"
|
||||
|
||||
id: LANG_SCROLL_SPEED
|
||||
desc: in display_settings_menu()
|
||||
eng: "Scroll Speed"
|
||||
new: "Prędkość przesuwania"
|
||||
new: "Prędkość przesuwania"
|
||||
|
||||
id: LANG_TRICKLE_CHARGE
|
||||
desc: DEPRECATED
|
||||
|
@ -1209,17 +1209,17 @@ new: ""
|
|||
id: LANG_BATTERY_TOPOFF_CHARGE
|
||||
desc: in info display, shows that top off charge is running
|
||||
eng: "Battery: Top-Off Chg"
|
||||
new: "Bateria: Doładowanie"
|
||||
new: "Bateria: Doładowanie"
|
||||
|
||||
id: LANG_BATTERY_TRICKLE_CHARGE
|
||||
desc: in info display, shows that trickle charge is running
|
||||
eng: "Battery: Trickle Chg"
|
||||
new: "Bateria: Wolne ładowanie"
|
||||
new: "Bateria: Wolne ładowanie"
|
||||
|
||||
id: LANG_BATTERY_CAPACITY
|
||||
desc: in settings_menu
|
||||
eng: "Battery Capacity"
|
||||
new: "Pojemność baterii"
|
||||
new: "Pojemność baterii"
|
||||
|
||||
id: LANG_QUEUE_QUEUED
|
||||
desc: queued track name %s
|
||||
|
@ -1269,7 +1269,7 @@ new: "Skasuj"
|
|||
id: LANG_REALLY_DELETE
|
||||
desc: Really Delete?
|
||||
eng: "Delete?"
|
||||
new: "Skasować?"
|
||||
new: "Skasować?"
|
||||
|
||||
id: LANG_DELETED
|
||||
desc: A file has beed deleted
|
||||
|
@ -1284,7 +1284,7 @@ new: "Zm.Naz"
|
|||
id: LANG_FAILED
|
||||
desc: Something failed. To be appended after above actions
|
||||
eng: "Failed"
|
||||
new: "nie udało się"
|
||||
new: "nie udało się"
|
||||
|
||||
id: LANG_ALARM_MOD_ALARM_MENU
|
||||
desc: The name of the additional entry in the main menu for the RTC alarm mod.
|
||||
|
@ -1304,7 +1304,7 @@ new: "Budzenie za %d:%02d"
|
|||
id: LANG_ALARM_MOD_SHUTDOWN
|
||||
desc: The text that tells the user that the alarm time is ok and the device shuts off (for the RTC alarm mod).
|
||||
eng: "Shutting Down..."
|
||||
new: "Wyłączanie..."
|
||||
new: "Wyłączanie..."
|
||||
|
||||
id: LANG_ALARM_MOD_ERROR
|
||||
desc: The text that tells that the time is incorrect (for the RTC alarm mod).
|
||||
|
@ -1319,12 +1319,12 @@ new: "GRAJ=Ustaw OFF=Anuluj"
|
|||
id: LANG_CREATE_PLAYLIST
|
||||
desc: Menu option for creating a playlist
|
||||
eng: "Create Playlist"
|
||||
new: "Stwórz playlistę"
|
||||
new: "Stwórz playlistę"
|
||||
|
||||
id: LANG_CREATING
|
||||
desc: Screen feedback during playlist creation
|
||||
eng: "Creating"
|
||||
new: "Tworzę"
|
||||
new: "Tworzę"
|
||||
|
||||
id: LANG_PLAYER_KEYBOARD_BACKSPACE
|
||||
desc: Backspace alternative in player keyboard interaction
|
||||
|
@ -1344,12 +1344,12 @@ new: "Akceptuj"
|
|||
id: LANG_PLAYER_KEYBOARD_ABORT
|
||||
desc: Abort alternative in player keyboard interaction
|
||||
eng: "Abort"
|
||||
new: "Opuść"
|
||||
new: "Opuść"
|
||||
|
||||
id: LANG_MENU_SHOW_ID3_INFO
|
||||
desc: Menu option to start id3 viewer
|
||||
eng: "Show ID3 Info"
|
||||
new: "Pokaż info ID3"
|
||||
new: "Pokaż info ID3"
|
||||
|
||||
id: LANG_ID3_GENRE
|
||||
desc: ID3 frame 'genre'
|
||||
|
@ -1389,7 +1389,7 @@ new: "Ustawienia"
|
|||
id: LANG_SETTINGS_LOADED2
|
||||
desc: Feedback shown when a .cfg file is loaded
|
||||
eng: "Loaded"
|
||||
new: "załadowane"
|
||||
new: "załadowane"
|
||||
|
||||
id: LANG_FADE_ON_STOP
|
||||
desc: options menu to set fade on stop or pause
|
||||
|
@ -1399,7 +1399,7 @@ new: "Wycisz przy zatrzymaniu"
|
|||
id: LANG_SOKOBAN_ON
|
||||
desc: how to undo move
|
||||
eng: "[ON] To Undo"
|
||||
new: "[ON] przywróć"
|
||||
new: "[ON] przywróć"
|
||||
|
||||
id: LANG_INVERT
|
||||
desc: in settings_menu
|
||||
|
@ -1409,12 +1409,12 @@ new: "Tryb LCD"
|
|||
id: LANG_CHANNEL_STEREO_NARROW_PLAYER
|
||||
desc: in sound_settings
|
||||
eng: "St. Narrow"
|
||||
new: "wąskie st."
|
||||
new: "wąskie st."
|
||||
|
||||
id: LANG_CHANNEL_STEREO_NARROW_RECORDER
|
||||
desc: in sound_settings
|
||||
eng: "Stereo Narrow"
|
||||
new: "wąskie stereo"
|
||||
new: "wąskie stereo"
|
||||
|
||||
id: LANG_CHANNEL_STEREO_WIDE
|
||||
desc: in sound_settings
|
||||
|
@ -1464,7 +1464,7 @@ new: "Zaznaczanie linii"
|
|||
id: LANG_RECORDING_EDITABLE
|
||||
desc: Editable recordings setting
|
||||
eng: "Independent frames"
|
||||
new: "Niezależne ramki"
|
||||
new: "Niezależne ramki"
|
||||
|
||||
id: LANG_STATUS_BAR
|
||||
desc: display menu, F3 substitute
|
||||
|
@ -1479,12 +1479,12 @@ new: "Pasek przewijania"
|
|||
id: LANG_CAPTION_BACKLIGHT
|
||||
desc: in settings_menu
|
||||
eng: "Caption backlight"
|
||||
new: "Podświetlanie napisów"
|
||||
new: "Podświetlanie napisów"
|
||||
|
||||
id: LANG_INVERT_CURSOR_POINTER
|
||||
desc: in settings_menu
|
||||
eng: "Pointer"
|
||||
new: "wskaźnik"
|
||||
new: "wskaźnik"
|
||||
|
||||
id: LANG_INVERT_CURSOR_BAR
|
||||
desc: in settings_menu
|
||||
|
@ -1504,7 +1504,7 @@ new: "w negatywie"
|
|||
id: LANG_MAX_FILES_IN_DIR
|
||||
desc: in settings_menu
|
||||
eng: "Max files in dir browser"
|
||||
new: "Maksym. plików w przeglądarce katalogów"
|
||||
new: "Maksym. plików w przeglądarce katalogów"
|
||||
|
||||
id: LANG_MAX_FILES_IN_PLAYLIST
|
||||
desc: in settings_menu
|
||||
|
@ -1529,7 +1529,7 @@ new: "zawsze"
|
|||
id: LANG_JUMP_SCROLL_DELAY
|
||||
desc: (player) Delay before making a jump scroll
|
||||
eng: "Jump Scroll Delay"
|
||||
new: "opóźnienie skoku przewijania"
|
||||
new: "opóźnienie skoku przewijania"
|
||||
|
||||
id: LANG_RECORD_TIMESPLIT
|
||||
desc: Prompt for record timer interval setting, in the record settings menu
|
||||
|
@ -1544,12 +1544,12 @@ new: "Dziel co:"
|
|||
id: LANG_SHOW_ICONS
|
||||
desc: in settings_menu
|
||||
eng: "Show Icons"
|
||||
new: "Pokaż ikony"
|
||||
new: "Pokaż ikony"
|
||||
|
||||
id: LANG_DISK_FULL
|
||||
desc: in recording screen
|
||||
eng: "The disk is full. Press OFF to continue."
|
||||
new: "Dysk jest pełny. Wciśnij OFF żeby kontynuować."
|
||||
new: "Dysk jest pełny. Wciśnij OFF żeby kontynuować."
|
||||
|
||||
id: LANG_CONFIRM_WITH_PLAY_RECORDER
|
||||
desc: Generic recorder string to use to confirm
|
||||
|
@ -1559,7 +1559,7 @@ new: "GRAJ = Tak"
|
|||
id: LANG_CANCEL_WITH_ANY_RECORDER
|
||||
desc: Generic recorder string to use to cancel
|
||||
eng: "Any Other = No"
|
||||
new: "Każdy inny = Nie"
|
||||
new: "Każdy inny = Nie"
|
||||
|
||||
##
|
||||
## Strings used in the plugin loader:
|
||||
|
@ -1568,12 +1568,12 @@ new: "Ka
|
|||
id: LANG_PLUGIN_CANT_OPEN
|
||||
desc: Plugin open error message
|
||||
eng: "Can't open %s"
|
||||
new: "Nie mogę otworzyć %s"
|
||||
new: "Nie mogę otworzyć %s"
|
||||
|
||||
id: LANG_READ_FAILED
|
||||
desc: There was an error reading a file
|
||||
eng: "Failed reading %s"
|
||||
new: "Błąd odczytu %s"
|
||||
new: "Błąd odczytu %s"
|
||||
|
||||
id: LANG_PLUGIN_WRONG_MODEL
|
||||
desc: The plugin is not compatible with the archos model trying to run it
|
||||
|
@ -1588,7 +1588,7 @@ new: "Wersja niekompatybilna"
|
|||
id: LANG_PLUGIN_ERROR
|
||||
desc: The plugin return an error code
|
||||
eng: "Plugin returned error"
|
||||
new: "Wtyczka zwróciła błąd"
|
||||
new: "Wtyczka zwróciła błąd"
|
||||
|
||||
##
|
||||
## boot change detection
|
||||
|
@ -1597,17 +1597,17 @@ new: "Wtyczka zwr
|
|||
id: LANG_BOOT_CHANGED
|
||||
desc: File browser discovered the boot file was changed
|
||||
eng: "Boot changed"
|
||||
new: "Zmienił się plik startowy"
|
||||
new: "Zmienił się plik startowy"
|
||||
|
||||
id: LANG_REBOOT_NOW
|
||||
desc: Do you want to reboot?
|
||||
eng: "Reboot now?"
|
||||
new: "Zresetować teraz?"
|
||||
new: "Zresetować teraz?"
|
||||
|
||||
id: LANG_FLIPIT
|
||||
desc: in the games menu
|
||||
eng: "Flipit"
|
||||
new: "Odwróć"
|
||||
new: "Odwróć"
|
||||
|
||||
id: LANG_OTHELO
|
||||
desc: in the games menu
|
||||
|
@ -1627,7 +1627,7 @@ new: "Gwiazda"
|
|||
id: LANG_QUEUE_LAST
|
||||
desc: in onplay menu. queue a track/playlist at end of playlist.
|
||||
eng: "Queue last"
|
||||
new: "Kolejkuj ostatni/ą"
|
||||
new: "Kolejkuj ostatni/ą"
|
||||
|
||||
id: LANG_INSERT
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
|
@ -1637,22 +1637,22 @@ new: "Wstaw"
|
|||
id: LANG_INSERT_LAST
|
||||
desc: in onplay menu. append a track/playlist into dynamic playlist.
|
||||
eng: "Insert last"
|
||||
new: "Wstaw ostatni/ą"
|
||||
new: "Wstaw ostatni/ą"
|
||||
|
||||
id: LANG_QUEUE_FIRST
|
||||
desc: in onplay menu. queue a track/playlist into dynamic playlist.
|
||||
eng: "Queue next"
|
||||
new: "Kolejkuj następny/ą"
|
||||
new: "Kolejkuj następny/ą"
|
||||
|
||||
id: LANG_INSERT_FIRST
|
||||
desc: in onplay menu. insert a track/playlist into dynamic playlist.
|
||||
eng: "Insert next"
|
||||
new: "Wstaw następny/ą"
|
||||
new: "Wstaw następny/ą"
|
||||
|
||||
id: LANG_SAVE_DYNAMIC_PLAYLIST
|
||||
desc: in playlist menu.
|
||||
eng: "Save Dynamic Playlist"
|
||||
new: "Zachowaj dynamiczną playlistę"
|
||||
new: "Zachowaj dynamiczną playlistę"
|
||||
|
||||
id: LANG_PLAYLIST_MENU
|
||||
desc: in main menu.
|
||||
|
@ -1662,17 +1662,17 @@ new: "Opcje playlisty"
|
|||
id: LANG_PLAYLIST_INSERT_COUNT
|
||||
desc: splash number of tracks inserted
|
||||
eng: "Inserted %d tracks (%s)"
|
||||
new: "Wstawione %d plików (%s)"
|
||||
new: "Wstawione %d plików (%s)"
|
||||
|
||||
id: LANG_PLAYLIST_QUEUE_COUNT
|
||||
desc: splash number of tracks queued
|
||||
eng: "Queued %d tracks (%s)"
|
||||
new: "W kolejce %d plików (%s)"
|
||||
new: "W kolejce %d plików (%s)"
|
||||
|
||||
id: LANG_PLAYLIST_SAVE_COUNT
|
||||
desc: splash number of tracks saved
|
||||
eng: "Saved %d tracks (%s)"
|
||||
new: "Zachowane %d plików (%s)"
|
||||
new: "Zachowane %d plików (%s)"
|
||||
|
||||
id: LANG_OFF_ABORT
|
||||
desc: Used on recorder models
|
||||
|
@ -1687,22 +1687,22 @@ new: "STOP - anuluj"
|
|||
id: LANG_PLAYLIST_CONTROL_UPDATE_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error updating playlist control file"
|
||||
new: "Błąd przy odświeżaniu pliku kontroli playlisty"
|
||||
new: "Błąd przy odświeżaniu pliku kontroli playlisty"
|
||||
|
||||
id: LANG_PLAYLIST_ACCESS_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error accessing playlist file"
|
||||
new: "Brak dostępu do pliku playlisty"
|
||||
new: "Brak dostępu do pliku playlisty"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_ACCESS_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error accessing playlist control file"
|
||||
new: "Brak dostępu do pliku kontroli playlisty"
|
||||
new: "Brak dostępu do pliku kontroli playlisty"
|
||||
|
||||
id: LANG_PLAYLIST_DIRECTORY_ACCESS_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error accessing directory"
|
||||
new: "Brak dostępu do katalogu"
|
||||
new: "Brak dostępu do katalogu"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_INVALID
|
||||
desc: Playlist resume error
|
||||
|
@ -1732,7 +1732,7 @@ new: "Firmware"
|
|||
id: LANG_LANGUAGE
|
||||
desc: in settings_menu
|
||||
eng: "Language"
|
||||
new: "Język"
|
||||
new: "Język"
|
||||
|
||||
id: LANG_WHILE_PLAYING
|
||||
desc: in settings_menu()
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
id: LANG_SOUND_SETTINGS
|
||||
desc: in the main menu
|
||||
eng: "Sound Settings"
|
||||
new: "Opções de Som"
|
||||
new: "Opções de Som"
|
||||
|
||||
id: LANG_GENERAL_SETTINGS
|
||||
desc: in the main menu
|
||||
eng: "General Settings"
|
||||
new: "Opções Gerais"
|
||||
new: "Opções Gerais"
|
||||
|
||||
id: LANG_GAMES
|
||||
desc: in the main menu
|
||||
|
@ -28,12 +28,12 @@ new: "Info"
|
|||
id: LANG_VERSION
|
||||
desc: in the main menu
|
||||
eng: "Version"
|
||||
new: "Versão"
|
||||
new: "Versão"
|
||||
|
||||
id: LANG_DEBUG
|
||||
desc: in the main menu
|
||||
eng: "Debug (keep out!)"
|
||||
new: "Debug (não entre!)"
|
||||
new: "Debug (não entre!)"
|
||||
|
||||
id: LANG_USB
|
||||
desc: in the main menu
|
||||
|
@ -118,7 +118,7 @@ new: "A reproduzir..."
|
|||
id: LANG_PLAYINDICES_PLAYLIST
|
||||
desc: in playlist.indices() when playlist is full
|
||||
eng: "Playlist"
|
||||
new: "Lista de reprodução"
|
||||
new: "Lista de reprodução"
|
||||
|
||||
id: LANG_PLAYINDICES_BUFFER
|
||||
desc: in playlist.indices() when playlist is full
|
||||
|
@ -148,7 +148,7 @@ new: "Falhou a Salvaguarda"
|
|||
id: LANG_SETTINGS_BATTERY_RECORDER
|
||||
desc: if save settings has failed
|
||||
eng: "Is battery low?"
|
||||
new: "Está a bat. baixa?"
|
||||
new: "Está a bat. baixa?"
|
||||
|
||||
id: LANG_TIME_SET
|
||||
desc: used in set_time()
|
||||
|
@ -183,7 +183,7 @@ new: "Contraste"
|
|||
id: LANG_SHUFFLE
|
||||
desc: in settings_menu
|
||||
eng: "Shuffle"
|
||||
new: "Aleatório"
|
||||
new: "Aleatório"
|
||||
|
||||
id: LANG_PLAY_SELECTED
|
||||
desc: in settings_menu
|
||||
|
@ -198,7 +198,7 @@ new: ""
|
|||
id: LANG_SORT_CASE
|
||||
desc: in settings_menu
|
||||
eng: "Sort Case Sensitive"
|
||||
new: "Ordenação sensível a maisc./min."
|
||||
new: "Ordenação sensível a maisc./min."
|
||||
|
||||
id: LANG_RESUME
|
||||
desc: in settings_menu
|
||||
|
@ -223,7 +223,7 @@ new: "Ligar"
|
|||
id: LANG_BACKLIGHT
|
||||
desc: in settings_menu
|
||||
eng: "Backlight"
|
||||
new: "Retro-iluminação"
|
||||
new: "Retro-iluminação"
|
||||
|
||||
id: LANG_BACKLIGHT_ON
|
||||
desc: in settings_menu
|
||||
|
@ -253,7 +253,7 @@ new: "Paragem do disco"
|
|||
id: LANG_FFRW_STEP
|
||||
desc: in settings_menu
|
||||
eng: "FF/RW Min Step"
|
||||
new: "Passo mínimo de FF/RW"
|
||||
new: "Passo mínimo de FF/RW"
|
||||
|
||||
id: LANG_FFRW_ACCEL
|
||||
desc: in settings_menu
|
||||
|
@ -263,7 +263,7 @@ new: "Acelar. FF/RW"
|
|||
id: LANG_FOLLOW
|
||||
desc: in settings_menu
|
||||
eng: "Follow Playlist"
|
||||
new: "Seguir a lista de reprodução"
|
||||
new: "Seguir a lista de reprodução"
|
||||
|
||||
# depreciated
|
||||
id: LANG_RESET_ASK_PLAYER
|
||||
|
@ -297,7 +297,7 @@ new: "OFF=Cancelar"
|
|||
id: LANG_RESET_DONE_SETTING
|
||||
desc: visual confirmation after settings reset
|
||||
eng: "Settings"
|
||||
new: "Opções"
|
||||
new: "Opções"
|
||||
|
||||
id: LANG_RESET_DONE_CLEAR
|
||||
desc: visual confirmation after settings reset
|
||||
|
@ -312,7 +312,7 @@ new: "Cancelado"
|
|||
id: LANG_CASE_MENU
|
||||
desc: in fileview_settings_menu()
|
||||
eng: "Sort Mode"
|
||||
new: "Modo de ordenação"
|
||||
new: "Modo de ordenação"
|
||||
|
||||
id: LANG_SCROLL_MENU
|
||||
desc: in display_settings_menu()
|
||||
|
@ -322,7 +322,7 @@ new: "Vel. de desloc. do ecran"
|
|||
id: LANG_RESET
|
||||
desc: in system_settings_menu()
|
||||
eng: "Reset settings"
|
||||
new: "Opções de reinicialização"
|
||||
new: "Opções de reinicialização"
|
||||
|
||||
id: LANG_PLAYBACK
|
||||
desc: in settings_menu()
|
||||
|
@ -352,7 +352,7 @@ new: "Volume"
|
|||
id: LANG_BALANCE
|
||||
desc: in sound_settings
|
||||
eng: "Balance"
|
||||
new: "Balanço"
|
||||
new: "Balanço"
|
||||
|
||||
id: LANG_BASS
|
||||
desc: in sound_settings
|
||||
|
@ -377,7 +377,7 @@ new: "Realce dos graves"
|
|||
id: LANG_DECAY
|
||||
desc: in sound_settings
|
||||
eng: "AV Decay Time"
|
||||
new: "Tempo de caída de AV"
|
||||
new: "Tempo de caída de AV"
|
||||
|
||||
id: LANG_CHANNEL_MENU
|
||||
desc: in sound_settings
|
||||
|
@ -387,7 +387,7 @@ new: "Canais"
|
|||
id: LANG_CHANNEL
|
||||
desc: in sound_settings
|
||||
eng: "Channel Configuration"
|
||||
new: "Configuração de canal"
|
||||
new: "Configuração de canal"
|
||||
|
||||
id: LANG_CHANNEL_STEREO
|
||||
desc: in sound_settings
|
||||
|
@ -422,7 +422,7 @@ new: "Buffer de direct."
|
|||
id: LANG_SHOWDIR_ERROR_FULL
|
||||
desc: in showdir(), displayed on screen when you reach buffer limit
|
||||
eng: "is full!"
|
||||
new: "está cheio!"
|
||||
new: "está cheio!"
|
||||
|
||||
id: LANG_RESUME_ASK
|
||||
desc: question asked at the begining when resume is on
|
||||
|
@ -442,7 +442,7 @@ new: "PLAY = Sim"
|
|||
id: LANG_RESUME_CANCEL_RECORDER
|
||||
desc: possible answer to resume question
|
||||
eng: "Any Other = No"
|
||||
new: "Qualquer outra = Não"
|
||||
new: "Qualquer outra = Não"
|
||||
|
||||
id: LANG_KEYLOCK_ON_PLAYER
|
||||
desc: displayed when key lock is on
|
||||
|
@ -457,32 +457,32 @@ new: "Teclado desbloq."
|
|||
id: LANG_KEYLOCK_ON_RECORDER
|
||||
desc: displayed when key lock is on
|
||||
eng: "Key lock is ON"
|
||||
new: "Teclado está bloq."
|
||||
new: "Teclado está bloq."
|
||||
|
||||
id: LANG_KEYLOCK_OFF_RECORDER
|
||||
desc: displayed when key lock is turned off
|
||||
eng: "Key lock is OFF"
|
||||
new: "Teclado está desbloq."
|
||||
new: "Teclado está desbloq."
|
||||
|
||||
id: LANG_MUTE_ON_PLAYER
|
||||
desc: displayed when mute is on
|
||||
eng: "Mute ON"
|
||||
new: "Silêncio activo"
|
||||
new: "Silêncio activo"
|
||||
|
||||
id: LANG_MUTE_OFF_PLAYER
|
||||
desc: displayed when mute is off
|
||||
eng: "Mute OFF"
|
||||
new: "Silêncio desactivo"
|
||||
new: "Silêncio desactivo"
|
||||
|
||||
id: LANG_MUTE_ON_RECORDER
|
||||
desc: displayed when mute is on
|
||||
eng: "Mute is ON"
|
||||
new: "Silêncio está activo"
|
||||
new: "Silêncio está activo"
|
||||
|
||||
id: LANG_MUTE_OFF_RECORDER
|
||||
desc: displayed when mute is off
|
||||
eng: "Mute is OFF"
|
||||
new: "Silêncio está desactivo"
|
||||
new: "Silêncio está desactivo"
|
||||
|
||||
id: LANG_ID3_INFO
|
||||
desc: in the browse_id3() function
|
||||
|
@ -497,12 +497,12 @@ new: "--Ecran-- "
|
|||
id: LANG_ID3_TITLE
|
||||
desc: in wps
|
||||
eng: "[Title]"
|
||||
new: "[Título]"
|
||||
new: "[Título]"
|
||||
|
||||
id: LANG_ID3_NO_TITLE
|
||||
desc: in wps when no title is avaible
|
||||
eng: "<no title>"
|
||||
new: "<sem título>"
|
||||
new: "<sem título>"
|
||||
|
||||
id: LANG_ID3_ARTIST
|
||||
desc: in wps
|
||||
|
@ -527,12 +527,12 @@ new: "<sem album>"
|
|||
id: LANG_ID3_TRACKNUM
|
||||
desc: in wps
|
||||
eng: "[Tracknum]"
|
||||
new: "[Número pista]"
|
||||
new: "[Número pista]"
|
||||
|
||||
id: LANG_ID3_NO_TRACKNUM
|
||||
desc: in wps if no track number is avaible
|
||||
eng: "<no tracknum>"
|
||||
new: "<sem número pista>"
|
||||
new: "<sem número pista>"
|
||||
|
||||
id: LANG_ID3_LENGHT
|
||||
desc: in wps
|
||||
|
@ -552,7 +552,7 @@ new: "[Bitrate]"
|
|||
id: LANG_ID3_FRECUENCY
|
||||
desc: in wps
|
||||
eng: "[Frequency]"
|
||||
new: "[Frequência]"
|
||||
new: "[Frequência]"
|
||||
|
||||
id: LANG_ID3_PATH
|
||||
desc: in wps
|
||||
|
@ -612,7 +612,7 @@ new: ""
|
|||
id: LANG_END_PLAYLIST_RECORDER
|
||||
desc: when playlist has finished
|
||||
eng: "End of song list"
|
||||
new: "Fim da lista de canções"
|
||||
new: "Fim da lista de canções"
|
||||
|
||||
id: LANG_END_CONFIRM_RECORDER
|
||||
desc: when playlist has finished
|
||||
|
@ -622,17 +622,17 @@ new: ""
|
|||
id: LANG_SNAKE_SCORE
|
||||
desc: when you die in snake game
|
||||
eng: "Your score:"
|
||||
new: "A sua pontuação:"
|
||||
new: "A sua pontuação:"
|
||||
|
||||
id: LANG_SNAKE_HISCORE
|
||||
desc: high score in snake game
|
||||
eng: "High Score: %d"
|
||||
new: "Maior Pontuação: %d"
|
||||
new: "Maior Pontuação: %d"
|
||||
|
||||
id: LANG_SNAKE_HISCORE_NEW
|
||||
desc: new high score in snake game
|
||||
eng: "New High Score!"
|
||||
new: "Nova maior pontuação!"
|
||||
new: "Nova maior pontuação!"
|
||||
|
||||
id: LANG_SNAKE_PAUSE
|
||||
desc: displayed when game is paused
|
||||
|
@ -652,7 +652,7 @@ new: "[OFF] para sair"
|
|||
id: LANG_SNAKE_LEVEL
|
||||
desc: level of difficulty
|
||||
eng: "Level - %d"
|
||||
new: "Nível - %d"
|
||||
new: "Nível - %d"
|
||||
|
||||
id: LANG_SNAKE_RANGE
|
||||
desc: range of levels
|
||||
|
@ -662,12 +662,12 @@ new: "(1 - devagar, 9 - depressa)"
|
|||
id: LANG_SNAKE_START
|
||||
desc: how to start or pause the game
|
||||
eng: "[PLAY] to start/pause"
|
||||
new: "[PLAY] para começar/pausa"
|
||||
new: "[PLAY] para começar/pausa"
|
||||
|
||||
id: LANG_SOKOBAN_LEVEL
|
||||
desc: must be smaller than 6 characters
|
||||
eng: "Level"
|
||||
new: "Nível"
|
||||
new: "Nível"
|
||||
|
||||
id: LANG_SOKOBAN_MOVE
|
||||
desc: must be smaller than 6 characters
|
||||
|
@ -687,17 +687,17 @@ new: "[OFF] para parar"
|
|||
id: LANG_SOKOBAN_F1
|
||||
desc: what does F1 do
|
||||
eng: "[F1] - level"
|
||||
new: "[F1] - nível"
|
||||
new: "[F1] - nível"
|
||||
|
||||
id: LANG_SOKOBAN_F2
|
||||
desc: what does F2 do
|
||||
eng: "[F2] same level"
|
||||
new: "[F2] mesmo nível"
|
||||
new: "[F2] mesmo nível"
|
||||
|
||||
id: LANG_SOKOBAN_F3
|
||||
desc: what does F3 do
|
||||
eng: "[F3] + level"
|
||||
new: "[F3] + nível"
|
||||
new: "[F3] + nível"
|
||||
|
||||
# Next ids are for Worlmet Game.
|
||||
# Lenght restrictions for score board strings (LANG_SB_XXX):
|
||||
|
@ -788,7 +788,7 @@ new: "Perdeu!"
|
|||
id: LANG_TETRIS_LEVEL
|
||||
desc: tetris game
|
||||
eng: "Rows - Level"
|
||||
new: "Linhas - Nível"
|
||||
new: "Linhas - Nível"
|
||||
|
||||
id: LANG_POWEROFF_IDLE
|
||||
desc: in settings_menu
|
||||
|
@ -798,7 +798,7 @@ new: "Auto Desligar"
|
|||
id: LANG_LANGUAGE_LOADED
|
||||
desc: shown when a language has been loaded from the dir browser
|
||||
eng: "new language"
|
||||
new: "nova língua"
|
||||
new: "nova língua"
|
||||
|
||||
id: LANG_FILTER
|
||||
desc: setting name for dir filter
|
||||
|
@ -808,7 +808,7 @@ new: "Mostrar ficheiros"
|
|||
id: LANG_FILTER_MUSIC
|
||||
desc: show only music-related files
|
||||
eng: "Music"
|
||||
new: "Música"
|
||||
new: "Música"
|
||||
|
||||
id: LANG_FILTER_SUPPORTED
|
||||
desc: show all file types supported by Rockbox
|
||||
|
@ -828,7 +828,7 @@ new: "Sim"
|
|||
id: LANG_SET_BOOL_NO
|
||||
desc: bool false representation
|
||||
eng: "No"
|
||||
new: "Não"
|
||||
new: "Não"
|
||||
|
||||
id: LANG_PM_MENU
|
||||
desc: in the display menu
|
||||
|
@ -863,7 +863,7 @@ new: "Unidades por leitura"
|
|||
id: LANG_BACKLIGHT_ON_WHEN_CHARGING
|
||||
desc: in display_settings_menu
|
||||
eng: "Backlight On When Plugged"
|
||||
new: "Com Retro-iluminação quando ligado"
|
||||
new: "Com Retro-iluminação quando ligado"
|
||||
|
||||
id: LANG_REPEAT
|
||||
desc: in settings_menu
|
||||
|
@ -898,12 +898,12 @@ new: "Formato Horas"
|
|||
id: LANG_12_HOUR_CLOCK
|
||||
desc: option for 12 hour clock
|
||||
eng: "12 hour clock"
|
||||
new: "Relógio 12 horas"
|
||||
new: "Relógio 12 horas"
|
||||
|
||||
id: LANG_24_HOUR_CLOCK
|
||||
desc: option for 24 hour clock
|
||||
eng: "24 hour clock"
|
||||
new: "Relógio 24 horas"
|
||||
new: "Relógio 24 horas"
|
||||
|
||||
id: LANG_WEEKDAY_SUNDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
|
@ -913,32 +913,32 @@ new: "Dom"
|
|||
id: LANG_WEEKDAY_MONDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Mon"
|
||||
new: "2ªf"
|
||||
new: "2ªf"
|
||||
|
||||
id: LANG_WEEKDAY_TUESDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Tue"
|
||||
new: "3ªf"
|
||||
new: "3ªf"
|
||||
|
||||
id: LANG_WEEKDAY_WEDNESDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Wed"
|
||||
new: "4ªf"
|
||||
new: "4ªf"
|
||||
|
||||
id: LANG_WEEKDAY_THURSDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Thu"
|
||||
new: "5ªf"
|
||||
new: "5ªf"
|
||||
|
||||
id: LANG_WEEKDAY_FRIDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Fri"
|
||||
new: "6ªf"
|
||||
new: "6ªf"
|
||||
|
||||
id: LANG_WEEKDAY_SATURDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Sat"
|
||||
new: "Sáb"
|
||||
new: "Sáb"
|
||||
|
||||
id: LANG_MONTH_JANUARY
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
|
@ -1008,7 +1008,7 @@ new: "Cubo"
|
|||
id: LANG_OSCILLOGRAPH
|
||||
desc: the name of the oscillograph demo in the demo menu
|
||||
eng: "Oscillograph"
|
||||
new: "Oscilosgráfico"
|
||||
new: "Oscilosgráfico"
|
||||
|
||||
id: LANG_RESUME_SETTING_ASK_ONCE
|
||||
desc: in settings_menu
|
||||
|
|
|
@ -66,12 +66,12 @@ new: "Baterie: %d%%%s"
|
|||
id: LANG_BATTERY_CHARGE
|
||||
desc: tells that the battery is charging, instead of battery level
|
||||
eng: "Battery: Charging"
|
||||
new: "Bateria se încarca"
|
||||
new: "Bateria se încarca"
|
||||
|
||||
id: LANG_BOUNCE
|
||||
desc: in the demos menu
|
||||
eng: "Bounce"
|
||||
new: "Text în salturi"
|
||||
new: "Text în salturi"
|
||||
|
||||
id: LANG_SNOW
|
||||
desc: in the demos menu
|
||||
|
@ -101,7 +101,7 @@ new: "Sarpe"
|
|||
id: LANG_PLAYLIST_LOAD
|
||||
desc: displayed on screen while loading a playlist
|
||||
eng: "Loading..."
|
||||
new: "Încarcare..."
|
||||
new: "Încarcare..."
|
||||
|
||||
id: LANG_PLAYLIST_SHUFFLE
|
||||
desc: displayed on screen while shuffling a playlist
|
||||
|
@ -201,7 +201,7 @@ new: "Continuare"
|
|||
id: LANG_OFF
|
||||
desc: Used in a lot of places
|
||||
eng: "Off"
|
||||
new: "Închis"
|
||||
new: "Închis"
|
||||
|
||||
id: LANG_RESUME_SETTING_ASK
|
||||
desc: in settings_menu
|
||||
|
@ -346,7 +346,7 @@ new: "Grave"
|
|||
id: LANG_TREBLE
|
||||
desc: in sound_settings
|
||||
eng: "Treble"
|
||||
new: "Înalte"
|
||||
new: "Înalte"
|
||||
|
||||
id: LANG_LOUDNESS
|
||||
desc: in sound_settings
|
||||
|
@ -386,7 +386,7 @@ new: "Mono"
|
|||
id: LANG_CHANNEL_LEFT
|
||||
desc: in sound_settings
|
||||
eng: "Mono Left"
|
||||
new: "Mono Stânga"
|
||||
new: "Mono Stânga"
|
||||
|
||||
id: LANG_CHANNEL_RIGHT
|
||||
desc: in sound_settings
|
||||
|
@ -586,7 +586,7 @@ new: "Bara"
|
|||
id: LANG_END_PLAYLIST_PLAYER
|
||||
desc: when playlist has finished
|
||||
eng: "End Of List"
|
||||
new: "Sfârsit de lista"
|
||||
new: "Sfârsit de lista"
|
||||
|
||||
id: LANG_END_CONFIRM_PLAYER
|
||||
desc: when playlist has finished
|
||||
|
@ -596,7 +596,7 @@ new: ""
|
|||
id: LANG_END_PLAYLIST_RECORDER
|
||||
desc: when playlist has finished
|
||||
eng: "End Of Song List"
|
||||
new: "Sfârsitul listei"
|
||||
new: "Sfârsitul listei"
|
||||
|
||||
id: LANG_END_CONFIRM_RECORDER
|
||||
desc: when playlist has finished
|
||||
|
@ -631,7 +631,7 @@ new: "[PLAY] pentru continuare"
|
|||
id: LANG_SNAKE_QUIT
|
||||
desc: how to quit game
|
||||
eng: "[OFF] To Quit"
|
||||
new: "[OFF] pentru încetare"
|
||||
new: "[OFF] pentru încetare"
|
||||
|
||||
id: LANG_SNAKE_LEVEL
|
||||
desc: level of difficulty
|
||||
|
@ -646,7 +646,7 @@ new: "(1 - lent, 9 - rapid)"
|
|||
id: LANG_SNAKE_START
|
||||
desc: how to start or pause the game
|
||||
eng: "[PLAY] To Start/Pause"
|
||||
new: "[PLAY] pentru început/pauza"
|
||||
new: "[PLAY] pentru început/pauza"
|
||||
|
||||
id: LANG_SOKOBAN_LEVEL
|
||||
desc: must be smaller than 6 characters
|
||||
|
@ -661,7 +661,7 @@ new: "Deplasari"
|
|||
id: LANG_SOKOBAN_WIN
|
||||
desc: displayed when you win
|
||||
eng: "YOU WIN!!"
|
||||
new: "AI CÂSTIGAT!!"
|
||||
new: "AI CÂSTIGAT!!"
|
||||
|
||||
id: LANG_SOKOBAN_QUIT
|
||||
desc: how to quit game
|
||||
|
@ -696,7 +696,7 @@ new: "Creste"
|
|||
id: LANG_WORMLET_HUNGRY
|
||||
desc: wormlet game
|
||||
eng: "Hungry"
|
||||
new: "Flamând"
|
||||
new: "Flamând"
|
||||
|
||||
id: LANG_WORMLET_WORMED
|
||||
desc: wormlet game
|
||||
|
@ -1236,7 +1236,7 @@ new: "Alarma: %02d:%02d"
|
|||
id: LANG_ALARM_MOD_TIME_TO_GO
|
||||
desc: The time until the alarm will go off shown in the alarm menu for the RTC alarm mod.
|
||||
eng: "Waking Up In %d:%02d"
|
||||
new: "Alarma în %d:%02d"
|
||||
new: "Alarma în %d:%02d"
|
||||
|
||||
id: LANG_CREATE_PLAYLIST
|
||||
desc: Menu option for creating a playlist
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -268,7 +268,7 @@ new: "Gercekten?"
|
|||
id: LANG_RESET_CONFIRM_PLAYER
|
||||
desc: confirm to reset settings
|
||||
eng: "Play/Stop"
|
||||
new: "Çal/Dur"
|
||||
new: "Çal/Dur"
|
||||
|
||||
id: LANG_RESET_ASK_RECORDER
|
||||
desc: confirm to reset settings
|
||||
|
@ -279,7 +279,7 @@ new: "Emin misiniz?"
|
|||
id: LANG_RESET_CONFIRM_RECORDER
|
||||
desc: confirm to reset settings
|
||||
eng: "Play = Yes"
|
||||
new: "Çal = Evet"
|
||||
new: "Çal = Evet"
|
||||
|
||||
# depreciated
|
||||
id: LANG_RESET_CANCEL_RECORDER
|
||||
|
@ -320,7 +320,7 @@ new: "Ayarlari basa dondur"
|
|||
id: LANG_PLAYBACK
|
||||
desc: in settings_menu()
|
||||
eng: "Playback"
|
||||
new: "Çalma"
|
||||
new: "Çalma"
|
||||
|
||||
id: LANG_FILE
|
||||
desc: in settings_menu()
|
||||
|
@ -370,7 +370,7 @@ new: "Bass Boost"
|
|||
id: LANG_DECAY
|
||||
desc: in sound_settings
|
||||
eng: "AV decay time"
|
||||
new: "AV sönüm zamani"
|
||||
new: "AV sönüm zamani"
|
||||
|
||||
id: LANG_CHANNEL_MENU
|
||||
desc: in sound_settings
|
||||
|
@ -425,12 +425,12 @@ new: "Kaldigi yerden?"
|
|||
id: LANG_RESUME_CONFIRM_PLAYER
|
||||
desc: posible answers to resume question
|
||||
eng: "(PLAY/STOP)"
|
||||
new: "(ÇAL/DUR)"
|
||||
new: "(ÇAL/DUR)"
|
||||
|
||||
id: LANG_RESUME_CONFIRM_RECORDER
|
||||
desc: posible answer to resume question
|
||||
eng: "Play = Yes"
|
||||
new: "Çal = Evet"
|
||||
new: "Çal = Evet"
|
||||
|
||||
id: LANG_RESUME_CANCEL_RECORDER
|
||||
desc: posible answer to resume question
|
||||
|
@ -876,7 +876,7 @@ new: "Calani"
|
|||
id: LANG_RESET_CONFIRM
|
||||
desc: confirm to reset settings
|
||||
eng: "PLAY=Reset"
|
||||
new: "PLAY=Basa Dön"
|
||||
new: "PLAY=Basa Dön"
|
||||
|
||||
id: LANG_RESET_CANCEL
|
||||
desc: confirm to reset settings
|
||||
|
@ -916,7 +916,7 @@ new: "Sal"
|
|||
id: LANG_WEEKDAY_WEDNESDAY
|
||||
desc: abbreviation for weekday
|
||||
eng: "Wed"
|
||||
new: "Çar"
|
||||
new: "Çar"
|
||||
|
||||
id: LANG_WEEKDAY_THURSDAY
|
||||
desc: abbreviation for weekday
|
||||
|
|
|
@ -48,7 +48,7 @@ new: "Puffer: %d.%03dMB"
|
|||
id: LANG_BATTERY_CHARGE
|
||||
desc: tells that the battery is charging, instead of battery level
|
||||
eng: "Battery: Charging"
|
||||
new: "Akku: Üfladu"
|
||||
new: "Akku: Üfladu"
|
||||
|
||||
id: LANG_PLAYLIST_LOAD
|
||||
desc: displayed on screen while loading a playlist
|
||||
|
@ -73,22 +73,22 @@ new: "Puffer voll"
|
|||
id: LANG_SETTINGS_SAVE_PLAYER
|
||||
desc: displayed if save settings has failed
|
||||
eng: "Save Failed"
|
||||
new: "Spiicherfähler"
|
||||
new: "Spiicherfähler"
|
||||
|
||||
id: LANG_SETTINGS_BATTERY_PLAYER
|
||||
desc: if save settings has failed
|
||||
eng: "Partition?"
|
||||
new: "Akku läär?"
|
||||
new: "Akku läär?"
|
||||
|
||||
id: LANG_SETTINGS_SAVE_RECORDER
|
||||
desc: displayed if save settings has failed
|
||||
eng: "Save Failed"
|
||||
new: "Spiicherfähler"
|
||||
new: "Spiicherfähler"
|
||||
|
||||
id: LANG_SETTINGS_BATTERY_RECORDER
|
||||
desc: if save settings has failed
|
||||
eng: "No partition?"
|
||||
new: "Akku läär?"
|
||||
new: "Akku läär?"
|
||||
|
||||
id: LANG_TIME_SET
|
||||
desc: used in set_time()
|
||||
|
@ -98,7 +98,7 @@ new: "ON = spiichru"
|
|||
id: LANG_TIME_REVERT
|
||||
desc: used in set_time()
|
||||
eng: "OFF To Revert"
|
||||
new: "OFF = abbrächu"
|
||||
new: "OFF = abbrächu"
|
||||
|
||||
id: LANG_CONTRAST
|
||||
desc: in settings_menu
|
||||
|
@ -108,12 +108,12 @@ new: "Kontrascht"
|
|||
id: LANG_SHUFFLE
|
||||
desc: in settings_menu
|
||||
eng: "Shuffle"
|
||||
new: "Züefall"
|
||||
new: "Züefall"
|
||||
|
||||
id: LANG_PLAY_SELECTED
|
||||
desc: in settings_menu
|
||||
eng: "Play Selected First"
|
||||
new: "Gwählts zersch abschpilu"
|
||||
new: "Gwählts zersch abschpilu"
|
||||
|
||||
id: LANG_SORT_CASE
|
||||
desc: in settings_menu
|
||||
|
@ -128,12 +128,12 @@ new: "Fortsetzu"
|
|||
id: LANG_OFF
|
||||
desc: Used in a lot of places
|
||||
eng: "Off"
|
||||
new: "Üs"
|
||||
new: "Üs"
|
||||
|
||||
id: LANG_RESUME_SETTING_ASK
|
||||
desc: in settings_menu
|
||||
eng: "Ask"
|
||||
new: "Naafrägu"
|
||||
new: "Naafrägu"
|
||||
|
||||
id: LANG_ON
|
||||
desc: Used in a lot of places
|
||||
|
@ -143,7 +143,7 @@ new: "A"
|
|||
id: LANG_BACKLIGHT
|
||||
desc: in settings_menu
|
||||
eng: "Backlight"
|
||||
new: "Bilüüchtig"
|
||||
new: "Bilüüchtig"
|
||||
|
||||
id: LANG_SCROLL
|
||||
desc: in settings_menu
|
||||
|
@ -163,7 +163,7 @@ new: "Zit/Datum setzu"
|
|||
id: LANG_SPINDOWN
|
||||
desc: in settings_menu
|
||||
eng: "Disk Spindown"
|
||||
new: "HDD Motor-Üsschaltzit"
|
||||
new: "HDD Motor-Üsschaltzit"
|
||||
|
||||
id: LANG_FFRW_STEP
|
||||
desc: in settings_menu
|
||||
|
@ -238,7 +238,7 @@ new: "Syschtem"
|
|||
id: LANG_VOLUME
|
||||
desc: in sound_settings
|
||||
eng: "Volume"
|
||||
new: "Lütschterchi"
|
||||
new: "Lütschterchi"
|
||||
|
||||
id: LANG_BALANCE
|
||||
desc: in sound_settings
|
||||
|
@ -268,12 +268,12 @@ new: "Bass-Verschtercher"
|
|||
id: LANG_DECAY
|
||||
desc: in sound_settings
|
||||
eng: "AV Decay Time"
|
||||
new: "AV Trägheit"
|
||||
new: "AV Trägheit"
|
||||
|
||||
id: LANG_CHANNEL_MENU
|
||||
desc: in sound_settings
|
||||
eng: "Channels"
|
||||
new: "Kanäl"
|
||||
new: "Kanäl"
|
||||
|
||||
id: LANG_CHANNEL
|
||||
desc: in sound_settings
|
||||
|
@ -298,12 +298,12 @@ new: "Mono Lings"
|
|||
id: LANG_CHANNEL_RIGHT
|
||||
desc: in sound_settings
|
||||
eng: "Mono Right"
|
||||
new: "Mono Rächts"
|
||||
new: "Mono Rächts"
|
||||
|
||||
id: LANG_AUTOVOL
|
||||
desc: in sound_settings
|
||||
eng: "Auto Volume"
|
||||
new: "Autom. Lütschterchi"
|
||||
new: "Autom. Lütschterchi"
|
||||
|
||||
id: LANG_SHOWDIR_ERROR_BUFFER
|
||||
desc: in showdir(), displayed on screen when you reach buffer limit
|
||||
|
@ -333,7 +333,7 @@ new: "Schperri A"
|
|||
id: LANG_KEYLOCK_OFF_PLAYER
|
||||
desc: displayed when key lock is turned off
|
||||
eng: "Key Lock OFF"
|
||||
new: "Schperri Üs"
|
||||
new: "Schperri Üs"
|
||||
|
||||
id: LANG_KEYLOCK_ON_RECORDER
|
||||
desc: displayed when key lock is on
|
||||
|
@ -343,7 +343,7 @@ new: "Schperri isch A"
|
|||
id: LANG_KEYLOCK_OFF_RECORDER
|
||||
desc: displayed when key lock is turned off
|
||||
eng: "Key Lock Is OFF"
|
||||
new: "Schperri isch Üs"
|
||||
new: "Schperri isch Üs"
|
||||
|
||||
id: LANG_MUTE_ON_PLAYER
|
||||
desc: displayed when mute is on
|
||||
|
@ -353,7 +353,7 @@ new: "Schtumm A"
|
|||
id: LANG_MUTE_OFF_PLAYER
|
||||
desc: displayed when mute is off
|
||||
eng: "Mute OFF"
|
||||
new: "Schtumm Üs"
|
||||
new: "Schtumm Üs"
|
||||
|
||||
id: LANG_MUTE_ON_RECORDER
|
||||
desc: displayed when mute is on
|
||||
|
@ -363,12 +363,12 @@ new: "Schtumm isch A"
|
|||
id: LANG_MUTE_OFF_RECORDER
|
||||
desc: displayed when mute is off
|
||||
eng: "Mute Is OFF"
|
||||
new: "Schtumm isch Üs"
|
||||
new: "Schtumm isch Üs"
|
||||
|
||||
id: LANG_ID3_INFO
|
||||
desc: in the browse_id3() function
|
||||
eng: "-ID3 Info- "
|
||||
new: "|¯ ID3 Info"
|
||||
new: "|¯ ID3 Info"
|
||||
|
||||
id: LANG_ID3_SCREEN
|
||||
desc: in the browse_id3() function
|
||||
|
@ -388,12 +388,12 @@ new: "<kei Titel>"
|
|||
id: LANG_ID3_ARTIST
|
||||
desc: in wps
|
||||
eng: "[Artist]"
|
||||
new: "[Künschtler]"
|
||||
new: "[Künschtler]"
|
||||
|
||||
id: LANG_ID3_NO_ARTIST
|
||||
desc: in wps when no artist is avaible
|
||||
eng: "<No Artist>"
|
||||
new: "<kei Künschtler>"
|
||||
new: "<kei Künschtler>"
|
||||
|
||||
id: LANG_ID3_ALBUM
|
||||
desc: in wps
|
||||
|
@ -433,7 +433,7 @@ new: "[Bitrata]"
|
|||
id: LANG_ID3_FRECUENCY
|
||||
desc: in wps
|
||||
eng: "[Frequency]"
|
||||
new: "[Frequänz]"
|
||||
new: "[Frequänz]"
|
||||
|
||||
id: LANG_ID3_PATH
|
||||
desc: in wps
|
||||
|
@ -443,7 +443,7 @@ new: "[Pfad]"
|
|||
id: LANG_PITCH_UP
|
||||
desc: in wps
|
||||
eng: "Pitch Up"
|
||||
new: "schnäller"
|
||||
new: "schnäller"
|
||||
|
||||
id: LANG_PITCH_DOWN
|
||||
desc: in wps
|
||||
|
@ -488,12 +488,12 @@ new: "Lischtuendi"
|
|||
id: LANG_POWEROFF_IDLE
|
||||
desc: in settings_menu
|
||||
eng: "Idle Poweroff"
|
||||
new: "automatischus Üsschaltu"
|
||||
new: "automatischus Üsschaltu"
|
||||
|
||||
id: LANG_LANGUAGE_LOADED
|
||||
desc: shown when a language has been loaded from the dir browser
|
||||
eng: "New Language"
|
||||
new: "Nöiji Spraach"
|
||||
new: "Nöiji Spraach"
|
||||
|
||||
id: LANG_FILTER
|
||||
desc: setting name for dir filter
|
||||
|
@ -503,12 +503,12 @@ new: "Datiifilter"
|
|||
id: LANG_FILTER_MUSIC
|
||||
desc: show only music-related files
|
||||
eng: "Music"
|
||||
new: "Müsig"
|
||||
new: "Müsig"
|
||||
|
||||
id: LANG_FILTER_SUPPORTED
|
||||
desc: show all file types supported by Rockbox
|
||||
eng: "Supported"
|
||||
new: "Unnerschtützti"
|
||||
new: "Unnerschtützti"
|
||||
|
||||
id: LANG_FILTER_ALL
|
||||
desc: show all files
|
||||
|
@ -528,7 +528,7 @@ new: "Nei"
|
|||
id: LANG_PM_MENU
|
||||
desc: in the display menu
|
||||
eng: "Peak Meter"
|
||||
new: "Üsstiirigsazeig"
|
||||
new: "Üsstiirigsazeig"
|
||||
|
||||
id: LANG_PM_RELEASE
|
||||
desc: in the peak meter menu
|
||||
|
@ -538,7 +538,7 @@ new: "Gschw. bim Abfallu"
|
|||
id: LANG_PM_PEAK_HOLD
|
||||
desc: in the peak meter menu
|
||||
eng: "Peak Hold Time"
|
||||
new: "Üsstiirig Haltezit"
|
||||
new: "Üsstiirig Haltezit"
|
||||
|
||||
id: LANG_PM_CLIP_HOLD
|
||||
desc: in the peak meter menu
|
||||
|
@ -553,12 +553,12 @@ new: "Ewig"
|
|||
id: LANG_PM_UNITS_PER_READ
|
||||
desc: in the peak meter menu
|
||||
eng: "Units Per Read"
|
||||
new: "Einheite pro Mässig"
|
||||
new: "Einheite pro Mässig"
|
||||
|
||||
id: LANG_BACKLIGHT_ON_WHEN_CHARGING
|
||||
desc: in display_settings_menu
|
||||
eng: "Backlight On When Plugged"
|
||||
new: "Bilüüchtig a bim Netzbitrieb"
|
||||
new: "Bilüüchtig a bim Netzbitrieb"
|
||||
|
||||
id: LANG_REPEAT
|
||||
desc: in settings_menu
|
||||
|
@ -583,7 +583,7 @@ new: "PLAY=Zruggsetzu"
|
|||
id: LANG_RESET_CANCEL
|
||||
desc: confirm to reset settings
|
||||
eng: "OFF=Cancel"
|
||||
new: "OFF=Abbrächu"
|
||||
new: "OFF=Abbrächu"
|
||||
|
||||
id: LANG_TIMEFORMAT
|
||||
desc: select the time format of time in status bar
|
||||
|
@ -593,12 +593,12 @@ new: "Zitformat"
|
|||
id: LANG_12_HOUR_CLOCK
|
||||
desc: option for 12 hour clock
|
||||
eng: "12 Hour Clock"
|
||||
new: "12 Std. Ühr"
|
||||
new: "12 Std. Ühr"
|
||||
|
||||
id: LANG_24_HOUR_CLOCK
|
||||
desc: option for 24 hour clock
|
||||
eng: "24 Hour Clock"
|
||||
new: "24 Std. Ühr"
|
||||
new: "24 Std. Ühr"
|
||||
|
||||
id: LANG_WEEKDAY_SUNDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
|
@ -608,7 +608,7 @@ new: "Sun"
|
|||
id: LANG_WEEKDAY_MONDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
eng: "Mon"
|
||||
new: "Män"
|
||||
new: "Män"
|
||||
|
||||
id: LANG_WEEKDAY_TUESDAY
|
||||
desc: Maximum 3-letter abbreviation for weekday
|
||||
|
@ -648,7 +648,7 @@ new: "Feb"
|
|||
id: LANG_MONTH_MARCH
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
eng: "Mar"
|
||||
new: "Mär"
|
||||
new: "Mär"
|
||||
|
||||
id: LANG_MONTH_APRIL
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
|
@ -673,7 +673,7 @@ new: "Jul"
|
|||
id: LANG_MONTH_AUGUST
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
eng: "Aug"
|
||||
new: "Öüg"
|
||||
new: "Öüg"
|
||||
|
||||
id: LANG_MONTH_SEPTEMBER
|
||||
desc: Maximum 3-letter abbreviation for monthname
|
||||
|
@ -698,7 +698,7 @@ new: "Dez"
|
|||
id: LANG_RESUME_SETTING_ASK_ONCE
|
||||
desc: in settings_menu
|
||||
eng: "Ask Once"
|
||||
new: "eismal frägu"
|
||||
new: "eismal frägu"
|
||||
|
||||
id: LANG_BATTERY_DISPLAY
|
||||
desc: Battery type title
|
||||
|
@ -708,7 +708,7 @@ new: "Akku Azeig"
|
|||
id: LANG_VOLUME_DISPLAY
|
||||
desc: Volume type title
|
||||
eng: "Volume Display"
|
||||
new: "Lütschterchiazeig"
|
||||
new: "Lütschterchiazeig"
|
||||
|
||||
id: LANG_DISPLAY_GRAPHIC
|
||||
desc: Label for type of icon display
|
||||
|
@ -753,17 +753,17 @@ new: "linear (%)"
|
|||
id: LANG_PM_MIN
|
||||
desc: in the peak meter menu
|
||||
eng: "Minimum Of Range"
|
||||
new: "chlinschte Wärt"
|
||||
new: "chlinschte Wärt"
|
||||
|
||||
id: LANG_PM_MAX
|
||||
desc: in the peak meter menu
|
||||
eng: "Maximum Of Range"
|
||||
new: "greeschte Wärt"
|
||||
new: "greeschte Wärt"
|
||||
|
||||
id: LANG_RECORDING
|
||||
desc: in the main menu
|
||||
eng: "Recording"
|
||||
new: "Üfnahm"
|
||||
new: "Üfnahm"
|
||||
|
||||
id: LANG_RECORDING_GAIN
|
||||
desc: in the recording screen
|
||||
|
@ -778,17 +778,17 @@ new: "Lings"
|
|||
id: LANG_RECORDING_RIGHT
|
||||
desc: in the recording screen
|
||||
eng: "Right"
|
||||
new: "Rächts"
|
||||
new: "Rächts"
|
||||
|
||||
id: LANG_RECORDING_QUALITY
|
||||
desc: in the recording settings
|
||||
eng: "Quality"
|
||||
new: "Qualität"
|
||||
new: "Qualität"
|
||||
|
||||
id: LANG_RECORDING_FREQUENCY
|
||||
desc: in the recording settings
|
||||
eng: "Frequency"
|
||||
new: "Frequänz"
|
||||
new: "Frequänz"
|
||||
|
||||
id: LANG_RECORDING_SOURCE
|
||||
desc: in the recording settings
|
||||
|
@ -818,7 +818,7 @@ new: "Digital"
|
|||
id: LANG_RECORDING_SETTINGS
|
||||
desc: in the main menu
|
||||
eng: "Recording Settings"
|
||||
new: "Üfnahmeischtellige"
|
||||
new: "Üfnahmeischtellige"
|
||||
|
||||
id: LANG_DISK_STAT
|
||||
desc: disk size info
|
||||
|
@ -833,7 +833,7 @@ new: "Frii: %d.%dGB"
|
|||
id: LANG_POWEROFF
|
||||
desc: disk poweroff flag
|
||||
eng: "Disk Poweroff"
|
||||
new: "HDD Üsschaltbifähl brüüchu"
|
||||
new: "HDD Üsschaltbifähl brüüchu"
|
||||
|
||||
id: LANG_FILTER_PLAYLIST
|
||||
desc: show only playlist
|
||||
|
@ -853,7 +853,7 @@ new: "Ischlaaftimer"
|
|||
id: LANG_MP3BUFFER_MARGIN
|
||||
desc: MP3 buffer margin time
|
||||
eng: "Anti-Skip Buffer"
|
||||
new: "Puffer zum vorüs fillu"
|
||||
new: "Puffer zum vorüs fillu"
|
||||
|
||||
id: LANG_BIDIR_SCROLL
|
||||
desc: Bidirectional scroll limit
|
||||
|
@ -863,7 +863,7 @@ new: "Beidsitigs Scroll-Limit"
|
|||
id: LANG_SCROLL_DELAY
|
||||
desc: Delay before scrolling
|
||||
eng: "Scroll Start Delay"
|
||||
new: "Scroll-Startverzögrig"
|
||||
new: "Scroll-Startverzögrig"
|
||||
|
||||
id: LANG_SCROLL_STEP
|
||||
desc: Pixels to advance per scroll
|
||||
|
@ -898,7 +898,7 @@ new: "Akku: Erhaltladu"
|
|||
id: LANG_BATTERY_CAPACITY
|
||||
desc: in settings_menu
|
||||
eng: "Battery Capacity"
|
||||
new: "Akku: Kapazität"
|
||||
new: "Akku: Kapazität"
|
||||
|
||||
id: LANG_MENU_SETTING_CANCEL
|
||||
desc: Visual confirmation of canceling a changed setting
|
||||
|
@ -948,22 +948,22 @@ new: "Weckzit: %02d:%02d"
|
|||
id: LANG_ALARM_MOD_TIME_TO_GO
|
||||
desc: The time until the alarm will go off shown in the alarm menu for the RTC alarm mod.
|
||||
eng: "Waking Up In %d:%02d"
|
||||
new: "Üfwachu in %d:%02d"
|
||||
new: "Üfwachu in %d:%02d"
|
||||
|
||||
id: LANG_ALARM_MOD_SHUTDOWN
|
||||
desc: The text that tells the user that the alarm time is ok and the device shuts off (for the RTC alarm mod).
|
||||
eng: "Shutting Down..."
|
||||
new: "Schaltu üs..."
|
||||
new: "Schaltu üs..."
|
||||
|
||||
id: LANG_ALARM_MOD_ERROR
|
||||
desc: The text that tells that the time is incorrect (for the RTC alarm mod).
|
||||
eng: "Alarm Time Is Too Soon!"
|
||||
new: "Weckzit isch zfrüeh"
|
||||
new: "Weckzit isch zfrüeh"
|
||||
|
||||
id: LANG_ALARM_MOD_KEYS
|
||||
desc: Shown key functions in alarm menu (for the RTC alarm mod).
|
||||
eng: "PLAY=Set OFF=Cancel"
|
||||
new: "PLAY=Ok OFF=Abbrächu"
|
||||
new: "PLAY=Ok OFF=Abbrächu"
|
||||
|
||||
id: LANG_CREATE_PLAYLIST
|
||||
desc: Menu option for creating a playlist
|
||||
|
@ -973,7 +973,7 @@ new: "Abschpillischta Erschtellu"
|
|||
id: LANG_CREATING
|
||||
desc: Screen feedback during playlist creation
|
||||
eng: "Creating"
|
||||
new: "Am Zämuschtellu"
|
||||
new: "Am Zämuschtellu"
|
||||
|
||||
id: LANG_PLAYER_KEYBOARD_BACKSPACE
|
||||
desc: Backspace alternative in player keyboard interaction
|
||||
|
@ -988,7 +988,7 @@ new: "Leschu"
|
|||
id: LANG_PLAYER_KEYBOARD_ACCEPT
|
||||
desc: Accept alternative in player keyboard interaction
|
||||
eng: "Accept"
|
||||
new: "Anäh"
|
||||
new: "Anäh"
|
||||
|
||||
id: LANG_PLAYER_KEYBOARD_ABORT
|
||||
desc: Abort alternative in player keyboard interaction
|
||||
|
@ -1103,12 +1103,12 @@ new: "VBR-Datii aktualisieru"
|
|||
id: LANG_INVERT_CURSOR
|
||||
desc: in settings_menu
|
||||
eng: "Line Selector"
|
||||
new: "Ziiluüswahl"
|
||||
new: "Ziiluüswahl"
|
||||
|
||||
id: LANG_RECORDING_EDITABLE
|
||||
desc: Editable recordings setting
|
||||
eng: "Independent frames"
|
||||
new: "unabhängigi Frames"
|
||||
new: "unabhängigi Frames"
|
||||
|
||||
id: LANG_STATUS_BAR
|
||||
desc: display menu, F3 substitute
|
||||
|
@ -1123,7 +1123,7 @@ new: "Scrolliischta"
|
|||
id: LANG_CAPTION_BACKLIGHT
|
||||
desc: in settings_menu
|
||||
eng: "Caption backlight"
|
||||
new: "Bilüüchtig a bim Titelwägsel"
|
||||
new: "Bilüüchtig a bim Titelwägsel"
|
||||
|
||||
id: LANG_INVERT_CURSOR_POINTER
|
||||
desc: in settings_menu
|
||||
|
@ -1173,17 +1173,17 @@ new: "immer"
|
|||
id: LANG_JUMP_SCROLL_DELAY
|
||||
desc: (player) Delay before making a jump scroll
|
||||
eng: "Jump Scroll Delay"
|
||||
new: "Gumpverzögrig"
|
||||
new: "Gumpverzögrig"
|
||||
|
||||
id: LANG_RECORD_TIMESPLIT
|
||||
desc: Prompt for record timer interval setting, in the record settings menu
|
||||
eng: "Time Split"
|
||||
new: "Üfnahm teilu"
|
||||
new: "Üfnahm teilu"
|
||||
|
||||
id: LANG_RECORD_TIMESPLIT_REC
|
||||
decs: Display of record timer interval setting, on the record screen
|
||||
eng: "Split time:"
|
||||
new: "Üfnahm teilu:"
|
||||
new: "Üfnahm teilu:"
|
||||
|
||||
id: LANG_SHOW_ICONS
|
||||
desc: in settings_menu
|
||||
|
@ -1212,12 +1212,12 @@ new: "Andri = Nei"
|
|||
id: LANG_PLUGIN_CANT_OPEN
|
||||
desc: Plugin open error message
|
||||
eng: "Can't open %s"
|
||||
new: "Cha %s nit üftüe"
|
||||
new: "Cha %s nit üftüe"
|
||||
|
||||
id: LANG_READ_FAILED
|
||||
desc: There was an error reading a file
|
||||
eng: "Failed reading %s"
|
||||
new: "Fähler bim läsu fa %s"
|
||||
new: "Fähler bim läsu fa %s"
|
||||
|
||||
id: LANG_PLUGIN_WRONG_MODEL
|
||||
desc: The plugin is not compatible with the archos model trying to run it
|
||||
|
@ -1232,7 +1232,7 @@ new: "nit kompatibli Version"
|
|||
id: LANG_PLUGIN_ERROR
|
||||
desc: The plugin return an error code
|
||||
eng: "Plugin returned error"
|
||||
new: "Plugin mäldut Fähler"
|
||||
new: "Plugin mäldut Fähler"
|
||||
|
||||
##
|
||||
## boot change detection
|
||||
|
@ -1241,12 +1241,12 @@ new: "Plugin m
|
|||
id: LANG_BOOT_CHANGED
|
||||
desc: File browser discovered the boot file was changed
|
||||
eng: "Boot changed"
|
||||
new: "Boot gändrut"
|
||||
new: "Boot gändrut"
|
||||
|
||||
id: LANG_REBOOT_NOW
|
||||
desc: Do you want to reboot?
|
||||
eng: "Reboot now?"
|
||||
new: "jetz nöü bootu?"
|
||||
new: "jetz nöü bootu?"
|
||||
|
||||
id: LANG_QUEUE_LAST
|
||||
desc: in onplay menu. queue a track/playlist at end of playlist.
|
||||
|
@ -1301,37 +1301,37 @@ new: "%d Lieder abgspiichrut (%s)"
|
|||
id: LANG_OFF_ABORT
|
||||
desc: Used on recorder models
|
||||
eng: "OFF to abort"
|
||||
new: "Off fer abzbrächu"
|
||||
new: "Off fer abzbrächu"
|
||||
|
||||
id: LANG_STOP_ABORT
|
||||
desc: Used on player models
|
||||
eng: "STOP to abort"
|
||||
new: "STOP fer abzbrächu"
|
||||
new: "STOP fer abzbrächu"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_UPDATE_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error updating playlist control file"
|
||||
new: "Fähler: Aktualisierig Abschpillischta-Kontrolldatii"
|
||||
new: "Fähler: Aktualisierig Abschpillischta-Kontrolldatii"
|
||||
|
||||
id: LANG_PLAYLIST_ACCESS_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error accessing playlist file"
|
||||
new: "Fähler: Züegriff Abschpillischta"
|
||||
new: "Fähler: Züegriff Abschpillischta"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_ACCESS_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error accessing playlist control file"
|
||||
new: "Fähler: Züegriff Abschpillischta-Kontrolldatii"
|
||||
new: "Fähler: Züegriff Abschpillischta-Kontrolldatii"
|
||||
|
||||
id: LANG_PLAYLIST_DIRECTORY_ACCESS_ERROR
|
||||
desc: Playlist error
|
||||
eng: "Error accessing directory"
|
||||
new: "Fähler: Verzeichniszüegriff"
|
||||
new: "Fähler: Verzeichniszüegriff"
|
||||
|
||||
id: LANG_PLAYLIST_CONTROL_INVALID
|
||||
desc: Playlist resume error
|
||||
eng: "Playlist control file is invalid"
|
||||
new: "Abschpillischta-Kontrolldatii isch ungültig"
|
||||
new: "Abschpillischta-Kontrolldatii isch ungültig"
|
||||
|
||||
id: LANG_RECURSE_DIRECTORY
|
||||
desc: In playlist menu
|
||||
|
@ -1391,7 +1391,7 @@ new: "kei Datije"
|
|||
id: LANG_BUTTONBAR_MENU
|
||||
desc: in button bar
|
||||
eng: "Menu"
|
||||
new: "Mönü"
|
||||
new: "Mönü"
|
||||
|
||||
id: LANG_FM_BUTTONBAR_PRESETS
|
||||
desc: in button bar
|
||||
|
@ -1416,12 +1416,12 @@ new: "Sender: %d.%dMHz"
|
|||
id: LANG_FM_PRESET_SAVE_FAILED
|
||||
desc: in radio screen
|
||||
eng: "Preset save failed"
|
||||
new: "Fähler bim spiichru"
|
||||
new: "Fähler bim spiichru"
|
||||
|
||||
id: LANG_FM_NO_PRESETS
|
||||
desc: in radio screen
|
||||
eng: "The preset list is empty"
|
||||
new: "Senderlischta läär"
|
||||
new: "Senderlischta läär"
|
||||
|
||||
id: LANG_FM_NO_FREE_PRESETS
|
||||
desc: in radio screen
|
||||
|
@ -1436,7 +1436,7 @@ new: "FM Radio"
|
|||
id: LANG_FM_BUTTONBAR_RECORD
|
||||
desc: in main menu
|
||||
eng: "Record"
|
||||
new: "Üfnäh"
|
||||
new: "Üfnäh"
|
||||
|
||||
id: LANG_VIEW_DYNAMIC_PLAYLIST
|
||||
desc: in playlist menu.
|
||||
|
@ -1451,33 +1451,33 @@ new: "verschiebu"
|
|||
id: LANG_MOVE_FAILED
|
||||
desc: Error message displayed in playlist viewer
|
||||
eng: "Move failed"
|
||||
new: "Fähler bim verschiebu"
|
||||
new: "Fähler bim verschiebu"
|
||||
|
||||
id: LANG_FLIP_DISPLAY
|
||||
desc: in settings_menu, option to turn display+buttos by 180 degreed
|
||||
eng: "Upside Down"
|
||||
new: "umgidräht"
|
||||
new: "umgidräht"
|
||||
|
||||
id: LANG_RECORD_PRERECORD
|
||||
desc: in recording and radio screen
|
||||
eng: "Prerecording"
|
||||
new: "Vorüsüfnahm"
|
||||
new: "Vorüsüfnahm"
|
||||
|
||||
id: LANG_RECORD_PRERECORD_TIME
|
||||
desc: in recording settings_menu
|
||||
eng: "Prerecord time"
|
||||
new: "Vorüsüfnahmezit"
|
||||
new: "Vorüsüfnahmezit"
|
||||
|
||||
#Auto bookmark prompts
|
||||
id: LANG_BOOKMARK_AUTOLOAD_QUERY
|
||||
desc: prompt for user to decide to create a bookmark
|
||||
eng: "Load Last Bookmark?"
|
||||
new: "zletscht Läsezeichu ladu?"
|
||||
new: "zletscht Läsezeichu ladu?"
|
||||
|
||||
id: LANG_AUTO_BOOKMARK_QUERY
|
||||
desc: prompt for user to decide to create an bookmark
|
||||
eng: "Create a Bookmark?"
|
||||
new: "Läsezeichu erschtellu?"
|
||||
new: "Läsezeichu erschtellu?"
|
||||
|
||||
# Bookmark Select Menu Text
|
||||
id: LANG_BOOKMARK_SELECT_LIST_BOOKMARKS
|
||||
|
@ -1493,7 +1493,7 @@ new: "OFF = Biendu"
|
|||
id: LANG_BOOKMARK_SELECT_BOOKMARK_TEXT
|
||||
desc: Used on the bookmark select window to label bookmark number
|
||||
eng: "Bookmark"
|
||||
new: "Läsezeichu"
|
||||
new: "Läsezeichu"
|
||||
|
||||
id: LANG_BOOKMARK_SELECT_INDEX_TEXT
|
||||
desc: Used on the bookmark select window to label index number
|
||||
|
@ -1508,7 +1508,7 @@ new: "Zit"
|
|||
id: LANG_BOOKMARK_SELECT_PLAY
|
||||
desc: Used on the bookmark select window to indicated the play option
|
||||
eng: "PLAY = Select"
|
||||
new: "PLAY = üswählu"
|
||||
new: "PLAY = üswählu"
|
||||
|
||||
id: LANG_BOOKMARK_SELECT_DELETE
|
||||
desc: Used on the bookmark select window to indicated the bookmark delete option
|
||||
|
@ -1519,49 +1519,49 @@ new: "ON+PLAY = leschu"
|
|||
id: LANG_BOOKMARK_CREATE_SUCCESS
|
||||
desc: Indicates bookmark was successfully created
|
||||
eng: "Bookmark Created"
|
||||
new: "Läsezeichu erschtellt"
|
||||
new: "Läsezeichu erschtellt"
|
||||
|
||||
id: LANG_BOOKMARK_CREATE_FAILURE
|
||||
desc: Indicates bookmark was not created
|
||||
eng: "Bookmark Failed!"
|
||||
new: "Fähler bim Erschtellu fam Läsezeichu"
|
||||
new: "Fähler bim Erschtellu fam Läsezeichu"
|
||||
|
||||
# Bookmark creation/failure text
|
||||
id: LANG_BOOKMARK_LOAD_EMPTY
|
||||
desc: Indicates bookmark was empty
|
||||
eng: "Bookmark Empty"
|
||||
new: "kei Läsezeichu"
|
||||
new: "kei Läsezeichu"
|
||||
|
||||
# Bookmark Settings Text
|
||||
id: LANG_BOOKMARK_SETTINGS
|
||||
desc: in general settings
|
||||
eng: "Bookmarking"
|
||||
new: "Läsezeichu"
|
||||
new: "Läsezeichu"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_AUTOLOAD
|
||||
desc: prompt for user to decide to create a bookmark
|
||||
eng: "Load Last Bookmark"
|
||||
new: "letschts Läsezeichu ladu"
|
||||
new: "letschts Läsezeichu ladu"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_AUTOCREATE
|
||||
desc: prompt for user to decide to create an bookmark
|
||||
eng: "Bookmark on Stop"
|
||||
new: "Bim Stoppu Läsezeichu erschtellu"
|
||||
new: "Bim Stoppu Läsezeichu erschtellu"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_MAINTAIN_RECENT_BOOKMARKS
|
||||
desc: Configuration option to maintain a list of recent bookmarks
|
||||
eng: "Maintain a List of Recent Bookmarks?"
|
||||
new: "Lischta mit zletscht gibrüchte Läsezeichu verwaltu?"
|
||||
new: "Lischta mit zletscht gibrüchte Läsezeichu verwaltu?"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_RECENT_ONLY_YES
|
||||
desc: Save in recent bookmarks only
|
||||
eng: "Yes - Recent only"
|
||||
new: "Ja - nur znöüschta"
|
||||
new: "Ja - nur znöüschta"
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_RECENT_ONLY_ASK
|
||||
desc: Save in recent bookmarks only
|
||||
eng: "Ask - Recent only"
|
||||
new: "Frägu - Nur znöüschta"
|
||||
new: "Frägu - Nur znöüschta"
|
||||
|
||||
|
||||
id: LANG_BOOKMARK_SETTINGS_UNIQUE_ONLY
|
||||
|
@ -1573,22 +1573,22 @@ new: "nur verschidni"
|
|||
id: LANG_BOOKMARK_MENU
|
||||
desc: Text on main menu to get to bookmark commands
|
||||
eng: "Bookmarks"
|
||||
new: "Läsezeichu"
|
||||
new: "Läsezeichu"
|
||||
|
||||
id: LANG_BOOKMARK_MENU_CREATE
|
||||
desc: Used off of the bookmark menu to create a bookmark
|
||||
eng: "Create Bookmark"
|
||||
new: "Läsezeichu erschtellu"
|
||||
new: "Läsezeichu erschtellu"
|
||||
|
||||
id: LANG_BOOKMARK_MENU_LIST
|
||||
desc: Used off of the bookmark menu to list available bookmarks for the currently playing directory or M3U
|
||||
eng: "List Bookmarks"
|
||||
new: "Läsezeichu üflischtu"
|
||||
new: "Läsezeichu üflischtu"
|
||||
|
||||
id: LANG_BOOKMARK_MENU_RECENT_BOOKMARKS
|
||||
desc: Text for the menu text to access the most recent bookmarks list
|
||||
eng: "Recent Bookmarks"
|
||||
new: "nöüschti Läsezeichu"
|
||||
new: "nöüschti Läsezeichu"
|
||||
|
||||
id: LANG_INFO_MENU
|
||||
desc: in the info sub menu
|
||||
|
@ -1598,7 +1598,7 @@ new: "Rockbox Info"
|
|||
id: LANG_RECORDING_MENU
|
||||
desc: in the recording sub menu
|
||||
eng: "Start Recording"
|
||||
new: "Üfnahm startu"
|
||||
new: "Üfnahm startu"
|
||||
|
||||
id: LANG_WIND_MENU
|
||||
desc: in the playback sub menu
|
||||
|
@ -1634,7 +1634,7 @@ new: "Zit & Datum"
|
|||
id: LANG_LIMITS_MENU
|
||||
desc: in the system sub menu
|
||||
eng: "Limits"
|
||||
new: "Grenzwärta"
|
||||
new: "Grenzwärta"
|
||||
|
||||
id: LANG_MANAGE_MENU
|
||||
desc: in the system sub menu
|
||||
|
@ -1699,7 +1699,7 @@ new: "Taschtuliischta"
|
|||
id: LANG_DIRBROWSE_F1
|
||||
desc: in dir browser, F1 button bar text
|
||||
eng: "Menu"
|
||||
new: "Mönü"
|
||||
new: "Mönü"
|
||||
|
||||
id: LANG_DIRBROWSE_F2
|
||||
desc: in dir browser, F2 button bar text
|
||||
|
@ -2025,13 +2025,13 @@ id: LANG_VOICE
|
|||
desc: root of voice menu
|
||||
eng: "Voice"
|
||||
voice: ""
|
||||
new: "Spraachüsgab"
|
||||
new: "Spraachüsgab"
|
||||
|
||||
id: LANG_VOICE_MENU
|
||||
desc: item of voice menu, enable/disable the voice UI
|
||||
eng: "Voice Menus"
|
||||
voice: ""
|
||||
new: "Mönüs"
|
||||
new: "Mönüs"
|
||||
|
||||
id: LANG_VOICE_DIR
|
||||
desc: item of voice menu, set the "talkbox" mode for directories
|
||||
|
@ -2079,7 +2079,7 @@ id: LANG_VOICE_SPELL
|
|||
desc: "talkbox" mode for files+directories
|
||||
eng: "Spell"
|
||||
voice: ""
|
||||
new: "büechschtabieru"
|
||||
new: "büechschtabieru"
|
||||
|
||||
id: VOICE_CHAR_A
|
||||
desc: spoken only, for spelling
|
||||
|
@ -2326,13 +2326,13 @@ id: LANG_FILETYPES_STRING_BUFFER_EMPTY
|
|||
desc: Filetype string buffer empty
|
||||
eng: "Filetype string buffer empty"
|
||||
voice: ""
|
||||
new: "Datiitypu-Zeichubuffer läär"
|
||||
new: "Datiitypu-Zeichubuffer läär"
|
||||
|
||||
id: LANG_ONPLAY_OPEN_WITH
|
||||
desc: Onplay open with
|
||||
eng: "Open with"
|
||||
voice: ""
|
||||
new: "Öffnu mit"
|
||||
new: "Öffnu mit"
|
||||
|
||||
id: LANG_SORT_DIR
|
||||
desc: browser sorting setting
|
||||
|
@ -2362,7 +2362,7 @@ id: LANG_SORT_DATE_REVERSE
|
|||
desc: browser sorting setting
|
||||
eng: "by newest date"
|
||||
voice: ""
|
||||
new: "nach nöüschtum Datum"
|
||||
new: "nach nöüschtum Datum"
|
||||
|
||||
id: LANG_SORT_TYPE
|
||||
desc: browser sorting setting
|
||||
|
@ -2398,7 +2398,7 @@ id: LANG_FM_BUTTONBAR_ADD
|
|||
desc: in radio screen
|
||||
eng: "Add"
|
||||
voice: ""
|
||||
new: "Derzüe"
|
||||
new: "Derzüe"
|
||||
|
||||
id: LANG_FM_BUTTONBAR_ACTION
|
||||
desc: in radio screen
|
||||
|
@ -2422,7 +2422,7 @@ id: LANG_MDB_CENTER
|
|||
desc: in sound settings
|
||||
eng: "MDB Center frequency"
|
||||
voice: ""
|
||||
new: "MDB Mittufrequänz"
|
||||
new: "MDB Mittufrequänz"
|
||||
|
||||
id: LANG_MDB_SHAPE
|
||||
desc: in sound settings
|
||||
|
@ -2446,19 +2446,19 @@ id: LANG_SHUTDOWN
|
|||
desc: in main menu
|
||||
eng: "Shut down"
|
||||
voice: ""
|
||||
new: "Üsschaltu"
|
||||
new: "Üsschaltu"
|
||||
|
||||
id: LANG_SHUTTINGDOWN
|
||||
desc: in main menu
|
||||
eng: "Shutting down..."
|
||||
voice: ""
|
||||
new: "am Üsschaltu..."
|
||||
new: "am Üsschaltu..."
|
||||
|
||||
id: LANG_CONFIRM_SHUTDOWN
|
||||
desc: in shutdown screen
|
||||
eng: "Press OFF to shut down"
|
||||
voice: ""
|
||||
new: "OFF fer Üszschaltu"
|
||||
new: "OFF fer Üszschaltu"
|
||||
|
||||
id: LANG_ID3_ORDER
|
||||
desc: in playback settings screen
|
||||
|
@ -2482,19 +2482,19 @@ id: LANG_NO_ROCKBOX_DIR
|
|||
desc: in browse root
|
||||
eng: "No .rockbox directory"
|
||||
voice: ""
|
||||
new: "Verzeichnis .rockbox fählt"
|
||||
new: "Verzeichnis .rockbox fählt"
|
||||
|
||||
id: LANG_INSTALLATION_INCOMPLETE
|
||||
desc: in browse root
|
||||
eng: "Installation incomplete"
|
||||
voice: ""
|
||||
new: "Inschtallation unvollschtändig"
|
||||
new: "Inschtallation unvollschtändig"
|
||||
|
||||
id: LANG_REMOVE_MMC
|
||||
desc: before acknowledging usb in case an MMC is inserted (Ondio)
|
||||
eng: "Please remove inserted MMC"
|
||||
voice: ""
|
||||
new: "Bitte MMC üsanäh"
|
||||
new: "Bitte MMC üsanäh"
|
||||
|
||||
id: VOICE_DOT
|
||||
desc: spoken only, for spelling
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
****************************************************************************/
|
||||
|
||||
/* size of the buffer used for loadable, translated strings */
|
||||
#define MAX_LANGUAGE_SIZE 8000
|
||||
#define MAX_LANGUAGE_SIZE 14000
|
||||
|
||||
/* both these must match the two initial bytes in the binary lang file */
|
||||
#define LANGUAGE_COOKIE 0x1a
|
||||
|
|
|
@ -216,83 +216,6 @@ static unsigned long get_long(void* buf)
|
|||
return p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24);
|
||||
}
|
||||
|
||||
/* Convert an UTF-8 string to Latin-1, overwriting the old string (the new
|
||||
* string is never longer than the original, so this is safe). Non-latin-1
|
||||
* chars are replaced with '?'.
|
||||
*/
|
||||
static void convert_utf8(char* utf8)
|
||||
{
|
||||
char* dest = utf8;
|
||||
long code = 0;
|
||||
unsigned char c;
|
||||
int tail = 0;
|
||||
int size = 0;
|
||||
|
||||
while ((c = *utf8++) != 0)
|
||||
{
|
||||
if ((tail <= 0) && ((c <= 0x7f) || (c >= 0xc2)))
|
||||
{
|
||||
/* Start of new character. */
|
||||
if (c < 0x80)
|
||||
{
|
||||
size = 1;
|
||||
}
|
||||
else if (c < 0xe0)
|
||||
{
|
||||
size = 2;
|
||||
c &= 0x1f;
|
||||
}
|
||||
else if (c < 0xf0)
|
||||
{
|
||||
size = 3;
|
||||
c &= 0x0f;
|
||||
}
|
||||
else if (c < 0xf5)
|
||||
{
|
||||
size = 4;
|
||||
c &= 0x07;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Invalid size. */
|
||||
size = 0;
|
||||
}
|
||||
|
||||
code = c;
|
||||
tail = size - 1;
|
||||
}
|
||||
else if ((tail > 0) && ((c & 0xc0) == 0x80))
|
||||
{
|
||||
/* Valid continuation character. */
|
||||
code = (code << 6) | (c & 0x3f);
|
||||
tail--;
|
||||
|
||||
if (tail == 0)
|
||||
{
|
||||
if (((size == 2) && (code < 0x80))
|
||||
|| ((size == 3) && (code < 0x800))
|
||||
|| ((size == 4) && (code < 0x10000)))
|
||||
{
|
||||
/* Invalid encoding. */
|
||||
code = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tail = -1;
|
||||
}
|
||||
|
||||
if ((tail == 0) && (code > 0))
|
||||
{
|
||||
*dest++ = (code <= 0xff) ? (char) (code & 0xff) : '?';
|
||||
}
|
||||
}
|
||||
|
||||
*dest = 0;
|
||||
}
|
||||
|
||||
|
||||
/* Read a string tag from an M4A file */
|
||||
void read_m4a_tag_string(int fd, int len,char** bufptr,size_t* bytes_remaining, char** dest)
|
||||
{
|
||||
|
@ -316,7 +239,6 @@ void read_m4a_tag_string(int fd, int len,char** bufptr,size_t* bytes_remaining,
|
|||
}
|
||||
**bufptr=(char)0;
|
||||
|
||||
convert_utf8(*dest);
|
||||
data_length = strlen(*dest)+1;
|
||||
*bufptr=(*dest)+data_length;
|
||||
*bytes_remaining-=data_length;
|
||||
|
@ -468,7 +390,6 @@ static bool read_ape_tags(int fd, struct mp3entry* id3)
|
|||
return false;
|
||||
}
|
||||
|
||||
convert_utf8(value);
|
||||
len = parse_tag(name, value, id3, buf, buf_remaining,
|
||||
TAGTYPE_APE);
|
||||
buf += len;
|
||||
|
@ -563,7 +484,6 @@ static bool read_vorbis_tags(int fd, struct mp3entry *id3,
|
|||
return false;
|
||||
}
|
||||
|
||||
convert_utf8(value);
|
||||
len = parse_tag(name, value, id3, buf, buf_remaining,
|
||||
TAGTYPE_VORBIS);
|
||||
buf += len;
|
||||
|
|
|
@ -1024,6 +1024,12 @@ static bool read_next_metadata(void)
|
|||
* is manipulating the playlist a lot, we will just lose battery. */
|
||||
// filling = true;
|
||||
status = get_metadata(&tracks[next_track],fd,trackname,v1first);
|
||||
/* Preload the glyphs in the tags */
|
||||
if (status) {
|
||||
lcd_getstringsize(tracks[next_track].id3.title, NULL, NULL);
|
||||
lcd_getstringsize(tracks[next_track].id3.artist, NULL, NULL);
|
||||
lcd_getstringsize(tracks[next_track].id3.album, NULL, NULL);
|
||||
}
|
||||
track_changed = true;
|
||||
close(fd);
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include "statusbar.h"
|
||||
#include "talk.h"
|
||||
#include "misc.h"
|
||||
#include "rbunicode.h"
|
||||
|
||||
#define KEYBOARD_PAGES 3
|
||||
|
||||
|
@ -98,14 +99,16 @@ int kbd_input(char* text, int buflen)
|
|||
int page = 0, x = 0;
|
||||
int linelen;
|
||||
|
||||
int len, i;
|
||||
int len, len_utf8, i, j;
|
||||
int editpos, curpos, leftpos;
|
||||
unsigned short* line = kbd_setupkeys(page, &linelen);
|
||||
unsigned char temptext[12];
|
||||
unsigned char temptext[36];
|
||||
unsigned short tmp;
|
||||
unsigned char *utf8;
|
||||
|
||||
int button, lastbutton = 0;
|
||||
|
||||
editpos = strlen(text);
|
||||
editpos = utf8length(text);
|
||||
|
||||
if (global_settings.talk_menu) /* voice UI? */
|
||||
talk_spell(text, true); /* spell initial text */
|
||||
|
@ -113,7 +116,8 @@ int kbd_input(char* text, int buflen)
|
|||
while (!done)
|
||||
{
|
||||
len = strlen(text);
|
||||
|
||||
len_utf8 = utf8length(text);
|
||||
|
||||
if (redraw)
|
||||
{
|
||||
if (line_edit)
|
||||
|
@ -128,26 +132,47 @@ int kbd_input(char* text, int buflen)
|
|||
}
|
||||
|
||||
/* Draw insert chars */
|
||||
temptext[0] = KEYBOARD_INSERT_LEFT;
|
||||
temptext[1] = line[x];
|
||||
temptext[2] = KEYBOARD_INSERT_RIGHT;
|
||||
utf8 = temptext;
|
||||
tmp = KEYBOARD_INSERT_LEFT;
|
||||
utf8 = iso_decode((unsigned char*)&tmp, utf8, 0, 1);
|
||||
tmp = line[x];
|
||||
utf8 = iso_decode((unsigned char*)&tmp, utf8, 0, 1);
|
||||
tmp = KEYBOARD_INSERT_RIGHT;
|
||||
utf8 = iso_decode((unsigned char*)&tmp, utf8, 0, 1);
|
||||
for (i = 1; i < 8; i++)
|
||||
{
|
||||
temptext[i+2] = line[(x+i)%linelen];
|
||||
utf8 = iso_decode((unsigned char*)&line[(x+i)%linelen], utf8, 0, 1);
|
||||
/* temptext[i+2] = line[(x+i)%linelen]; */
|
||||
}
|
||||
temptext[i+2] = 0;
|
||||
*utf8 = 0;
|
||||
lcd_puts(1, 0, temptext);
|
||||
|
||||
/* write out the text */
|
||||
curpos = MIN(MIN(editpos, 10 - MIN(len - editpos, 3)), 9);
|
||||
curpos = MIN(MIN(editpos, 10 - MIN(len_utf8 - editpos, 3)), 9);
|
||||
leftpos = editpos - curpos;
|
||||
strncpy(temptext, text + leftpos, 10);
|
||||
temptext[10] = 0;
|
||||
|
||||
if (leftpos)
|
||||
if (!leftpos) {
|
||||
utf8 = text + utf8seek(text, leftpos);
|
||||
i = 0;
|
||||
j = 0;
|
||||
} else {
|
||||
temptext[0] = '<';
|
||||
if (len - leftpos > 10)
|
||||
temptext[9] = '>';
|
||||
i = 1;
|
||||
j = 1;
|
||||
utf8 = text + utf8seek(text, leftpos+1);
|
||||
}
|
||||
while (*utf8 && i < 10) {
|
||||
temptext[j++] = *utf8++;
|
||||
if ((*utf8 & MASK) != COMP)
|
||||
i++;
|
||||
}
|
||||
temptext[j] = 0;
|
||||
|
||||
|
||||
if (len_utf8 - leftpos > 10) {
|
||||
utf8 = temptext + utf8seek(temptext, 9);
|
||||
*utf8++ = '>';
|
||||
*utf8 = 0;
|
||||
}
|
||||
|
||||
lcd_remove_cursor();
|
||||
lcd_puts(1, 1, temptext);
|
||||
|
@ -185,10 +210,11 @@ int kbd_input(char* text, int buflen)
|
|||
case BUTTON_RIGHT | BUTTON_REPEAT:
|
||||
if (line_edit)
|
||||
{
|
||||
if (editpos < len)
|
||||
if (editpos < len_utf8)
|
||||
{
|
||||
editpos++;
|
||||
kbd_spellchar(text[editpos]);
|
||||
int c = utf8seek(text, editpos);
|
||||
kbd_spellchar(text[c]);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -206,7 +232,8 @@ int kbd_input(char* text, int buflen)
|
|||
if (editpos)
|
||||
{
|
||||
editpos--;
|
||||
kbd_spellchar(text[editpos]);
|
||||
int c = utf8seek(text, editpos);
|
||||
kbd_spellchar(text[c]);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -229,20 +256,35 @@ int kbd_input(char* text, int buflen)
|
|||
{
|
||||
if (editpos > 0)
|
||||
{
|
||||
for (i = editpos; i < len; i++)
|
||||
text[i-1] = text[i];
|
||||
text[i-1] = '\0';
|
||||
utf8 = text + utf8seek(text, editpos);
|
||||
i = 0;
|
||||
do {
|
||||
i++;
|
||||
utf8--;
|
||||
} while ((*utf8 & MASK) == COMP);
|
||||
while (utf8[i]) {
|
||||
*utf8 = utf8[i];
|
||||
utf8++;
|
||||
}
|
||||
*utf8 = 0;
|
||||
editpos--;
|
||||
}
|
||||
}
|
||||
else /* inserts the selected char */
|
||||
{
|
||||
if (len + 1 < buflen)
|
||||
utf8 = iso_decode((unsigned char*)&line[x], temptext, 0, 1);
|
||||
*utf8 = 0;
|
||||
j = strlen(temptext);
|
||||
if (len + j < buflen)
|
||||
{
|
||||
for (i = len ; i > editpos; i--)
|
||||
text[i] = text[i-1];
|
||||
text[len+1] = 0;
|
||||
text[editpos] = line[x];
|
||||
int k = len_utf8;
|
||||
for (i = len+j; k >= editpos; i--) {
|
||||
text[i] = text[i-j];
|
||||
if ((text[i] & MASK) != COMP)
|
||||
k--;
|
||||
}
|
||||
while (j--)
|
||||
text[i--] = temptext[j];
|
||||
editpos++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -361,7 +361,14 @@ static const struct plugin_api rockbox_api = {
|
|||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
screen_dump_set_hook,
|
||||
font_get_width,
|
||||
#endif
|
||||
utf8decode,
|
||||
iso_decode,
|
||||
utf16LEdecode,
|
||||
utf16BEdecode,
|
||||
utf8encode,
|
||||
utf8length,
|
||||
};
|
||||
|
||||
int plugin_load(const char* plugin, void* parameter)
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
#endif
|
||||
#include "sound.h"
|
||||
#include "menu.h"
|
||||
#include "rbunicode.h"
|
||||
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
#include "lcd-remote.h"
|
||||
|
@ -90,7 +91,7 @@
|
|||
#endif
|
||||
|
||||
/* increase this every time the api struct changes */
|
||||
#define PLUGIN_API_VERSION 52
|
||||
#define PLUGIN_API_VERSION 53
|
||||
|
||||
/* update this to latest version if a change to the api struct breaks
|
||||
backwards compatibility (and please take the opportunity to sort in any
|
||||
|
@ -441,7 +442,14 @@ struct plugin_api {
|
|||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
void (*screen_dump_set_hook)(void (*hook)(int fh));
|
||||
int (*font_get_width)(struct font* pf, unsigned short char_code);
|
||||
#endif
|
||||
const unsigned char* (*utf8decode)(const unsigned char *utf8, unsigned short *ucs);
|
||||
unsigned char* (*iso_decode)(const unsigned char *iso, unsigned char *utf8, int cp, int count);
|
||||
unsigned char* (*utf16LEdecode)(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
|
||||
unsigned char* (*utf16BEdecode)(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
|
||||
unsigned char* (*utf8encode)(unsigned long ucs, unsigned char *utf8);
|
||||
unsigned long (*utf8length)(const unsigned char *utf8);
|
||||
};
|
||||
|
||||
int plugin_load(const char* plugin, void* parameter);
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "talk.h"
|
||||
#include "settings.h"
|
||||
#include "misc.h"
|
||||
#include "rbunicode.h"
|
||||
#include "buttonbar.h"
|
||||
#include "logf.h"
|
||||
|
||||
|
@ -117,32 +118,32 @@
|
|||
|
||||
#if KEYBOARD_PAGES == 1
|
||||
static const char * const kbdpages[KEYBOARD_PAGES][KEYBOARD_LINES] = {
|
||||
{ "ABCDEFG abcdefg !?\" @#$%+'",
|
||||
{ "ABCDEFG abcdefg !?\" @#$%+'",
|
||||
"HIJKLMN hijklmn 789 &_()-`",
|
||||
"OPQRSTU opqrstu 456 §|{}/<",
|
||||
"OPQRSTU opqrstu 456 §|{}/<",
|
||||
"VWXYZ., vwxyz.,0123 ~=[]*>",
|
||||
"ÀÁÂÃÄÅÆ ÌÍÎÏ ÈÉÊË ¢£¤¥¦§©®",
|
||||
"àáâãäåæ ìíîï èéêë «»°ºª¹²³",
|
||||
"ÓÒÔÕÖØ ÇÐÞÝß ÙÚÛÜ ¯±×÷¡¿µ·",
|
||||
"òóôõöø çðþýÿ ùúûü ¼½¾¬¶¨ " },
|
||||
"ÀÁÂÃÄÅÆ ÌÍÎÏ ÈÉÊË ¢£¤¥¦§©®",
|
||||
"àáâãäåæ ìíîï èéêë «»°ºª¹²³",
|
||||
"ÓÒÔÕÖØ ÇÐÞÝß ÙÚÛÜ ¯±×÷¡¿µ·",
|
||||
"òóôõöø çðþýÿ ùúûü ¼½¾¬¶¨ " },
|
||||
};
|
||||
|
||||
#else
|
||||
static const char * const kbdpages[KEYBOARD_PAGES][KEYBOARD_LINES] = {
|
||||
{ "ABCDEFG !?\" @#$%+'",
|
||||
{ "ABCDEFG !?\" @#$%+'",
|
||||
"HIJKLMN 789 &_()-`",
|
||||
"OPQRSTU 456 §|{}/<",
|
||||
"OPQRSTU 456 §|{}/<",
|
||||
"VWXYZ.,0123 ~=[]*>" },
|
||||
|
||||
{ "abcdefg ¢£¤¥¦§©®¬",
|
||||
"hijklmn «»°ºª¹²³¶",
|
||||
"opqrstu ¯±×÷¡¿µ·¨",
|
||||
"vwxyz., ¼½¾ " },
|
||||
{ "abcdefg ¢£¤¥¦§©®¬",
|
||||
"hijklmn «»°ºª¹²³¶",
|
||||
"opqrstu ¯±×÷¡¿µ·¨",
|
||||
"vwxyz., ¼½¾ " },
|
||||
|
||||
{ "ÀÁÂÃÄÅÆ ÌÍÎÏ ÈÉÊË",
|
||||
"àáâãäåæ ìíîï èéêë",
|
||||
"ÓÒÔÕÖØ ÇÐÞÝß ÙÚÛÜ",
|
||||
"òóôõöø çðþýÿ ùúûü" },
|
||||
{ "ÀÁÂÃÄÅÆ ÌÍÎÏ ÈÉÊË",
|
||||
"àáâãäåæ ìíîï èéêë",
|
||||
"ÓÒÔÕÖØ ÇÐÞÝß ÙÚÛÜ",
|
||||
"òóôõöø çðþýÿ ùúûü" },
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -178,18 +179,19 @@ int kbd_input(char* text, int buflen)
|
|||
#if defined(KBD_PAGE_FLIP) || (KEYBOARD_PAGES > 1)
|
||||
int page = 0;
|
||||
#endif
|
||||
int font_w = 0, font_h = 0, i;
|
||||
int font_w = 0, font_h = 0, i, j;
|
||||
int x = 0, y = 0;
|
||||
int main_x, main_y, max_chars;
|
||||
int status_y1, status_y2;
|
||||
int len;
|
||||
int len, len_utf8, c = 0;
|
||||
int editpos, curpos, leftpos;
|
||||
bool redraw = true;
|
||||
unsigned char *utf8;
|
||||
const char * const *line;
|
||||
#ifdef HAVE_MORSE_INPUT
|
||||
bool morse_reading = false;
|
||||
unsigned char morse_code = 0;
|
||||
int morse_tick = 0, morse_len, j;
|
||||
int morse_tick = 0, morse_len;
|
||||
char buf[2];
|
||||
#endif
|
||||
#ifdef KBD_MODES
|
||||
|
@ -218,7 +220,7 @@ int kbd_input(char* text, int buflen)
|
|||
status_y1 = LCD_HEIGHT - font_h;
|
||||
status_y2 = LCD_HEIGHT;
|
||||
|
||||
editpos = strlen(text);
|
||||
editpos = utf8length(text);
|
||||
|
||||
max_chars = LCD_WIDTH / font_w - 2; /* leave room for < and > */
|
||||
line = kbdpages[0];
|
||||
|
@ -229,11 +231,12 @@ int kbd_input(char* text, int buflen)
|
|||
while(!done)
|
||||
{
|
||||
len = strlen(text);
|
||||
len_utf8 = utf8length(text);
|
||||
|
||||
if (redraw)
|
||||
if(redraw)
|
||||
{
|
||||
lcd_clear_display();
|
||||
|
||||
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
|
||||
#ifdef HAVE_MORSE_INPUT
|
||||
|
@ -279,18 +282,24 @@ int kbd_input(char* text, int buflen)
|
|||
|
||||
/* separator */
|
||||
lcd_hline(0, LCD_WIDTH - 1, main_y - KEYBOARD_MARGIN);
|
||||
|
||||
|
||||
/* write out the text */
|
||||
curpos = MIN(editpos, max_chars - MIN(len - editpos, 2));
|
||||
curpos = MIN(editpos, max_chars - MIN(len_utf8 - editpos, 2));
|
||||
leftpos = editpos - curpos;
|
||||
strncpy(outline, text + leftpos, max_chars);
|
||||
outline[max_chars] = 0;
|
||||
utf8 = text + utf8seek(text, leftpos);
|
||||
i=j=0;
|
||||
while (*utf8 && i < max_chars) {
|
||||
outline[j++] = *utf8++;
|
||||
if ((*utf8 & MASK) != COMP)
|
||||
i++;
|
||||
}
|
||||
outline[j] = 0;
|
||||
|
||||
lcd_putsxy(font_w, main_y, outline);
|
||||
|
||||
if (leftpos)
|
||||
lcd_putsxy(0, main_y, "<");
|
||||
if (len - leftpos > max_chars)
|
||||
if (len_utf8 - leftpos > max_chars)
|
||||
lcd_putsxy(LCD_WIDTH - font_w, main_y, ">");
|
||||
|
||||
/* cursor */
|
||||
|
@ -361,7 +370,8 @@ int kbd_input(char* text, int buflen)
|
|||
#endif
|
||||
}
|
||||
line = kbdpages[page];
|
||||
kbd_spellchar(line[y][x]);
|
||||
c = utf8seek(line[y], x);
|
||||
kbd_spellchar(line[y][c]);
|
||||
break;
|
||||
#endif
|
||||
|
||||
|
@ -374,16 +384,17 @@ int kbd_input(char* text, int buflen)
|
|||
#ifdef KBD_MODES
|
||||
if (line_edit) /* right doubles as cursor_right in line_edit */
|
||||
{
|
||||
if (editpos < len)
|
||||
if (editpos < len_utf8)
|
||||
{
|
||||
editpos++;
|
||||
kbd_spellchar(text[editpos]);
|
||||
c = utf8seek(text, editpos);
|
||||
kbd_spellchar(text[c]);
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (x < (int)strlen(line[y]) - 1)
|
||||
if (x < (int)utf8length(line[y]) - 1)
|
||||
x++;
|
||||
else
|
||||
{
|
||||
|
@ -395,7 +406,8 @@ int kbd_input(char* text, int buflen)
|
|||
line = kbdpages[page];
|
||||
#endif
|
||||
}
|
||||
kbd_spellchar(line[y][x]);
|
||||
c = utf8seek(line[y], x);
|
||||
kbd_spellchar(line[y][c]);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -411,7 +423,8 @@ int kbd_input(char* text, int buflen)
|
|||
if (editpos)
|
||||
{
|
||||
editpos--;
|
||||
kbd_spellchar(text[editpos]);
|
||||
c = utf8seek(text, editpos);
|
||||
kbd_spellchar(text[c]);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -427,9 +440,10 @@ int kbd_input(char* text, int buflen)
|
|||
page = (KEYBOARD_PAGES-1);
|
||||
line = kbdpages[page];
|
||||
#endif
|
||||
x = strlen(line[y]) - 1;
|
||||
x = utf8length(line[y]) - 1;
|
||||
}
|
||||
kbd_spellchar(line[y][x]);
|
||||
c = utf8seek(line[y], x);
|
||||
kbd_spellchar(line[y][c]);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -458,7 +472,8 @@ int kbd_input(char* text, int buflen)
|
|||
}
|
||||
if (!line_edit)
|
||||
#endif
|
||||
kbd_spellchar(line[y][x]);
|
||||
c = utf8seek(line[y], x);
|
||||
kbd_spellchar(line[y][c]);
|
||||
break;
|
||||
|
||||
case KBD_UP:
|
||||
|
@ -486,7 +501,8 @@ int kbd_input(char* text, int buflen)
|
|||
}
|
||||
if (!line_edit)
|
||||
#endif
|
||||
kbd_spellchar(line[y][x]);
|
||||
c = utf8seek(line[y], x);
|
||||
kbd_spellchar(line[y][c]);
|
||||
break;
|
||||
|
||||
case KBD_DONE:
|
||||
|
@ -534,21 +550,38 @@ int kbd_input(char* text, int buflen)
|
|||
{
|
||||
if (editpos > 0)
|
||||
{
|
||||
for (i = editpos; i < len; i++)
|
||||
text[i-1] = text[i];
|
||||
text[i-1] = '\0';
|
||||
utf8 = text + utf8seek(text, editpos);
|
||||
i = 0;
|
||||
do {
|
||||
i++;
|
||||
utf8--;
|
||||
} while ((*utf8 & MASK) == COMP);
|
||||
while (utf8[i]) {
|
||||
*utf8 = utf8[i];
|
||||
utf8++;
|
||||
}
|
||||
*utf8 = 0;
|
||||
editpos--;
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (len + 1 < buflen)
|
||||
const unsigned char *inschar = line[y] + utf8seek(line[y], x);
|
||||
j = 0;
|
||||
do {
|
||||
j++;
|
||||
} while ((inschar[j] & MASK) == COMP);
|
||||
if (len + j < buflen)
|
||||
{
|
||||
for (i = len ; i > editpos; i--)
|
||||
text[i] = text[i-1];
|
||||
text[len+1] = 0;
|
||||
text[editpos] = line[y][x];
|
||||
int k = len_utf8;
|
||||
for (i = len+j; k >= editpos; i--) {
|
||||
text[i] = text[i-j];
|
||||
if ((text[i] & MASK) != COMP)
|
||||
k--;
|
||||
}
|
||||
while (j--)
|
||||
text[i--] = inschar[j];
|
||||
editpos++;
|
||||
}
|
||||
}
|
||||
|
@ -561,9 +594,17 @@ int kbd_input(char* text, int buflen)
|
|||
case KBD_BACKSPACE | BUTTON_REPEAT:
|
||||
if (editpos > 0)
|
||||
{
|
||||
for (i = editpos; i < len; i++)
|
||||
text[i-1] = text[i];
|
||||
text[i-1] = '\0';
|
||||
utf8 = text + utf8seek(text, editpos);
|
||||
i = 0;
|
||||
do {
|
||||
i++;
|
||||
utf8--;
|
||||
} while ((*utf8 & MASK) == COMP);
|
||||
while (utf8[i]) {
|
||||
*utf8 = utf8[i];
|
||||
utf8++;
|
||||
}
|
||||
*utf8 = 0;
|
||||
editpos--;
|
||||
}
|
||||
if (global_settings.talk_menu) /* voice UI? */
|
||||
|
@ -572,10 +613,11 @@ int kbd_input(char* text, int buflen)
|
|||
|
||||
case KBD_CURSOR_RIGHT:
|
||||
case KBD_CURSOR_RIGHT | BUTTON_REPEAT:
|
||||
if (editpos < len)
|
||||
if (editpos < len_utf8)
|
||||
{
|
||||
editpos++;
|
||||
kbd_spellchar(text[editpos]);
|
||||
c = utf8seek(text, editpos);
|
||||
kbd_spellchar(text[c]);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -584,7 +626,8 @@ int kbd_input(char* text, int buflen)
|
|||
if (editpos)
|
||||
{
|
||||
editpos--;
|
||||
kbd_spellchar(text[editpos]);
|
||||
c = utf8seek(text, editpos);
|
||||
kbd_spellchar(text[c]);
|
||||
}
|
||||
break;
|
||||
#endif /* !KBD_MODES */
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
#include "power.h"
|
||||
#include "backlight.h"
|
||||
#include "powermgmt.h"
|
||||
#include "bidi.h"
|
||||
#include "status.h"
|
||||
#include "atoi.h"
|
||||
#include "screens.h"
|
||||
|
@ -67,6 +66,7 @@
|
|||
#include "version.h"
|
||||
#include "rtc.h"
|
||||
#include "sound.h"
|
||||
#include "rbunicode.h"
|
||||
#include "dircache.h"
|
||||
#include "select.h"
|
||||
#include "statusbar.h"
|
||||
|
@ -85,7 +85,7 @@ const char rec_base_directory[] = REC_BASE_DIR;
|
|||
#include "dsp.h"
|
||||
#endif
|
||||
|
||||
#define CONFIG_BLOCK_VERSION 34
|
||||
#define CONFIG_BLOCK_VERSION 35
|
||||
#define CONFIG_BLOCK_SIZE 512
|
||||
#define RTC_BLOCK_SIZE 44
|
||||
|
||||
|
@ -243,7 +243,6 @@ static const struct bit_entry rtc_bits[] =
|
|||
{1, S_O(volume_type), 0, "volume display", graphic_numeric },
|
||||
{1, S_O(battery_display), 0, "battery display", graphic_numeric },
|
||||
{1, S_O(timeformat), 0, "time format", "24hour,12hour" },
|
||||
{1, S_O(bidi_support), false, "bidi hebrew/arabic", off_on },
|
||||
#endif /* HAVE_LCD_BITMAP */
|
||||
{1, S_O(show_icons), true, "show icons", off_on },
|
||||
/* system */
|
||||
|
@ -910,7 +909,6 @@ void settings_apply(void)
|
|||
#endif
|
||||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
set_bidi_support(global_settings.bidi_support);
|
||||
lcd_set_invert_display(global_settings.invert);
|
||||
lcd_set_flip(global_settings.flip_display);
|
||||
button_set_flip(global_settings.flip_display);
|
||||
|
@ -967,6 +965,8 @@ void settings_apply(void)
|
|||
talk_init(); /* use voice of same language */
|
||||
}
|
||||
|
||||
set_codepage(global_settings.default_codepage);
|
||||
|
||||
#if CONFIG_CODEC == SWCODEC
|
||||
audio_set_crossfade(global_settings.crossfade);
|
||||
dsp_set_replaygain(true);
|
||||
|
|
|
@ -219,7 +219,6 @@ struct user_settings
|
|||
bool invert_cursor; /* invert the current file in dir browser and menu
|
||||
instead of using the default cursor */
|
||||
bool flip_display; /* turn display (and button layout) by 180 degrees */
|
||||
bool bidi_support; /* reverse hebrew/arabic chars: 0=off, 1=on */
|
||||
int poweroff; /* power off timer */
|
||||
int backlight_timeout; /* backlight off timeout: 0-18 0=never,
|
||||
1=always,
|
||||
|
@ -370,6 +369,7 @@ struct user_settings
|
|||
bool dircache; /* enable directory cache */
|
||||
int dircache_size; /* directory cache structure last size, 22 bits */
|
||||
#endif
|
||||
int default_codepage; /* set default codepage for tag conversion */
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
unsigned char rwps_file[MAX_FILENAME+1]; /* last remote-wps */
|
||||
#endif
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
#include "fat.h" /* For dotfile settings */
|
||||
#include "sleeptimer.h"
|
||||
#include "powermgmt.h"
|
||||
#include "bidi.h"
|
||||
#include "rtc.h"
|
||||
#include "ata.h"
|
||||
#include "tree.h"
|
||||
|
@ -51,6 +50,7 @@
|
|||
#include "database.h"
|
||||
#include "dir.h"
|
||||
#include "dircache.h"
|
||||
#include "rbunicode.h"
|
||||
#include "splash.h"
|
||||
#include "yesno.h"
|
||||
|
||||
|
@ -290,18 +290,6 @@ static bool invert_cursor(void)
|
|||
NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu to reverse Hebrew and Arabic text according to BiDi algorythm
|
||||
*/
|
||||
static bool bidi_support(void)
|
||||
{
|
||||
return set_bool_options( str(LANG_BIDI_SUPPORT),
|
||||
&global_settings.bidi_support,
|
||||
STR(LANG_SET_BOOL_YES),
|
||||
STR(LANG_SET_BOOL_NO),
|
||||
set_bidi_support);
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu to configure the battery display on status bar
|
||||
*/
|
||||
|
@ -1150,6 +1138,28 @@ static bool runtimedb(void)
|
|||
return rc;
|
||||
}
|
||||
|
||||
static bool codepage_setting(void)
|
||||
{
|
||||
static const struct opt_items names[] = {
|
||||
{ STR(LANG_CODEPAGE_LATIN1) },
|
||||
{ STR(LANG_CODEPAGE_GREEK) },
|
||||
{ STR(LANG_CODEPAGE_HEBREW) },
|
||||
{ STR(LANG_CODEPAGE_RUSSIAN) },
|
||||
{ STR(LANG_CODEPAGE_THAI) },
|
||||
{ STR(LANG_CODEPAGE_ARABIC) },
|
||||
{ STR(LANG_CODEPAGE_TURKISH) },
|
||||
{ STR(LANG_CODEPAGE_LATIN_EXTENDED) },
|
||||
{ STR(LANG_CODEPAGE_JAPANESE) },
|
||||
{ STR(LANG_CODEPAGE_SIMPLIFIED) },
|
||||
{ STR(LANG_CODEPAGE_KOREAN) },
|
||||
{ STR(LANG_CODEPAGE_TRADITIONAL) },
|
||||
{ STR(LANG_CODEPAGE_UTF8) },
|
||||
};
|
||||
return set_option(str(LANG_DEFAULT_CODEPAGE),
|
||||
&global_settings.default_codepage,
|
||||
INT, names, 13, set_codepage );
|
||||
}
|
||||
|
||||
#if CONFIG_CODEC == SWCODEC
|
||||
static bool replaygain(void)
|
||||
{
|
||||
|
@ -1606,8 +1616,8 @@ static bool display_settings_menu(void)
|
|||
#ifdef HAVE_LCD_BITMAP
|
||||
{ ID2P(LANG_BARS_MENU), bars_settings_menu },
|
||||
{ ID2P(LANG_PM_MENU), peak_meter_menu },
|
||||
{ ID2P(LANG_BIDI_SUPPORT), bidi_support },
|
||||
#endif
|
||||
{ ID2P(LANG_DEFAULT_CODEPAGE), codepage_setting },
|
||||
};
|
||||
|
||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||
|
|
26
docs/CREDITS
26
docs/CREDITS
|
@ -8,7 +8,7 @@
|
|||
|
||||
People that have contributed to the project, one way or another. Friends!
|
||||
|
||||
Björn Stenberg
|
||||
Björn Stenberg
|
||||
Linus Nielsen Feltzing
|
||||
Andy Choi
|
||||
Andrew Jamieson
|
||||
|
@ -20,17 +20,17 @@ Gary Czvitkovicz
|
|||
Stuart Martin
|
||||
Felix Arends
|
||||
Ulf Ralberg
|
||||
David Härdeman
|
||||
David Härdeman
|
||||
Thomas Saeys
|
||||
Grant Wier
|
||||
Julien Labruyére
|
||||
Julien Labruyére
|
||||
Nicolas Sauzede
|
||||
Robert Hak
|
||||
Dave Chapman
|
||||
Stefan Meyer
|
||||
Eric Linenberg
|
||||
Tom Cvitan
|
||||
Magnus Öman
|
||||
Magnus Öman
|
||||
Jerome Kuptz
|
||||
Julien Boissinot
|
||||
Nuutti Kotivuori
|
||||
|
@ -59,14 +59,14 @@ Kjell Ericson
|
|||
Jim Hagani
|
||||
Ludovic Lange
|
||||
Mike Holden
|
||||
Simon Elén
|
||||
Simon Elén
|
||||
Matthew P. OReilly
|
||||
Christian Schönberger
|
||||
Christian Schönberger
|
||||
Henrik Backe
|
||||
Craig Sather
|
||||
José Maria Garcia-Valdecasas Bernal
|
||||
José Maria Garcia-Valdecasas Bernal
|
||||
Stevie Oh
|
||||
Jörg Hohensohn
|
||||
Jörg Hohensohn
|
||||
Dave Jones
|
||||
Thomas Paul Diffenbach
|
||||
Roland Kletzing
|
||||
|
@ -96,7 +96,7 @@ Jiri Jurecek
|
|||
Jacob Erlbeck
|
||||
Jean-Philippe Bernardy
|
||||
Dave Hooper
|
||||
Jonas Häggqvist
|
||||
Jonas Häggqvist
|
||||
Thom Johansen
|
||||
Rinat Zakirov
|
||||
Manuel Dejonghe
|
||||
|
@ -105,12 +105,12 @@ Michiel van der Kolk
|
|||
Tony Motakis
|
||||
Andy Young
|
||||
Alexandre Bourget
|
||||
Richard S. La Charité III
|
||||
Richard S. La Charité III
|
||||
Christian Gmeiner
|
||||
Tomas Salfischberger
|
||||
Miika Pekkarinen
|
||||
Tapio Karppinen
|
||||
Richard Ottó O'Brien
|
||||
Richard Ottó O'Brien
|
||||
Luca Burelli
|
||||
Alessio Lenzi
|
||||
David Bryant
|
||||
|
@ -126,9 +126,9 @@ Hristo Kovachev
|
|||
Sander Sweers
|
||||
Antonius Hellman
|
||||
Ryan Jackson
|
||||
Per Holmäng
|
||||
Per Holmäng
|
||||
Frederic Devernay
|
||||
José M. Fandiño
|
||||
José M. Fandiño
|
||||
Gadi Cohen
|
||||
Naftali Goldstein
|
||||
David Dent
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
common/unicode.c
|
||||
#ifdef ROCKBOX_HAS_LOGF
|
||||
logf.c
|
||||
#endif
|
||||
|
@ -103,6 +104,8 @@ drivers/rtc.c
|
|||
drivers/serial.c
|
||||
#endif /* !SIMULATOR */
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
lru.c
|
||||
font_cache.c
|
||||
font.c
|
||||
#endif
|
||||
id3.c
|
||||
|
|
205
firmware/arabjoin.h
Normal file
205
firmware/arabjoin.h
Normal file
|
@ -0,0 +1,205 @@
|
|||
typedef struct {
|
||||
unsigned short isolated;
|
||||
unsigned short final;
|
||||
unsigned short medial;
|
||||
unsigned short initial;
|
||||
} arab_t;
|
||||
|
||||
//static arab_t dummy = {0,0,0,0};
|
||||
static arab_t zwj = {0x20,0x20,0x20,0x20}; //zero-width joiner
|
||||
|
||||
static arab_t lamaleph[] = {
|
||||
{0xfefb,0xfefc,0,0},
|
||||
{0xfef9,0xfefa,0,0},
|
||||
{0xfef7,0xfef8,0,0},
|
||||
{0xfef5,0xfef6,0,0}
|
||||
};
|
||||
|
||||
static arab_t jointable[] = {
|
||||
{0xfe80,0x0000,0x0000,0x0000}, // 0x0621
|
||||
{0xfe81,0xfe82,0x0000,0x0000}, // 0x0622
|
||||
{0xfe83,0xfe84,0x0000,0x0000}, // 0x0623
|
||||
{0xfe85,0xfe86,0x0000,0x0000}, // 0x0624
|
||||
{0xfe87,0xfe88,0x0000,0x0000}, // 0x0625
|
||||
{0xfe89,0xfe8a,0xfe8c,0xfe8b}, // 0x0626
|
||||
{0xfe8d,0xfe8e,0x0000,0x0000}, // 0x0627
|
||||
{0xfe8f,0xfe90,0xfe92,0xfe91}, // 0x0628
|
||||
{0xfe93,0xfe94,0x0000,0x0000}, // 0x0629
|
||||
{0xfe95,0xfe96,0xfe98,0xfe97}, // 0x062a
|
||||
{0xfe99,0xfe9a,0xfe9c,0xfe9b}, // 0x062b
|
||||
{0xfe9d,0xfe9e,0xfea0,0xfe9f}, // 0x062c
|
||||
{0xfea1,0xfea2,0xfea4,0xfea3}, // 0x062d
|
||||
{0xfea5,0xfea6,0xfea8,0xfea7}, // 0x062e
|
||||
{0xfea9,0xfeaa,0x0000,0x0000}, // 0x062f
|
||||
{0xfeab,0xfeac,0x0000,0x0000}, // 0x0630
|
||||
{0xfead,0xfeae,0x0000,0x0000}, // 0x0631
|
||||
{0xfeaf,0xfeb0,0x0000,0x0000}, // 0x0632
|
||||
{0xfeb1,0xfeb2,0xfeb4,0xfeb3}, // 0x0633
|
||||
{0xfeb5,0xfeb6,0xfeb8,0xfeb7}, // 0x0634
|
||||
{0xfeb9,0xfeba,0xfebc,0xfebb}, // 0x0635
|
||||
{0xfebd,0xfebe,0xfec0,0xfebf}, // 0x0636
|
||||
{0xfec1,0xfec2,0xfec4,0xfec3}, // 0x0637
|
||||
{0xfec5,0xfec6,0xfec8,0xfec7}, // 0x0638
|
||||
{0xfec9,0xfeca,0xfecc,0xfecb}, // 0x0639
|
||||
{0xfecd,0xfece,0xfed0,0xfecf}, // 0x063a
|
||||
#if 0
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x063b
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x063c
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x063d
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x063e
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x063f
|
||||
#endif
|
||||
{0x0640,0x0640,0x0640,0x0640}, // 0x0640
|
||||
{0xfed1,0xfed2,0xfed4,0xfed3}, // 0x0641
|
||||
{0xfed5,0xfed6,0xfed8,0xfed7}, // 0x0642
|
||||
{0xfed9,0xfeda,0xfedc,0xfedb}, // 0x0643
|
||||
{0xfedd,0xfede,0xfee0,0xfedf}, // 0x0644
|
||||
{0xfee1,0xfee2,0xfee4,0xfee3}, // 0x0645
|
||||
{0xfee5,0xfee6,0xfee8,0xfee7}, // 0x0646
|
||||
{0xfee9,0xfeea,0xfeec,0xfeeb}, // 0x0647
|
||||
{0xfeed,0xfeee,0x0000,0x0000}, // 0x0648
|
||||
{0xfeef,0xfef0,0x0000,0x0000}, // 0x0649
|
||||
{0xfef1,0xfef2,0xfef4,0xfef3}, // 0x064a
|
||||
# if 0
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x064b
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x064c
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x064d
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x064e
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x064f
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0650
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0651
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0652
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0653
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0654
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0655
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0656
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0657
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0658
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0659
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x065a
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x065b
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x065c
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x065d
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x065e
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x065f
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0660
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0661
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0662
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0663
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0664
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0665
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0666
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0667
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0668
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0669
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x066a
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x066b
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x066c
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x066d
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x066e
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x066f
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x0670
|
||||
#endif
|
||||
{0xfb50,0x0000,0x0000,0x0000}, // 0x0671
|
||||
{0x0672,0x0672,0x0000,0x0000}, // 0x0672
|
||||
{0x0673,0x0673,0x0000,0x0000}, // 0x0673
|
||||
{0x0674,0x0000,0x0000,0x0000}, // 0x0674
|
||||
{0x0675,0x0675,0x0000,0x0000}, // 0x0675
|
||||
{0x0676,0x0676,0x0000,0x0000}, // 0x0676
|
||||
{0xfbdd,0x0677,0x0000,0x0000}, // 0x0677
|
||||
{0x0678,0x0678,0x0678,0x0678}, // 0x0678
|
||||
{0xfb66,0xfb67,0xfb69,0xfb68}, // 0x0679
|
||||
{0xfb5e,0xfb5f,0xfb61,0xfb60}, // 0x067a
|
||||
{0xfb52,0xfb53,0xfb55,0xfb54}, // 0x067b
|
||||
{0x067c,0x067c,0x067c,0x067c}, // 0x067c
|
||||
{0x067d,0x067d,0x067d,0x067d}, // 0x067d
|
||||
{0xfb56,0xfb57,0xfb59,0xfb58}, // 0x067e
|
||||
{0xfb62,0xfb63,0xfb65,0xfb64}, // 0x067f
|
||||
{0xfb5a,0xfb5b,0xfb5d,0xfb5c}, // 0x0680
|
||||
{0x0681,0x0681,0x0681,0x0681}, // 0x0681
|
||||
{0x0682,0x0682,0x0682,0x0682}, // 0x0682
|
||||
{0xfb76,0xfb77,0xfb79,0xfb78}, // 0x0683
|
||||
{0xfb72,0xfb73,0xfb75,0xfb74}, // 0x0684
|
||||
{0x0685,0x0685,0x0685,0x0685}, // 0x0685
|
||||
{0xfb7a,0xfb7b,0xfb7d,0xfb7c}, // 0x0686
|
||||
{0xfb7e,0xfb7f,0xfb81,0xfb80}, // 0x0687
|
||||
{0xfb88,0xfb89,0x0000,0x0000}, // 0x0688
|
||||
{0x0689,0x0689,0x0000,0x0000}, // 0x0689
|
||||
{0x068a,0x068a,0x0000,0x0000}, // 0x068a
|
||||
{0x068b,0x068b,0x0000,0x0000}, // 0x068b
|
||||
{0xfb84,0xfb85,0x0000,0x0000}, // 0x068c
|
||||
{0xfb82,0xfb83,0x0000,0x0000}, // 0x068d
|
||||
{0xfb86,0xfb87,0x0000,0x0000}, // 0x068e
|
||||
{0x068f,0x068f,0x0000,0x0000}, // 0x068f
|
||||
{0x0690,0x0690,0x0000,0x0000}, // 0x0690
|
||||
{0xfb8c,0xfb8d,0x0000,0x0000}, // 0x0691
|
||||
{0x0692,0x0692,0x0000,0x0000}, // 0x0692
|
||||
{0x0693,0x0693,0x0000,0x0000}, // 0x0693
|
||||
{0x0694,0x0694,0x0000,0x0000}, // 0x0694
|
||||
{0x0695,0x0695,0x0000,0x0000}, // 0x0695
|
||||
{0x0695,0x0696,0x0000,0x0000}, // 0x0696
|
||||
{0x0697,0x0697,0x0000,0x0000}, // 0x0697
|
||||
{0xfb8a,0xfb8b,0x0000,0x0000}, // 0x0698
|
||||
{0x0699,0x0699,0x0000,0x0000}, // 0x0699
|
||||
{0x069a,0x069a,0x069a,0x069a}, // 0x069a
|
||||
{0x069b,0x069b,0x069b,0x069b}, // 0x069b
|
||||
{0x069c,0x069c,0x069c,0x069c}, // 0x069c
|
||||
{0x069d,0x069d,0x069d,0x069d}, // 0x069d
|
||||
{0x069e,0x069e,0x069e,0x069e}, // 0x069e
|
||||
{0x069f,0x069f,0x069f,0x069f}, // 0x069f
|
||||
{0x06a0,0x06a0,0x06a0,0x06a0}, // 0x06a0
|
||||
{0x06a1,0x06a1,0x06a1,0x06a1}, // 0x06a1
|
||||
{0x06a2,0x06a2,0x06a2,0x06a2}, // 0x06a2
|
||||
{0x06a3,0x06a3,0x06a3,0x06a3}, // 0x06a3
|
||||
{0xfb6a,0xfb6b,0xfb6d,0xfb6c}, // 0x06a4
|
||||
{0x06a5,0x06a5,0x06a5,0x06a5}, // 0x06a5
|
||||
{0xfb6e,0xfb6f,0xfb71,0xfb70}, // 0x06a6
|
||||
{0x06a7,0x06a7,0x06a7,0x06a7}, // 0x06a7
|
||||
{0x06a8,0x06a8,0x06a8,0x06a8}, // 0x06a8
|
||||
{0xfb8e,0xfb8f,0xfb91,0xfb90}, // 0x06a9
|
||||
{0x06aa,0x06aa,0x06aa,0x06aa}, // 0x06aa
|
||||
{0x06ab,0x06ab,0x06ab,0x06ab}, // 0x06ab
|
||||
{0x06ac,0x06ac,0x06ac,0x06ac}, // 0x06ac
|
||||
{0xfbd3,0xfbd4,0xfbd6,0xfbd5}, // 0x06ad
|
||||
{0x06ae,0x06ae,0x06ae,0x06ae}, // 0x06ae
|
||||
{0xfb92,0xfb93,0xfb95,0xfb94}, // 0x06af
|
||||
{0x06b0,0x06b0,0x06b0,0x06b0}, // 0x06b0
|
||||
{0xfb9a,0xfb9b,0xfb9d,0xfb9c}, // 0x06b1
|
||||
{0x06b2,0x06b2,0x06b2,0x06b2}, // 0x06b2
|
||||
{0xfb96,0xfb97,0xfb99,0xfb98}, // 0x06b3
|
||||
{0x06b4,0x06b4,0x06b4,0x06b4}, // 0x06b4
|
||||
{0x06b5,0x06b5,0x06b5,0x06b5}, // 0x06b5
|
||||
{0x06b6,0x06b6,0x06b6,0x06b6}, // 0x06b6
|
||||
{0x06b7,0x06b7,0x06b7,0x06b7}, // 0x06b7
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x06b8
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x06b9
|
||||
{0xfb9e,0xfb9f,0x06ba,0x06ba}, // 0x06ba
|
||||
{0xfba0,0xfba1,0xfba3,0xfba2}, // 0x06bb
|
||||
{0x06bc,0x06bc,0x06bc,0x06bc}, // 0x06bc
|
||||
{0x06bd,0x06bd,0x06bd,0x06bd}, // 0x06bd
|
||||
{0xfbaa,0xfbab,0xfbad,0xfbac}, // 0x06be
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x06bf
|
||||
{0xfba4,0xfba5,0x0000,0x0000}, // 0x06c0
|
||||
{0x06c1,0x06c1,0x06c1,0x06c1}, // 0x06c1
|
||||
{0x06c2,0x06c2,0x0000,0x0000}, // 0x06c2
|
||||
{0x06c3,0x06c3,0x0000,0x0000}, // 0x06c3
|
||||
{0x06c4,0x06c4,0x0000,0x0000}, // 0x06c4
|
||||
{0x06c5,0x06c5,0x0000,0x0000}, // 0x06c5
|
||||
{0x06c6,0x06c6,0x0000,0x0000}, // 0x06c6
|
||||
{0x06c7,0x06c7,0x0000,0x0000}, // 0x06c7
|
||||
{0x06c8,0x06c8,0x0000,0x0000}, // 0x06c8
|
||||
{0x06c9,0x06c9,0x0000,0x0000}, // 0x06c9
|
||||
{0x06ca,0x06ca,0x0000,0x0000}, // 0x06ca
|
||||
{0x06cb,0x06cb,0x0000,0x0000}, // 0x06cb
|
||||
{0x06cc,0x06cc,0x06cc,0x06cc}, // 0x06cc
|
||||
{0x06cd,0x06cd,0x0000,0x0000}, // 0x06cd
|
||||
{0x06ce,0x06ce,0x06ce,0x06ce}, // 0x06ce
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x06cf
|
||||
{0x06d0,0x06d0,0x06d0,0x06d0}, // 0x06d0
|
||||
{0x06d1,0x06d1,0x06d1,0x06d1}, // 0x06d1
|
||||
{0xfbae,0xfbaf,0x0000,0x0000}, // 0x06d2
|
||||
{0xfbb0,0xfbb1,0x0000,0x0000}, // 0x06d3
|
||||
{0x0000,0x0000,0x0000,0x0000}, // 0x06d4
|
||||
{0x06d5,0x0000,0x0000,0x0000} // 0x06d5
|
||||
};
|
||||
|
188
firmware/bidi.c
188
firmware/bidi.c
|
@ -24,75 +24,168 @@
|
|||
#include <ctype.h>
|
||||
#include "file.h"
|
||||
#include "lcd.h"
|
||||
#include "rbunicode.h"
|
||||
#include "arabjoin.h"
|
||||
|
||||
#define _HEB_BUFFER_LENGTH MAX_PATH + LCD_WIDTH/2 + 3 + 2 + 2
|
||||
//#define _HEB_BUFFER_LENGTH (MAX_PATH + LCD_WIDTH/2 + 3 + 2 + 2) * 2
|
||||
#define _HEB_BLOCK_TYPE_ENG 1
|
||||
#define _HEB_BLOCK_TYPE_HEB 0
|
||||
#define _HEB_ORIENTATION_LTR 1
|
||||
#define _HEB_ORIENTATION_RTL 0
|
||||
|
||||
#define ischar(c) (((((unsigned char) c)>=193) && (((unsigned char) c)<=250)) ? 1 : 0)
|
||||
#define _isblank(c) (((((unsigned char) c)==' ' || ((unsigned char) c)=='\t')) ? 1 : 0)
|
||||
#define _isnewline(c) (((((unsigned char) c)=='\n' || ((unsigned char) c)=='\r')) ? 1 : 0)
|
||||
#define ischar(c) ((c > 0x0589 && c < 0x0700) || (c >= 0xfb50 && c <= 0xfefc) ? 1 : 0)
|
||||
#define _isblank(c) ((c==' ' || c=='\t') ? 1 : 0)
|
||||
#define _isnewline(c) ((c=='\n' || c=='\r') ? 1 : 0)
|
||||
#define XOR(a,b) ((a||b) && !(a&&b))
|
||||
|
||||
bool bidi_support_enabled = false;
|
||||
|
||||
unsigned char *bidi_l2v(const char *str, int orientation)
|
||||
arab_t * arab_lookup(unsigned short uchar)
|
||||
{
|
||||
static unsigned char buf_heb_str[_HEB_BUFFER_LENGTH];
|
||||
static unsigned char buf_broken_str[_HEB_BUFFER_LENGTH];
|
||||
const unsigned char *tmp;
|
||||
unsigned char *heb_str, *target, *opposite_target, *broken_str;
|
||||
if (uchar >= 0x621 && uchar <= 0x63a)
|
||||
return &(jointable[uchar - 0x621]);
|
||||
if (uchar >= 0x640 && uchar <= 0x64a)
|
||||
return &(jointable[uchar - 0x621 - 5]);
|
||||
if (uchar >= 0x671 && uchar <= 0x6d5)
|
||||
return &(jointable[uchar - 0x621 - 5 - 38]);
|
||||
if (uchar == 0x200D) /* Support for the zero-width joiner */
|
||||
return ‍
|
||||
return 0;
|
||||
}
|
||||
|
||||
void arabjoin(unsigned short * stringprt, int length){
|
||||
|
||||
bool connected = false;
|
||||
unsigned short * writeprt = stringprt;
|
||||
|
||||
arab_t * prev = 0;
|
||||
arab_t * cur;
|
||||
arab_t * ligature = 0;
|
||||
short uchar;
|
||||
|
||||
int i;
|
||||
for (i = 0; i <= length; i++) {
|
||||
cur = arab_lookup(uchar = *stringprt++);
|
||||
|
||||
/* Skip non-arabic chars */
|
||||
if (cur == 0) {
|
||||
if (prev) {
|
||||
/* Finish the last char */
|
||||
if (connected) {
|
||||
*writeprt++ = prev->final;
|
||||
connected = false;
|
||||
} else
|
||||
*writeprt++ = prev->isolated;
|
||||
prev = 0;
|
||||
*writeprt++ = uchar;
|
||||
} else {
|
||||
*writeprt++ = uchar;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
/* nothing to do for arabic char if the previous was non-arabic */
|
||||
if (prev == 0) {
|
||||
prev = cur;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* if it's LAM, check for LAM+ALEPH ligatures */
|
||||
if (prev->isolated == 0xfedd) {
|
||||
switch (cur->isolated) {
|
||||
case 0xfe8d:
|
||||
ligature = &(lamaleph[0]);
|
||||
break;
|
||||
case 0xfe87:
|
||||
ligature = &(lamaleph[1]);
|
||||
break;
|
||||
case 0xfe83:
|
||||
ligature = &(lamaleph[2]);
|
||||
break;
|
||||
case 0xfe81:
|
||||
ligature = &(lamaleph[3]);
|
||||
}
|
||||
}
|
||||
|
||||
if (ligature) { /* replace the 2 glyphs by their ligature */
|
||||
prev = ligature;
|
||||
ligature = 0;
|
||||
} else {
|
||||
if (connected) { /* previous char has something connected to it */
|
||||
if (prev->medial && cur->final) /* Can we connect to it? */
|
||||
*writeprt++ = prev->medial;
|
||||
else {
|
||||
*writeprt++ = prev->final;
|
||||
connected = false;
|
||||
}
|
||||
} else {
|
||||
if (prev->initial && cur->final) { /* Can we connect to it? */
|
||||
*writeprt++ = prev->initial;
|
||||
connected = true;
|
||||
} else
|
||||
*writeprt++ = prev->isolated;
|
||||
}
|
||||
prev = cur;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unsigned short *bidi_l2v(const unsigned char *str, int orientation)
|
||||
{
|
||||
int length = utf8length(str);
|
||||
static unsigned short utf16_buf[MAX_PATH+1];
|
||||
static unsigned short bidi_buf[MAX_PATH+1];
|
||||
unsigned short *heb_str, *target, *tmp; // *broken_str
|
||||
int block_start, block_end, block_type, block_length, i;
|
||||
int block_ended;
|
||||
long max_chars=0;
|
||||
int begin, end, char_count, orig_begin;
|
||||
//long max_chars=0;
|
||||
//int begin, end, char_count, orig_begin;
|
||||
|
||||
if (!str || !*str)
|
||||
return (unsigned char *)"";
|
||||
return &(unsigned short){0};
|
||||
|
||||
tmp = (unsigned char *)str;
|
||||
block_start=block_end=0;
|
||||
block_ended=0;
|
||||
//tmp = str;
|
||||
target = tmp = utf16_buf;
|
||||
while (*str)
|
||||
str = utf8decode(str, target++);
|
||||
*target = 0;
|
||||
|
||||
heb_str = buf_heb_str;
|
||||
/* properly join any arabic chars */
|
||||
arabjoin(utf16_buf, length);
|
||||
|
||||
block_start=block_end=block_length=0;
|
||||
|
||||
heb_str = bidi_buf;
|
||||
if (orientation) {
|
||||
target = heb_str;
|
||||
opposite_target = heb_str + strlen(str);
|
||||
} else {
|
||||
target = heb_str + strlen(str);
|
||||
opposite_target = heb_str;
|
||||
target = heb_str + length;
|
||||
*target = 0;
|
||||
target--;
|
||||
}
|
||||
|
||||
block_length=0;
|
||||
|
||||
if (ischar(*tmp))
|
||||
block_type = _HEB_BLOCK_TYPE_HEB;
|
||||
else
|
||||
block_type = _HEB_BLOCK_TYPE_ENG;
|
||||
|
||||
|
||||
do {
|
||||
while((XOR(ischar((int)*(tmp+1)),block_type)
|
||||
|| _isblank((int)*(tmp+1)) || ispunct((int)*(tmp+1))
|
||||
|| (int)*(tmp+1)=='\n')
|
||||
&& block_end<(int)strlen(str)-1) {
|
||||
tmp++;
|
||||
block_end++;
|
||||
block_length++;
|
||||
while((XOR(ischar(*(tmp+1)),block_type)
|
||||
|| _isblank(*(tmp+1)) || ispunct((int)*(tmp+1))
|
||||
|| *(tmp+1)=='\n')
|
||||
&& block_end < length-1) {
|
||||
tmp++;
|
||||
block_end++;
|
||||
block_length++;
|
||||
}
|
||||
|
||||
|
||||
if (block_type != orientation) {
|
||||
while ((_isblank((int)*tmp) || ispunct((int)*tmp))
|
||||
while ((_isblank(*tmp) || ispunct((int)*tmp))
|
||||
&& *tmp!='/' && *tmp!='-' && block_end>block_start) {
|
||||
tmp--;
|
||||
block_end--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (i=block_start; i<=block_end; i++) {
|
||||
*target = (block_type == orientation) ? *(str+i) : *(str+block_end-i+block_start);
|
||||
*target = (block_type == orientation) ? *(utf16_buf+i) : *(utf16_buf+block_end-i+block_start);
|
||||
if (block_type!=orientation) {
|
||||
switch (*target) {
|
||||
case '(':
|
||||
|
@ -109,12 +202,15 @@ unsigned char *bidi_l2v(const char *str, int orientation)
|
|||
}
|
||||
block_type = !block_type;
|
||||
block_start=block_end+1;
|
||||
} while(block_end<(int)strlen(str)-1);
|
||||
|
||||
broken_str = buf_broken_str;
|
||||
begin=end=strlen(str)-1;
|
||||
} while(block_end<length-1);
|
||||
|
||||
*target = 0;
|
||||
|
||||
#if 0 /* Is this code really necessary? */
|
||||
broken_str = utf16_buf;
|
||||
begin=end=length-1;
|
||||
target = broken_str;
|
||||
|
||||
|
||||
while (1) {
|
||||
char_count=0;
|
||||
while ((!max_chars || char_count<max_chars) && begin>0) {
|
||||
|
@ -147,9 +243,9 @@ unsigned char *bidi_l2v(const char *str, int orientation)
|
|||
}
|
||||
orig_begin=begin;
|
||||
|
||||
if (_isblank(heb_str[begin])) {
|
||||
/* if (_isblank(heb_str[begin])) {
|
||||
heb_str[begin]='\n';
|
||||
}
|
||||
} */
|
||||
|
||||
/* skip leading newlines */
|
||||
while (begin<=end && _isnewline(heb_str[begin])) {
|
||||
|
@ -176,9 +272,7 @@ unsigned char *bidi_l2v(const char *str, int orientation)
|
|||
end=begin;
|
||||
}
|
||||
return broken_str;
|
||||
#endif
|
||||
return heb_str;
|
||||
}
|
||||
|
||||
void set_bidi_support(bool setting)
|
||||
{
|
||||
bidi_support_enabled = setting;
|
||||
}
|
||||
|
|
307
firmware/common/unicode.c
Normal file
307
firmware/common/unicode.c
Normal file
|
@ -0,0 +1,307 @@
|
|||
/* Some conversion functions for handling UTF-8
|
||||
*
|
||||
* copyright Marcoen Hirschberg (2004,2005)
|
||||
*
|
||||
* I got all the info from:
|
||||
* http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
* and
|
||||
* http://en.wikipedia.org/wiki/Unicode
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "file.h"
|
||||
#include "debug.h"
|
||||
#include "rbunicode.h"
|
||||
|
||||
#ifndef O_BINARY
|
||||
#define O_BINARY 0
|
||||
#endif
|
||||
|
||||
#define NUM_TABLES 5
|
||||
#define NUM_CODEPAGES 13
|
||||
|
||||
static int default_codepage = 0;
|
||||
static unsigned short codepage_table[MAX_CP_TABLE_SIZE];
|
||||
static int loaded_cp_table = 0;
|
||||
|
||||
|
||||
static const unsigned char utf8comp[6] =
|
||||
{
|
||||
0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC
|
||||
};
|
||||
|
||||
static const char *filename[NUM_TABLES] =
|
||||
{
|
||||
CODEPAGE_DIR"/iso.cp",
|
||||
CODEPAGE_DIR"/932.cp", /* SJIS */
|
||||
CODEPAGE_DIR"/936.cp", /* GB2312 */
|
||||
CODEPAGE_DIR"/949.cp", /* KSX1001 */
|
||||
CODEPAGE_DIR"/950.cp" /* BIG5 */
|
||||
};
|
||||
|
||||
static const char cp_2_table[NUM_CODEPAGES] =
|
||||
{
|
||||
0, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5
|
||||
};
|
||||
|
||||
/* Load codepage file into memory */
|
||||
int load_cp_table(int cp)
|
||||
{
|
||||
int i=0;
|
||||
int table = cp_2_table[cp];
|
||||
int file, tablesize;
|
||||
unsigned char tmp[2];
|
||||
|
||||
if (cp == 0 || table == loaded_cp_table)
|
||||
return 1;
|
||||
|
||||
file = open(filename[table-1], O_RDONLY|O_BINARY);
|
||||
|
||||
if (file < 0) {
|
||||
DEBUGF("Can't open codepage file: %s.cp\n", filename[table-1]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
tablesize = lseek(file, 0, SEEK_END) / 2;
|
||||
lseek(file, 0, SEEK_SET);
|
||||
|
||||
if (tablesize > MAX_CP_TABLE_SIZE) {
|
||||
DEBUGF("Invalid codepage file: %s.cp\n", filename[table-1]);
|
||||
close(file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (i < tablesize) {
|
||||
if (!read(file, tmp, 2)) {
|
||||
DEBUGF("Can't read from codepage file: %s.cp\n", filename[table-1]);
|
||||
loaded_cp_table = 0;
|
||||
return 0;
|
||||
}
|
||||
codepage_table[i++] = (tmp[1] << 8) | tmp[0];
|
||||
}
|
||||
|
||||
loaded_cp_table = table;
|
||||
close(file);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Encode a UCS value as UTF-8 and return a pointer after this UTF-8 char. */
|
||||
unsigned char* utf8encode(unsigned long ucs, unsigned char *utf8)
|
||||
{
|
||||
int tail = 0;
|
||||
|
||||
if (ucs > 0x7F)
|
||||
while (ucs >> (6*tail + 2))
|
||||
tail++;
|
||||
|
||||
*utf8++ = (ucs >> (6*tail)) | utf8comp[tail];
|
||||
while (tail--)
|
||||
*utf8++ = ((ucs >> (6*tail)) & (MASK ^ 0xFF)) | COMP;
|
||||
|
||||
return utf8;
|
||||
}
|
||||
|
||||
/* Recode an iso encoded string to UTF-8 */
|
||||
unsigned char* iso_decode(const unsigned char *iso, unsigned char *utf8,
|
||||
int cp, int count)
|
||||
{
|
||||
unsigned short ucs, tmp;
|
||||
|
||||
if (cp == -1) /* use default codepage */
|
||||
cp = default_codepage;
|
||||
|
||||
if (!load_cp_table(cp)) cp = 0;
|
||||
|
||||
while (count--) {
|
||||
if (*iso < 128)
|
||||
*utf8++ = *iso++;
|
||||
|
||||
else {
|
||||
|
||||
/* cp tells us which codepage to convert from */
|
||||
switch (cp) {
|
||||
case 0x01: /* Greek (ISO-8859-7) */
|
||||
case 0x02: /* Hebrew (ISO-8859-8) */
|
||||
case 0x03: /* Russian (CP1251) */
|
||||
case 0x04: /* Thai (ISO-8859-11) */
|
||||
case 0x05: /* Arabic (ISO-8859-6) */
|
||||
case 0x06: /* Turkish (ISO-8859-9) */
|
||||
case 0x07: /* Latin Extended (ISO-8859-2) */
|
||||
tmp = ((cp-1)*128) + (*iso++ - 128);
|
||||
ucs = codepage_table[tmp];
|
||||
break;
|
||||
|
||||
case 0x08: /* Japanese (SJIS) */
|
||||
if (*iso > 0xA0 && *iso < 0xE0) {
|
||||
tmp = *iso | 0xA100;
|
||||
ucs = codepage_table[tmp];
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x09: /* Simplified Chinese (GB2312) */
|
||||
case 0x0A: /* Korean (KSX1001) */
|
||||
case 0x0B: /* Traditional Chinese (BIG5) */
|
||||
if (count < 1 || !iso[1]) {
|
||||
ucs = *iso++;
|
||||
break;
|
||||
}
|
||||
|
||||
/* we assume all cjk strings are written
|
||||
in big endian order */
|
||||
tmp = *iso++ << 8;
|
||||
tmp |= *iso++;
|
||||
tmp -= 0x8000;
|
||||
ucs = codepage_table[tmp];
|
||||
count--;
|
||||
break;
|
||||
|
||||
case 0x0C: /* UTF-8, do nothing */
|
||||
default:
|
||||
ucs = *iso++;
|
||||
break;
|
||||
}
|
||||
|
||||
if (ucs == 0) /* unknown char, assume invalid encoding */
|
||||
ucs = 0xffff;
|
||||
utf8 = utf8encode(ucs, utf8);
|
||||
}
|
||||
}
|
||||
return utf8;
|
||||
}
|
||||
|
||||
/* Recode a UTF-16 string with little-endian byte ordering to UTF-8 */
|
||||
unsigned char* utf16LEdecode(const unsigned char *utf16, unsigned char *utf8, unsigned int count)
|
||||
{
|
||||
unsigned long ucs;
|
||||
|
||||
while (count != 0) {
|
||||
if (utf16[1] >= 0xD8 && utf16[1] < 0xE0) { /* Check for a surrogate pair */
|
||||
ucs = 0x10000 + ((utf16[0] << 10) | ((utf16[1] - 0xD8) << 18) | utf16[2] | ((utf16[3] - 0xDC) << 8));
|
||||
utf16 += 4;
|
||||
count -= 2;
|
||||
} else {
|
||||
ucs = (utf16[0] | (utf16[1] << 8));
|
||||
utf16 += 2;
|
||||
count -= 1;
|
||||
}
|
||||
utf8 = utf8encode(ucs, utf8);
|
||||
}
|
||||
return utf8;
|
||||
}
|
||||
|
||||
/* Recode a UTF-16 string with big-endian byte ordering to UTF-8 */
|
||||
unsigned char* utf16BEdecode(const unsigned char *utf16, unsigned char *utf8, unsigned int count)
|
||||
{
|
||||
unsigned long ucs;
|
||||
|
||||
while (count != 0) {
|
||||
if (*utf16 >= 0xD8 && *utf16 < 0xE0) { /* Check for a surrogate pair */
|
||||
ucs = 0x10000 + (((utf16[0] - 0xD8) << 18) | (utf16[1] << 10) | ((utf16[2] - 0xDC) << 8) | utf16[3]);
|
||||
utf16 += 4;
|
||||
count -= 2;
|
||||
} else {
|
||||
ucs = (utf16[0] << 8) | utf16[1];
|
||||
utf16 += 2;
|
||||
count -= 1;
|
||||
}
|
||||
utf8 = utf8encode(ucs, utf8);
|
||||
}
|
||||
return utf8;
|
||||
}
|
||||
|
||||
/* Recode any UTF-16 string to UTF-8 */
|
||||
//unsigned char* utf16decode(unsigned const char *utf16, unsigned char *utf8, unsigned int count)
|
||||
unsigned char* utf16decode(const unsigned char *utf16, unsigned char *utf8, unsigned int count)
|
||||
{
|
||||
unsigned long ucs;
|
||||
|
||||
ucs = *(utf16++) << 8;
|
||||
ucs |= *(utf16++);
|
||||
|
||||
if (ucs == 0xFEFF) /* Check for BOM */
|
||||
return utf16BEdecode(utf16, utf8, count-1);
|
||||
else if (ucs == 0xFFFE)
|
||||
return utf16LEdecode(utf16, utf8, count-1);
|
||||
else { /* ADDME: Should default be LE or BE? */
|
||||
utf16 -= 2;
|
||||
return utf16BEdecode(utf16, utf8, count);
|
||||
}
|
||||
}
|
||||
|
||||
/* Return the number of UTF-8 chars in a string */
|
||||
unsigned long utf8length(const unsigned char *utf8)
|
||||
{
|
||||
unsigned long l = 0;
|
||||
|
||||
while (*utf8 != 0)
|
||||
if ((*utf8++ & MASK) != COMP)
|
||||
l++;
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
/* Decode 1 UTF-8 char and return a pointer to the next char. */
|
||||
const unsigned char* utf8decode(const unsigned char *utf8, unsigned short *ucs)
|
||||
{
|
||||
unsigned char c = *utf8++;
|
||||
unsigned long code;
|
||||
int tail = 0;
|
||||
|
||||
if ((c <= 0x7f) || (c >= 0xc2)) {
|
||||
/* Start of new character. */
|
||||
if (c < 0x80) { /* U-00000000 - U-0000007F, 1 byte */
|
||||
code = c;
|
||||
} else if (c < 0xe0) { /* U-00000080 - U-000007FF, 2 bytes */
|
||||
tail = 1;
|
||||
code = c & 0x1f;
|
||||
} else if (c < 0xf0) { /* U-00000800 - U-0000FFFF, 3 bytes */
|
||||
tail = 2;
|
||||
code = c & 0x0f;
|
||||
} else if (c < 0xf5) { /* U-00010000 - U-001FFFFF, 4 bytes */
|
||||
tail = 3;
|
||||
code = c & 0x07;
|
||||
} else {
|
||||
/* Invalid size. */
|
||||
code = 0xffff;
|
||||
}
|
||||
|
||||
while (tail-- && ((c = *utf8++) != 0)) {
|
||||
if ((c & 0xc0) == 0x80) {
|
||||
/* Valid continuation character. */
|
||||
code = (code << 6) | (c & 0x3f);
|
||||
|
||||
} else {
|
||||
/* Invalid continuation char */
|
||||
code = 0xffff;
|
||||
utf8--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Invalid UTF-8 char */
|
||||
code = 0xffff;
|
||||
}
|
||||
/* currently we don't support chars above U-FFFF */
|
||||
*ucs = (code < 0x10000) ? code : 0xffff;
|
||||
return utf8;
|
||||
}
|
||||
|
||||
void set_codepage(int cp)
|
||||
{
|
||||
default_codepage = cp;
|
||||
return;
|
||||
}
|
||||
|
||||
/* seek to a given char in a utf8 string and
|
||||
return its start position in the string */
|
||||
int utf8seek(const unsigned char* utf8, int offset)
|
||||
{
|
||||
int pos = 0;
|
||||
|
||||
while (offset--) {
|
||||
pos++;
|
||||
while ((utf8[pos] & MASK) == COMP)
|
||||
pos++;
|
||||
}
|
||||
return pos;
|
||||
}
|
|
@ -28,6 +28,7 @@
|
|||
#include "system.h"
|
||||
#include "timefuncs.h"
|
||||
#include "kernel.h"
|
||||
#include "rbunicode.h"
|
||||
|
||||
#define BYTES2INT16(array,pos) \
|
||||
(array[pos] | (array[pos+1] << 8 ))
|
||||
|
@ -115,74 +116,6 @@
|
|||
#define FAT_BAD_MARK 0x0ffffff7
|
||||
#define FAT_EOF_MARK 0x0ffffff8
|
||||
|
||||
/* filename charset conversion table */
|
||||
static const unsigned char unicode2iso8859_2[] = {
|
||||
0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xb1, 0xc6, 0xe6, /* 0x0100 */
|
||||
0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x0108 */
|
||||
0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0110 */
|
||||
0xca, 0xea, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x0118 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0120 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0128 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0130 */
|
||||
0x00, 0xc5, 0xe5, 0x00, 0x00, 0xa5, 0xb5, 0x00, /* 0x0138 */
|
||||
0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0xd2, /* 0x0140 */
|
||||
0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0148 */
|
||||
0xd5, 0xf5, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x00, /* 0x0150 */
|
||||
0xd8, 0xf8, 0xa6, 0xb6, 0x00, 0x00, 0xaa, 0xba, /* 0x0158 */
|
||||
0xa9, 0xb9, 0xde, 0xfe, 0xab, 0xbb, 0x00, 0x00, /* 0x0160 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf9, /* 0x0168 */
|
||||
0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0170 */
|
||||
0x00, 0xac, 0xbc, 0xaf, 0xbf, 0xae, 0xbe, 0x00, /* 0x0178 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0188 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0190 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0198 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01a0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01a8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01b0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01b8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01d0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01d8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01e0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01e8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01f0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01f8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0208 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0210 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0218 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0220 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0228 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0230 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0238 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0248 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0250 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0258 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0260 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0268 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0270 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0278 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0288 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0290 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0298 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02a0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02a8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02b0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02b8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0x02c0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02d0 */
|
||||
0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0x02d8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02e0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02e8 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02f0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x02f8 */
|
||||
};
|
||||
|
||||
struct fsinfo {
|
||||
unsigned long freecount; /* last known free cluster count */
|
||||
unsigned long nextfree; /* first cluster to start looking for free
|
||||
|
@ -1106,10 +1039,11 @@ static int write_long_name(struct fat_file* file,
|
|||
unsigned char* entry;
|
||||
unsigned int idx = firstentry % DIR_ENTRIES_PER_SECTOR;
|
||||
unsigned int sector = firstentry / DIR_ENTRIES_PER_SECTOR;
|
||||
unsigned int i, j=0;
|
||||
unsigned char chksum = 0;
|
||||
int nameidx=0, namelen = strlen(name);
|
||||
unsigned int i, j=0;
|
||||
unsigned int nameidx=0, namelen = utf8length(name);
|
||||
int rc;
|
||||
unsigned short name_utf16[namelen + 1];
|
||||
|
||||
LDEBUGF("write_long_name(file:%lx, first:%d, num:%d, name:%s)\n",
|
||||
file->firstcluster, firstentry, numentries, name);
|
||||
|
@ -1132,6 +1066,11 @@ static int write_long_name(struct fat_file* file,
|
|||
nameidx < (namelen - NAME_BYTES_PER_ENTRY);
|
||||
nameidx += NAME_BYTES_PER_ENTRY);
|
||||
|
||||
/* we need to convert the name first */
|
||||
/* since it is written in reverse order */
|
||||
for (i = 0; i <= namelen; i++)
|
||||
name = utf8decode(name, &name_utf16[i]);
|
||||
|
||||
for (i=0; i < numentries; i++) {
|
||||
/* new sector? */
|
||||
if ( idx >= DIR_ENTRIES_PER_SECTOR ) {
|
||||
|
@ -1170,7 +1109,7 @@ static int write_long_name(struct fat_file* file,
|
|||
memset(entry, 0, DIR_ENTRY_SIZE);
|
||||
if ( i+1 < numentries ) {
|
||||
/* longname entry */
|
||||
int k, l = nameidx;
|
||||
unsigned int k, l = nameidx;
|
||||
|
||||
entry[FATLONG_ORDER] = numentries-i-1;
|
||||
if (i==0) {
|
||||
|
@ -1178,22 +1117,22 @@ static int write_long_name(struct fat_file* file,
|
|||
entry[FATLONG_ORDER] |= 0x40;
|
||||
|
||||
/* pad name with 0xffff */
|
||||
for (k=1; k<12; k++) entry[k] = 0xff;
|
||||
for (k=1; k<11; k++) entry[k] = 0xff;
|
||||
for (k=14; k<26; k++) entry[k] = 0xff;
|
||||
for (k=28; k<32; k++) entry[k] = 0xff;
|
||||
};
|
||||
/* set name */
|
||||
for (k=0; k<5 && l <= namelen; k++) {
|
||||
entry[k*2 + 1] = name[l++];
|
||||
entry[k*2 + 2] = 0;
|
||||
entry[k*2 + 1] = (unsigned char)(name_utf16[l] & 0xff);
|
||||
entry[k*2 + 2] = (unsigned char)(name_utf16[l++] >> 8);
|
||||
}
|
||||
for (k=0; k<6 && l <= namelen; k++) {
|
||||
entry[k*2 + 14] = name[l++];
|
||||
entry[k*2 + 15] = 0;
|
||||
entry[k*2 + 14] = (unsigned char)(name_utf16[l] & 0xff);
|
||||
entry[k*2 + 15] = (unsigned char)(name_utf16[l++] >> 8);
|
||||
}
|
||||
for (k=0; k<2 && l <= namelen; k++) {
|
||||
entry[k*2 + 28] = name[l++];
|
||||
entry[k*2 + 29] = 0;
|
||||
entry[k*2 + 28] = (unsigned char)(name_utf16[l] & 0xff);
|
||||
entry[k*2 + 29] = (unsigned char)(name_utf16[l++] >> 8);
|
||||
}
|
||||
|
||||
entry[FATDIR_ATTR] = FAT_ATTR_LONG_NAME;
|
||||
|
@ -1291,7 +1230,7 @@ static int add_dir_entry(struct fat_dir* dir,
|
|||
|
||||
/* one dir entry needed for every 13 bytes of filename,
|
||||
plus one entry for the short name */
|
||||
entries_needed = (strlen(name) + (NAME_BYTES_PER_ENTRY-1))
|
||||
entries_needed = (utf8length(name) + (NAME_BYTES_PER_ENTRY-1))
|
||||
/ NAME_BYTES_PER_ENTRY + 1;
|
||||
}
|
||||
|
||||
|
@ -2226,58 +2165,6 @@ int fat_opendir(IF_MV2(int volume,)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* convert from unicode to a single-byte charset */
|
||||
static void unicode2iso(const unsigned char* unicode, unsigned char* iso,
|
||||
int count)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0; i<count; i++) {
|
||||
int x = i*2;
|
||||
switch (unicode[x+1]) {
|
||||
case 0x01: /* latin extended. convert to ISO 8859-2 */
|
||||
case 0x02:
|
||||
iso[i] = unicode2iso8859_2[unicode[x]];
|
||||
break;
|
||||
|
||||
case 0x03: /* greek, convert to ISO 8859-7 */
|
||||
iso[i] = unicode[x] + 0x30;
|
||||
break;
|
||||
|
||||
/* Sergei says most russians use Win1251, so we will too.
|
||||
Win1251 differs from ISO 8859-5 by an offset of 0x10. */
|
||||
case 0x04: /* cyrillic, convert to Win1251 */
|
||||
switch (unicode[x]) {
|
||||
case 1:
|
||||
iso[i] = 168;
|
||||
break;
|
||||
|
||||
case 81:
|
||||
iso[i] = 184;
|
||||
break;
|
||||
|
||||
default:
|
||||
iso[i] = unicode[x] + 0xb0; /* 0xa0 for ISO 8859-5 */
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x05: /* hebrew, convert to ISO 8859-8 */
|
||||
iso[i] = unicode[x] + 0x10;
|
||||
break;
|
||||
|
||||
case 0x06: /* arabic, convert to ISO 8859-6 */
|
||||
case 0x0e: /* thai, convert to ISO 8859-11 */
|
||||
iso[i] = unicode[x] + 0xa0;
|
||||
break;
|
||||
|
||||
default:
|
||||
iso[i] = unicode[x];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int fat_getnext(struct fat_dir *dir, struct fat_direntry *entry)
|
||||
{
|
||||
bool done = false;
|
||||
|
@ -2348,7 +2235,8 @@ int fat_getnext(struct fat_dir *dir, struct fat_direntry *entry)
|
|||
|
||||
/* replace shortname with longname? */
|
||||
if ( longs ) {
|
||||
int j,l=0;
|
||||
int j;
|
||||
unsigned char* utf8 = entry->name;
|
||||
/* iterate backwards through the dir entries */
|
||||
for (j=longs-1; j>=0; j--) {
|
||||
unsigned char* ptr = cached_buf;
|
||||
|
@ -2370,16 +2258,11 @@ int fat_getnext(struct fat_dir *dir, struct fat_direntry *entry)
|
|||
index &= SECTOR_SIZE-1;
|
||||
}
|
||||
|
||||
/* names are stored in unicode, but we
|
||||
only grab the low byte (iso8859-1). */
|
||||
unicode2iso(ptr + index + 1, entry->name + l, 5);
|
||||
l+= 5;
|
||||
unicode2iso(ptr + index + 14, entry->name + l, 6);
|
||||
l+= 6;
|
||||
unicode2iso(ptr + index + 28, entry->name + l, 2);
|
||||
l+= 2;
|
||||
utf8 = utf16LEdecode(ptr + index + 1, utf8, 5);
|
||||
utf8 = utf16LEdecode(ptr + index + 14, utf8, 6);
|
||||
utf8 = utf16LEdecode(ptr + index + 28, utf8, 2);
|
||||
}
|
||||
entry->name[l]=0;
|
||||
*utf8 = 0;
|
||||
}
|
||||
done = true;
|
||||
sectoridx = 0;
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "debug.h"
|
||||
#include "system.h"
|
||||
#include "font.h"
|
||||
#include "rbunicode.h"
|
||||
#include "bidi.h"
|
||||
|
||||
#define SCROLLABLE_LINES 26
|
||||
|
@ -542,13 +543,13 @@ void lcd_bitmap(const fb_data *src, int x, int y, int width, int height)
|
|||
/* put a string at a given pixel position, skipping first ofs pixel columns */
|
||||
static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
||||
{
|
||||
int ch;
|
||||
unsigned short ch;
|
||||
unsigned short *ucs;
|
||||
struct font* pf = font_get(curfont);
|
||||
|
||||
if (bidi_support_enabled)
|
||||
str = bidi_l2v(str, 1);
|
||||
ucs = bidi_l2v(str, 1);
|
||||
|
||||
while ((ch = *str++) != '\0' && x < LCD_WIDTH)
|
||||
while ((ch = *ucs++) != 0 && x < LCD_WIDTH)
|
||||
{
|
||||
int width;
|
||||
const unsigned char *bits;
|
||||
|
@ -559,7 +560,7 @@ static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
|||
ch -= pf->firstchar;
|
||||
|
||||
/* get proportional width and glyph bits */
|
||||
width = pf->width ? pf->width[ch] : pf->maxwidth;
|
||||
width = font_get_width(pf,ch);
|
||||
|
||||
if (ofs > width)
|
||||
{
|
||||
|
@ -567,8 +568,7 @@ static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
|||
continue;
|
||||
}
|
||||
|
||||
bits = pf->bits + (pf->offset ?
|
||||
pf->offset[ch] : ((pf->height + 7) / 8 * pf->maxwidth * ch));
|
||||
bits = font_get_bits(pf, ch);
|
||||
|
||||
lcd_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs, pf->height);
|
||||
|
||||
|
@ -597,7 +597,7 @@ void lcd_puts_style(int x, int y, const unsigned char *str, int style)
|
|||
return;
|
||||
|
||||
lcd_getstringsize(str, &w, &h);
|
||||
xpos = xmargin + x*w / strlen(str);
|
||||
xpos = xmargin + x*w / utf8length(str);
|
||||
ypos = ymargin + y*h;
|
||||
lcd_putsxy(xpos, ypos, str);
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
|
@ -707,7 +707,7 @@ void lcd_puts_scroll_style(int x, int y, const unsigned char *string, int style)
|
|||
end = strchr(s->line, '\0');
|
||||
strncpy(end, string, LCD_WIDTH/2);
|
||||
|
||||
s->len = strlen(string);
|
||||
s->len = utf8length(string);
|
||||
s->offset = 0;
|
||||
s->startx = x;
|
||||
s->backward = false;
|
||||
|
@ -765,9 +765,11 @@ static void scroll_thread(void)
|
|||
}
|
||||
}
|
||||
else {
|
||||
/* scroll forward the whole time */
|
||||
if (s->offset >= s->width)
|
||||
s->offset %= s->width;
|
||||
/* pause at beginning of line */
|
||||
if (s->offset >= s->width) {
|
||||
s->offset = 0;
|
||||
s->start_tick = current_tick + scroll_delay * 2;
|
||||
}
|
||||
}
|
||||
|
||||
lastmode = drawmode;
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include "debug.h"
|
||||
#include "system.h"
|
||||
#include "font.h"
|
||||
#include "rbunicode.h"
|
||||
#include "bidi.h"
|
||||
|
||||
/*** definitions ***/
|
||||
|
@ -1091,13 +1092,13 @@ void lcd_remote_bitmap(const unsigned char *src, int x, int y, int width,
|
|||
/* put a string at a given pixel position, skipping first ofs pixel columns */
|
||||
static void lcd_remote_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
||||
{
|
||||
int ch;
|
||||
unsigned short ch;
|
||||
unsigned short *ucs;
|
||||
struct font* pf = font_get(curfont);
|
||||
|
||||
if (bidi_support_enabled)
|
||||
str = bidi_l2v(str, 1);
|
||||
ucs = bidi_l2v(str, 1);
|
||||
|
||||
while ((ch = *str++) != '\0' && x < LCD_REMOTE_WIDTH)
|
||||
while ((ch = *ucs++) != 0 && x < LCD_REMOTE_WIDTH)
|
||||
{
|
||||
int width;
|
||||
const unsigned char *bits;
|
||||
|
@ -1108,7 +1109,7 @@ static void lcd_remote_putsxyofs(int x, int y, int ofs, const unsigned char *str
|
|||
ch -= pf->firstchar;
|
||||
|
||||
/* get proportional width and glyph bits */
|
||||
width = pf->width ? pf->width[ch] : pf->maxwidth;
|
||||
width = font_get_width(pf, ch);
|
||||
|
||||
if (ofs > width)
|
||||
{
|
||||
|
@ -1116,8 +1117,7 @@ static void lcd_remote_putsxyofs(int x, int y, int ofs, const unsigned char *str
|
|||
continue;
|
||||
}
|
||||
|
||||
bits = pf->bits + (pf->offset ?
|
||||
pf->offset[ch] : ((pf->height + 7) / 8 * pf->maxwidth * ch));
|
||||
bits = font_get_bits(pf, ch);
|
||||
|
||||
lcd_remote_bitmap_part(bits, ofs, 0, width, x, y, width - ofs,
|
||||
pf->height);
|
||||
|
@ -1153,7 +1153,7 @@ void lcd_remote_puts_style(int x, int y, const unsigned char *str, int style)
|
|||
return;
|
||||
|
||||
lcd_remote_getstringsize(str, &w, &h);
|
||||
xpos = xmargin + x*w / strlen((char *)str);
|
||||
xpos = xmargin + x*w / utf8length((char *)str);
|
||||
ypos = ymargin + y*h;
|
||||
lcd_remote_putsxy(xpos, ypos, str);
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
|
@ -1256,7 +1256,7 @@ void lcd_remote_puts_scroll_style(int x, int y, const unsigned char *string, int
|
|||
end = strchr(s->line, '\0');
|
||||
strncpy(end, (char *)string, LCD_REMOTE_WIDTH/2);
|
||||
|
||||
s->len = strlen((char *)string);
|
||||
s->len = utf8length((char *)string);
|
||||
s->offset = 0;
|
||||
s->startx = x;
|
||||
s->backward = false;
|
||||
|
@ -1323,9 +1323,11 @@ static void scroll_thread(void)
|
|||
}
|
||||
}
|
||||
else {
|
||||
/* scroll forward the whole time */
|
||||
if (s->offset >= s->width)
|
||||
s->offset %= s->width;
|
||||
/* pause at beginning of line */
|
||||
if (s->offset >= s->width) {
|
||||
s->offset = 0;
|
||||
s->start_tick = current_tick + scroll_delay * 2;
|
||||
}
|
||||
}
|
||||
|
||||
lastmode = drawmode;
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "debug.h"
|
||||
#include "system.h"
|
||||
#include "font.h"
|
||||
#include "rbunicode.h"
|
||||
#include "bidi.h"
|
||||
|
||||
/*** definitions ***/
|
||||
|
@ -1014,13 +1015,13 @@ void lcd_bitmap(const unsigned char *src, int x, int y, int width, int height)
|
|||
/* put a string at a given pixel position, skipping first ofs pixel columns */
|
||||
static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
||||
{
|
||||
int ch;
|
||||
unsigned short ch;
|
||||
unsigned short *ucs;
|
||||
struct font* pf = font_get(curfont);
|
||||
|
||||
if (bidi_support_enabled)
|
||||
str = bidi_l2v(str, 1);
|
||||
ucs = bidi_l2v(str, 1);
|
||||
|
||||
while ((ch = *str++) != '\0' && x < LCD_WIDTH)
|
||||
while ((ch = *ucs++) != 0 && x < LCD_WIDTH)
|
||||
{
|
||||
int width;
|
||||
const unsigned char *bits;
|
||||
|
@ -1031,7 +1032,7 @@ static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
|||
ch -= pf->firstchar;
|
||||
|
||||
/* get proportional width and glyph bits */
|
||||
width = pf->width ? pf->width[ch] : pf->maxwidth;
|
||||
width = font_get_width(pf,ch);
|
||||
|
||||
if (ofs > width)
|
||||
{
|
||||
|
@ -1039,8 +1040,7 @@ static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
|||
continue;
|
||||
}
|
||||
|
||||
bits = pf->bits + (pf->offset ?
|
||||
pf->offset[ch] : ((pf->height + 7) / 8 * pf->maxwidth * ch));
|
||||
bits = font_get_bits(pf, ch);
|
||||
|
||||
lcd_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs, pf->height);
|
||||
|
||||
|
@ -1069,7 +1069,7 @@ void lcd_puts_style(int x, int y, const unsigned char *str, int style)
|
|||
return;
|
||||
|
||||
lcd_getstringsize(str, &w, &h);
|
||||
xpos = xmargin + x*w / strlen((char *)str);
|
||||
xpos = xmargin + x*w / utf8length((char *)str);
|
||||
ypos = ymargin + y*h;
|
||||
lcd_putsxy(xpos, ypos, str);
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
|
@ -1178,7 +1178,7 @@ void lcd_puts_scroll_style(int x, int y, const unsigned char *string, int style)
|
|||
end = strchr(s->line, '\0');
|
||||
strncpy(end, (char *)string, LCD_WIDTH/2);
|
||||
|
||||
s->len = strlen((char *)string);
|
||||
s->len = utf8length((char *)string);
|
||||
s->offset = 0;
|
||||
s->startx = x;
|
||||
s->backward = false;
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "system.h"
|
||||
#include "font.h"
|
||||
#include "lcd-player-charset.h"
|
||||
#include "rbunicode.h"
|
||||
|
||||
/*** definitions ***/
|
||||
|
||||
|
@ -323,9 +324,24 @@ static void lcd_puts_cont_scroll(int x, int y, const unsigned char *string)
|
|||
}
|
||||
void lcd_puts(int x, int y, const unsigned char *string)
|
||||
{
|
||||
int i=0;
|
||||
unsigned short ucs;
|
||||
const unsigned char *utf8 = string;
|
||||
unsigned char tmp[12];
|
||||
|
||||
while (*utf8 && i<11) {
|
||||
utf8 = utf8decode(utf8, &ucs);
|
||||
if (ucs < 256)
|
||||
tmp[i++] = ucs;
|
||||
else
|
||||
tmp[i++] = '?';
|
||||
}
|
||||
|
||||
tmp[i] = 0;
|
||||
|
||||
DEBUGF("lcd_puts(%d, %d) -> ", x, y);
|
||||
scroll[y].mode=SCROLL_MODE_OFF;
|
||||
return lcd_puts_cont_scroll(x, y, string);
|
||||
return lcd_puts_cont_scroll(x, y, tmp);
|
||||
}
|
||||
|
||||
void lcd_put_cursor(int x, int y, char cursor_char)
|
||||
|
@ -627,14 +643,28 @@ void lcd_bidir_scroll(int percent)
|
|||
void lcd_puts_scroll(int x, int y, const unsigned char* string )
|
||||
{
|
||||
struct scrollinfo* s;
|
||||
int i;
|
||||
int i=0;
|
||||
unsigned short ucs;
|
||||
const unsigned char *utf8 = string;
|
||||
unsigned char tmp[utf8length(string)+1];
|
||||
|
||||
while (*utf8) {
|
||||
utf8 = utf8decode(utf8, &ucs);
|
||||
if (ucs < 256)
|
||||
tmp[i++] = ucs;
|
||||
else
|
||||
tmp[i++] = '?';
|
||||
}
|
||||
|
||||
tmp[i] = 0;
|
||||
|
||||
|
||||
DEBUGF("lcd_puts_scroll(%d, %d, %s)\n", x, y, string);
|
||||
|
||||
s = &scroll[y];
|
||||
|
||||
lcd_puts_cont_scroll(x,y,string);
|
||||
s->textlen = strlen(string);
|
||||
lcd_puts_cont_scroll(x,y,tmp);
|
||||
s->textlen = strlen(tmp);
|
||||
|
||||
if ( s->textlen > 11-x ) {
|
||||
s->mode = SCROLL_MODE_RUN;
|
||||
|
@ -649,7 +679,7 @@ void lcd_puts_scroll(int x, int y, const unsigned char* string )
|
|||
s->jump_scroll_steps=11-x;
|
||||
s->jump_scroll=jump_scroll;
|
||||
}
|
||||
strncpy(s->text,string,sizeof s->text);
|
||||
strncpy(s->text,tmp,sizeof s->text);
|
||||
s->turn_offset=-1;
|
||||
if (bidir_limit && (s->textlen < ((11-x)*(100+bidir_limit))/100)) {
|
||||
s->turn_offset=s->textlen+x-11;
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "system.h"
|
||||
#include "font.h"
|
||||
#include "hwcompat.h"
|
||||
#include "rbunicode.h"
|
||||
#include "bidi.h"
|
||||
|
||||
/*** definitions ***/
|
||||
|
@ -844,13 +845,13 @@ void lcd_bitmap(const unsigned char *src, int x, int y, int width, int height)
|
|||
/* put a string at a given pixel position, skipping first ofs pixel columns */
|
||||
static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
||||
{
|
||||
int ch;
|
||||
unsigned short ch;
|
||||
unsigned short *ucs;
|
||||
struct font* pf = font_get(curfont);
|
||||
|
||||
if (bidi_support_enabled)
|
||||
str = bidi_l2v(str, 1);
|
||||
ucs = bidi_l2v(str, 1);
|
||||
|
||||
while ((ch = *str++) != '\0' && x < LCD_WIDTH)
|
||||
while ((ch = *ucs++) != 0 && x < LCD_WIDTH)
|
||||
{
|
||||
int width;
|
||||
const unsigned char *bits;
|
||||
|
@ -861,7 +862,7 @@ static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
|||
ch -= pf->firstchar;
|
||||
|
||||
/* get proportional width and glyph bits */
|
||||
width = pf->width ? pf->width[ch] : pf->maxwidth;
|
||||
width = font_get_width(pf,ch);
|
||||
|
||||
if (ofs > width)
|
||||
{
|
||||
|
@ -869,8 +870,7 @@ static void lcd_putsxyofs(int x, int y, int ofs, const unsigned char *str)
|
|||
continue;
|
||||
}
|
||||
|
||||
bits = pf->bits + (pf->offset ?
|
||||
pf->offset[ch] : ((pf->height + 7) / 8 * pf->maxwidth * ch));
|
||||
bits = font_get_bits(pf, ch);
|
||||
|
||||
lcd_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs, pf->height);
|
||||
|
||||
|
@ -898,7 +898,7 @@ void lcd_puts_style(int x, int y, const unsigned char *str, int style)
|
|||
return;
|
||||
|
||||
lcd_getstringsize(str, &w, &h);
|
||||
xpos = xmargin + x*w / strlen(str);
|
||||
xpos = xmargin + x*w / utf8length(str);
|
||||
ypos = ymargin + y*h;
|
||||
lcd_putsxy(xpos, ypos, str);
|
||||
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
|
@ -1007,7 +1007,7 @@ void lcd_puts_scroll_style(int x, int y, const unsigned char *string, int style)
|
|||
end = strchr(s->line, '\0');
|
||||
strncpy(end, string, LCD_WIDTH/2);
|
||||
|
||||
s->len = strlen(string);
|
||||
s->len = utf8length(string);
|
||||
s->offset = 0;
|
||||
s->startx = x;
|
||||
s->backward = false;
|
||||
|
|
|
@ -17,7 +17,5 @@
|
|||
*
|
||||
****************************************************************************/
|
||||
#ifndef BIDI_H
|
||||
extern unsigned char *bidi_l2v(const unsigned char *str, int orientation);
|
||||
extern bool bidi_support_enabled;
|
||||
extern void set_bidi_support(bool setting);
|
||||
extern unsigned short *bidi_l2v(const unsigned char *str, int orientation);
|
||||
#endif
|
||||
|
|
|
@ -31,10 +31,16 @@
|
|||
#if LCD_HEIGHT > 64
|
||||
#define MAX_FONT_SIZE 10000
|
||||
#else
|
||||
#define MAX_FONT_SIZE 4000
|
||||
#define MAX_FONT_SIZE 4000
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef FONT_HEADER_SIZE
|
||||
#define FONT_HEADER_SIZE 36
|
||||
#endif
|
||||
|
||||
#define GLYPH_CACHE_FILE "/.rockbox/.glyphcache"
|
||||
|
||||
/*
|
||||
* Fonts are specified by number, and used for display
|
||||
* of menu information as well as mp3 filename data.
|
||||
|
@ -88,6 +94,7 @@ struct font {
|
|||
const unsigned short *offset; /* offsets into bitmap data*/
|
||||
const unsigned char *width; /* character widths or NULL if fixed*/
|
||||
int defaultchar; /* default char (not glyph index)*/
|
||||
long bits_size; /* # bytes of glyph bits*/
|
||||
};
|
||||
|
||||
/* font routines*/
|
||||
|
@ -96,6 +103,10 @@ struct font* font_load(const char *path);
|
|||
struct font* font_get(int font);
|
||||
void font_reset(void);
|
||||
int font_getstringsize(const unsigned char *str, int *w, int *h, int fontnumber);
|
||||
int font_get_width(struct font* ft, unsigned short ch);
|
||||
const unsigned char * font_get_bits(struct font* ft, unsigned short ch);
|
||||
void glyph_cache_save(void);
|
||||
void glyph_cache_load(void);
|
||||
|
||||
#else /* HAVE_LCD_BITMAP */
|
||||
|
||||
|
|
|
@ -94,7 +94,7 @@ struct mp3entry {
|
|||
|
||||
/* these following two fields are used for local buffering */
|
||||
char id3v2buf[300];
|
||||
char id3v1buf[3][32];
|
||||
char id3v1buf[3][92];
|
||||
|
||||
/* resume related */
|
||||
unsigned long offset; /* bytes played */
|
||||
|
|
392
firmware/font.c
392
firmware/font.c
|
@ -33,6 +33,10 @@
|
|||
#include "file.h"
|
||||
#include "debug.h"
|
||||
#include "panic.h"
|
||||
#include "rbunicode.h"
|
||||
/* Font cache includes */
|
||||
#include "font_cache.h"
|
||||
#include "lru.h"
|
||||
|
||||
#ifndef O_BINARY
|
||||
#define O_BINARY 0
|
||||
|
@ -53,6 +57,16 @@ static unsigned char *freeptr = mbuf;
|
|||
static unsigned char *fileptr;
|
||||
static unsigned char *eofptr;
|
||||
|
||||
/* Font cache structures */
|
||||
static struct font_cache font_cache_ui;
|
||||
static int fnt_file = -1; /* >=0 if font is cached */
|
||||
unsigned long file_width_offset; /* offset to file width data */
|
||||
unsigned long file_offset_offset; /* offset to file offset data */
|
||||
static void cache_create(int maxwidth, int height);
|
||||
static int long_offset = 0;
|
||||
static int glyph_file;
|
||||
/* End Font cache structures */
|
||||
|
||||
void font_init(void)
|
||||
{
|
||||
memset(&font_ui, 0, sizeof(struct font));
|
||||
|
@ -94,41 +108,12 @@ void font_reset(void)
|
|||
memset(&font_ui, 0, sizeof(struct font));
|
||||
}
|
||||
|
||||
/* read and load font into incore font structure*/
|
||||
struct font* font_load(const char *path)
|
||||
static struct font* font_load_header(struct font *pf)
|
||||
{
|
||||
int fd, filesize;
|
||||
char version[4+1];
|
||||
unsigned short maxwidth, height, ascent, pad;
|
||||
unsigned long firstchar, defaultchar, size;
|
||||
unsigned long i, nbits, noffset, nwidth;
|
||||
char version[4+1];
|
||||
struct font* pf = &font_ui;
|
||||
|
||||
/* open and read entire font file*/
|
||||
fd = open(path, O_RDONLY|O_BINARY);
|
||||
if (fd < 0) {
|
||||
DEBUGF("Can't open font: %s\n", path);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
font_reset();
|
||||
|
||||
/* currently, font loading replaces earlier font allocation*/
|
||||
freeptr = (unsigned char *)(((int)mbuf + 3) & ~3);
|
||||
|
||||
fileptr = freeptr;
|
||||
filesize = read(fd, fileptr, MAX_FONT_SIZE);
|
||||
eofptr = fileptr + filesize;
|
||||
|
||||
/* no need for multiple font loads currently*/
|
||||
/*freeptr += filesize;*/
|
||||
/*freeptr = (unsigned char *)(freeptr + 3) & ~3;*/ /* pad freeptr*/
|
||||
|
||||
close(fd);
|
||||
if (filesize == MAX_FONT_SIZE) {
|
||||
DEBUGF("Font %s too large: %d\n", path, filesize);
|
||||
return NULL;
|
||||
}
|
||||
unsigned long nbits;
|
||||
|
||||
/* read magic and version #*/
|
||||
memset(version, 0, sizeof(version));
|
||||
|
@ -163,6 +148,14 @@ struct font* font_load(const char *path)
|
|||
/* # words of bitmap_t*/
|
||||
if (!readlong(&nbits))
|
||||
return NULL;
|
||||
pf->bits_size = nbits;
|
||||
|
||||
return pf;
|
||||
}
|
||||
/* Load memory font */
|
||||
struct font* font_load_in_memory(struct font* pf)
|
||||
{
|
||||
long i, noffset, nwidth;
|
||||
|
||||
/* # longs of offset*/
|
||||
if (!readlong(&noffset))
|
||||
|
@ -174,19 +167,44 @@ struct font* font_load(const char *path)
|
|||
|
||||
/* variable font data*/
|
||||
pf->bits = (unsigned char *)fileptr;
|
||||
fileptr += nbits*sizeof(unsigned char);
|
||||
fileptr += pf->bits_size*sizeof(unsigned char);
|
||||
|
||||
/* pad to 16 bit boundary*/
|
||||
fileptr = (unsigned char *)(((long)fileptr + 1) & ~1);
|
||||
if ( pf->bits_size < 0xFFDB )
|
||||
{
|
||||
/* pad to 16-bit boundary */
|
||||
fileptr = (unsigned char *)(((int)fileptr + 1) & ~1);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* pad to 32-bit boundary*/
|
||||
fileptr = (unsigned char *)(((int)fileptr + 3) & ~3);
|
||||
}
|
||||
|
||||
if (noffset) {
|
||||
pf->offset = (unsigned short *)fileptr;
|
||||
for (i=0; i<noffset; ++i)
|
||||
if (noffset)
|
||||
{
|
||||
if ( pf->bits_size < 0xFFDB )
|
||||
{
|
||||
unsigned short offset;
|
||||
if (!readshort(&offset))
|
||||
return NULL;
|
||||
((unsigned short*)(pf->offset))[i] = (unsigned short)offset;
|
||||
long_offset = 0;
|
||||
pf->offset = (unsigned short *)fileptr;
|
||||
for (i=0; i<noffset; ++i)
|
||||
{
|
||||
unsigned short offset;
|
||||
if (!readshort(&offset))
|
||||
return NULL;
|
||||
((unsigned short*)(pf->offset))[i] = (unsigned short)offset;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
long_offset = 1;
|
||||
pf->offset = (unsigned short *)fileptr;
|
||||
for (i=0; i<noffset; ++i)
|
||||
{
|
||||
unsigned long offset;
|
||||
if (!readlong(&offset))
|
||||
return NULL;
|
||||
((unsigned long*)(pf->offset))[i] = (unsigned long)offset;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -205,6 +223,141 @@ struct font* font_load(const char *path)
|
|||
return pf; /* success!*/
|
||||
}
|
||||
|
||||
/* Load cached font */
|
||||
struct font* font_load_cached(struct font* pf)
|
||||
{
|
||||
unsigned long noffset, nwidth;
|
||||
unsigned char* oldfileptr = fileptr;
|
||||
|
||||
/* # longs of offset*/
|
||||
if (!readlong(&noffset))
|
||||
return NULL;
|
||||
|
||||
/* # bytes of width*/
|
||||
if (!readlong(&nwidth))
|
||||
return NULL;
|
||||
|
||||
/* We are now at the bitmap data, this is fixed at 36.. */
|
||||
pf->bits = NULL;
|
||||
|
||||
/* Calculate offset to offset data */
|
||||
fileptr += pf->bits_size * sizeof(unsigned char);
|
||||
|
||||
if ( pf->bits_size < 0xFFDB )
|
||||
{
|
||||
long_offset = 0;
|
||||
/* pad to 16-bit boundary */
|
||||
fileptr = (unsigned char *)(((int)fileptr + 1) & ~1);
|
||||
}
|
||||
else
|
||||
{
|
||||
long_offset = 1;
|
||||
/* pad to 32-bit boundary*/
|
||||
fileptr = (unsigned char *)(((int)fileptr + 3) & ~3);
|
||||
}
|
||||
|
||||
if (noffset)
|
||||
file_offset_offset = (unsigned long)(fileptr - freeptr);
|
||||
else
|
||||
file_offset_offset = 0;
|
||||
|
||||
/* Calculate offset to widths data */
|
||||
if ( pf->bits_size < 0xFFDB )
|
||||
fileptr += noffset * sizeof(unsigned short);
|
||||
else
|
||||
fileptr += noffset * sizeof(unsigned long);
|
||||
|
||||
if (nwidth)
|
||||
file_width_offset = (unsigned long)(fileptr - freeptr);
|
||||
else
|
||||
file_width_offset = 0;
|
||||
|
||||
fileptr = oldfileptr;
|
||||
|
||||
/* Create the cache */
|
||||
cache_create(pf->maxwidth, pf->height);
|
||||
|
||||
return pf;
|
||||
}
|
||||
|
||||
/* read and load font into incore font structure*/
|
||||
struct font* font_load(const char *path)
|
||||
{
|
||||
int filesize;
|
||||
struct font* pf = &font_ui;
|
||||
|
||||
/* save loaded glyphs */
|
||||
glyph_cache_save();
|
||||
|
||||
/* Close font file handle */
|
||||
if (fnt_file >= 0)
|
||||
close(fnt_file);
|
||||
|
||||
/* open and read entire font file*/
|
||||
fnt_file = open(path, O_RDONLY|O_BINARY);
|
||||
|
||||
if (fnt_file < 0) {
|
||||
DEBUGF("Can't open font: %s\n", path);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Check file size */
|
||||
filesize = lseek(fnt_file, 0, SEEK_END);
|
||||
lseek(fnt_file, 0, SEEK_SET);
|
||||
|
||||
font_reset();
|
||||
|
||||
/* currently, font loading replaces earlier font allocation*/
|
||||
freeptr = (unsigned char *)(((int)mbuf + 3) & ~3);
|
||||
fileptr = freeptr;
|
||||
|
||||
|
||||
if (filesize > MAX_FONT_SIZE)
|
||||
{
|
||||
read(fnt_file, fileptr, FONT_HEADER_SIZE);
|
||||
eofptr = fileptr + FONT_HEADER_SIZE;
|
||||
|
||||
if (!font_load_header(pf))
|
||||
{
|
||||
DEBUGF("Failed font header load");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!font_load_cached(pf))
|
||||
{
|
||||
DEBUGF("Failed font cache load");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
glyph_cache_load();
|
||||
}
|
||||
else
|
||||
{
|
||||
read(fnt_file, fileptr, MAX_FONT_SIZE);
|
||||
eofptr = fileptr + filesize;
|
||||
close(fnt_file);
|
||||
fnt_file = -1;
|
||||
|
||||
if (!font_load_header(pf))
|
||||
{
|
||||
DEBUGF("Failed font header load");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!font_load_in_memory(pf))
|
||||
{
|
||||
DEBUGF("Failed mem load");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* no need for multiple font loads currently*/
|
||||
/*freeptr += filesize;*/
|
||||
/*freeptr = (unsigned char *)(freeptr + 3) & ~3;*/ /* pad freeptr*/
|
||||
|
||||
return pf; /* success!*/
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a pointer to an incore font structure.
|
||||
* If the requested font isn't loaded/compiled-in,
|
||||
|
@ -231,17 +384,18 @@ struct font* font_get(int font)
|
|||
int font_getstringsize(const unsigned char *str, int *w, int *h, int fontnumber)
|
||||
{
|
||||
struct font* pf = font_get(fontnumber);
|
||||
int ch;
|
||||
unsigned short ch;
|
||||
int width = 0;
|
||||
|
||||
while((ch = *str++)) {
|
||||
for (str = utf8decode(str, &ch); ch != 0 ; str = utf8decode(str, &ch))
|
||||
{
|
||||
/* check input range*/
|
||||
if (ch < pf->firstchar || ch >= pf->firstchar+pf->size)
|
||||
ch = pf->defaultchar;
|
||||
ch -= pf->firstchar;
|
||||
|
||||
/* get proportional width and glyph bits*/
|
||||
width += pf->width? pf->width[ch]: pf->maxwidth;
|
||||
width += font_get_width(pf,ch);
|
||||
}
|
||||
if ( w )
|
||||
*w = width;
|
||||
|
@ -250,6 +404,154 @@ int font_getstringsize(const unsigned char *str, int *w, int *h, int fontnumber)
|
|||
return width;
|
||||
}
|
||||
|
||||
/*
|
||||
* Reads an entry into cache entry
|
||||
*/
|
||||
static void
|
||||
load_cache_entry(struct font_cache_entry* p, void* callback_data)
|
||||
{
|
||||
struct font* pf = callback_data;
|
||||
unsigned short char_code = p->_char_code;
|
||||
unsigned char tmp[2];
|
||||
|
||||
if (file_width_offset)
|
||||
{
|
||||
int width_offset = file_width_offset + char_code;
|
||||
lseek(fnt_file, width_offset, SEEK_SET);
|
||||
read(fnt_file, &(p->width), 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
p->width = pf->maxwidth;
|
||||
}
|
||||
|
||||
long bitmap_offset = 0;
|
||||
|
||||
if (file_offset_offset)
|
||||
{
|
||||
long offset = file_offset_offset + char_code * (long_offset ? sizeof(long) : sizeof(short));
|
||||
lseek(fnt_file, offset, SEEK_SET);
|
||||
read (fnt_file, tmp, 2);
|
||||
bitmap_offset = tmp[0] | (tmp[1] << 8);
|
||||
if (long_offset) {
|
||||
read (fnt_file, tmp, 2);
|
||||
bitmap_offset |= (tmp[0] << 16) | (tmp[1] << 24);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bitmap_offset = ((pf->height + 7) / 8) * p->width * char_code;
|
||||
}
|
||||
|
||||
long file_offset = FONT_HEADER_SIZE + bitmap_offset;
|
||||
lseek(fnt_file, file_offset, SEEK_SET);
|
||||
|
||||
int src_bytes = p->width * ((pf->height + 7) / 8);
|
||||
read(fnt_file, p->bitmap, src_bytes);
|
||||
}
|
||||
|
||||
/*
|
||||
* Converts cbuf into a font cache
|
||||
*/
|
||||
static void cache_create(int maxwidth, int height)
|
||||
{
|
||||
/* maximum size of rotated bitmap */
|
||||
int bitmap_size = maxwidth * ((height + 7) / 8);
|
||||
|
||||
/* Initialise cache */
|
||||
font_cache_create(&font_cache_ui, mbuf, MAX_FONT_SIZE, bitmap_size);
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns width of character
|
||||
*/
|
||||
int font_get_width(struct font* pf, unsigned short char_code)
|
||||
{
|
||||
return (fnt_file >= 0 && pf != &sysfont)?
|
||||
font_cache_get(&font_cache_ui,char_code,load_cache_entry,pf)->width:
|
||||
pf->width? pf->width[char_code]: pf->maxwidth;
|
||||
}
|
||||
|
||||
const unsigned char* font_get_bits(struct font* pf, unsigned short char_code)
|
||||
{
|
||||
const unsigned char* bits;
|
||||
if (fnt_file >= 0 && pf != &sysfont)
|
||||
{
|
||||
bits =
|
||||
(unsigned char*)font_cache_get(&font_cache_ui,char_code,load_cache_entry,pf)->bitmap;
|
||||
}
|
||||
else
|
||||
{
|
||||
bits = pf->bits + (pf->offset?
|
||||
pf->offset[char_code]:
|
||||
(((pf->height + 7) / 8) * pf->maxwidth * char_code));
|
||||
}
|
||||
|
||||
return bits;
|
||||
}
|
||||
|
||||
void glyph_file_write(void* data)
|
||||
{
|
||||
struct font_cache_entry* p = data;
|
||||
unsigned char tmp[2];
|
||||
|
||||
if (p->_char_code != 0xffff && glyph_file >= 0) {
|
||||
tmp[0] = p->_char_code >> 8;
|
||||
tmp[1] = p->_char_code & 0xff;
|
||||
if (write(glyph_file, tmp, 2) != 2) {
|
||||
close(glyph_file);
|
||||
glyph_file = -1;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* save the char codes of the loaded glyphs to a file */
|
||||
void glyph_cache_save(void)
|
||||
{
|
||||
|
||||
if (fnt_file >= 0) {
|
||||
|
||||
glyph_file = creat(GLYPH_CACHE_FILE, 0);
|
||||
|
||||
if (glyph_file < 0) return;
|
||||
|
||||
lru_traverse(&font_cache_ui._lru, glyph_file_write);
|
||||
|
||||
if (glyph_file >= 0)
|
||||
close(glyph_file);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void glyph_cache_load(void)
|
||||
{
|
||||
if (fnt_file >= 0) {
|
||||
|
||||
int fd;
|
||||
unsigned char tmp[2];
|
||||
unsigned short ch;
|
||||
struct font* pf = &font_ui;
|
||||
|
||||
fd = open(GLYPH_CACHE_FILE, O_RDONLY|O_BINARY);
|
||||
|
||||
if (fd >= 0) {
|
||||
|
||||
while (read(fd, tmp, 2) == 2) {
|
||||
ch = (tmp[0] << 8) | tmp[1];
|
||||
font_get_bits(pf, ch);
|
||||
}
|
||||
|
||||
close(fd);
|
||||
} else {
|
||||
/* load latin1 chars into cache */
|
||||
ch = 255 - pf->firstchar;
|
||||
while (ch--)
|
||||
font_get_bits(pf, ch);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
#endif /* HAVE_LCD_BITMAP */
|
||||
|
||||
|
|
224
firmware/font_cache.c
Normal file
224
firmware/font_cache.c
Normal file
|
@ -0,0 +1,224 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
*
|
||||
* Copyright (C) 2003 Tat Tang
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include <string.h>
|
||||
#include "font_cache.h"
|
||||
#include "debug.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* font_cache_lru_init
|
||||
******************************************************************************/
|
||||
void font_cache_lru_init(void* data)
|
||||
{
|
||||
struct font_cache_entry* p = data;
|
||||
p->_char_code = 0xffff; /* assume invalid char */
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* font_cache_create
|
||||
******************************************************************************/
|
||||
void font_cache_create(
|
||||
struct font_cache* fcache,
|
||||
void *buf,
|
||||
int buf_size,
|
||||
int bitmap_bytes_size)
|
||||
{
|
||||
int font_cache_entry_size =
|
||||
sizeof(struct font_cache_entry) + bitmap_bytes_size;
|
||||
|
||||
/* make sure font cache entries are a multiple of 16 bits */
|
||||
if (font_cache_entry_size % 2 != 0)
|
||||
font_cache_entry_size++;
|
||||
|
||||
int cache_size = buf_size /
|
||||
(font_cache_entry_size + LRU_SLOT_OVERHEAD + sizeof(short));
|
||||
|
||||
fcache->_size = 1;
|
||||
fcache->_capacity = cache_size;
|
||||
|
||||
/* set up index */
|
||||
fcache->_index = buf;
|
||||
|
||||
/* set up lru list */
|
||||
unsigned char* lru_buf = buf;
|
||||
lru_buf += sizeof(short) * cache_size;
|
||||
lru_create(&fcache->_lru, lru_buf, cache_size, font_cache_entry_size);
|
||||
|
||||
/* initialise cache */
|
||||
lru_traverse(&fcache->_lru, font_cache_lru_init);
|
||||
short i;
|
||||
for (i = 0; i < cache_size; i++)
|
||||
fcache->_index[i] = i; /* small cheat here */
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* font_cache_index_of
|
||||
******************************************************************************/
|
||||
int font_cache_index_of(
|
||||
struct font_cache* fcache,
|
||||
unsigned short char_code)
|
||||
{
|
||||
struct font_cache_entry* p;
|
||||
int left, right, mid, c;
|
||||
left = 0;
|
||||
right = fcache->_size - 1;
|
||||
|
||||
do
|
||||
{
|
||||
mid = (left + right) / 2;
|
||||
|
||||
p = lru_data(&fcache->_lru, fcache->_index[mid]);
|
||||
c = p->_char_code - char_code;
|
||||
|
||||
if (c == 0)
|
||||
return mid;
|
||||
|
||||
if (c < 0)
|
||||
left = mid + 1;
|
||||
else
|
||||
right = mid - 1;
|
||||
}
|
||||
while (left <= right);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* font_cache_insertion_point
|
||||
******************************************************************************/
|
||||
int font_cache_insertion_point(
|
||||
struct font_cache* fcache,
|
||||
unsigned short char_code)
|
||||
{
|
||||
struct font_cache_entry* p;
|
||||
short *index = fcache->_index;
|
||||
|
||||
p = lru_data(&fcache->_lru, index[0]);
|
||||
if (char_code < p->_char_code)
|
||||
return -1;
|
||||
|
||||
p = lru_data(&fcache->_lru, index[fcache->_capacity - 1]);
|
||||
if (char_code > p->_char_code)
|
||||
return fcache->_capacity - 1;
|
||||
|
||||
int left, right, mid, c;
|
||||
|
||||
left = 0;
|
||||
right = fcache->_capacity - 1;
|
||||
|
||||
do
|
||||
{
|
||||
mid = (left + right) / 2;
|
||||
|
||||
p = lru_data(&fcache->_lru, index[mid]);
|
||||
c = char_code - p->_char_code;
|
||||
|
||||
if (c >= 0)
|
||||
{
|
||||
p = lru_data(&fcache->_lru, index[mid+1]);
|
||||
int z = char_code - p->_char_code;
|
||||
|
||||
if (z < 0)
|
||||
return mid;
|
||||
|
||||
if (z == 0)
|
||||
return mid + 1;
|
||||
}
|
||||
|
||||
|
||||
if (c > 0)
|
||||
left = mid + 1;
|
||||
else
|
||||
right = mid - 1;
|
||||
}
|
||||
while (left <= right);
|
||||
|
||||
/* not found */
|
||||
return -2;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* font_cache_get
|
||||
******************************************************************************/
|
||||
struct font_cache_entry* font_cache_get(
|
||||
struct font_cache* fcache,
|
||||
unsigned short char_code,
|
||||
void (*callback) (struct font_cache_entry* p, void *callback_data),
|
||||
void *callback_data)
|
||||
{
|
||||
int insertion_point = font_cache_insertion_point(fcache, char_code);
|
||||
if (insertion_point >= 0)
|
||||
{
|
||||
short lru_handle = fcache->_index[insertion_point];
|
||||
struct font_cache_entry* p = lru_data(&fcache->_lru, lru_handle);
|
||||
if (p->_char_code == char_code)
|
||||
{
|
||||
lru_touch(&fcache->_lru, lru_handle);
|
||||
return lru_data(&fcache->_lru, lru_handle);
|
||||
}
|
||||
}
|
||||
|
||||
/* not found */
|
||||
short lru_handle_to_replace = fcache->_lru._head;
|
||||
struct font_cache_entry* p =
|
||||
lru_data(&fcache->_lru, lru_handle_to_replace);
|
||||
int index_to_replace = font_cache_index_of(fcache, p->_char_code);
|
||||
|
||||
if (insertion_point < index_to_replace)
|
||||
{
|
||||
/* shift memory down */
|
||||
int dest = insertion_point+2;
|
||||
int src = insertion_point+1;
|
||||
int len = index_to_replace - insertion_point - 1;
|
||||
|
||||
int desti = dest + len - 1;
|
||||
int srci = src + len - 1;
|
||||
|
||||
int i;
|
||||
for (i = 0; i < len; i++)
|
||||
fcache->_index[desti--] = fcache->_index[srci--];
|
||||
|
||||
/* add to index */
|
||||
fcache->_index[insertion_point + 1] = lru_handle_to_replace;
|
||||
}
|
||||
else if (insertion_point > index_to_replace)
|
||||
{
|
||||
/* shift memory up */
|
||||
int dest = index_to_replace;
|
||||
int src = index_to_replace + 1;
|
||||
int len = insertion_point - index_to_replace;
|
||||
|
||||
int i;
|
||||
for (i=0; i < len; i++)
|
||||
fcache->_index[dest++] = fcache->_index[src++];
|
||||
|
||||
/* add to index */
|
||||
fcache->_index[insertion_point] = lru_handle_to_replace;
|
||||
}
|
||||
|
||||
/* load new entry into cache */
|
||||
lru_touch(&fcache->_lru, lru_handle_to_replace);
|
||||
|
||||
if (fcache->_size < fcache->_capacity)
|
||||
fcache->_size++;
|
||||
|
||||
p->_char_code = char_code;
|
||||
callback(p, callback_data);
|
||||
|
||||
return p;
|
||||
}
|
199
firmware/id3.c
199
firmware/id3.c
|
@ -42,6 +42,7 @@
|
|||
#include "mp3data.h"
|
||||
#include "system.h"
|
||||
#include "replaygain.h"
|
||||
#include "rbunicode.h"
|
||||
|
||||
#define UNSYNC(b0,b1,b2,b3) (((long)(b0 & 0x7F) << (3*7)) | \
|
||||
((long)(b1 & 0x7F) << (2*7)) | \
|
||||
|
@ -359,100 +360,83 @@ static const struct tag_resolver taglist[] = {
|
|||
#define TAGLIST_SIZE ((int)(sizeof(taglist) / sizeof(taglist[0])))
|
||||
|
||||
/* Checks to see if the passed in string is a 16-bit wide Unicode v2
|
||||
string. If it is, we attempt to convert it to a 8-bit ASCII string
|
||||
(for valid 8-bit ASCII characters). If it's not unicode, we leave
|
||||
it alone. At some point we should fully support unicode strings */
|
||||
static int unicode_munge(char* string, int *len) {
|
||||
long tmp;
|
||||
bool le = false;
|
||||
int i;
|
||||
char *str = string;
|
||||
char *outstr = string;
|
||||
bool bom = false;
|
||||
int outlen;
|
||||
string. If it is, we convert it to a UTF-8 string. If it's not unicode,
|
||||
we convert from the default codepage */
|
||||
static int unicode_munge(char* string, char* utf8buf, int *len) {
|
||||
long tmp;
|
||||
bool le = false;
|
||||
int i = 0;
|
||||
char *str = string;
|
||||
int templen = 0;
|
||||
char* utf8 = utf8buf;
|
||||
|
||||
if(str[0] > 0x03) {
|
||||
/* Plain old string */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Type 0x00 is ordinary ISO 8859-1 */
|
||||
if(str[0] == 0x00) {
|
||||
int i = --(*len);
|
||||
switch (str[0]) {
|
||||
case 0x00: /* Type 0x00 is ordinary ISO 8859-1 */
|
||||
str++;
|
||||
(*len)--;
|
||||
utf8 = iso_decode(str, utf8, -1, *len);
|
||||
*utf8 = 0;
|
||||
*len = strlen(utf8buf);
|
||||
break;
|
||||
|
||||
/* We must move the string to the left */
|
||||
while (i--) {
|
||||
string[0] = string[1];
|
||||
string++;
|
||||
}
|
||||
case 0x01: /* Unicode with or without BOM */
|
||||
case 0x02:
|
||||
(*len)--;
|
||||
str++;
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* Handle frames with more than one string
|
||||
(needed for TXXX frames).*/
|
||||
do {
|
||||
tmp = BYTES2INT(0, 0, str[0], str[1]);
|
||||
|
||||
/* Unicode with or without BOM */
|
||||
if(str[0] == 0x01 || str[0] == 0x02) {
|
||||
(*len)--;
|
||||
str++;
|
||||
i = 0;
|
||||
|
||||
/* Handle frames with more than one string (needed for TXXX frames).
|
||||
*/
|
||||
do {
|
||||
tmp = BYTES2INT(0, 0, str[0], str[1]);
|
||||
|
||||
/* Now check if there is a BOM (zero-width non-breaking space, 0xfeff)
|
||||
and if it is in little or big endian format */
|
||||
if(tmp == 0xfffe) { /* Little endian? */
|
||||
bom = true;
|
||||
le = true;
|
||||
str += 2;
|
||||
(*len)-=2;
|
||||
}
|
||||
|
||||
if(tmp == 0xfeff) { /* Big endian? */
|
||||
bom = true;
|
||||
str += 2;
|
||||
(*len)-=2;
|
||||
}
|
||||
|
||||
/* If there is no BOM (which is a specification violation),
|
||||
let's try to guess it. If one of the bytes is 0x00, it is
|
||||
probably the most significant one. */
|
||||
if(!bom) {
|
||||
if(str[1] == 0)
|
||||
le = true;
|
||||
}
|
||||
|
||||
outlen = *len / 2;
|
||||
/* Now check if there is a BOM
|
||||
(zero-width non-breaking space, 0xfeff)
|
||||
and if it is in little or big endian format */
|
||||
if(tmp == 0xfffe) { /* Little endian? */
|
||||
le = true;
|
||||
str += 2;
|
||||
(*len)-=2;
|
||||
} else if(tmp == 0xfeff) { /* Big endian? */
|
||||
str += 2;
|
||||
(*len)-=2;
|
||||
} else
|
||||
/* If there is no BOM (which is a specification violation),
|
||||
let's try to guess it. If one of the bytes is 0x00, it is
|
||||
probably the most significant one. */
|
||||
if(str[1] == 0)
|
||||
le = true;
|
||||
|
||||
do {
|
||||
if(le) {
|
||||
if(str[1])
|
||||
outstr[i++] = '.';
|
||||
else
|
||||
outstr[i++] = str[0];
|
||||
} else {
|
||||
if(str[0])
|
||||
outstr[i++] = '.';
|
||||
else
|
||||
outstr[i++] = str[1];
|
||||
}
|
||||
str += 2;
|
||||
} while((str[0] || str[1]) && (i < outlen));
|
||||
do {
|
||||
if(le)
|
||||
utf8 = utf16LEdecode(str, utf8, 1);
|
||||
else
|
||||
utf8 = utf16BEdecode(str, utf8, 1);
|
||||
|
||||
str += 2;
|
||||
outstr[i++] = 0; /* Terminate the string */
|
||||
} while(i < outlen);
|
||||
str+=2;
|
||||
i += 2;
|
||||
} while((str[0] || str[1]) && (i < *len));
|
||||
|
||||
*len = i - 1;
|
||||
*utf8++ = 0; /* Terminate the string */
|
||||
templen += (strlen(&utf8buf[templen]) + 1);
|
||||
str += 2;
|
||||
i+=2;
|
||||
} while(i < *len);
|
||||
*len = templen - 1;
|
||||
break;
|
||||
|
||||
return 0;
|
||||
}
|
||||
case 0x03: /* UTF-8 encoded string */
|
||||
for(i=0; i < *len; i++)
|
||||
utf8[i] = str[i+1];
|
||||
*len = strlen(utf8buf);
|
||||
break;
|
||||
|
||||
/* If we come here, the string was of an unsupported type */
|
||||
*len = 1;
|
||||
outstr[0] = 0;
|
||||
return -1;
|
||||
default: /* Plain old string */
|
||||
utf8 = iso_decode(str, utf8, -1, *len);
|
||||
*utf8 = 0;
|
||||
*len = strlen(utf8buf);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -468,6 +452,7 @@ static bool setid3v1title(int fd, struct mp3entry *entry)
|
|||
unsigned char buffer[128];
|
||||
static const char offsets[] = {3, 33, 63, 93, 125, 127};
|
||||
int i, j;
|
||||
unsigned char* utf8;
|
||||
|
||||
if (-1 == lseek(fd, -128, SEEK_END))
|
||||
return false;
|
||||
|
@ -482,8 +467,8 @@ static bool setid3v1title(int fd, struct mp3entry *entry)
|
|||
entry->id3version = ID3_VER_1_0;
|
||||
|
||||
for (i=0; i < (int)sizeof offsets; i++) {
|
||||
char* ptr = (char *)buffer + offsets[i];
|
||||
|
||||
unsigned char* ptr = (unsigned char *)buffer + offsets[i];
|
||||
|
||||
if (i<3) {
|
||||
/* kill trailing space in strings */
|
||||
for (j=29; j && ptr[j]==' '; j--)
|
||||
|
@ -492,18 +477,13 @@ static bool setid3v1title(int fd, struct mp3entry *entry)
|
|||
|
||||
switch(i) {
|
||||
case 0:
|
||||
strncpy(entry->id3v1buf[2], ptr, 30);
|
||||
entry->title = entry->id3v1buf[2];
|
||||
break;
|
||||
|
||||
case 1:
|
||||
strncpy(entry->id3v1buf[0], ptr, 30);
|
||||
entry->artist = entry->id3v1buf[0];
|
||||
break;
|
||||
|
||||
case 2:
|
||||
strncpy(entry->id3v1buf[1], ptr, 30);
|
||||
entry->album = entry->id3v1buf[1];
|
||||
/* convert string to utf8 */
|
||||
utf8 = entry->id3v1buf[i];
|
||||
utf8 = iso_decode(ptr, utf8, -1, 30);
|
||||
/* make sure string is terminated */
|
||||
*utf8 = 0;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
@ -527,6 +507,10 @@ static bool setid3v1title(int fd, struct mp3entry *entry)
|
|||
}
|
||||
}
|
||||
|
||||
entry->title = entry->id3v1buf[0];
|
||||
entry->artist = entry->id3v1buf[1];
|
||||
entry->album = entry->id3v1buf[2];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -556,7 +540,7 @@ static void setid3v2title(int fd, struct mp3entry *entry)
|
|||
bool global_unsynch = false;
|
||||
bool unsynch = false;
|
||||
int data_length_ind;
|
||||
int i;
|
||||
int i, j;
|
||||
int rc;
|
||||
|
||||
global_ff_found = false;
|
||||
|
@ -789,7 +773,18 @@ static void setid3v2title(int fd, struct mp3entry *entry)
|
|||
if(unsynch || (global_unsynch && version >= ID3_VER_2_4))
|
||||
bytesread = unsynchronize_frame(tag, bytesread);
|
||||
|
||||
unicode_munge( tag, &bytesread );
|
||||
|
||||
/* UTF-8 could potentially be 3 times larger */
|
||||
/* so we need to create a new buffer */
|
||||
char utf8buf[(3 * bytesread) + 1];
|
||||
|
||||
unicode_munge( tag, utf8buf, &bytesread );
|
||||
|
||||
if(bytesread >= buffersize - bufferpos)
|
||||
bytesread = buffersize - bufferpos - 1;
|
||||
|
||||
for (j = 0; j < bytesread; j++)
|
||||
tag[j] = utf8buf[j];
|
||||
|
||||
if (ptag)
|
||||
*ptag = tag;
|
||||
|
@ -809,7 +804,7 @@ static void setid3v2title(int fd, struct mp3entry *entry)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if( i == TAGLIST_SIZE ) {
|
||||
/* no tag in tagList was found, or it was a repeat.
|
||||
skip it using the total size */
|
||||
|
@ -839,7 +834,7 @@ int getid3v2len(int fd)
|
|||
{
|
||||
char buf[6];
|
||||
int offset;
|
||||
|
||||
|
||||
/* Make sure file has a ID3 tag */
|
||||
if((-1 == lseek(fd, 0, SEEK_SET)) ||
|
||||
(read(fd, buf, 6) != 6) ||
|
||||
|
@ -955,7 +950,7 @@ bool mp3info(struct mp3entry *entry, const char *filename, bool v1first)
|
|||
#if CONFIG_CODEC != SWCODEC
|
||||
memset(entry, 0, sizeof(struct mp3entry));
|
||||
#endif
|
||||
|
||||
|
||||
strncpy(entry->path, filename, sizeof(entry->path));
|
||||
|
||||
entry->title = NULL;
|
||||
|
|
48
firmware/include/font_cache.h
Normal file
48
firmware/include/font_cache.h
Normal file
|
@ -0,0 +1,48 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
*
|
||||
* Copyright (C) 2003 Tat Tang
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include "lru.h"
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
******************************************************************************/
|
||||
struct font_cache
|
||||
{
|
||||
struct lru _lru;
|
||||
int _size;
|
||||
int _capacity;
|
||||
short *_index; /* index of lru handles in char_code order */
|
||||
};
|
||||
|
||||
struct font_cache_entry
|
||||
{
|
||||
unsigned short _char_code;
|
||||
unsigned char width;
|
||||
unsigned char bitmap[1]; /* place holder */
|
||||
};
|
||||
|
||||
/* void (*f) (void*, struct font_cache_entry*); */
|
||||
/* Create an auto sized font cache from buf */
|
||||
void font_cache_create(
|
||||
struct font_cache* fcache, void* buf, int buf_size, int bitmap_bytes_size);
|
||||
/* Get font cache entry */
|
||||
struct font_cache_entry* font_cache_get(
|
||||
struct font_cache* fcache,
|
||||
unsigned short char_code,
|
||||
void (*callback) (struct font_cache_entry* p, void *callback_data),
|
||||
void *callback_data);
|
46
firmware/include/lru.h
Normal file
46
firmware/include/lru.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
*
|
||||
* Copyright (C) 2003 Tat Tang
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef LRU_H
|
||||
#define LRU_H
|
||||
|
||||
/*******************************************************************************
|
||||
* LRU manager
|
||||
******************************************************************************/
|
||||
struct lru
|
||||
{
|
||||
short _head;
|
||||
short _tail;
|
||||
short _size;
|
||||
short _slot_size;
|
||||
void *_base;
|
||||
};
|
||||
|
||||
#define LRU_SLOT_OVERHEAD (2 * sizeof(short))
|
||||
|
||||
/* Create LRU list with specified size from buf. */
|
||||
void lru_create(struct lru* pl, void *buf, short size, short data_size);
|
||||
/* Touch an entry. Moves handle to back of LRU list */
|
||||
void lru_touch(struct lru* pl, short handle);
|
||||
/* Data */
|
||||
void *lru_data(struct lru* pl, short handle);
|
||||
/* Traverse lru-wise */
|
||||
void lru_traverse(struct lru* pl, void (*callback)(void* data));
|
||||
|
||||
#endif /* LRU_H */
|
||||
|
29
firmware/include/rbunicode.h
Normal file
29
firmware/include/rbunicode.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* Some conversion functions for handling UTF-8
|
||||
*
|
||||
* copyright Marcoen Hirschberg (2004,2005)
|
||||
*
|
||||
* I got all the info from:
|
||||
* http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
* and
|
||||
* http://en.wikipedia.org/wiki/Unicode
|
||||
*/
|
||||
|
||||
#define CODEPAGE_DIR "/.rockbox/codepages"
|
||||
|
||||
#define MAX_CP_TABLE_SIZE 32768
|
||||
|
||||
#define MASK 0xC0 /* 11000000 */
|
||||
#define COMP 0x80 /* 10x */
|
||||
|
||||
extern int codepage;
|
||||
|
||||
/* Encode a UCS value as UTF-8 and return a pointer after this UTF-8 char. */
|
||||
unsigned char* utf8encode(unsigned long ucs, unsigned char *utf8);
|
||||
unsigned char* iso_decode(const unsigned char *latin1, unsigned char *utf8, int cp, int count);
|
||||
unsigned char* utf16LEdecode(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
|
||||
unsigned char* utf16BEdecode(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
|
||||
unsigned char* utf16decode(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
|
||||
unsigned long utf8length(const unsigned char *utf8);
|
||||
const unsigned char* utf8decode(const unsigned char *utf8, unsigned short *ucs);
|
||||
void set_codepage(int cp);
|
||||
int utf8seek(const unsigned char* utf8, int offset);
|
119
firmware/lru.c
Normal file
119
firmware/lru.c
Normal file
|
@ -0,0 +1,119 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
*
|
||||
* Copyright (C) 2003 Tat Tang
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include "lru.h"
|
||||
|
||||
struct lru_node
|
||||
{
|
||||
short _next;
|
||||
short _prev;
|
||||
unsigned char data[1]; /* place holder */
|
||||
};
|
||||
|
||||
#define lru_node_p(pl, x) \
|
||||
((struct lru_node*)(pl->_base + pl->_slot_size * x))
|
||||
|
||||
/*******************************************************************************
|
||||
* lru_create
|
||||
******************************************************************************/
|
||||
void lru_create(struct lru* pl, void *buf, short size, short data_size)
|
||||
{
|
||||
pl->_base = (unsigned char*) buf;
|
||||
pl->_slot_size = data_size + LRU_SLOT_OVERHEAD;
|
||||
|
||||
pl->_size = size;
|
||||
|
||||
pl->_head = 0;
|
||||
pl->_tail = pl->_size - 1;
|
||||
|
||||
/* Initialise slots */
|
||||
int i;
|
||||
for (i=0; i<pl->_size; i++)
|
||||
{
|
||||
lru_node_p(pl, i)->_next = i + 1;
|
||||
lru_node_p(pl, i)->_prev = i - 1;
|
||||
}
|
||||
|
||||
/* Fix up head and tail to form circular buffer */
|
||||
lru_node_p(pl, 0)->_prev = pl->_tail;
|
||||
lru_node_p(pl, pl->_tail)->_next = pl->_head;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* lru_traverse
|
||||
******************************************************************************/
|
||||
void lru_traverse(struct lru* pl, void (*callback)(void* data))
|
||||
{
|
||||
short i;
|
||||
struct lru_node* slot;
|
||||
short loc = pl->_head;
|
||||
|
||||
for (i = 0; i < pl->_size; i++)
|
||||
{
|
||||
slot = lru_node_p(pl, loc);
|
||||
callback(slot->data);
|
||||
loc = slot->_next;
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* lru_touch
|
||||
******************************************************************************/
|
||||
void lru_touch(struct lru* pl, short handle)
|
||||
{
|
||||
if (handle == pl->_head)
|
||||
{
|
||||
pl->_head = lru_node_p(pl, pl->_head)->_next;
|
||||
pl->_tail = lru_node_p(pl, pl->_tail)->_next;
|
||||
return;
|
||||
}
|
||||
|
||||
if (handle == pl->_tail)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Remove current node from linked list */
|
||||
struct lru_node* curr_node = lru_node_p(pl, handle);
|
||||
struct lru_node* prev_node = lru_node_p(pl, curr_node->_prev);
|
||||
struct lru_node* next_node = lru_node_p(pl, curr_node->_next);
|
||||
|
||||
prev_node->_next = curr_node->_next;
|
||||
next_node->_prev = curr_node->_prev;
|
||||
|
||||
/* insert current node at tail */
|
||||
struct lru_node* tail_node = lru_node_p(pl, pl->_tail);
|
||||
short tail_node_next_handle = tail_node->_next; /* Bug fix */
|
||||
struct lru_node* tail_node_next = lru_node_p(pl, tail_node_next_handle); /* Bug fix */
|
||||
|
||||
curr_node->_next = tail_node->_next;
|
||||
curr_node->_prev = pl->_tail;
|
||||
tail_node_next->_prev = handle; /* Bug fix */
|
||||
tail_node->_next = handle;
|
||||
|
||||
pl->_tail = handle;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* lru_data
|
||||
******************************************************************************/
|
||||
void *lru_data(struct lru* pl, short handle)
|
||||
{
|
||||
return lru_node_p(pl, handle)->data;
|
||||
}
|
||||
|
|
@ -46,6 +46,9 @@
|
|||
#include "file.h"
|
||||
#include "hwcompat.h"
|
||||
#endif /* !SIMULATOR */
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
#include "lcd.h"
|
||||
#endif
|
||||
|
||||
#ifndef SIMULATOR
|
||||
extern unsigned long mas_version_code;
|
||||
|
@ -916,6 +919,12 @@ static struct trackdata *add_track_to_tag_list(const char *filename)
|
|||
}
|
||||
track->mempos = audiobuf_write;
|
||||
track->id3.elapsed = 0;
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
int w, h;
|
||||
lcd_getstringsize(track->id3.title, &w, &h);
|
||||
lcd_getstringsize(track->id3.artist, &w, &h);
|
||||
lcd_getstringsize(track->id3.album, &w, &h);
|
||||
#endif
|
||||
|
||||
track_write_idx = (track_write_idx+1) & MAX_TRACK_ENTRIES_MASK;
|
||||
debug_tags();
|
||||
|
|
|
@ -46,6 +46,9 @@
|
|||
#elif HAVE_TLV320
|
||||
#include "tlv320.h"
|
||||
#endif
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
#include "font.h"
|
||||
#endif
|
||||
#include "logf.h"
|
||||
#include "lcd-remote.h"
|
||||
|
||||
|
@ -378,7 +381,7 @@ static void handle_auto_poweroff(void)
|
|||
* Inhibit shutdown as long as the charger is plugged in. If it is
|
||||
* unplugged, wait for a timeout period and then shut down.
|
||||
*/
|
||||
if(charger_input_state == CHARGER) {
|
||||
if(charger_input_state == CHARGER || audio_stat == AUDIO_STATUS_PLAY) {
|
||||
last_event_tick = current_tick;
|
||||
}
|
||||
#endif
|
||||
|
@ -899,6 +902,9 @@ void shutdown_hw(void)
|
|||
}
|
||||
#endif
|
||||
audio_stop();
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
glyph_cache_save();
|
||||
#endif
|
||||
ata_flush();
|
||||
ata_spindown(1);
|
||||
while(ata_disk_is_active())
|
||||
|
|
25021
fonts/5x7.bdf
25021
fonts/5x7.bdf
File diff suppressed because it is too large
Load diff
21402
fonts/5x8.bdf
21402
fonts/5x8.bdf
File diff suppressed because it is too large
Load diff
27312
fonts/6x10.bdf
27312
fonts/6x10.bdf
File diff suppressed because it is too large
Load diff
33622
fonts/6x12.bdf
33622
fonts/6x12.bdf
File diff suppressed because it is too large
Load diff
87377
fonts/6x13.bdf
87377
fonts/6x13.bdf
File diff suppressed because it is too large
Load diff
25081
fonts/6x13B.bdf
25081
fonts/6x13B.bdf
File diff suppressed because it is too large
Load diff
20698
fonts/6x9.bdf
20698
fonts/6x9.bdf
File diff suppressed because it is too large
Load diff
|
@ -10,7 +10,7 @@ CFLAGS := -O -ansi -g
|
|||
LDFLAGS := -g
|
||||
|
||||
CLEANALL := scramble descramble iaudio sh2d bmp2rb rdf2binary convbdf \
|
||||
generate_rocklatin mkboot ipod_fw uclpack
|
||||
generate_rocklatin mkboot ipod_fw codepages uclpack
|
||||
|
||||
all:
|
||||
@echo "Run make in your build directory!"
|
||||
|
@ -41,6 +41,9 @@ ipod_fw: ipod_fw.c
|
|||
convbdf: convbdf.c
|
||||
$(CC) -g $+ -o $@
|
||||
|
||||
codepages: codepages.c
|
||||
$(CC) -g $+ -o $@
|
||||
|
||||
generate_rocklatin: generate_rocklatin.c ../firmware/drivers/lcd-player-charset.c
|
||||
$(CC) -DHAVE_LCD_CHARCELLS -D__CONFIG_H__ -I../firmware/export $+ -o $@
|
||||
|
||||
|
|
|
@ -62,16 +62,26 @@ sub buildzip {
|
|||
mkdir ".rockbox/langs", 0777;
|
||||
mkdir ".rockbox/rocks", 0777;
|
||||
mkdir ".rockbox/codecs", 0777;
|
||||
mkdir ".rockbox/codepages", 0777;
|
||||
mkdir ".rockbox/wps", 0777;
|
||||
mkdir ".rockbox/themes", 0777;
|
||||
|
||||
my $c = 'find apps -name "*.codec" ! -empty -exec cp {} .rockbox/codecs/ \;';
|
||||
print `$c`;
|
||||
|
||||
system("$ROOT/tools/codepages");
|
||||
my $c = 'find . -name "*.cp" ! -empty -exec mv {} .rockbox/codepages/ \; >/dev/null 2>&1';
|
||||
print `$c`;
|
||||
|
||||
my @call = `find .rockbox/codecs -type f`;
|
||||
if(!$call[0]) {
|
||||
# no codec was copied, remove directory again
|
||||
rmdir(".rockbox/codecs");
|
||||
|
||||
system("$ROOT/tools/codepages");
|
||||
my $c = 'find . -name "*.cp" ! -empty -exec mv {} .rockbox/codepages/ \; >/dev/null 2>&1';
|
||||
print `$c`;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -139,44 +149,16 @@ sub buildzip {
|
|||
my @fonts = grep { /\.bdf$/ && -f "$ROOT/fonts/$_" } readdir(DIR);
|
||||
closedir DIR;
|
||||
|
||||
my $maxfont;
|
||||
|
||||
open(SIZE, ">ziptemp");
|
||||
print SIZE <<STOP
|
||||
\#include "font.h"
|
||||
Font Size We Want: MAX_FONT_SIZE
|
||||
STOP
|
||||
;
|
||||
close(SIZE);
|
||||
my $c="cat ziptemp | gcc $cppdef -I. -I$firmdir/export -E -P -";
|
||||
# print STDERR "C: $c\n";
|
||||
open(GETSIZE, "$c|");
|
||||
|
||||
while(<GETSIZE>) {
|
||||
if($_ =~ /^Font Size We Want: (\d*)/) {
|
||||
$maxfont = $1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
close(GETSIZE);
|
||||
unlink("ziptemp");
|
||||
die "no decent max font size" if ($maxfont < 2000);
|
||||
|
||||
for(@fonts) {
|
||||
my $f = $_;
|
||||
|
||||
print "FONT: $f\n" if($verbose);
|
||||
my $o = $f;
|
||||
$o =~ s/\.bdf/\.fnt/;
|
||||
my $cmd ="$ROOT/tools/convbdf -s 32 -l 255 -f -o \".rockbox/fonts/$o\" \"$ROOT/fonts/$f\" >/dev/null 2>&1";
|
||||
my $cmd ="$ROOT/tools/convbdf -f -o \".rockbox/fonts/$o\" \"$ROOT/fonts/$f\" >/dev/null 2>&1";
|
||||
print "CMD: $cmd\n" if($verbose);
|
||||
`$cmd`;
|
||||
|
||||
# no need to add fonts we cannot load anyway
|
||||
my $fontsize = filesize(".rockbox/fonts/$o");
|
||||
if($fontsize > $maxfont) {
|
||||
unlink(".rockbox/fonts/$o");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
231
tools/codepages.c
Normal file
231
tools/codepages.c
Normal file
|
@ -0,0 +1,231 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
*
|
||||
*
|
||||
* Copyright (C) 2005 by Frank Dischner
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "codepages.h"
|
||||
|
||||
#define MAX_TABLE_SIZE 32768
|
||||
|
||||
static unsigned short iso_table[MAX_TABLE_SIZE];
|
||||
|
||||
static const unsigned short iso8859_7_to_uni[] = {
|
||||
0x2018, 0x2019, 0x00A3, 0x20AC, 0x20AF, 0x00A6, 0x00A7, /* A1-A7 */
|
||||
0x00A8, 0x00A9, 0x037A, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, /* A8-AF */
|
||||
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7 /* B0-B7 */
|
||||
};
|
||||
|
||||
static const unsigned short cp1251_to_uni[] = {
|
||||
0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, /* 80-87 */
|
||||
0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, /* 88-8F */
|
||||
0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 90-97 */
|
||||
0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, /* 98-9F */
|
||||
0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, /* A0-A7 */
|
||||
0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, /* A8-AF */
|
||||
0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, /* B0-B7 */
|
||||
0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457 /* B8-BF */
|
||||
};
|
||||
|
||||
static const unsigned short iso8859_2_to_uni[] = {
|
||||
0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, /* A1-A7 */
|
||||
0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, /* A8-AF */
|
||||
0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, /* B0-B7 */
|
||||
0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, /* B8-BF */
|
||||
0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* C0-C7 */
|
||||
0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, /* C8-CF */
|
||||
0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, /* D0-D7 */
|
||||
0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, /* D8-DF */
|
||||
0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, /* E0-E7 */
|
||||
0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, /* E8-EF */
|
||||
0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, /* F0-F7 */
|
||||
0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 /* F8-FF */
|
||||
};
|
||||
|
||||
unsigned short iso_decode(unsigned char *latin1, int cp, int count)
|
||||
{
|
||||
unsigned short ucs = 0;
|
||||
|
||||
/* cp tells us which codepage to convert from */
|
||||
switch (cp) {
|
||||
case 0x01: /* Greek (ISO-8859-7) */
|
||||
while (count--) {
|
||||
/* first convert to unicode */
|
||||
if (*latin1 < 0xA1)
|
||||
ucs = *latin1++;
|
||||
else if (*latin1 > 0xB7)
|
||||
ucs = *latin1++ + 0x02D0;
|
||||
else
|
||||
ucs = iso8859_7_to_uni[*latin1++ - 0xA1];
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x02: /* Hebrew (ISO-8859-8) */
|
||||
while (count--) {
|
||||
/* first convert to unicode */
|
||||
if (*latin1 == 0xAA) {
|
||||
ucs = 0xD7;
|
||||
latin1++;
|
||||
} else if (*latin1 == 0xBA) {
|
||||
ucs = 0xF7;
|
||||
latin1++;
|
||||
} else if (*latin1 == 0xDF) {
|
||||
ucs = 0x2017;
|
||||
latin1++;
|
||||
} else if (*latin1 < 0xC0)
|
||||
ucs = *latin1++;
|
||||
else
|
||||
ucs = *latin1++ + 0x04F0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x03: /* Russian (CP1251) */
|
||||
while (count--) {
|
||||
/* first convert to unicode */
|
||||
if (*latin1 < 0x80)
|
||||
ucs = *latin1++;
|
||||
else if (*latin1 > 0xBF)
|
||||
ucs = *latin1++ + 0x0350;
|
||||
else
|
||||
ucs = cp1251_to_uni[*latin1++ - 0x80];
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x04: /* Thai (ISO-8859-11) */
|
||||
while (count--) {
|
||||
/* first convert to unicode */
|
||||
if (*latin1 < 0xA1)
|
||||
ucs = *latin1++;
|
||||
else
|
||||
ucs = *latin1++ + 0x0D60;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x05: /* Arabic (ISO-8859-6) */
|
||||
while (count--) {
|
||||
/* first convert to unicode */
|
||||
if (*latin1 < 0xAC || *latin1 == 0xAD)
|
||||
ucs = *latin1++;
|
||||
else
|
||||
ucs = *latin1++ + 0x0560;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x06: /* Turkish (ISO-8859-9) */
|
||||
while (count--) {
|
||||
/* first convert to unicode */
|
||||
switch (*latin1) {
|
||||
case 0xD0:
|
||||
ucs = 0x011E;
|
||||
break;
|
||||
case 0xDD:
|
||||
ucs = 0x0130;
|
||||
break;
|
||||
case 0xDE:
|
||||
ucs = 0x015E;
|
||||
break;
|
||||
case 0xF0:
|
||||
ucs = 0x011F;
|
||||
break;
|
||||
case 0xFD:
|
||||
ucs = 0x0131;
|
||||
break;
|
||||
case 0xFE:
|
||||
ucs = 0x015F;
|
||||
break;
|
||||
default:
|
||||
ucs = *latin1;
|
||||
break;
|
||||
}
|
||||
|
||||
latin1++;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x07: /* Latin Extended (ISO-8859-2) */
|
||||
while (count--) {
|
||||
/* first convert to unicode */
|
||||
if (*latin1 < 0xA1)
|
||||
ucs = *latin1++;
|
||||
else
|
||||
ucs = iso8859_2_to_uni[*latin1++ - 0xA1];
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return ucs;
|
||||
}
|
||||
|
||||
int writeshort(FILE *f, unsigned short s)
|
||||
{
|
||||
putc(s, f);
|
||||
return putc(s>>8, f) != EOF;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
|
||||
int i, j;
|
||||
unsigned char k;
|
||||
unsigned short uni;
|
||||
FILE *of;
|
||||
|
||||
for (i=0; i < MAX_TABLE_SIZE; i++)
|
||||
iso_table[i] = 0;
|
||||
|
||||
of = fopen("iso.cp", "wb");
|
||||
if (!of) return 1;
|
||||
|
||||
for (i=1; i<8; i++) {
|
||||
|
||||
for (j=0; j<128; j++) {
|
||||
k = (unsigned char)j + 128;
|
||||
uni = iso_decode(&k, i, 1);
|
||||
writeshort(of, uni);
|
||||
}
|
||||
}
|
||||
fclose(of);
|
||||
|
||||
of = fopen("932.cp", "wb");
|
||||
if (!of) return 1;
|
||||
for (i=0; i < MAX_TABLE_SIZE; i++)
|
||||
writeshort(of, cp932_table[i]);
|
||||
fclose(of);
|
||||
|
||||
of = fopen("936.cp", "wb");
|
||||
if (!of) return 1;
|
||||
for (i=0; i < MAX_TABLE_SIZE; i++)
|
||||
writeshort(of, cp936_table[i]);
|
||||
fclose(of);
|
||||
|
||||
of = fopen("949.cp", "wb");
|
||||
if (!of) return 1;
|
||||
for (i=0; i < MAX_TABLE_SIZE; i++)
|
||||
writeshort(of, cp949_table[i]);
|
||||
fclose(of);
|
||||
|
||||
of = fopen("950.cp", "wb");
|
||||
if (!of) return 1;
|
||||
for (i=0; i < MAX_TABLE_SIZE; i++)
|
||||
writeshort(of, cp950_table[i]);
|
||||
fclose(of);
|
||||
|
||||
return 0;
|
||||
}
|
16419
tools/codepages.h
Normal file
16419
tools/codepages.h
Normal file
File diff suppressed because it is too large
Load diff
|
@ -443,6 +443,7 @@ int bdf_read_header(FILE *fp, struct font* pf)
|
|||
return 0;
|
||||
}
|
||||
|
||||
fprintf(stderr, "Header parsed\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -955,6 +956,7 @@ int gen_c_source(struct font* pf, char *path)
|
|||
" %s /* offset */\n"
|
||||
" %s\n"
|
||||
" %d, /* defaultchar */\n"
|
||||
" %d /* bits_size */\n"
|
||||
"};\n"
|
||||
"#endif /* HAVE_LCD_BITMAP */\n",
|
||||
pf->maxwidth, pf->height,
|
||||
|
@ -963,7 +965,8 @@ int gen_c_source(struct font* pf, char *path)
|
|||
pf->size,
|
||||
obuf,
|
||||
buf,
|
||||
pf->defaultchar);
|
||||
pf->defaultchar,
|
||||
pf->bits_size);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1071,12 +1074,29 @@ int gen_fnt_file(struct font* pf, char *path)
|
|||
ofr += size;
|
||||
}
|
||||
|
||||
if (ftell(ofp) & 1)
|
||||
writebyte(ofp, 0); /* pad to 16-bit boundary*/
|
||||
if ( pf->bits_size < 0xFFDB )
|
||||
{
|
||||
/* bitmap offset is small enough, use unsigned short for offset */
|
||||
if (ftell(ofp) & 1)
|
||||
writebyte(ofp, 0); /* pad to 16-bit boundary*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/* bitmap offset is large then 64K, use unsigned long for offset */
|
||||
while (ftell(ofp) & 3)
|
||||
writebyte(ofp, 0); /* pad to 32-bit boundary*/
|
||||
}
|
||||
|
||||
if (pf->offset)
|
||||
{
|
||||
for (i=0; i<pf->size; ++i)
|
||||
writeshort(ofp, pf->offrot[i]);
|
||||
{
|
||||
if ( pf->bits_size < 0xFFDB )
|
||||
writeshort(ofp, pf->offrot[i]);
|
||||
else
|
||||
writelong(ofp, pf->offrot[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (pf->width)
|
||||
for (i=0; i<pf->size; ++i)
|
||||
|
|
Loading…
Reference in a new issue