Index: tools/genlang
===================================================================
--- tools/genlang	(revision 12164)
+++ tools/genlang	(working copy)
@@ -11,7 +11,7 @@
 #
 
 # binary version for the binary lang file
-my $langversion = 3; # 3 was the latest one used in the v1 format
+my $langversion = 4; # 3 was the latest one used in the v1 format
 
 # A note for future users and readers: The original v1 language system allowed
 # the build to create and use a different language than english built-in. We
Index: apps/playlist.c
===================================================================
--- apps/playlist.c	(revision 12164)
+++ apps/playlist.c	(working copy)
@@ -484,7 +484,7 @@
         lcd_setmargins(0, 0);
 #endif
 
-    gui_syncsplash(0, true, str(LANG_PLAYLIST_LOAD));
+    gui_syncsplash(0, true, str(LANG_WAIT));
 
     if (!buffer)
     {
@@ -1663,13 +1663,7 @@
         lcd_setmargins(0, 0);
 #endif
 
-    gui_syncsplash(0, true, fmt, count,
-#if CONFIG_KEYPAD == PLAYER_PAD
-                   str(LANG_STOP_ABORT)
-#else
-                   str(LANG_OFF_ABORT)
-#endif
-        );
+    gui_syncsplash(0, true, fmt, count, str(LANG_OFF_ABORT));
 }
 
 /*
@@ -1991,12 +1985,7 @@
             {
                 gui_syncsplash(0, true, str(LANG_LOADING_PERCENT), 
                                (total_read+count)*100/control_file_size,
-#if CONFIG_KEYPAD == PLAYER_PAD
-                               str(LANG_STOP_ABORT)
-#else
-                               str(LANG_OFF_ABORT)
-#endif
-                               );
+                               str(LANG_OFF_ABORT));
                 if (action_userabort(TIMEOUT_NOBLOCK))
                 {
                     /* FIXME: 
Index: apps/screens.c
===================================================================
--- apps/screens.c	(revision 12164)
+++ apps/screens.c	(working copy)
@@ -393,7 +393,7 @@
 
     if (display->nb_lines < 4) /* very small screen, just show the pitch value */
     {
-        w = snprintf((char *)buf, sizeof(buf), "%s: %d.%d%%",str(LANG_SYSFONT_PITCH),
+        w = snprintf((char *)buf, sizeof(buf), "%s: %d.%d%%",str(LANG_PITCH),
                   pitch / 10, pitch % 10 );
         display->putsxy((display->width-(w*display->char_width))/2,
                          display->nb_lines/2,buf);
@@ -403,9 +403,9 @@
 
         /* UP: Pitch Up */
         if (pitch_mode == PITCH_MODE_ABSOLUTE) {
-            ptr = str(LANG_SYSFONT_PITCH_UP);
+            ptr = str(LANG_PITCH_UP);
         } else {
-            ptr = str(LANG_SYSFONT_PITCH_UP_SEMITONE);
+            ptr = str(LANG_PITCH_UP_SEMITONE);
         }
         display->getstringsize(ptr,&w,&h);
         display->putsxy((display->width-w)/2, 0, ptr);
@@ -414,9 +414,9 @@
 
         /* DOWN: Pitch Down */
         if (pitch_mode == PITCH_MODE_ABSOLUTE) {
-            ptr = str(LANG_SYSFONT_PITCH_DOWN);
+            ptr = str(LANG_PITCH_DOWN);
         } else {
-            ptr = str(LANG_SYSFONT_PITCH_DOWN_SEMITONE);
+            ptr = str(LANG_PITCH_DOWN_SEMITONE);
         }
         display->getstringsize(ptr,&w,&h);
         display->putsxy((display->width-w)/2, display->height - h, ptr);
@@ -438,7 +438,7 @@
                              w+1, (display->height-h)/2, 7, 8);
 
         /* "Pitch" */
-        snprintf((char *)buf, sizeof(buf), str(LANG_SYSFONT_PITCH));
+        snprintf((char *)buf, sizeof(buf), str(LANG_PITCH));
         display->getstringsize(buf,&w,&h);
         display->putsxy((display->width-w)/2, (display->height/2)-h, buf);
         /* "XX.X%" */
@@ -651,17 +651,17 @@
         [1]={ STR(LANG_SYSFONT_ON) }
     };
     static const struct opt_items bottom_items[] = {
-        [SHOW_ALL]={ STR(LANG_SYSFONT_FILTER_ALL) },
+        [SHOW_ALL]={ STR(LANG_SYSFONT_ALL) },
         [SHOW_SUPPORTED]={ STR(LANG_SYSFONT_FILTER_SUPPORTED) },
         [SHOW_MUSIC]={ STR(LANG_SYSFONT_FILTER_MUSIC) },
         [SHOW_PLAYLIST]={ STR(LANG_SYSFONT_FILTER_PLAYLIST) },
 #ifdef HAVE_TAGCACHE
-        [SHOW_ID3DB]={ STR(LANG_SYSFONT_FILTER_ID3DB) }
+        [SHOW_ID3DB]={ STR(LANG_SYSFONT_TAGCACHE) }
 #endif
     };
     static const struct opt_items right_items[] = {
         [REPEAT_OFF]={ STR(LANG_SYSFONT_OFF) },
-        [REPEAT_ALL]={ STR(LANG_SYSFONT_REPEAT_ALL) },
+        [REPEAT_ALL]={ STR(LANG_SYSFONT_ALL) },
         [REPEAT_ONE]={ STR(LANG_SYSFONT_REPEAT_ONE) },
         [REPEAT_SHUFFLE]={ STR(LANG_SYSFONT_SHUFFLE) },
 #if (AB_REPEAT_ENABLE == 1)
@@ -1148,7 +1148,7 @@
             LANG_ID3_LENGTH,
             LANG_ID3_PLAYLIST,
             LANG_ID3_BITRATE,
-            LANG_ID3_FRECUENCY,
+            LANG_ID3_FREQUENCY,
 #if CONFIG_CODEC == SWCODEC
             LANG_ID3_TRACK_GAIN,
             LANG_ID3_ALBUM_GAIN,
@@ -1207,7 +1207,7 @@
             id3->vbr ? str(LANG_ID3_VBR) : (const unsigned char*) "");
                 info=buffer;
                 break;
-            case 9:/*LANG_ID3_FRECUENCY*/
+            case 9:/*LANG_ID3_FREQUENCY*/
                 snprintf(buffer, MAX_PATH, "%ld Hz", id3->frequency);
                 info=buffer;
                 break;
Index: apps/main_menu.c
===================================================================
--- apps/main_menu.c	(revision 12164)
+++ apps/main_menu.c	(working copy)
@@ -174,13 +174,9 @@
             int integer = buflen / 1000;
             int decimal = buflen % 1000;
 
-#ifdef HAVE_LCD_CHARCELLS
-            snprintf(s, sizeof(s), (char *)str(LANG_BUFFER_STAT_PLAYER),
+            snprintf(s, sizeof(s), (char *)str(LANG_BUFFER_STAT),
                      integer, decimal);
-#else
-            snprintf(s, sizeof(s), (char *)str(LANG_BUFFER_STAT_RECORDER),
-                     integer, decimal);
-#endif
+
             FOR_NB_SCREENS(i)
                 screens[i].puts_scroll(0, y, (unsigned char *)s);
             y++;
@@ -347,7 +343,7 @@
 
     /* info menu */
     static const struct menu_item items[] = {
-        { ID2P(LANG_INFO_MENU),          show_info         },
+        { ID2P(LANG_ROCKBOX_INFO),       show_info         },
         { ID2P(LANG_VERSION),            show_credits      },
         { ID2P(LANG_RUNNING_TIME),       view_runtime      },
         { ID2P(LANG_DEBUG),              debug_menu        },
Index: apps/action.c
===================================================================
--- apps/action.c	(revision 12164)
+++ apps/action.c	(working copy)
@@ -130,7 +130,7 @@
         {
             last_button = BUTTON_NONE;
             keys_locked = false;
-            gui_syncsplash(HZ/2, true, str(LANG_KEYLOCK_OFF_PLAYER));
+            gui_syncsplash(HZ/2, true, str(LANG_KEYLOCK_OFF));
             return ACTION_REDRAW;
         } 
         else 
@@ -139,7 +139,7 @@
 #endif
         {
             if ((button&BUTTON_REL))
-                gui_syncsplash(HZ/2, true, str(LANG_KEYLOCK_ON_PLAYER));
+                gui_syncsplash(HZ/2, true, str(LANG_KEYLOCK_ON));
             return ACTION_REDRAW;
         }
     }
@@ -179,7 +179,7 @@
         unlock_combo = button;
         keys_locked = true;
         action_signalscreenchange();
-        gui_syncsplash(HZ/2, true, str(LANG_KEYLOCK_ON_PLAYER));
+        gui_syncsplash(HZ/2, true, str(LANG_KEYLOCK_ON));
         
         button_clear_queue();
         return ACTION_REDRAW;
Index: apps/recorder/radio.c
===================================================================
--- apps/recorder/radio.c	(revision 12164)
+++ apps/recorder/radio.c	(working copy)
@@ -466,7 +466,7 @@
 
 #ifdef HAS_BUTTONBAR
     gui_buttonbar_set(&buttonbar, str(LANG_BUTTONBAR_MENU),
-        str(LANG_FM_BUTTONBAR_PRESETS), str(LANG_FM_BUTTONBAR_RECORD));
+        str(LANG_PRESET), str(LANG_FM_BUTTONBAR_RECORD));
 #endif
 
     cpu_idle_mode(true);
@@ -693,7 +693,7 @@
                 }
 #ifdef HAS_BUTTONBAR
                 gui_buttonbar_set(&buttonbar, str(LANG_BUTTONBAR_MENU),
-                                  str(LANG_FM_BUTTONBAR_PRESETS),
+                                  str(LANG_PRESET),
                                   str(LANG_FM_BUTTONBAR_RECORD));
 #endif
                 update_screen = true;
@@ -724,7 +724,7 @@
 #ifdef HAS_BUTTONBAR
                 gui_buttonbar_set(&buttonbar,
                                   str(LANG_BUTTONBAR_MENU),
-                                  str(LANG_FM_BUTTONBAR_PRESETS),
+                                  str(LANG_PRESET),
                                   str(LANG_FM_BUTTONBAR_RECORD));
 #endif
                 update_screen = true;
@@ -861,8 +861,8 @@
                 FOR_NB_SCREENS(i)
                     screens[i].puts_scroll(0, top_of_screen + 2, buf);
 
-                snprintf(buf, 128, "%s %s", str(LANG_FM_TUNE_MODE),
-                         radio_mode ? str(LANG_RADIO_PRESET_MODE) :
+                snprintf(buf, 128, "%s %s", str(LANG_MODE),
+                         radio_mode ? str(LANG_PRESET) :
                                       str(LANG_RADIO_SCAN_MODE));
                 FOR_NB_SCREENS(i)
                     screens[i].puts_scroll(0, top_of_screen + 3, buf);
@@ -1385,8 +1385,8 @@
 
 static void create_radiomode_menu(void)
 {
-    snprintf(radiomode_menu_string, 32, "%s %s", str(LANG_FM_TUNE_MODE),
-             radio_mode ? str(LANG_RADIO_PRESET_MODE) :
+    snprintf(radiomode_menu_string, 32, "%s %s", str(LANG_MODE),
+             radio_mode ? str(LANG_PRESET) :
                           str(LANG_RADIO_SCAN_MODE));
 }
 
@@ -1556,7 +1556,7 @@
     static const struct menu_item items[] = {
 /* Add functions not accessible via buttons */
 #ifndef FM_PRESET
-        { ID2P(LANG_FM_BUTTONBAR_PRESETS), handle_radio_presets  },
+        { ID2P(LANG_PRESET), handle_radio_presets  },
 #endif
 #ifndef FM_PRESET_ADD
         { ID2P(LANG_FM_ADD_PRESET)       , radio_add_preset      },
Index: apps/recorder/recording.c
===================================================================
--- apps/recorder/recording.c	(revision 12164)
+++ apps/recorder/recording.c	(working copy)
@@ -1847,12 +1847,12 @@
 
         FOR_NB_SCREENS(i)
         {
-            screens[i].getstringsize(str(LANG_SYSFONT_RECORDING_CHANNELS), &w, &h);
+            screens[i].getstringsize(str(LANG_SYSFONT_CHANNELS), &w, &h);
             screens[i].putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2,
-                       str(LANG_SYSFONT_RECORDING_CHANNELS));
-            screens[i].getstringsize(str(LANG_SYSFONT_F2_MODE), &w, &h);
+                       str(LANG_SYSFONT_CHANNELS));
+            screens[i].getstringsize(str(LANG_SYSFONT_MODE), &w, &h);
             screens[i].putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h,
-                       str(LANG_SYSFONT_F2_MODE));
+                       str(LANG_SYSFONT_MODE));
             screens[i].getstringsize(ptr, &w, &h);
             screens[i].putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, ptr);
             screens[i].mono_bitmap(bitmap_icons_7x8[Icon_FastForward], 
@@ -1925,7 +1925,7 @@
     char *src_str[] =
     {
         str(LANG_SYSFONT_RECORDING_SRC_MIC),
-        str(LANG_SYSFONT_RECORDING_SRC_LINE),
+        str(LANG_SYSFONT_LINE_IN),
         str(LANG_SYSFONT_RECORDING_SRC_DIGITAL)
     };
     struct audio_recording_options rec_options;
Index: apps/language.h
===================================================================
--- apps/language.h	(revision 12164)
+++ apps/language.h	(working copy)
@@ -22,7 +22,7 @@
 
 /* both these must match the two initial bytes in the binary lang file */
 #define LANGUAGE_COOKIE  0x1a
-#define LANGUAGE_VERSION 0x03
+#define LANGUAGE_VERSION 0x04
 
 /* Initialize language array with the builtin strings */
 void lang_init(void);
Index: apps/Makefile
===================================================================
--- apps/Makefile	(revision 12164)
+++ apps/Makefile	(working copy)
@@ -195,9 +195,25 @@
     
 include $(TOOLSDIR)/make.inc
 
-$(OBJDIR)/lang.o: lang/$(LANGUAGE).lang
-	@mkdir -p $(dir $@)
-	$(call PRINTS,GENLANG)perl -s $(TOOLSDIR)/genlang -p=$(BUILDDIR)/lang -t=$(ARCHOS) $<
+# apps/features.txt is a file that (is preprocessed and) lists named features
+# based on defines in the config-*.h files. The named features will be passed
+# to genlang and thus (translated) phrases can be used based on those names.
+#
+$(OBJDIR)/features: features.txt
+	$(SILENT)cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) \
+	$(TARGET) $(DEFINES) $(EXTRA_DEFINES) -E -P -include "config.h" - | \
+	grep -v "^\#" > $@; \
+	echo "" >/dev/null 
+
+$(OBJDIR)/lang.o: lang/$(LANGUAGE).lang $(OBJDIR)/features
+	$(SILENT)mkdir -p `dirname $@`
+	$(SILENT)for f in `cat $(OBJDIR)/features`; do \
+	  if test -n "$$feat"; then \
+	    feat="$$feat:"; \
+	  fi; \
+	  feat="$$feat$$f"; \
+	done; \
+	perl -s $(TOOLSDIR)/genlang -p=$(BUILDDIR)/lang -t=$(ARCHOS):$$feat $<
 	$(call PRINTS,CC lang.c)$(CC) $(CFLAGS) -c $(BUILDDIR)/lang.c -o $@
 
 clean:
Index: apps/settings.c
===================================================================
--- apps/settings.c	(revision 12164)
+++ apps/settings.c	(working copy)
@@ -523,11 +523,11 @@
         {
             screens[i].clear_display();
 #ifdef HAVE_LCD_CHARCELLS
-            screens[i].puts(0, 0, str(LANG_SETTINGS_SAVE_PLAYER));
-            screens[i].puts(0, 1, str(LANG_SETTINGS_BATTERY_PLAYER));
+            screens[i].puts(0, 0, str(LANG_SETTINGS_SAVE_FAILED));
+            screens[i].puts(0, 1, str(LANG_SETTINGS_PARTITION));
 #else
-            screens[i].puts(4, 2, str(LANG_SETTINGS_SAVE_RECORDER));
-            screens[i].puts(2, 4, str(LANG_SETTINGS_BATTERY_RECORDER));
+            screens[i].puts(4, 2, str(LANG_SETTINGS_SAVE_FAILED));
+            screens[i].puts(2, 4, str(LANG_SETTINGS_PARTITION));
             screens[i].update();
 #endif
         }
@@ -549,7 +549,7 @@
             break;
         }
         else {
-            gui_syncsplash(HZ, true, str(LANG_MENU_SETTING_CANCEL));
+            gui_syncsplash(HZ, true, str(LANG_CANCEL));
             return false;
         }
     }
@@ -1009,7 +1009,7 @@
         }
         else if (action == ACTION_STD_CANCEL)
         {
-            gui_syncsplash(HZ/2,true,str(LANG_MENU_SETTING_CANCEL));
+            gui_syncsplash(HZ/2,true,str(LANG_CANCEL));
             if (cb_data->type == INT)
                 *(int*)variable = oldvalue;
             else *(bool*)variable = (bool)oldvalue;
Index: apps/lang/english.lang
===================================================================
--- apps/lang/english.lang	(revision 12164)
+++ apps/lang/english.lang	(working copy)
@@ -132,13 +132,16 @@
   desc: in shutdown screen
   user:
   <source>
-    *: "Press OFF to shut down"
+    *: NONE
+    recorder: "Press OFF to shut down"
   </source>
   <dest>
-    *: "Press OFF to shut down"
+    *: NONE
+    recorder: "Press OFF to shut down"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    recorder: ""
   </voice>
 </phrase>
 <phrase>
@@ -160,13 +163,16 @@
   desc: splash screen displayed when pcm buffer size is changed
   user:
   <source>
-    *: "Restarting playback..."
+    *: NONE
+    swcodec: "Restarting playback..."
   </source>
   <dest>
-    *: "Restarting playback..."
+    *: NONE
+    swcodec: "Restarting playback..."
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    swcodec: ""
   </voice>
 </phrase>
 <phrase>
@@ -174,21 +180,24 @@
   desc: before acknowledging usb in case an MMC is inserted (Ondio)
   user:
   <source>
-    *: "Please remove inserted MMC"
+    *: NONE
+    ondio: "Please remove inserted MMC"
   </source>
   <dest>
-    *: "Please remove inserted MMC"
+    *: NONE
+    ondio: "Please remove inserted MMC"
   </dest>
   <voice>
-    *: "Please remove multimedia card"
+    *: NONE
+    ondio: "Please remove multimedia card"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_MENU_SETTING_CANCEL
+  id: LANG_CANCEL
   desc: Visual confirmation of canceling a changed setting
   user:
   <source>
-    *: "Canceled"
+    *: "Cancelled"
   </source>
   <dest>
     *: "Cancelled"
@@ -286,13 +295,16 @@
   desc: in the main menu
   user:
   <source>
-    *: "FM Radio"
+    *: NONE
+    radio: "FM Radio"
   </source>
   <dest>
-    *: "FM Radio"
+    *: NONE
+    radio: "FM Radio"
   </dest>
   <voice>
-    *: "FM Radio"
+    *: NONE
+    radio: "FM Radio"
   </voice>
 </phrase>
 <phrase>
@@ -300,13 +312,16 @@
   desc: in the main menu
   user:
   <source>
-    *: "Recording"
+    *: NONE
+    recording: "Recording"
   </source>
   <dest>
-    *: "Recording"
+    *: NONE
+    recording: "Recording"
   </dest>
   <voice>
-    *: "Recording"
+    *: NONE
+    recording: "Recording"
   </voice>
 </phrase>
 <phrase>
@@ -356,13 +371,16 @@
   desc: in main menu
   user:
   <source>
-    *: "Shut down"
+    *: NONE
+    player: "Shut down"
   </source>
   <dest>
-    *: "Shut down"
+    *: NONE
+    player: "Shut down"
   </dest>
   <voice>
-    *: "Shut down"
+    *: NONE
+    player: "Shut down"
   </voice>
 </phrase>
 <phrase>
@@ -422,7 +440,7 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_CHANNEL_MENU
+  id: LANG_CHANNELS
   desc: in sound_settings
   user:
   <source>
@@ -566,13 +584,16 @@
   desc: in sound_settings
   user:
   <source>
-    *: "Auto Volume"
+    *: NONE
+    hwcodec: "Auto Volume"
   </source>
   <dest>
-    *: "Auto Volume"
+    *: NONE
+    hwcodec: "Auto Volume"
   </dest>
   <voice>
-    *: "Auto Volume"
+    *: NONE
+    hwcodec: "Auto Volume"
   </voice>
 </phrase>
 <phrase>
@@ -580,13 +601,16 @@
   desc: in sound_settings
   user:
   <source>
-    *: "AV Decay Time"
+    *: NONE
+    hwcodec: "AV Decay Time"
   </source>
   <dest>
-    *: "AV Decay Time"
+    *: NONE
+    hwcodec: "AV Decay Time"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    hwcodec: ""
   </voice>
 </phrase>
 <phrase>
@@ -594,13 +618,15 @@
   desc: in sound settings
   user:
   <source>
-    *: "Super Bass"
+    *: NONE
+    hwcodec: "Super Bass"
   </source>
   <dest>
-    *: "Super Bass"
+    *: NONE
+    hwcodec: "Super Bass"
   </dest>
   <voice>
-    *: "Super Bass"
+    hwcodec: "Super Bass"
   </voice>
 </phrase>
 <phrase>
@@ -608,13 +634,16 @@
   desc: in sound settings
   user:
   <source>
-    *: "MDB Enable"
+    *: NONE
+    hwcodec: "MDB Enable"
   </source>
   <dest>
-    *: "MDB Enable"
+    *: NONE
+    hwcodec: "MDB Enable"
   </dest>
   <voice>
-    *: "MDB Enable"
+    *: NONE
+    hwcodec: "MDB Enable"
   </voice>
 </phrase>
 <phrase>
@@ -622,13 +651,16 @@
   desc: in sound settings
   user:
   <source>
-    *: "MDB Strength"
+    *: NONE
+    hwcodec: "MDB Strength"
   </source>
   <dest>
-    *: "MDB Strength"
+    *: NONE
+    hwcodec: "MDB Strength"
   </dest>
   <voice>
-    *: "MDB Strength"
+    *: NONE
+    hwcodec: "MDB Strength"
   </voice>
 </phrase>
 <phrase>
@@ -636,13 +668,16 @@
   desc: in sound settings
   user:
   <source>
-    *: "MDB Harmonics"
+    *: NONE
+    hwcodec: "MDB Harmonics"
   </source>
   <dest>
-    *: "MDB Harmonics"
+    *: NONE
+    hwcodec: "MDB Harmonics"
   </dest>
   <voice>
-    *: "MDB Harmonics"
+    *: NONE
+    hwcodec: "MDB Harmonics"
   </voice>
 </phrase>
 <phrase>
@@ -650,13 +685,16 @@
   desc: in sound settings
   user:
   <source>
-    *: "MDB Center Frequency"
+    *: NONE
+    hwcodec: "MDB Center Frequency"
   </source>
   <dest>
-    *: "MDB Center Frequency"
+    *: NONE
+    hwcodec: "MDB Center Frequency"
   </dest>
   <voice>
-    *: "MDB Center Frequency"
+    *: NONE
+    hwcodec: "MDB Center Frequency"
   </voice>
 </phrase>
 <phrase>
@@ -664,13 +702,16 @@
   desc: in sound settings
   user:
   <source>
-    *: "MDB Shape"
+    *: NONE
+    hwcodec: "MDB Shape"
   </source>
   <dest>
-    *: "MDB Shape"
+    *: NONE
+    hwcodec: "MDB Shape"
   </dest>
   <voice>
-    *: "MDB Shape"
+    *: NONE
+    hwcodec: "MDB Shape"
   </voice>
 </phrase>
 <phrase>
@@ -678,13 +719,16 @@
   desc: in sound settings
   user:
   <source>
-    *: "Crossfeed"
+    *: NONE
+    swcodec: "Crossfeed"
   </source>
   <dest>
-    *: "Crossfeed"
+    *: NONE
+    swcodec: "Crossfeed"
   </dest>
   <voice>
-    *: "Crossfeed"
+    *: NONE
+    swcodec: "Crossfeed"
   </voice>
 </phrase>
 <phrase>
@@ -692,13 +736,16 @@
   desc: in the sound settings menu
   user:
   <source>
-    *: "Equalizer"
+    *: NONE
+    swcodec: "Equalizer"
   </source>
   <dest>
-    *: "Equalizer"
+    *: NONE
+    swcodec: "Equalizer"
   </dest>
   <voice>
-    *: "Equalizer"
+    *: NONE
+    swcodec: "Equalizer"
   </voice>
 </phrase>
 <phrase>
@@ -814,20 +861,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_FIRMWARE
-  desc: DEPRECATED
-  user:
-  <source>
-    *: ""
-  </source>
-  <dest>
-    *: deprecated
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_RESET
   desc: in system_settings_menu()
   user:
@@ -842,7 +875,7 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_RESET_ASK_RECORDER
+  id: LANG_RESET_ASK
   desc: confirm to reset settings
   user:
   <source>
@@ -920,20 +953,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_RESET_DONE_CANCEL
-  desc: Visual confirmation of cancelation
-  user:
-  <source>
-    *: "Canceled"
-  </source>
-  <dest>
-    *: "Cancelled"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_SAVE_SETTINGS
   desc: in system_settings_menu()
   user:
@@ -948,7 +967,7 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SETTINGS_SAVE_PLAYER
+  id: LANG_SETTINGS_SAVE_FAILED
   desc: displayed if save settings has failed
   user:
   <source>
@@ -962,42 +981,16 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SETTINGS_BATTERY_PLAYER
+  id: LANG_SETTINGS_PARTITION
   desc: if save settings has failed
   user:
   <source>
-    *: "Partition?"
-  </source>
-  <dest>
-    *: "Partition?"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_SETTINGS_SAVE_RECORDER
-  desc: displayed if save settings has failed
-  user:
-  <source>
-    *: "Save Failed"
-  </source>
-  <dest>
-    *: "Save Failed"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_SETTINGS_BATTERY_RECORDER
-  desc: if save settings has failed
-  user:
-  <source>
     *: "No partition?"
+    player: "Partition?"
   </source>
   <dest>
     *: "No partition?"
+    player: "Partition?"
   </dest>
   <voice>
     *: ""
@@ -1008,13 +1001,16 @@
   desc: in the recording sub menu
   user:
   <source>
-    *: "Recording Screen"
+    *: NONE
+    recording: "Recording Screen"
   </source>
   <dest>
-    *: "Recording Screen"
+    *: NONE
+    recording: "Recording Screen"
   </dest>
   <voice>
-    *: "Recording Screen"
+    *: NONE
+    recording: "Recording Screen"
   </voice>
 </phrase>
 <phrase>
@@ -1022,13 +1018,16 @@
   desc: in the main menu
   user:
   <source>
-    *: "Recording Settings"
+    *: NONE
+    recording: "Recording Settings"
   </source>
   <dest>
-    *: "Recording Settings"
+    *: NONE
+    recording: "Recording Settings"
   </dest>
   <voice>
-    *: "Recording Settings"
+    *: NONE
+    recording: "Recording Settings"
   </voice>
 </phrase>
 <phrase>
@@ -1036,13 +1035,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Enable EQ"
+    *: NONE
+    swcodec: "Enable EQ"
   </source>
   <dest>
-    *: "Enable EQ"
+    *: NONE
+    swcodec: "Enable EQ"
   </dest>
   <voice>
-    *: "Enable equalizer"
+    *: NONE
+    swcodec: "Enable equalizer"
   </voice>
 </phrase>
 <phrase>
@@ -1050,13 +1052,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Graphical EQ"
+    *: NONE
+    swcodec: "Graphical EQ"
   </source>
   <dest>
-    *: "Graphical EQ"
+    *: NONE
+    swcodec: "Graphical EQ"
   </dest>
   <voice>
-    *: "Graphical equalizer"
+    *: NONE
+    swcodec: "Graphical equalizer"
   </voice>
 </phrase>
 <phrase>
@@ -1064,13 +1069,16 @@
   desc: in eq settings
   user:
   <source>
-    *: "Precut"
+    *: NONE
+    swcodec: "Precut"
   </source>
   <dest>
-    *: "Precut"
+    *: NONE
+    swcodec: "Precut"
   </dest>
   <voice>
-    *: "Pre-cut"
+    *: NONE
+    swcodec: "Pre-cut"
   </voice>
 </phrase>
 <phrase>
@@ -1078,13 +1086,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Simple EQ Settings"
+    *: NONE
+    swcodec: "Simple EQ Settings"
   </source>
   <dest>
-    *: "Simple EQ Settings"
+    *: NONE
+    swcodec: "Simple EQ Settings"
   </dest>
   <voice>
-    *: "Simple equalizer settings"
+    *: NONE
+    swcodec: "Simple equalizer settings"
   </voice>
 </phrase>
 <phrase>
@@ -1092,13 +1103,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Advanced EQ Settings"
+    *: NONE
+    swcodec: "Advanced EQ Settings"
   </source>
   <dest>
-    *: "Advanced EQ Settings"
+    *: NONE
+    swcodec: "Advanced EQ Settings"
   </dest>
   <voice>
-    *: "Advanced equalizer settings"
+    *: NONE
+    swcodec: "Advanced equalizer settings"
   </voice>
 </phrase>
 <phrase>
@@ -1106,13 +1120,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Save EQ Preset"
+    *: NONE
+    swcodec: "Save EQ Preset"
   </source>
   <dest>
-    *: "Save EQ Preset"
+    *: NONE
+    swcodec: "Save EQ Preset"
   </dest>
   <voice>
-    *: "Save equalizer preset"
+    *: NONE
+    swcodec: "Save equalizer preset"
   </voice>
 </phrase>
 <phrase>
@@ -1120,13 +1137,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Browse EQ Presets"
+    *: NONE
+    swcodec: "Browse EQ Presets"
   </source>
   <dest>
-    *: "Browse EQ Presets"
+    *: NONE
+    swcodec: "Browse EQ Presets"
   </dest>
   <voice>
-    *: "Browse equalizer presets"
+    *: NONE
+    swcodec: "Browse equalizer presets"
   </voice>
 </phrase>
 <phrase>
@@ -1134,13 +1154,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Edit mode: %s"
+    *: NONE
+    swcodec: "Edit mode: %s"
   </source>
   <dest>
-    *: "Edit mode: %s"
+    *: NONE
+    swcodec: "Edit mode: %s"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    swcodec: ""
   </voice>
 </phrase>
 <phrase>
@@ -1148,13 +1171,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "%d Hz Band Gain"
+    *: NONE
+    swcodec: "%d Hz Band Gain"
   </source>
   <dest>
-    *: "%d Hz Band Gain"
+    *: NONE
+    swcodec: "%d Hz Band Gain"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    swcodec: ""
   </voice>
 </phrase>
 <phrase>
@@ -1162,13 +1188,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Low Shelf Filter"
+    *: NONE
+    swcodec: "Low Shelf Filter"
   </source>
   <dest>
-    *: "Low Shelf Filter"
+    *: NONE
+    swcodec: "Low Shelf Filter"
   </dest>
   <voice>
-    *: "Low shelf filter"
+    *: NONE
+    swcodec: "Low shelf filter"
   </voice>
 </phrase>
 <phrase>
@@ -1176,13 +1205,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Peak Filter %d"
+    *: NONE
+    swcodec: "Peak Filter %d"
   </source>
   <dest>
-    *: "Peak Filter %d"
+    *: NONE
+    swcodec: "Peak Filter %d"
   </dest>
   <voice>
-    *: "Peak filter"
+    *: NONE
+    swcodec: "Peak filter"
   </voice>
 </phrase>
 <phrase>
@@ -1190,13 +1222,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "High Shelf Filter"
+    *: NONE
+    swcodec: "High Shelf Filter"
   </source>
   <dest>
-    *: "High Shelf Filter"
+    *: NONE
+    swcodec: "High Shelf Filter"
   </dest>
   <voice>
-    *: "High shelf filter"
+    *: NONE
+    swcodec: "High shelf filter"
   </voice>
 </phrase>
 <phrase>
@@ -1204,13 +1239,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Cutoff Frequency"
+    *: NONE
+    swcodec: "Cutoff Frequency"
   </source>
   <dest>
-    *: "Cutoff Frequency"
+    *: NONE
+    swcodec: "Cutoff Frequency"
   </dest>
   <voice>
-    *: "Cutoff Frequency"
+    *: NONE
+    swcodec: "Cutoff Frequency"
   </voice>
 </phrase>
 <phrase>
@@ -1218,13 +1256,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Center Frequency"
+    *: NONE
+    swcodec: "Center Frequency"
   </source>
   <dest>
-    *: "Center Frequency"
+    *: NONE
+    swcodec: "Center Frequency"
   </dest>
   <voice>
-    *: "Center frequency"
+    *: NONE
+    swcodec: "Center frequency"
   </voice>
 </phrase>
 <phrase>
@@ -1232,13 +1273,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Q"
+    *: NONE
+    swcodec: "Q"
   </source>
   <dest>
-    *: "Q"
+    *: NONE
+    swcodec: "Q"
   </dest>
   <voice>
-    *: "Q"
+    *: NONE
+    swcodec: "Q"
   </voice>
 </phrase>
 <phrase>
@@ -1246,13 +1290,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Gain"
+    *: NONE
+    swcodec: "Gain"
   </source>
   <dest>
-    *: "Gain"
+    *: NONE
+    swcodec: "Gain"
   </dest>
   <voice>
-    *: "Gain"
+    *: NONE
+    swcodec: "Gain"
   </voice>
 </phrase>
 <phrase>
@@ -1326,20 +1373,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_INFO_MENU
-  desc: in the info menu
-  user:
-  <source>
-    *: "Rockbox Info"
-  </source>
-  <dest>
-    *: "Rockbox Info"
-  </dest>
-  <voice>
-    *: "Rockbox Info"
-  </voice>
-</phrase>
-<phrase>
   id: LANG_VERSION
   desc: in the info menu
   user:
@@ -1410,8 +1443,8 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_REPEAT_ALL
-  desc: repeat playlist once all songs have completed
+  id: LANG_ALL
+  desc: generic string used both in dir file filter and repeat mode selection
   user:
   <source>
     *: "All"
@@ -1540,13 +1573,16 @@
   desc: in playback settings
   user:
   <source>
-    *: "Crossfade"
+    *: NONE
+    swcodec: "Crossfade"
   </source>
   <dest>
-    *: "Crossfade"
+    *: NONE
+    swcodec: "Crossfade"
   </dest>
   <voice>
-    *: "Crossfade"
+    *: NONE
+    swcodec: "Crossfade"
   </voice>
 </phrase>
 <phrase>
@@ -1554,13 +1590,16 @@
   desc: in replaygain
   user:
   <source>
-    *: "Replaygain"
+    *: NONE
+    swcodec: "Replaygain"
   </source>
   <dest>
-    *: "Replaygain"
+    *: NONE
+    swcodec: "Replaygain"
   </dest>
   <voice>
-    *: "Replaygain"
+    *: NONE
+    swcodec: "Replaygain"
   </voice>
 </phrase>
 <phrase>
@@ -1568,13 +1607,16 @@
   desc: in playback settings
   user:
   <source>
-    *: "Beep Volume"
+    *: NONE
+    swcodec: "Beep Volume"
   </source>
   <dest>
-    *: "Beep Volume"
+    *: NONE
+    swcodec: "Beep Volume"
   </dest>
   <voice>
-    *: "Beep Volume"
+    *: NONE
+    swcodec: "Beep Volume"
   </voice>
 </phrase>
 <phrase>
@@ -1582,13 +1624,16 @@
   desc: in beep volume in playback settings
   user:
   <source>
-    *: "Weak"
+    *: NONE
+    swcodec: "Weak"
   </source>
   <dest>
-    *: "Weak"
+    *: NONE
+    swcodec: "Weak"
   </dest>
   <voice>
-    *: "Weak"
+    *: NONE
+    swcodec: "Weak"
   </voice>
 </phrase>
 <phrase>
@@ -1596,13 +1641,16 @@
   desc: in beep volume in playback settings
   user:
   <source>
-    *: "Moderate"
+    *: NONE
+    swcodec: "Moderate"
   </source>
   <dest>
-    *: "Moderate"
+    *: NONE
+    swcodec: "Moderate"
   </dest>
   <voice>
-    *: "Moderate"
+    *: NONE
+    swcodec: "Moderate"
   </voice>
 </phrase>
 <phrase>
@@ -1610,13 +1658,16 @@
   desc: in beep volume in playback settings
   user:
   <source>
-    *: "Strong"
+    *: NONE
+    swcodec: "Strong"
   </source>
   <dest>
-    *: "Strong"
+    *: NONE
+    swcodec: "Strong"
   </dest>
   <voice>
-    *: "Strong"
+    *: NONE
+    swcodec: "Strong"
   </voice>
 </phrase>
 <phrase>
@@ -1624,13 +1675,16 @@
   desc: in playback settings menu. enable/disable the optical out
   user:
   <source>
-    *: "Optical Output"
+    *: NONE
+    spdif_power: "Optical Output"
   </source>
   <dest>
-    *: "Optical Output"
+    *: NONE
+    spdif_power: "Optical Output"
   </dest>
   <voice>
-    *: "Optical Output"
+    *: NONE
+    spdif_power: "Optical Output"
   </voice>
 </phrase>
 <phrase>
@@ -1704,20 +1758,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_TAGCACHE_DISK
-  desc:
-  user:
-  <source>
-    *: ""
-  </source>
-  <dest>
-    *: ""
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_TAGCACHE_RAM
   desc: in tag cache settings
   user:
@@ -1900,20 +1940,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_FILTER_ALL
-  desc: show all files
-  user:
-  <source>
-    *: "All"
-  </source>
-  <dest>
-    *: "All"
-  </dest>
-  <voice>
-    *: "All"
-  </voice>
-</phrase>
-<phrase>
   id: LANG_FILTER_SUPPORTED
   desc: show all file types supported by Rockbox
   user:
@@ -1956,20 +1982,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_FILTER_ID3DB
-  desc: show ID3 Database
-  user:
-  <source>
-    *: "Database"
-  </source>
-  <dest>
-    *: "Database"
-  </dest>
-  <voice>
-    *: "Database"
-  </voice>
-</phrase>
-<phrase>
   id: LANG_FOLLOW
   desc: in settings_menu
   user:
@@ -2030,13 +2042,16 @@
   desc: in settings_menu()
   user:
   <source>
-    *: "Browse .rwps files"
+    *: NONE
+    remote: "Browse .rwps files"
   </source>
   <dest>
-    *: "Browse .rwps files"
+    *: NONE
+    remote: "Browse .rwps files"
   </dest>
   <voice>
-    *: "Browse remote while-playing-screen files"
+    *: NONE
+    remote: "Browse remote while-playing-screen files"
   </voice>
 </phrase>
 <phrase>
@@ -2058,13 +2073,16 @@
   desc: in the display sub menu
   user:
   <source>
-    *: "Remote-LCD Settings"
+    *: NONE
+    remote: "Remote-LCD Settings"
   </source>
   <dest>
-    *: "Remote-LCD Settings"
+    *: NONE
+    remote: "Remote-LCD Settings"
   </dest>
   <voice>
-    *: "Remote LCD settings"
+    *: NONE
+    remote: "Remote LCD settings"
   </voice>
 </phrase>
 <phrase>
@@ -2338,13 +2356,16 @@
   desc: in the system sub menu
   user:
   <source>
-    *: "Time & Date"
+    *: NONE
+    rtc: "Time & Date"
   </source>
   <dest>
-    *: "Time & Date"
+    *: NONE
+    rtc: "Time & Date"
   </dest>
   <voice>
-    *: "Time and Date"
+    *: NONE
+    rtc: "Time and Date"
   </voice>
 </phrase>
 <phrase>
@@ -2380,13 +2401,16 @@
   desc: The name of the additional entry in the main menu for the RTC alarm mod.
   user:
   <source>
-    *: "Wake-Up Alarm"
+    *: NONE
+    alarm: "Wake-Up Alarm"
   </source>
   <dest>
-    *: "Wake-Up Alarm"
+    *: NONE
+    alarm: "Wake-Up Alarm"
   </dest>
   <voice>
-    *: "Wake-Up Alarm"
+    *: NONE
+    alarm: "Wake-Up Alarm"
   </voice>
 </phrase>
 <phrase>
@@ -2404,20 +2428,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_LINE_IN
-  desc: in settings_menu
-  user:
-  <source>
-    *: "Line In"
-  </source>
-  <dest>
-    *: "Line In"
-  </dest>
-  <voice>
-    *: "Line In"
-  </voice>
-</phrase>
-<phrase>
   id: LANG_CAR_ADAPTER_MODE
   desc: Displayed for setting car adapter mode to on/off
   user:
@@ -2646,20 +2656,23 @@
   desc: in the recording settings
   user:
   <source>
-    *: "Mic"
-    h100,h120,h300: "Internal Mic"
+    *: NONE
+    recording: "Microphone"
+    h100,h120,h300: "Internal Microphone"
   </source>
   <dest>
-    *: "Mic"
-    h100,h120,h300: "Internal Mic"
+    *: NONE
+    recording: "Microphone"
+    h100,h120,h300: "Internal Microphone"
   </dest>
   <voice>
-    *: "Microphone"
+    *: NONE
+    recording: "Microphone"
     h100,h120,h300: "Internal Microphone"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_RECORDING_SRC_LINE
+  id: LANG_LINE_IN
   desc: in the recording settings
   user:
   <source>
@@ -2687,20 +2700,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_RECORDING_CHANNELS
-  desc: in the recording settings
-  user:
-  <source>
-    *: "Channels"
-  </source>
-  <dest>
-    *: "Channels"
-  </dest>
-  <voice>
-    *: "Channels"
-  </voice>
-</phrase>
-<phrase>
   id: LANG_RECORDING_EDITABLE
   desc: Editable recordings setting
   user:
@@ -2831,13 +2830,16 @@
   desc: in record settings menu.
   user:
   <source>
-    *: "Remote Unit Only"
+    *: NONE
+    remote: "Remote Unit Only"
   </source>
   <dest>
-    *: "Remote Unit Only"
+    *: NONE
+    remote: "Remote Unit Only"
   </dest>
   <voice>
-    *: "Remote unit only"
+    *: NONE
+    remote: "Remote unit only"
   </voice>
 </phrase>
 <phrase>
@@ -2845,13 +2847,16 @@
   desc: in record settings menu.
   user:
   <source>
-    *: "Main and Remote Unit"
+    *: NONE
+    remote: "Main and Remote Unit"
   </source>
   <dest>
-    *: "Main and Remote Unit"
+    *: NONE
+    remote: "Main and Remote Unit"
   </dest>
   <voice>
-    *: "Main and remote unit"
+    *: NONE
+    remote: "Main and remote unit"
   </voice>
 </phrase>
 <phrase>
@@ -2887,13 +2892,16 @@
   desc: in crossfade settings menu
   user:
   <source>
-    *: "Enable Crossfade"
+    *: NONE
+    swcodec: "Enable Crossfade"
   </source>
   <dest>
-    *: "Enable Crossfade"
+    *: NONE
+    swcodec: "Enable Crossfade"
   </dest>
   <voice>
-    *: "Enable Crossfade"
+    *: NONE
+    swcodec: "Enable Crossfade"
   </voice>
 </phrase>
 <phrase>
@@ -2901,13 +2909,16 @@
   desc: in crossfade settings
   user:
   <source>
-    *: "Track Skip Only"
+    *: NONE
+    swcodec: "Track Skip Only"
   </source>
   <dest>
-    *: "Track Skip Only"
+    *: NONE
+    swcodec: "Track Skip Only"
   </dest>
   <voice>
-    *: "Track Skip Only"
+    *: NONE
+    swcodec: "Track Skip Only"
   </voice>
 </phrase>
 <phrase>
@@ -2915,13 +2926,16 @@
   desc: in crossfade settings menu
   user:
   <source>
-    *: "Fade-In Delay"
+    *: NONE
+    swcodec: "Fade-In Delay"
   </source>
   <dest>
-    *: "Fade-In Delay"
+    *: NONE
+    swcodec: "Fade-In Delay"
   </dest>
   <voice>
-    *: "Fade-In Delay"
+    *: NONE
+    swcodec: "Fade-In Delay"
   </voice>
 </phrase>
 <phrase>
@@ -2929,13 +2943,16 @@
   desc: in crossfade settings menu
   user:
   <source>
-    *: "Fade-In Duration"
+    *: NONE
+    swcodec: "Fade-In Duration"
   </source>
   <dest>
-    *: "Fade-In Duration"
+    *: NONE
+    swcodec: "Fade-In Duration"
   </dest>
   <voice>
-    *: "Fade-In Duration"
+    *: NONE
+    swcodec: "Fade-In Duration"
   </voice>
 </phrase>
 <phrase>
@@ -2943,13 +2960,16 @@
   desc: in crossfade settings menu
   user:
   <source>
-    *: "Fade-Out Delay"
+    *: NONE
+    swcodec: "Fade-Out Delay"
   </source>
   <dest>
-    *: "Fade-Out Delay"
+    *: NONE
+    swcodec: "Fade-Out Delay"
   </dest>
   <voice>
-    *: "Fade-Out Delay"
+    *: NONE
+    swcodec: "Fade-Out Delay"
   </voice>
 </phrase>
 <phrase>
@@ -2957,13 +2977,16 @@
   desc: in crossfade settings menu
   user:
   <source>
-    *: "Fade-Out Duration"
+    *: NONE
+    swcodec: "Fade-Out Duration"
   </source>
   <dest>
-    *: "Fade-Out Duration"
+    *: NONE
+    swcodec: "Fade-Out Duration"
   </dest>
   <voice>
-    *: "Fade-Out Duration"
+    *: NONE
+    swcodec: "Fade-Out Duration"
   </voice>
 </phrase>
 <phrase>
@@ -2971,13 +2994,16 @@
   desc: in crossfade settings menu
   user:
   <source>
-    *: "Fade-Out Mode"
+    *: NONE
+    swcodec: "Fade-Out Mode"
   </source>
   <dest>
-    *: "Fade-Out Mode"
+    *: NONE
+    swcodec: "Fade-Out Mode"
   </dest>
   <voice>
-    *: "Fade-Out Mode"
+    *: NONE
+    swcodec: "Fade-Out Mode"
   </voice>
 </phrase>
 <phrase>
@@ -2985,13 +3011,16 @@
   desc: in playback settings, crossfade option
   user:
   <source>
-    *: "Mix"
+    *: NONE
+    swcodec: "Mix"
   </source>
   <dest>
-    *: "Mix"
+    *: NONE
+    swcodec: "Mix"
   </dest>
   <voice>
-    *: "Mix"
+    *: NONE
+    swcodec: "Mix"
   </voice>
 </phrase>
 <phrase>
@@ -2999,13 +3028,16 @@
   desc: in replaygain
   user:
   <source>
-    *: "Enable Replaygain"
+    *: NONE
+    swcodec: "Enable Replaygain"
   </source>
   <dest>
-    *: "Enable Replaygain"
+    *: NONE
+    swcodec: "Enable Replaygain"
   </dest>
   <voice>
-    *: "Enable Replaygain"
+    *: NONE
+    swcodec: "Enable Replaygain"
   </voice>
 </phrase>
 <phrase>
@@ -3013,13 +3045,16 @@
   desc: in replaygain
   user:
   <source>
-    *: "Prevent Clipping"
+    *: NONE
+    swcodec: "Prevent Clipping"
   </source>
   <dest>
-    *: "Prevent Clipping"
+    *: NONE
+    swcodec: "Prevent Clipping"
   </dest>
   <voice>
-    *: "Prevent Clipping"
+    *: NONE
+    swcodec: "Prevent Clipping"
   </voice>
 </phrase>
 <phrase>
@@ -3027,13 +3062,16 @@
   desc: in replaygain
   user:
   <source>
-    *: "Replaygain Type"
+    *: NONE
+    swcodec: "Replaygain Type"
   </source>
   <dest>
-    *: "Replaygain Type"
+    *: NONE
+    swcodec: "Replaygain Type"
   </dest>
   <voice>
-    *: "Replaygain Type"
+    *: NONE
+    swcodec: "Replaygain Type"
   </voice>
 </phrase>
 <phrase>
@@ -3041,13 +3079,16 @@
   desc: in replaygain
   user:
   <source>
-    *: "Album Gain"
+    *: NONE
+    swcodec: "Album Gain"
   </source>
   <dest>
-    *: "Album Gain"
+    *: NONE
+    swcodec: "Album Gain"
   </dest>
   <voice>
-    *: "Album Gain"
+    *: NONE
+    swcodec: "Album Gain"
   </voice>
 </phrase>
 <phrase>
@@ -3055,13 +3096,16 @@
   desc: in replaygain
   user:
   <source>
-    *: "Track Gain"
+    *: NONE
+    swcodec: "Track Gain"
   </source>
   <dest>
-    *: "Track Gain"
+    *: NONE
+    swcodec: "Track Gain"
   </dest>
   <voice>
-    *: "Track Gain"
+    *: NONE
+    swcodec: "Track Gain"
   </voice>
 </phrase>
 <phrase>
@@ -3069,27 +3113,33 @@
   desc: use track gain if shuffle mode is on, album gain otherwise
   user:
   <source>
-    *: "Track Gain if Shuffling"
+    *: NONE
+    swcodec: "Track Gain if Shuffling"
   </source>
   <dest>
-    *: "Track Gain if Shuffling"
+    *: NONE
+    swcodec: "Track Gain if Shuffling"
   </dest>
   <voice>
-    *: "Track Gain if Shuffling"
+    *: NONE
+    swcodec: "Track Gain if Shuffling"
   </voice>
 </phrase>
 <phrase>
   id: LANG_REPLAYGAIN_PREAMP
   desc: in replaygain settings
-  user:
+  user:    *: NONE
+    swcodec
   <source>
     *: "Pre-amp"
   </source>
   <dest>
-    *: "Pre-amp"
+    *: NONE
+    swcodec: "Pre-amp"
   </dest>
   <voice>
-    *: "Preamp"
+    *: NONE
+    swcodec: "Preamp"
   </voice>
 </phrase>
 <phrase>
@@ -3139,13 +3189,16 @@
   desc: in settings_menu
   user:
   <source>
-    *: "Backlight Fade In"
+    *: NONE
+    backlight_fade: "Backlight Fade In"
   </source>
   <dest>
-    *: "Backlight Fade In"
+    *: NONE
+    backlight_fade: "Backlight Fade In"
   </dest>
   <voice>
-    *: "Backlight Fade In"
+    *: NONE
+    backlight_fade: "Backlight Fade In"
   </voice>
 </phrase>
 <phrase>
@@ -3153,13 +3206,16 @@
   desc: in settings_menu
   user:
   <source>
-    *: "Backlight Fade Out"
+    *: NONE
+    backlight_fade: "Backlight Fade Out"
   </source>
   <dest>
-    *: "Backlight Fade Out"
+    *: NONE
+    backlight_fade: "Backlight Fade Out"
   </dest>
   <voice>
-    *: "Backlight Fade Out"
+    *: NONE
+    backlight_fade: "Backlight Fade Out"
   </voice>
 </phrase>
 <phrase>
@@ -3209,17 +3265,20 @@
   desc: in settings_menu
   user:
   <source>
-    *: "LCD Mode"
+    *: NONE
+    lcd_invert: "LCD Mode"
   </source>
   <dest>
-    *: "LCD Mode"
+    *: NONE
+    lcd_invert: "LCD Mode"
   </dest>
   <voice>
-    *: "LCD Mode"
+    *: NONE
+    lcd_invert: "LCD Mode"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_INVERT_LCD_NORMAL
+  id: LANG_NORMAL
   desc: in settings_menu
   user:
   <source>
@@ -3237,13 +3296,16 @@
   desc: in settings_menu
   user:
   <source>
-    *: "Inverse"
+    *: NONE
+    lcd_invert: "Inverse"
   </source>
   <dest>
-    *: "Inverse"
+    *: NONE
+    lcd_invert: "Inverse"
   </dest>
   <voice>
-    *: "Inverse"
+    *: NONE
+    lcd_invert: "Inverse"
   </voice>
 </phrase>
 <phrase>
@@ -3251,13 +3313,16 @@
   desc: in settings_menu, option to turn display+buttos by 180 degreed
   user:
   <source>
-    *: "Upside Down"
+    *: NONE
+    lcd_flip: "Upside Down"
   </source>
   <dest>
-    *: "Upside Down"
+    *: NONE
+    lcd_flip: "Upside Down"
   </dest>
   <voice>
-    *: "Upside Down"
+    *: NONE
+    lcd_flip: "Upside Down"
   </voice>
 </phrase>
 <phrase>
@@ -3307,13 +3372,16 @@
   desc: text for LCD settings menu
   user:
   <source>
-    *: "Clear Backdrop"
+    *: NONE
+    lcd_color: "Clear Backdrop"
   </source>
   <dest>
-    *: "Clear Backdrop"
+    *: NONE
+    lcd_color: "Clear Backdrop"
   </dest>
   <voice>
-    *: "Clear Backdrop"
+    *: NONE
+    lcd_color: "Clear Backdrop"
   </voice>
 </phrase>
 <phrase>
@@ -3321,13 +3389,16 @@
   desc: menu entry to set the background color
   user:
   <source>
-    *: "Background Colour"
+    *: NONE
+    lcd_color: "Background Colour"
   </source>
   <dest>
-    *: "Background Colour"
+    *: NONE
+    lcd_color: "Background Colour"
   </dest>
   <voice>
-    *: "Background Colour"
+    *: NONE
+    lcd_color: "Background Colour"
   </voice>
 </phrase>
 <phrase>
@@ -3335,13 +3406,16 @@
   desc: menu entry to set the foreground color
   user:
   <source>
-    *: "Foreground Colour"
+    *: NONE
+    lcd_color: "Foreground Colour"
   </source>
   <dest>
-    *: "Foreground Colour"
+    *: NONE
+    lcd_color: "Foreground Colour"
   </dest>
   <voice>
-    *: "Foreground Colour"
+    *: NONE
+    lcd_color: "Foreground Colour"
   </voice>
 </phrase>
 <phrase>
@@ -3349,13 +3423,16 @@
   desc: menu
   user:
   <source>
-    *: "Reset Colours"
+    *: NONE
+    lcd_color: "Reset Colours"
   </source>
   <dest>
-    *: "Reset Colours"
+    *: NONE
+    lcd_color: "Reset Colours"
   </dest>
   <voice>
-    *: "Reset Colours"
+    *: NONE
+    lcd_color: "Reset Colours"
   </voice>
 </phrase>
 <phrase>
@@ -3363,13 +3440,16 @@
   desc: in remote lcd settings menu
   user:
   <source>
-    *: "Reduce Ticking"
+    *: NONE
+    remote_ticking: "Reduce Ticking"
   </source>
   <dest>
-    *: "Reduce Ticking"
+    *: NONE
+    remote_ticking: "Reduce Ticking"
   </dest>
   <voice>
-    *: "Reduce Ticking"
+    *: NONE
+    remote_ticking: "Reduce Ticking"
   </voice>
 </phrase>
 <phrase>
@@ -3461,13 +3541,16 @@
   desc: (player) menu altarnative for jump scroll
   user:
   <source>
-    *: "Jump Scroll"
+    *: NONE
+    player: "Jump Scroll"
   </source>
   <dest>
-    *: "Jump Scroll"
+    *: NONE
+    player: "Jump Scroll"
   </dest>
   <voice>
-    *: "Jump Scroll"
+    *: NONE
+    player: "Jump Scroll"
   </voice>
 </phrase>
 <phrase>
@@ -3475,13 +3558,16 @@
   desc: (player) the jump scroll shall be done "one time"
   user:
   <source>
-    *: "One time"
+    *: NONE
+    player: "One time"
   </source>
   <dest>
-    *: "One time"
+    *: NONE
+    player: "One time"
   </dest>
   <voice>
-    *: "One time"
+    *: NONE
+    player: "One time"
   </voice>
 </phrase>
 <phrase>
@@ -3489,13 +3575,16 @@
   desc: (player) Delay before making a jump scroll
   user:
   <source>
-    *: "Jump Scroll Delay"
+    *: NONE
+    player: "Jump Scroll Delay"
   </source>
   <dest>
-    *: "Jump Scroll Delay"
+    *: NONE
+    player: "Jump Scroll Delay"
   </dest>
   <voice>
-    *: "Jump Scroll Delay"
+    *: NONE
+    player: "Jump Scroll Delay"
   </voice>
 </phrase>
 <phrase>
@@ -3797,13 +3886,16 @@
   desc: in battery settings
   user:
   <source>
-    *: "Battery Type"
+    *: NONE
+    battery_types: "Battery Type"
   </source>
   <dest>
-    *: "Battery Type"
+    *: NONE
+    battery_types: "Battery Type"
   </dest>
   <voice>
-    *: "Battery type"
+    *: NONE
+    battery_types: "Battery type"
   </voice>
 </phrase>
 <phrase>
@@ -3811,13 +3903,16 @@
   desc: in battery settings
   user:
   <source>
-    *: "Alkaline"
+    *: NONE
+    battery_types: "Alkaline"
   </source>
   <dest>
-    *: "Alkaline"
+    *: NONE
+    battery_types: "Alkaline"
   </dest>
   <voice>
-    *: "Alkaline"
+    *: NONE
+    battery_types: "Alkaline"
   </voice>
 </phrase>
 <phrase>
@@ -3825,13 +3920,16 @@
   desc: in battery settings
   user:
   <source>
-    *: "NiMH"
+    *: NONE
+    battery_types: "NiMH"
   </source>
   <dest>
-    *: "NiMH"
+    *: NONE
+    battery_types: "NiMH"
   </dest>
   <voice>
-    *: "Nickel metal hydride"
+    *: NONE
+    battery_types: "Nickel metal hydride"
   </voice>
 </phrase>
 <phrase>
@@ -3849,48 +3947,23 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_POWEROFF
-  desc: DEPRECATED
-  user:
-  <source>
-    *: ""
-  </source>
-  <dest>
-    *: deprecated
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_DIRCACHE_ENABLE
   desc: in directory cache settings
   user:
   <source>
-    *: "Directory Cache"
+    *: NONE
+    dircache: "Directory Cache"
   </source>
   <dest>
-    *: "Directory Cache"
+    *: NONE
+    dircache: "Directory Cache"
   </dest>
   <voice>
-    *: "Directory Cache"
+    *: NONE
+    dircache: "Directory Cache"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_DIRCACHE_REBOOT
-  desc: DEPRECATED
-  user:
-  <source>
-    *: ""
-  </source>
-  <dest>
-    *: ""
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_DIRCACHE_BUILDING
   desc: when booting up and rebuilding the cache
   user:
@@ -3909,13 +3982,16 @@
   desc: in settings_menu
   user:
   <source>
-    *: "Set Time/Date"
+    *: NONE
+    rtc: "Set Time/Date"
   </source>
   <dest>
-    *: "Set Time/Date"
+    *: NONE
+    rtc: "Set Time/Date"
   </dest>
   <voice>
-    *: "Set Time and Date"
+    *: NONE
+    rtc: "Set Time and Date"
   </voice>
 </phrase>
 <phrase>
@@ -3923,13 +3999,16 @@
   desc: select the time format of time in status bar
   user:
   <source>
-    *: "Time Format"
+    *: NONE
+    rtc: "Time Format"
   </source>
   <dest>
-    *: "Time Format"
+    *: NONE
+    rtc: "Time Format"
   </dest>
   <voice>
-    *: "Time Format"
+    *: NONE
+    rtc: "Time Format"
   </voice>
 </phrase>
 <phrase>
@@ -3937,13 +4016,16 @@
   desc: option for 12 hour clock
   user:
   <source>
-    *: "12 Hour Clock"
+    *: NONE
+    rtc: "12 Hour Clock"
   </source>
   <dest>
-    *: "12 Hour Clock"
+    *: NONE
+    rtc: "12 Hour Clock"
   </dest>
   <voice>
-    *: "12 Hour Clock"
+    *: NONE
+    rtc: "12 Hour Clock"
   </voice>
 </phrase>
 <phrase>
@@ -3951,13 +4033,16 @@
   desc: option for 24 hour clock
   user:
   <source>
-    *: "24 Hour Clock"
+    *: NONE
+    rtc: "24 Hour Clock"
   </source>
   <dest>
-    *: "24 Hour Clock"
+    *: NONE
+    rtc: "24 Hour Clock"
   </dest>
   <voice>
-    *: "24 Hour Clock"
+    *: NONE
+    rtc: "24 Hour Clock"
   </voice>
 </phrase>
 <phrase>
@@ -4147,13 +4232,16 @@
   desc: text for onplay menu entry
   user:
   <source>
-    *: "Set As Backdrop"
+    *: NONE
+    lcd_color: "Set As Backdrop"
   </source>
   <dest>
-    *: "Set As Backdrop"
+    *: NONE
+    lcd_color: "Set As Backdrop"
   </dest>
   <voice>
-    *: "Set As Backdrop"
+    *: NONE
+    lcd_color: "Set As Backdrop"
   </voice>
 </phrase>
 <phrase>
@@ -4227,20 +4315,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_PITCH
-  desc: "pitch" in the pitch screen
-  user:
-  <source>
-    *: "Pitch"
-  </source>
-  <dest>
-    *: "Pitch"
-  </dest>
-  <voice>
-    *: "Pitch"
-  </voice>
-</phrase>
-<phrase>
   id: LANG_VIEW
   desc: in on+play menu
   user:
@@ -4438,40 +4512,28 @@
 </phrase>
 <phrase>
   id: LANG_ROCKBOX_INFO
-  desc: displayed topmost on the info screen
+  desc: displayed topmost on the info screen and in the info menu
   user:
   <source>
-    *: "Rockbox Info:"
+    *: "Rockbox Info"
   </source>
   <dest>
-    *: "Rockbox Info:"
+    *: "Rockbox Info"
   </dest>
   <voice>
-    *: ""
+    *: "Rockbox Info"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_BUFFER_STAT_PLAYER
-  desc: the buffer size player-screen width, %d MB %d fraction of MB
+  id: LANG_BUFFER_STAT
+  desc: the buffer size, %d MB %d fraction of MB
   user:
   <source>
-    *: "Buf: %d.%03dMB"
-  </source>
-  <dest>
-    *: "Buf: %d.%03dMB"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_BUFFER_STAT_RECORDER
-  desc: the buffer size recorder-screen width, %d MB %d fraction of MB
-  user:
-  <source>
     *: "Buffer: %d.%03dMB"
+    player: "Buf: %d.%03dMB"
   </source>
   <dest>
+    player: "Buf: %d.%03dMB"
     *: "Buffer: %d.%03dMB"
   </dest>
   <voice>
@@ -4567,13 +4629,16 @@
   desc: in info menu; name for internal disk with multivolume (keep short!)
   user:
   <source>
-    *: "Int:"
+    *: NONE
+    multivolume: "Int:"
   </source>
   <dest>
-    *: "Int:"
+    *: NONE
+    multivolume: "Int:"
   </dest>
   <voice>
-    *: "Internal"
+    *: NONE
+    multivolume: "Internal"
   </voice>
 </phrase>
 <phrase>
@@ -4581,13 +4646,16 @@
   desc: in info menu;  name for external disk with multivolume (Ondio; keep short!)
   user:
   <source>
-    *: "MMC:"
+    *: NONE
+    ondio: "MMC:"
   </source>
   <dest>
-    *: "MMC:"
+    *: NONE
+    ondio: "MMC:"
   </dest>
   <voice>
-    *: "Multimedia card"
+    *: NONE
+    ondio: "Multimedia card"
   </voice>
 </phrase>
 <phrase>
@@ -4605,17 +4673,37 @@
   </voice>
 </phrase>
 <phrase>
+  id: LANG_PITCH
+  desc: "pitch" in the pitch screen
+  user:
+  <source>
+    *: NONE
+    pitchscreen: "Pitch"
+  </source>
+  <dest>
+    *: NONE
+    pitchscreen: "Pitch"
+  </dest>
+  <voice>
+    *: NONE
+    pitchscreen: "Pitch"
+  </voice>
+</phrase>
+<phrase>
   id: LANG_PITCH_UP
   desc: in wps
   user:
   <source>
-    *: "Pitch Up"
+    *: NONE
+    pitchscreen: "Pitch Up"
   </source>
   <dest>
-    *: "Pitch Up"
+    *: NONE
+    pitchscreen: "Pitch Up"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    pitchscreen: ""
   </voice>
 </phrase>
 <phrase>
@@ -4623,16 +4711,53 @@
   desc: in wps
   user:
   <source>
-    *: "Pitch Down"
+    *: NONE
+    pitchscreen: "Pitch Down"
   </source>
   <dest>
-    *: "Pitch Down"
+    *: NONE
+    pitchscreen: "Pitch Down"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    pitchscreen: " "
   </voice>
 </phrase>
 <phrase>
+  id: LANG_PITCH_UP_SEMITONE
+  desc: in wps
+  user:
+  <source>
+    *: NONE
+    pitchscreen: "Semitone Up"
+  </source>
+  <dest>
+    *: NONE
+    pitchscreen: "Semitone Up"
+  </dest>
+  <voice>
+    *: NONE
+    pitchscreen: ""
+  </voice>
+</phrase>
+<phrase>
+  id: LANG_PITCH_DOWN_SEMITONE
+  desc: in wps
+  user:
+  <source>
+    *: NONE
+    pitchscreen: "Semitone Down"
+  </source>
+  <dest>
+    *: NONE
+    pitchscreen: "Semitone Down"
+  </dest>
+  <voice>
+    *: NONE
+    pitchscreen: ""
+  </voice>
+</phrase>
+<phrase>
   id: LANG_PAUSE
   desc: in wps
   user:
@@ -4647,8 +4772,8 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_F2_MODE
-  desc: in wps F2 pressed
+  id: LANG_MODE
+  desc: in wps F2 pressed and radio screen
   user:
   <source>
     *: "Mode:"
@@ -4939,56 +5064,32 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_KEYLOCK_ON_PLAYER
+  id: LANG_KEYLOCK_ON
   desc: displayed when key lock is on
   user:
   <source>
-    *: "Key Lock ON"
-  </source>
-  <dest>
-    *: "Key Lock ON"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_KEYLOCK_OFF_PLAYER
-  desc: displayed when key lock is turned off
-  user:
-  <source>
-    *: "Key Lock OFF"
-  </source>
-  <dest>
-    *: "Key Lock OFF"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_KEYLOCK_ON_RECORDER
-  desc: displayed when key lock is on
-  user:
-  <source>
     *: "Keylock is ON"
+    player: "Key Lock ON"
   </source>
   <dest>
     *: "Keylock is ON"
+    player: "Key Lock ON"
   </dest>
   <voice>
     *: ""
   </voice>
 </phrase>
 <phrase>
-  id: LANG_KEYLOCK_OFF_RECORDER
+  id: LANG_KEYLOCK_OFF
   desc: displayed when key lock is turned off
   user:
   <source>
     *: "Keylock is OFF"
+    player: "Key Lock OFF"
   </source>
   <dest>
     *: "Keylock is OFF"
+    player: "Key Lock OFF"
   </dest>
   <voice>
     *: ""
@@ -5126,31 +5227,17 @@
   user:
   <source>
     *: "The disk is full. Press OFF to continue."
-    h100,h120,h300: "The disk is full. Press STOP to continue."
+    recording: "The disk is full. Press STOP to continue."
   </source>
   <dest>
     *: "The disk is full. Press OFF to continue."
-    h100,h120,h300: "The disk is full. Press STOP to continue."
+    recording: "The disk is full. Press STOP to continue."
   </dest>
   <voice>
     *: ""
   </voice>
 </phrase>
 <phrase>
-  id: LANG_RECORD_TRIGGER_MODE
-  desc: in recording settings_menu
-  user:
-  <source>
-    *: "Trigger"
-  </source>
-  <dest>
-    *: "Trigger"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_RECORD_TRIG_NOREARM
   desc: in recording settings_menu
   user:
@@ -5295,13 +5382,16 @@
   desc: The current alarm time shown in the alarm menu for the RTC alarm mod.
   user:
   <source>
-    *: "Alarm Time: %02d:%02d"
+    *: NONE
+    alarm: "Alarm Time: %02d:%02d"
   </source>
   <dest>
-    *: "Alarm Time: %02d:%02d"
+    *: NONE
+    alarm: "Alarm Time: %02d:%02d"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    alarm: ""
   </voice>
 </phrase>
 <phrase>
@@ -5309,13 +5399,16 @@
   desc: The time until the alarm will go off shown in the alarm menu for the RTC alarm mod.
   user:
   <source>
-    *: "Waking Up In %d:%02d"
+    *: NONE
+    alarm: "Waking Up In %d:%02d"
   </source>
   <dest>
-    *: "Waking Up In %d:%02d"
+    *: NONE
+    alarm: "Waking Up In %d:%02d"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    alarm: ""
   </voice>
 </phrase>
 <phrase>
@@ -5323,13 +5416,16 @@
   desc: The text that tells the user that the alarm time is ok and the device shuts off (for the RTC alarm mod).
   user:
   <source>
-    *: "Alarm Set"
+    *: NONE
+    alarm: "Alarm Set"
   </source>
   <dest>
-    *: "Alarm Set"
+    *: NONE
+    alarm: "Alarm Set"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    alarm: ""
   </voice>
 </phrase>
 <phrase>
@@ -5337,13 +5433,16 @@
   desc: The text that tells that the time is incorrect (for the RTC alarm mod).
   user:
   <source>
-    *: "Alarm Time Is Too Soon!"
+    *: NONE
+    alarm: "Alarm Time Is Too Soon!"
   </source>
   <dest>
-    *: "Alarm Time Is Too Soon!"
+    *: NONE
+    alarm: "Alarm Time Is Too Soon!"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    alarm: ""
   </voice>
 </phrase>
 <phrase>
@@ -5351,13 +5450,16 @@
   desc: Shown key functions in alarm menu (for the RTC alarm mod).
   user:
   <source>
-    *: "PLAY=Set OFF=Cancel"
+    *: NONE
+    alarm: "PLAY=Set OFF=Cancel"
   </source>
   <dest>
-    *: "PLAY=Set OFF=Cancel"
+    *: NONE
+    alarm: "PLAY=Set OFF=Cancel"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    alarm: ""
   </voice>
 </phrase>
 <phrase>
@@ -5365,13 +5467,16 @@
   desc: Announce that the RTC alarm has been turned off
   user:
   <source>
-    *: "Alarm Disabled"
+    *: NONE
+    alarm: "Alarm Disabled"
   </source>
   <dest>
-    *: "Alarm Disabled"
+    *: NONE
+    alarm: "Alarm Disabled"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    alarm: ""
   </voice>
 </phrase>
 <phrase>
@@ -5379,13 +5484,16 @@
   desc: what to show for the 'R' 'G' 'B' ONE LETTER EACH
   user:
   <source>
-    *: "RGB"
+    *: NONE
+    lcd_color: "RGB"
   </source>
   <dest>
-    *: "RGB"
+   *: NONE
+    lcd_color: "RGB"
   </dest>
   <voice>
-    *: ""
+   *: NONE
+    lcd_color: ""
   </voice>
 </phrase>
 <phrase>
@@ -5393,13 +5501,16 @@
   desc: in color screen
   user:
   <source>
-    *: "RGB: %02X%02X%02X"
+   *: NONE
+    lcd_color: "RGB: %02X%02X%02X"
   </source>
   <dest>
-    *: "RGB: %02X%02X%02X"
+   *: NONE
+    lcd_color: "RGB: %02X%02X%02X"
   </dest>
   <voice>
-    *: ""
+   *: NONE
+    lcd_color: ""
   </voice>
 </phrase>
 <phrase>
@@ -5407,13 +5518,16 @@
   desc: splash when user selects an invalid colour
   user:
   <source>
-    *: "Invalid colour"
+   *: NONE
+    lcd_color: "Invalid colour"
   </source>
   <dest>
-    *: "Invalid colour"
+   *: NONE
+    lcd_color: "Invalid colour"
   </dest>
   <voice>
-    *: ""
+   *: NONE
+    lcd_color: ""
   </voice>
 </phrase>
 <phrase>
@@ -5571,7 +5685,7 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_ID3_FRECUENCY
+  id: LANG_ID3_FREQUENCY
   desc: in tag viewer
   user:
   <source>
@@ -5589,13 +5703,16 @@
   desc: in tag viewer
   user:
   <source>
-    *: "[Track Gain]"
+    *: NONE
+    swcodec: "[Track Gain]"
   </source>
   <dest>
-    *: "[Track Gain]"
+    *: NONE
+    swcodec: "[Track Gain]"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    swcodec: ""
   </voice>
 </phrase>
 <phrase>
@@ -5603,13 +5720,16 @@
   desc: in tag viewer
   user:
   <source>
-    *: "[Album Gain]"
+    *: NONE
+    swcodec: "[Album Gain]"
   </source>
   <dest>
-    *: "[Album Gain]"
+    *: NONE
+    swcodec: "[Album Gain]"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    swcodec: ""
   </voice>
 </phrase>
 <phrase>
@@ -7223,20 +7343,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_PLAYLIST_LOAD
-  desc: displayed on screen while loading a playlist
-  user:
-  <source>
-    *: "Loading..."
-  </source>
-  <dest>
-    *: "Loading..."
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_PLAYLIST_SHUFFLE
   desc: displayed on screen while shuffling a playlist
   user:
@@ -7265,28 +7371,16 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_END_PLAYLIST_PLAYER
+  id: LANG_END_PLAYLIST
   desc: when playlist has finished
   user:
   <source>
-    *: "End of List"
-  </source>
-  <dest>
-    *: "End of List"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_END_PLAYLIST_RECORDER
-  desc: when playlist has finished
-  user:
-  <source>
     *: "End of Song List"
+    player: "End of List"
   </source>
   <dest>
     *: "End of Song List"
+    player: "End of List"
   </dest>
   <voice>
     *: ""
@@ -7465,13 +7559,16 @@
   desc: in radio screen
   user:
   <source>
-    *: "Station: %d.%02d MHz"
+    *: NONE
+    radio: "Station: %d.%02d MHz"
   </source>
   <dest>
-    *: "Station: %d.%02d MHz"
+    *: NONE
+    radio: "Station: %d.%02d MHz"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7479,13 +7576,16 @@
   desc: error when preset list is empty
   user:
   <source>
-    *: "No presets"
+    *: NONE
+    radio: "No presets"
   </source>
   <dest>
-    *: "No presets"
+    *: NONE
+    radio: "No presets"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7493,13 +7593,16 @@
   desc: in radio menu
   user:
   <source>
-    *: "Add Preset"
+    *: NONE
+    radio: "Add Preset"
   </source>
   <dest>
-    *: "Add Preset"
+    *: NONE
+    radio: "Add Preset"
   </dest>
   <voice>
-    *: "Add Preset"
+    *: NONE
+    radio: "Add Preset"
   </voice>
 </phrase>
 <phrase>
@@ -7507,13 +7610,16 @@
   desc: in radio screen
   user:
   <source>
-    *: "Edit Preset"
+    *: NONE
+    radio: "Edit Preset"
   </source>
   <dest>
-    *: "Edit Preset"
+    *: NONE
+    radio: "Edit Preset"
   </dest>
   <voice>
-    *: "Edit Preset"
+    *: NONE
+    radio: "Edit Preset"
   </voice>
 </phrase>
 <phrase>
@@ -7521,13 +7627,16 @@
   desc: in radio screen
   user:
   <source>
-    *: "Remove Preset"
+    *: NONE
+    radio: "Remove Preset"
   </source>
   <dest>
-    *: "Remove Preset"
+    *: NONE
+    radio: "Remove Preset"
   </dest>
   <voice>
-    *: "Remove Preset"
+    *: NONE
+    radio: "Remove Preset"
   </voice>
 </phrase>
 <phrase>
@@ -7535,13 +7644,16 @@
   desc: in radio screen
   user:
   <source>
-    *: "Preset Save Failed"
+    *: NONE
+    radio: "Preset Save Failed"
   </source>
   <dest>
-    *: "Preset Save Failed"
+    *: NONE
+    radio: "Preset Save Failed"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7549,13 +7661,16 @@
   desc: in radio screen
   user:
   <source>
-    *: "The Preset List is Full"
+    *: NONE
+    radio: "The Preset List is Full"
   </source>
   <dest>
-    *: "The Preset List is Full"
+    *: NONE
+    radio: "The Preset List is Full"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7577,13 +7692,16 @@
   desc: in radio screen
   user:
   <source>
-    *: "Exit"
+    *: NONE
+    radio: "Exit"
   </source>
   <dest>
-    *: "Exit"
+    *: NONE
+    radio: "Exit"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7591,27 +7709,33 @@
   desc: in radio screen
   user:
   <source>
-    *: "Action"
+    *: NONE
+    radio: "Action"
   </source>
   <dest>
-    *: "Action"
+    *: NONE
+    radio: "Action"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
-  id: LANG_FM_BUTTONBAR_PRESETS
-  desc: in button bar
+  id: LANG_PRESET
+  desc: in button bar and radio screen / menu
   user:
   <source>
-    *: "Preset"
+    *: NONE
+    radio: "Preset"
   </source>
   <dest>
-    *: "Preset"
+    *: NONE
+    radio: "Preset"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7619,13 +7743,16 @@
   desc: in radio screen
   user:
   <source>
-    *: "Add"
+    *: NONE
+    radio: "Add"
   </source>
   <dest>
-    *: "Add"
+    *: NONE
+    radio: "Add"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7633,13 +7760,16 @@
   desc: in radio screen
   user:
   <source>
-    *: "Record"
+    *: NONE
+    radio: "Record"
   </source>
   <dest>
-    *: "Record"
+    *: NONE
+    radio: "Record"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7647,13 +7777,16 @@
   desc: in radio screen
   user:
   <source>
-    *: "Force mono"
+    *: NONE
+    radio: "Force mono"
   </source>
   <dest>
-    *: "Force mono"
+    *: NONE
+    radio: "Force mono"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7661,13 +7794,16 @@
   desc: splash screen during freeze in radio mode
   user:
   <source>
-    *: "Screen frozen!"
+    *: NONE
+    radio: "Screen frozen!"
   </source>
   <dest>
-    *: "Screen frozen!"
+    *: NONE
+    radio: "Screen frozen!"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7675,13 +7811,16 @@
   desc: in radio menu
   user:
   <source>
-    *: "Auto-Scan Presets"
+    *: NONE
+    radio: "Auto-Scan Presets"
   </source>
   <dest>
-    *: "Auto-Scan Presets"
+    *: NONE
+    radio: "Auto-Scan Presets"
   </dest>
   <voice>
-    *: "Auto scan presets"
+    *: NONE
+    radio: "Auto scan presets"
   </voice>
 </phrase>
 <phrase>
@@ -7689,13 +7828,16 @@
   desc: confirmation if presets can be cleared
   user:
   <source>
-    *: "Clear Current Presets?"
+    *: NONE
+    radio: "Clear Current Presets?"
   </source>
   <dest>
-    *: "Clear Current Presets?"
+    *: NONE
+    radio: "Clear Current Presets?"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7703,13 +7845,16 @@
   desc: during auto scan
   user:
   <source>
-    *: "Scanning %d.%02d MHz"
+    *: NONE
+    radio: "Scanning %d.%02d MHz"
   </source>
   <dest>
-    *: "Scanning %d.%02d MHz"
+    *: NONE
+    radio: "Scanning %d.%02d MHz"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -7717,100 +7862,36 @@
   desc: default preset name for auto scan mode
   user:
   <source>
-    *: "%d.%02d MHz"
+    *: NONE
+    radio: "%d.%02d MHz"
   </source>
   <dest>
-    *: "%d.%02d MHz"
+    *: NONE
+    radio: "%d.%02d MHz"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
-  id: LANG_FM_TUNE_MODE
-  desc: in radio screen / menu
-  user:
-  <source>
-    *: "Mode:"
-  </source>
-  <dest>
-    *: "Mode:"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_RADIO_SCAN_MODE
   desc: in radio screen / menu
   user:
   <source>
-    *: "Scan"
+    *: NONE
+    radio: "Scan"
   </source>
   <dest>
-    *: "Scan"
+    *: NONE
+    radio: "Scan"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
-  id: LANG_RADIO_PRESET_MODE
-  desc: in radio screen / menu
-  user:
-  <source>
-    *: "Preset"
-  </source>
-  <dest>
-    *: "Preset"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_DIRBROWSE_F1
-  desc: in dir browser, F1 button bar text
-  user:
-  <source>
-    *: "Menu"
-  </source>
-  <dest>
-    *: "Menu"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_DIRBROWSE_F2
-  desc: in dir browser, F2 button bar text
-  user:
-  <source>
-    *: "Option"
-  </source>
-  <dest>
-    *: "Option"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_DIRBROWSE_F3
-  desc: in dir browser, F3 button bar text
-  user:
-  <source>
-    *: "LCD"
-  </source>
-  <dest>
-    *: "LCD"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_SHOWDIR_BUFFER_FULL
   desc: in showdir(), displayed on screen when you reach buffer limit
   user:
@@ -7900,14 +7981,14 @@
   user:
   <source>
     *: "OFF to abort"
-    h100,h120,h300: "STOP to abort"
+    player,h100,h120,h300: "STOP to abort"
     ipod*: "PLAY/PAUSE to abort"
     x5: "Long PLAY to abort"
     h10: "PREV to abort"
   </source>
   <dest>
     *: "OFF to abort"
-    h100,h120,h300: "STOP to abort"
+    player,h100,h120,h300: "STOP to abort"
     ipod*: "PLAY/PAUSE to abort"
     x5: "Long PLAY to abort"
     h10: "PREV to abort"
@@ -7917,20 +7998,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_STOP_ABORT
-  desc: Used on player models
-  user:
-  <source>
-    *: "STOP to abort"
-  </source>
-  <dest>
-    *: "STOP to abort"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
   id: LANG_NO_FILES
   desc: in settings_menu
   user:
@@ -7949,13 +8016,16 @@
   desc: text for splash to indicate a new backdrop has been loaded successfully
   user:
   <source>
-    *: "Backdrop Loaded"
+    *: NONE
+    lcd_color: "Backdrop Loaded"
   </source>
   <dest>
-    *: "Backdrop Loaded"
+    *: NONE
+    lcd_color: "Backdrop Loaded"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    lcd_color: ""
   </voice>
 </phrase>
 <phrase>
@@ -7963,13 +8033,16 @@
   desc: text for splash to indicate a failure to load a bitmap as backdrop
   user:
   <source>
-    *: "Backdrop Failed"
+    *: NONE
+    lcd_color: "Backdrop Failed"
   </source>
   <dest>
-    *: "Backdrop Failed"
+    *: NONE
+    lcd_color: "Backdrop Failed"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    lcd_color: ""
   </voice>
 </phrase>
 <phrase>
@@ -8369,10 +8442,12 @@
   desc: possible answers to resume question
   user:
   <source>
-    *: "(PLAY/STOP)"
+    *: NONE
+    player: "(PLAY/STOP)"
   </source>
   <dest>
-    *: "(PLAY/STOP)"
+    *: NONE
+    player: "(PLAY/STOP)"
   </dest>
   <voice>
     *: ""
@@ -8383,13 +8458,16 @@
   desc: load preset list in fm radio
   user:
   <source>
-    *: "Load Preset List"
+    *: NONE
+    radio: "Load Preset List"
   </source>
   <dest>
-    *: "Load Preset List"
+    *: NONE
+    radio: "Load Preset List"
   </dest>
   <voice>
-    *: "Load Preset List"
+    *: NONE
+    radio: "Load Preset List"
   </voice>
 </phrase>
 <phrase>
@@ -8397,13 +8475,16 @@
   desc: Save preset list in fm radio
   user:
   <source>
-    *: "Save Preset List"
+    *: NONE
+    radio: "Save Preset List"
   </source>
   <dest>
-    *: "Save Preset List"
+    *: NONE
+    radio: "Save Preset List"
   </dest>
   <voice>
-    *: "Save Preset List"
+    *: NONE
+    radio: "Save Preset List"
   </voice>
 </phrase>
 <phrase>
@@ -8411,13 +8492,16 @@
   desc: clear preset list in fm radio
   user:
   <source>
-    *: "Clear Preset List"
+    *: NONE
+    radio: "Clear Preset List"
   </source>
   <dest>
-    *: "Clear Preset List"
+    *: NONE
+    radio: "Clear Preset List"
   </dest>
   <voice>
-    *: "Clear Preset List"
+    *: NONE
+    radio: "Clear Preset List"
   </voice>
 </phrase>
 <phrase>
@@ -8425,13 +8509,16 @@
   desc: Used when you need to say Preset List, also voiced
   user:
   <source>
-    *: "Preset List"
+    *: NONE
+    radio: "Preset List"
   </source>
   <dest>
-    *: "Preset List"
+    *: NONE
+    radio: "Preset List"
   </dest>
   <voice>
-    *: "Preset List"
+    *: NONE
+    radio: "Preset List"
   </voice>
 </phrase>
 <phrase>
@@ -8439,13 +8526,16 @@
   desc: When you run the radio without an fmr file in settings
   user:
   <source>
-    *: "No settings found. Autoscan?"
+    *: NONE
+    radio: "No settings found. Autoscan?"
   </source>
   <dest>
-    *: "No settings found. Autoscan?"
+    *: NONE
+    radio: "No settings found. Autoscan?"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -8453,13 +8543,16 @@
   desc: When you try to exit radio to confirm save
   user:
   <source>
-    *: "Save Changes?"
+    *: NONE
+    radio: "Save Changes?"
   </source>
   <dest>
-    *: "Save Changes?"
+    *: NONE
+    radio: "Save Changes?"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    radio: ""
   </voice>
 </phrase>
 <phrase>
@@ -8467,13 +8560,16 @@
   desc: In the settings menu
   user:
   <source>
-    *: "pixels"
+    *: NONE
+    lcd_bitmap: "pixels"
   </source>
   <dest>
-    *: "pixels"
+    *: NONE
+    lcd_bitmap: "pixels"
   </dest>
   <voice>
-    *: "pixels"
+    *: NONE
+    lcd_bitmap: "pixels"
   </voice>
 </phrase>
 <phrase>
@@ -8481,52 +8577,64 @@
   desc: in crossfeed settings
   user:
   <source>
-    *: "Direct Gain"
+    *: NONE
+    swcodec: "Direct Gain"
   </source>
   <dest>
-    *: "Direct Gain"
+    *: NONE
+    swcodec: "Direct Gain"
   </dest>
   <voice>
-    *: "Direct gain"
+    *: NONE
+    swcodec: "Direct gain"
   </voice>
 </phrase>
 <phrase>
   id: LANG_CROSSFEED_CROSS_GAIN
   desc: in crossfeed settings
   <source>
-    *: "Cross Gain"
+    *: NONE
+    swcodec: "Cross Gain"
   </source>
   <dest>
-    *: "Cross Gain"
+    *: NONE
+    swcodec: "Cross Gain"
   </dest>
   <voice>
-    *: "Cross gain"
+    *: NONE
+    swcodec: "Cross gain"
   </voice>
 </phrase>
 <phrase>
   id: LANG_CROSSFEED_HF_ATTENUATION
   desc: in crossfeed settings
   <source>
-    *: "High-Frequency Attenuation"
+    *: NONE
+    swcodec: "High-Frequency Attenuation"
   </source>
   <dest>
-    *: "High-Frequency Attenuation"
+    *: NONE
+    swcodec: "High-Frequency Attenuation"
   </dest>
   <voice>
-    *: "High-frequency attenuation"
+    *: NONE
+    swcodec: "High-frequency attenuation"
   </voice>
 </phrase>
 <phrase>
   id: LANG_CROSSFEED_HF_CUTOFF
   desc: in crossfeed settings
   <source>
-    *: "High-Frequency Cutoff"
+    *: NONE
+    swcodec: "High-Frequency Cutoff"
   </source>
   <dest>
-    *: "High-Frequency Cutoff"
+    *: NONE
+    swcodec: "High-Frequency Cutoff"
   </dest>
   <voice>
-    *: "High-frequency cutoff"
+    *: NONE
+    swcodec: "High-frequency cutoff"
   </voice>
 </phrase>
 <phrase>
@@ -8588,13 +8696,16 @@
   desc: "Remote Scrolling Options" Submenu in "Scrolling Options" menu
   user:
   <source>
-    *: "Remote Scrolling Options"
+    *: NONE
+    remote: "Remote Scrolling Options"
   </source>
   <dest>
-    *: "Remote Scrolling Options"
+    *: NONE
+    remote: "Remote Scrolling Options"
   </dest>
   <voice>
-    *: "Remote Scrolling Options"
+    *: NONE
+    remote: "Remote Scrolling Options"
   </voice>
 </phrase>
 <phrase>
@@ -8874,20 +8985,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_BACKLIGHT_ON_BUTTON_HOLD_NORMAL
-  desc: in lcd settings
-  user:
-  <source>
-    *: "Normal"
-  </source>
-  <dest>
-    *: "Normal"
-  </dest>
-  <voice>
-    *: "Normal"
-  </voice>
-</phrase>
-<phrase>
   id: LANG_BACKLIGHT_ON_BUTTON_HOLD
   desc: in lcd settings
   user:
@@ -9032,13 +9129,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Edit mode: %s"
+    *: NONE
+    swcodec: "Edit mode: %s"
   </source>
   <dest>
-    *: "Edit mode: %s"
+    *: NONE
+    swcodec: "Edit mode: %s"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    swcodec: ""
   </voice>
 </phrase>
 <phrase>
@@ -9046,13 +9146,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Cutoff Frequency"
+    *: NONE
+    swcodec: "Cutoff Frequency"
   </source>
   <dest>
-    *: "Cutoff Frequency"
+    *: NONE
+    swcodec: "Cutoff Frequency"
   </dest>
   <voice>
-    *: "Cutoff Frequency"
+    *: NONE
+    swcodec: "Cutoff Frequency"
   </voice>
 </phrase>
 <phrase>
@@ -9060,13 +9163,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Gain"
+    *: NONE
+    swcodec: "Gain"
   </source>
   <dest>
-    *: "Gain"
+    *: NONE
+    swcodec: "Gain"
   </dest>
   <voice>
-    *: "Gain"
+    *: NONE
+    swcodec: "Gain"
   </voice>
 </phrase>
 <phrase>
@@ -9098,7 +9204,7 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SYSFONT_REPEAT_ALL
+  id: LANG_SYSFONT_ALL
   desc: repeat playlist once all songs have completed
   user:
   <source>
@@ -9154,20 +9260,6 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SYSFONT_FILTER_ALL
-  desc: show all files
-  user:
-  <source>
-    *: "All"
-  </source>
-  <dest>
-    *: "All"
-  </dest>
-  <voice>
-    *: "All"
-  </voice>
-</phrase>
-<phrase>
   id: LANG_SYSFONT_FILTER_SUPPORTED
   desc: show all file types supported by Rockbox
   user:
@@ -9210,7 +9302,7 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SYSFONT_FILTER_ID3DB
+  id: LANG_SYSFONT_TAGCACHE
   desc: show ID3 Database
   user:
   <source>
@@ -9280,7 +9372,7 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SYSFONT_RECORDING_SRC_LINE
+  id: LANG_SYSFONT_LINE_IN
   desc: in the recording settings
   user:
   <source>
@@ -9308,7 +9400,7 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SYSFONT_RECORDING_CHANNELS
+  id: LANG_SYSFONT_CHANNELS
   desc: in the recording settings
   user:
   <source>
@@ -9378,49 +9470,7 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SYSFONT_PITCH
-  desc: "pitch" in the pitch screen
-  user:
-  <source>
-    *: "Pitch"
-  </source>
-  <dest>
-    *: "Pitch"
-  </dest>
-  <voice>
-    *: "Pitch"
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_SYSFONT_PITCH_UP
-  desc: in wps
-  user:
-  <source>
-    *: "Pitch Up"
-  </source>
-  <dest>
-    *: "Pitch Up"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_SYSFONT_PITCH_DOWN
-  desc: in wps
-  user:
-  <source>
-    *: "Pitch Down"
-  </source>
-  <dest>
-    *: "Pitch Down"
-  </dest>
-  <voice>
-    *: ""
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_SYSFONT_F2_MODE
+  id: LANG_SYSFONT_MODE
   desc: in wps F2 pressed
   user:
   <source>
@@ -9537,11 +9587,11 @@
   user:
   <source>
     *: "The disk is full. Press OFF to continue."
-    h100,h120,h300: "The disk is full. Press STOP to continue."
+    recording: "The disk is full. Press STOP to continue."
   </source>
   <dest>
     *: "The disk is full. Press OFF to continue."
-    h100,h120,h300: "The disk is full. Press STOP to continue."
+    recording: "The disk is full. Press STOP to continue."
   </dest>
   <voice>
     *: ""
@@ -9621,13 +9671,16 @@
   desc: in the sound settings menu
   user:
   <source>
-    *: "Hardware Equalizer"
+    *: NONE
+    ipodvideo: "Hardware Equalizer"
   </source>
   <dest>
-    *: "Hardware Equalizer"
+    *: NONE
+    ipodvideo: "Hardware Equalizer"
   </dest>
   <voice>
-    *: "Hardware equalizer"
+    *: NONE
+    ipodvideo: "Hardware equalizer"
   </voice>
 </phrase>
 <phrase>
@@ -9635,13 +9688,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Enable Hardware EQ"
+    *: NONE
+    ipodvideo: "Enable Hardware EQ"
   </source>
   <dest>
-    *: "Enable Hardware EQ"
+    *: NONE
+    ipodvideo: "Enable Hardware EQ"
   </dest>
   <voice>
-    *: "Enable hardware equalizer"
+    *: NONE
+    ipodvideo: "Enable hardware equalizer"
   </voice>
 </phrase>
 <phrase>
@@ -9663,13 +9719,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Narrow"
+    *: NONE
+    ipodvideo: "Narrow"
   </source>
   <dest>
-    *: "Narrow"
+    *: NONE
+    ipodvideo: "Narrow"
   </dest>
   <voice>
-    *: "Narrow"
+    *: NONE
+    ipodvideo: "Narrow"
   </voice>
 </phrase>
 <phrase>
@@ -9677,13 +9736,16 @@
   desc: in the equalizer settings menu
   user:
   <source>
-    *: "Wide"
+    *: NONE
+    ipodvideo: "Wide"
   </source>
   <dest>
-    *: "Wide"
+    *: NONE
+    ipodvideo: "Wide"
   </dest>
   <voice>
-    *: "Wide"
+    *: NONE
+    ipodvideo: "Wide"
   </voice>
 </phrase>
 <phrase>
@@ -9732,117 +9794,144 @@
   id: LANG_RECORD_AGC_PRESET
   desc: automatic gain control in record settings
   <source>
-    *: "Automatic Gain Control"
+    *: NONE
+    agc: "Automatic Gain Control"
   </source>
   <dest>
-    *: "Automatic Gain Control"
+    *: NONE
+    agc: "Automatic Gain Control"
   </dest>
   <voice>
-    *: "Automatic gain control"
+    *: NONE
+    agc: "Automatic gain control"
   </voice>
 </phrase>
 <phrase>
   id: LANG_AGC_SAFETY
   desc: AGC preset
   <source>
-    *: "Safety (clip)"
+    *: NONE
+    agc: "Safety (clip)"
   </source>
   <dest>
-    *: "Safety (clip)"
+    *: NONE
+    agc: "Safety (clip)"
   </dest>
   <voice>
-    *: "Safety (clip)"
+    *: NONE
+    agc: "Safety (clip)"
   </voice>
 </phrase>
 <phrase>
   id: LANG_AGC_LIVE
   desc: AGC preset
   <source>
-    *: "Live (slow)"
+    *: NONE
+    agc: "Live (slow)"
   </source>
   <dest>
-    *: "Live (slow)"
+    *: NONE
+    agc: "Live (slow)"
   </dest>
   <voice>
-    *: "Live (slow)"
+    *: NONE
+    agc: "Live (slow)"
   </voice>
 </phrase>
 <phrase>
   id: LANG_AGC_DJSET
   desc: AGC preset
   <source>
-    *: "DJ-Set (slow)"
+    *: NONE
+    agc: "DJ-Set (slow)"
   </source>
   <dest>
-    *: "DJ-Set (slow)"
+    *: NONE
+    agc: "DJ-Set (slow)"
   </dest>
   <voice>
-    *: "DJ set (slow)"
+    *: NONE
+    agc: "DJ set (slow)"
   </voice>
 </phrase>
 <phrase>
   id: LANG_AGC_MEDIUM
   desc: AGC preset
   <source>
-    *: "Medium"
+    *: NONE
+    agc: "Medium"
   </source>
   <dest>
-    *: "Medium"
+    *: NONE
+    agc: "Medium"
   </dest>
   <voice>
-    *: "Medium"
+    *: NONE
+    agc: "Medium"
   </voice>
 </phrase>
 <phrase>
   id: LANG_AGC_VOICE
   desc: AGC preset
   <source>
-    *: "Voice (fast)"
+    *: NONE
+    agc: "Voice (fast)"
   </source>
   <dest>
-    *: "Voice (fast)"
+    *: NONE
+    agc: "Voice (fast)"
   </dest>
   <voice>
-    *: "Voice (fast)"
+    *: NONE
+    agc: "Voice (fast)"
   </voice>
 </phrase>
 <phrase>
   id: LANG_RECORD_AGC_CLIPTIME
   desc: in record settings
   <source>
-    *: "AGC clip time"
+    *: NONE
+    agc: "AGC clip time"
   </source>
   <dest>
-    *: "AGC clip time"
+    *: NONE
+    agc: "AGC clip time"
   </dest>
   <voice>
-    *: "AGC clip time"
+    *: NONE
+    agc: "AGC clip time"
   </voice>
 </phrase>
 <phrase>
   id: LANG_SYSFONT_RECORDING_AGC_PRESET
   desc: automatic gain control in recording screen
   <source>
-    *: "AGC"
+    *: NONE
+    agc: "AGC"
   </source>
   <dest>
-    *: "AGC"
+    *: NONE
+    agc: "AGC"
   </dest>
   <voice>
-    *: "AGC"
+    *: NONE
+    agc: "AGC"
   </voice>
 </phrase>
 <phrase>
   id: LANG_RECORDING_AGC_MAXGAIN
   desc: AGC maximum gain in recording screen
   <source>
-    *: "AGC max. gain"
+    *: NONE
+    agc: "AGC max. gain"
   </source>
   <dest>
-    *: "AGC max. gain"
+    *: NONE
+    agc: "AGC max. gain"
   </dest>
   <voice>
-    *: "AGC maximum gain"
+    *: NONE
+    agc: "AGC maximum gain"
   </voice>
 </phrase>
 <phrase>
@@ -9874,124 +9963,151 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_UNPLUG
+  id: LANG_HEADPHONE_UNPLUG
   desc: in settings_menu.
   user:
   <source>
-    *: "Pause on Headphone Unplug"
+    *: NONE
+    headphone_detection: "Pause on Headphone Unplug"
   </source>
   <dest>
-    *: "Pause on Headphone Unplug"
+    *: NONE
+    headphone_detection: "Pause on Headphone Unplug"
   </dest>
   <voice>
-    *: "Pause on Headphone Unplug"
+    *: NONE
+    headphone_detection: "Pause on Headphone Unplug"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_UNPLUG_RESUME
+  id: LANG_HEADPHONE_UNPLUG_RESUME
   desc: in pause_phones_menu.
   user:
   <source>
-    *: "Pause and Resume"
+    *: NONE
+    headphone_detection: "Pause and Resume"
   </source>
   <dest>
-    *: "Pause and Resume"
+    *: NONE
+    headphone_detection: "Pause and Resume"
   </dest>
   <voice>
-    *: "Pause and Resume"
+    *: NONE
+    headphone_detection: "Pause and Resume"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_UNPLUG_RW
+  id: LANG_HEADPHONE_UNPLUG_RW
   desc: in pause_phones_menu.
   user:
   <source>
-    *: "Duration to Rewind"
+    *: NONE
+    headphone_detection: "Duration to Rewind"
   </source>
   <dest>
-    *: "Duration to Rewind"
+    *: NONE
+    headphone_detection: "Duration to Rewind"
   </dest>
   <voice>
-    *: "Duration to Rewind"
+    *: NONE
+    headphone_detection: "Duration to Rewind"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_UNPLUG_DISABLE_AUTORESUME
+  id: LANG_HEADPHONE_UNPLUG_DISABLE_AUTORESUME
   desc: in pause_phones_menu.
   user:
   <source>
-    *: "Disable resume on startup if phones unplugged"
+    *: NONE
+    headphone_detection: "Disable resume on startup if phones unplugged"
   </source>
   <dest>
-    *: "Disable resume on startup if phones unplugged"
+    *: NONE
+    headphone_detection: "Disable resume on startup if phones unplugged"
   </dest>
   <voice>
-    *: "Disable resume on startup if phones unplugged"
+    *: NONE
+    headphone_detection: "Disable resume on startup if phones unplugged"
   </voice>
 </phrase>
 <phrase>
   id: LANG_FM_REGION
   desc: fm tuner region setting
   <source>
-    *: "Region"
+    *: NONE
+    radio: "Region"
   </source>
   <dest>
-    *: "Region"
+    *: NONE
+    radio: "Region"
   </dest>
   <voice>
-    *: "Region"
+    *: NONE
+    radio: "Region"
   </voice>
 </phrase>
 <phrase>
   id: LANG_FM_EUROPE
   desc: fm tuner region europe
   <source>
-    *: "Europe"
+    *: NONE
+    radio: "Europe"
   </source>
   <dest>
-    *: "Europe"
+    *: NONE
+    radio: "Europe"
   </dest>
   <voice>
-    *: "Europe"
+    *: NONE
+    radio: "Europe"
   </voice>
 </phrase>
 <phrase>
   id: LANG_FM_US
   desc: fm region us / canada
   <source>
-    *: "US / Canada"
+    *: NONE
+    radio: "US / Canada"
   </source>
   <dest>
-    *: "US / Canada"
+    *: NONE
+    radio: "US / Canada"
   </dest>
   <voice>
-    *: "US / Canada"
+    *: NONE
+    radio: "US / Canada"
   </voice>
 </phrase>
 <phrase>
   id: LANG_FM_JAPAN
   desc: fm region japan
   <source>
-    *: "Japan"
+    *: NONE
+    radio: "Japan"
   </source>
   <dest>
-    *: "Japan"
+    *: NONE
+    radio: "Japan"
   </dest>
   <voice>
-    *: "Japan"
+    *: NONE
+    radio: "Japan"
   </voice>
 </phrase>
 <phrase>
   id: LANG_FM_KOREA
   desc: fm region korea
   <source>
-    *: "Korea"
+    *: NONE
+    radio: "Korea"
   </source>
   <dest>
-    *: "Korea"
+    *: NONE
+    radio: "Korea"
   </dest>
   <voice>
-    *: "Korea"
+    *: NONE
+    radio: "Korea"
   </voice>
 </phrase>
 <phrase>
@@ -10040,97 +10156,101 @@
   desc: in the sound settings menu
   user:
   <source>
-    *: "Dithering"
+    *: NONE
+    swcodec: "Dithering"
   </source>
   <dest>
-    *: "Dithering"
+    *: NONE
+    swcodec: "Dithering"
   </dest>
   <voice>
-    *: "Dithering"
+    *: NONE
+    swcodec: "Dithering"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SYSFONT_PITCH_UP_SEMITONE
-  desc: in wps
+  id: LANG_RECORDING_FORMAT
+  desc: audio format item in recording menu
   user:
   <source>
-    *: "Semitone Up"
+    *: NONE
+    swcodec: "Format"
   </source>
   <dest>
-    *: "Semitone Up"
+    *: NONE
+    swcodec: "Format"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    swcodec: "Format"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_SYSFONT_PITCH_DOWN_SEMITONE
-  desc: in wps
+  id: LANG_AFMT_MPA_L3
+  desc: audio format description
   user:
   <source>
-    *: "Semitone Down"
+    *: NONE
+    swcodec: "MPEG Layer 3"
   </source>
   <dest>
-    *: "Semitone Down"
+    *: NONE
+    swcodec: "MPEG Layer 3"
   </dest>
   <voice>
-    *: ""
+    *: NONE
+    swcodec: "MPEG Layer 3"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_RECORDING_FORMAT
-  desc: audio format item in recording menu
-  user:
-  <source>
-    *: "Format"
-  </source>
-  <dest>
-    *: "Format"
-  </dest>
-  <voice>
-    *: "Format"
-  </voice>
-</phrase>
-<phrase>
-  id: LANG_AFMT_MPA_L3
+  id: LANG_AFMT_PCM_WAV
   desc: audio format description
   user:
   <source>
-    *: "MPEG Layer 3"
+    *: NONE
+    swcodec: "PCM Wave"
   </source>
   <dest>
-    *: "MPEG Layer 3"
+    *: NONE
+    swcodec: "PCM Wave"
   </dest>
   <voice>
-    *: "MPEG Layer 3"
+    *: NONE
+    swcodec: "PCM Wave"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_AFMT_PCM_WAV
+  id: LANG_AFMT_WAVPACK
   desc: audio format description
   user:
   <source>
-    *: "PCM Wave"
+    *: NONE
+    swcodec: "WavPack"
   </source>
   <dest>
-    *: "PCM Wave"
+    *: NONE
+    swcodec: "WavPack"
   </dest>
   <voice>
-    *: "PCM Wave"
+    *: NONE
+    swcodec: "WavPack"
   </voice>
 </phrase>
 <phrase>
-  id: LANG_AFMT_WAVPACK
+  id: LANG_AFMT_AIFF
   desc: audio format description
   user:
   <source>
-    *: "WavPack"
+    *: NONE
+    swcodec: "AIFF"
   </source>
   <dest>
-    *: "WavPack"
+    *: NONE
+    swcodec: "AIFF"
   </dest>
   <voice>
-    *: "WavPack"
+    *: NONE
+    swcodec: "AIFF"
   </voice>
 </phrase>
 <phrase>
@@ -10138,13 +10258,16 @@
   desc: encoder settings
   user:
   <source>
-    *: "Encoder Settings"
+    *: NONE
+    swcodec: "Encoder Settings"
   </source>
   <dest>
-    *: "Encoder Settings"
+    *: NONE
+    swcodec: "Encoder Settings"
   </dest>
   <voice>
-    *: "Encoder Settings"
+    *: NONE
+    swcodec: "Encoder Settings"
   </voice>
 </phrase>
 <phrase>
@@ -10270,95 +10393,99 @@
   </voice>
 </phrase>
 <phrase>
-  id: LANG_AFMT_AIFF
-  desc: audio format description
-  user:
-  <source>
-    *: "AIFF"
-  </source>
-  <dest>
-    *: "AIFF"
-  </dest>
-  <voice>
-    *: "AIFF"
-  </voice>
-</phrase>
-<phrase>
   id: LANG_SYSFONT_AGC_SAFETY
   desc: AGC preset
   <source>
-    *: "Safety (clip)"
+    *: NONE
+    agc: "Safety (clip)"
   </source>
   <dest>
-    *: "Safety (clip)"
+    *: NONE
+    agc: "Safety (clip)"
   </dest>
   <voice>
-    *: "Safety (clip)"
+    *: NONE
+    agc: "Safety (clip)"
   </voice>
 </phrase>
 <phrase>
   id: LANG_SYSFONT_AGC_LIVE
   desc: AGC preset
   <source>
-    *: "Live (slow)"
+    *: NONE
+    agc: "Live (slow)"
   </source>
   <dest>
-    *: "Live (slow)"
+    *: NONE
+    agc: "Live (slow)"
   </dest>
   <voice>
-    *: "Live (slow)"
+    *: NONE
+    agc: "Live (slow)"
   </voice>
 </phrase>
 <phrase>
   id: LANG_SYSFONT_AGC_DJSET
   desc: AGC preset
   <source>
-    *: "DJ-Set (slow)"
+    *: NONE
+    agc: "DJ-Set (slow)"
   </source>
   <dest>
-    *: "DJ-Set (slow)"
+    *: NONE
+    agc: "DJ-Set (slow)"
   </dest>
   <voice>
-    *: "DJ set (slow)"
+    *: NONE
+    agc: "DJ set (slow)"
   </voice>
 </phrase>
 <phrase>
   id: LANG_SYSFONT_AGC_MEDIUM
   desc: AGC preset
   <source>
-    *: "Medium"
+    *: NONE
+    agc: "Medium"
   </source>
   <dest>
-    *: "Medium"
+    *: NONE
+    agc: "Medium"
   </dest>
   <voice>
-    *: "Medium"
+    *: NONE
+    agc: "Medium"
   </voice>
 </phrase>
 <phrase>
   id: LANG_SYSFONT_AGC_VOICE
   desc: AGC preset
   <source>
-    *: "Voice (fast)"
+    *: NONE
+    agc: "Voice (fast)"
   </source>
   <dest>
-    *: "Voice (fast)"
+    *: NONE
+    agc: "Voice (fast)"
   </dest>
   <voice>
-    *: "Voice (fast)"
+    *: NONE
+    agc: "Voice (fast)"
   </voice>
 </phrase>
 <phrase>
   id: LANG_SYSFONT_RECORDING_AGC_MAXGAIN
   desc: AGC maximum gain in recording screen
   <source>
-    *: "AGC max. gain"
+    *: NONE
+    agc: "AGC max. gain"
   </source>
   <dest>
-    *: "AGC max. gain"
+    *: NONE
+    agc: "AGC max. gain"
   </dest>
   <voice>
-    *: "AGC maximum gain"
+    *: NONE
+    agc: "AGC maximum gain"
   </voice>
 </phrase>
 <phrase>
@@ -10380,13 +10507,16 @@
   desc: in settings_menu
   user:
   <source>
-    *: "Shuffle and Track Skip"
+    *: NONE
+    swcodec: "Shuffle and Track Skip"
   </source>
   <dest>
-    *: "Shuffle and Track Skip"
+    *: NONE
+    swcodec: "Shuffle and Track Skip"
   </dest>
   <voice>
-    *: "Shuffle and Track Skip"
+    *: NONE
+    swcodec: "Shuffle and Track Skip"
   </voice>
 </phrase>
 <phrase>
Index: apps/onplay.c
===================================================================
--- apps/onplay.c	(revision 12164)
+++ apps/onplay.c	(working copy)
@@ -454,7 +454,7 @@
 #endif
         if(ACTION_STD_CANCEL == get_action(CONTEXT_STD,TIMEOUT_NOBLOCK))
         {
-            gui_syncsplash(HZ, true, str(LANG_MENU_SETTING_CANCEL));
+            gui_syncsplash(HZ, true, str(LANG_CANCEL));
             result = -1;
             break;
         }
Index: apps/gui/gwps-common.c
===================================================================
--- apps/gui/gwps-common.c	(revision 12164)
+++ apps/gui/gwps-common.c	(working copy)
@@ -2484,12 +2484,11 @@
     if (!wps_state.id3 && !(audio_status() & AUDIO_STATUS_PLAY))
     {
         global_status.resume_index = -1;
-#ifdef HAVE_LCD_CHARCELLS
-        gui_syncsplash(HZ, true, str(LANG_END_PLAYLIST_PLAYER));
-#else
+#ifdef HAVE_LCD_BITMAP
         gui_syncstatusbar_draw(&statusbars, true);
-        gui_syncsplash(HZ, true, str(LANG_END_PLAYLIST_RECORDER));
 #endif
+        gui_syncsplash(HZ, true, str(LANG_END_PLAYLIST));
+
         return true;
     }
     else
@@ -2582,17 +2581,11 @@
     FOR_NB_SCREENS(i)
         gui_wps[i].display->stop_scroll();
 
-#ifdef HAVE_LCD_CHARCELLS
     if(locked)
-        s = str(LANG_KEYLOCK_ON_PLAYER);
+        s = str(LANG_KEYLOCK_ON);
     else
-        s = str(LANG_KEYLOCK_OFF_PLAYER);
-#else
-    if(locked)
-        s = str(LANG_KEYLOCK_ON_RECORDER);
-    else
-        s = str(LANG_KEYLOCK_OFF_RECORDER);
-#endif
+        s = str(LANG_KEYLOCK_OFF);
+
     gui_syncsplash(HZ, true, s);
 }
 
Index: apps/playlist_viewer.c
===================================================================
--- apps/playlist_viewer.c	(revision 12164)
+++ apps/playlist_viewer.c	(working copy)
@@ -635,11 +635,8 @@
         if (!viewer.playlist && !(audio_status() & AUDIO_STATUS_PLAY))
         {
             /* Play has stopped */
-#ifdef HAVE_LCD_CHARCELLS
-            gui_syncsplash(HZ, true, str(LANG_END_PLAYLIST_PLAYER));
-#else
-            gui_syncsplash(HZ, true, str(LANG_END_PLAYLIST_RECORDER));
-#endif
+            gui_syncsplash(HZ, true, str(LANG_END_PLAYLIST));
+
             goto exit;
         }
 
@@ -820,12 +817,7 @@
     for (i=0;(i<playlist_count)&&(found_indicies_count<MAX_PLAYLIST_ENTRIES);i++)
     {
         gui_syncsplash(0, true, str(LANG_PLAYLIST_SEARCH_MSG),found_indicies_count,
-#if CONFIG_KEYPAD == PLAYER_PAD
-                   str(LANG_STOP_ABORT)
-#else
-                   str(LANG_OFF_ABORT)
-#endif
-        );
+                   str(LANG_OFF_ABORT));
         if (action_userabort(TIMEOUT_NOBLOCK))
             return ret;
         playlist_get_track_info(viewer.playlist,i,&track);
Index: apps/settings_menu.c
===================================================================
--- apps/settings_menu.c	(revision 12164)
+++ apps/settings_menu.c	(working copy)
@@ -135,7 +135,7 @@
      bool rc = set_bool_options((char *)str(LANG_INVERT),
                                 &global_settings.remote_invert,
                                 (char *)STR(LANG_INVERT_LCD_INVERSE),
-                                STR(LANG_INVERT_LCD_NORMAL),
+                                STR(LANG_NORMAL),
                                 lcd_remote_set_invert_display);
      return rc;
 }
@@ -215,7 +215,7 @@
 static bool backlight_on_button_hold(void)
 {
     static const struct opt_items names[3] = {
-        { STR(LANG_BACKLIGHT_ON_BUTTON_HOLD_NORMAL) },
+        { STR(LANG_NORMAL) },
         { STR(LANG_OFF) },
         { STR(LANG_ON) },
     };
@@ -322,7 +322,7 @@
 static bool remote_backlight_on_button_hold(void)
 {
     static const struct opt_items names[3] = {
-        { STR(LANG_BACKLIGHT_ON_BUTTON_HOLD_NORMAL) },
+        { STR(LANG_NORMAL) },
         { STR(LANG_OFF) },
         { STR(LANG_ON) },
     };
@@ -355,7 +355,7 @@
     bool rc = set_bool_options(str(LANG_INVERT),
                                &global_settings.invert,
                                (char *)STR(LANG_INVERT_LCD_INVERSE),
-                               STR(LANG_INVERT_LCD_NORMAL),
+                               STR(LANG_NORMAL),
                                lcd_set_invert_display);
     return rc;
 }
@@ -721,7 +721,7 @@
     bool result;
     static const struct opt_items names[] = {
         { STR(LANG_OFF) },
-        { STR(LANG_REPEAT_ALL) },
+        { STR(LANG_ALL) },
         { STR(LANG_REPEAT_ONE) },
         { STR(LANG_SHUFFLE) },
 #if (AB_REPEAT_ENABLE == 1)
@@ -748,12 +748,12 @@
 static bool dir_filter(void)
 {
     static const struct opt_items names[] = {
-        { STR(LANG_FILTER_ALL) },
+        { STR(LANG_ALL) },
         { STR(LANG_FILTER_SUPPORTED) },
         { STR(LANG_FILTER_MUSIC) },
         { STR(LANG_FILTER_PLAYLIST) },
 #ifdef HAVE_TAGCACHE
-        { STR(LANG_FILTER_ID3DB) }
+        { STR(LANG_TAGCACHE) }
 #endif
     };
 #ifdef HAVE_TAGCACHE
@@ -1700,10 +1700,10 @@
     static const struct opt_items names[] = {
         { STR(LANG_OFF) },
         { STR(LANG_PAUSE) },
-        { STR(LANG_UNPLUG_RESUME) },
+        { STR(LANG_HEADPHONE_UNPLUG_RESUME) },
     };
     bool ret;
-    ret=set_option( str(LANG_UNPLUG),
+    ret=set_option( str(LANG_HEADPHONE_UNPLUG),
                     &global_settings.unplug_mode, INT, names, 3, NULL);
 
     return ret;
@@ -1713,7 +1713,7 @@
 {
     bool ret;
 
-    ret = set_int(str(LANG_UNPLUG_RW), "s", UNIT_SEC,
+    ret = set_int(str(LANG_HEADPHONE_UNPLUG_RW), "s", UNIT_SEC,
                    &global_settings.unplug_rw,
                    NULL, 1, 0, 15, NULL );
     audio_set_crossfade(global_settings.unplug_rw);
@@ -1722,7 +1722,7 @@
 
 static bool unplug_autoresume(void)
 {
-    return set_bool( str(LANG_UNPLUG_DISABLE_AUTORESUME),
+    return set_bool( str(LANG_HEADPHONE_UNPLUG_DISABLE_AUTORESUME),
                     &global_settings.unplug_autoresume );
 }
 
@@ -1732,9 +1732,9 @@
     bool result;
 
     static const struct menu_item items[] = {
-        { ID2P(LANG_UNPLUG), unplug_mode },
-        { ID2P(LANG_UNPLUG_RW), unplug_rw },
-        { ID2P(LANG_UNPLUG_DISABLE_AUTORESUME), unplug_autoresume },
+        { ID2P(LANG_HEADPHONE_UNPLUG), unplug_mode },
+        { ID2P(LANG_HEADPHONE_UNPLUG_RW), unplug_rw },
+        { ID2P(LANG_HEADPHONE_UNPLUG_DISABLE_AUTORESUME), unplug_autoresume },
     };
 
     m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
@@ -1770,7 +1770,7 @@
         { ID2P(LANG_ID3_ORDER), id3_order },
         { ID2P(LANG_NEXT_FOLDER), next_folder },
 #ifdef HAVE_HEADPHONE_DETECTION
-        { ID2P(LANG_UNPLUG), unplug_menu },
+        { ID2P(LANG_HEADPHONE_UNPLUG), unplug_menu },
 #endif
         { ID2P(LANG_AUDIOSCROBBLER), audioscrobbler}
     };
@@ -1821,12 +1821,12 @@
 }
 static bool reset_settings(void)
 {
-    unsigned char *lines[]={str(LANG_RESET_ASK_RECORDER)};
+    unsigned char *lines[]={str(LANG_RESET_ASK)};
     unsigned char *yes_lines[]={
         str(LANG_RESET_DONE_SETTING),
         str(LANG_RESET_DONE_CLEAR)
     };
-    unsigned char *no_lines[]={yes_lines[0], str(LANG_RESET_DONE_CANCEL)};
+    unsigned char *no_lines[]={yes_lines[0], str(LANG_CANCEL)};
     struct text_message message={(char **)lines, 1};
     struct text_message yes_message={(char **)yes_lines, 2};
     struct text_message no_message={(char **)no_lines, 2};
Index: apps/settings_list.c
===================================================================
--- apps/settings_list.c	(revision 12164)
+++ apps/settings_list.c	(working copy)
@@ -150,8 +150,12 @@
 #endif
 #endif /* CONFIG_BACKLIGHT */
 #ifdef HAVE_LCD_BITMAP
+#ifdef HAVE_LCD_INVERT
     OFFON_SETTING(0,invert, LANG_INVERT, false,"invert", NULL),
+#endif
+#ifdef HAVE_LCD_FLIP
     OFFON_SETTING(0,flip_display, LANG_FLIP_DISPLAY, false,"flip display", NULL),
+#endif
     /* display */
     OFFON_SETTING(0,invert_cursor, LANG_INVERT_CURSOR,
         true,"invert cursor", NULL),
@@ -164,8 +168,10 @@
         "volume display",graphic_numeric,UNUSED},
     {F_T_INT,GS(battery_display), LANG_BATTERY_DISPLAY, INT(0),
         "battery display",graphic_numeric,UNUSED},
+#ifdef CONFIG_RTC
     {F_T_INT,GS(timeformat), LANG_TIMEFORMAT, INT(0),
         "time format","24hour,12hour",UNUSED},
+#endif
 #endif /* HAVE_LCD_BITMAP */
     OFFON_SETTING(0,show_icons, LANG_SHOW_ICONS ,true,"show icons", NULL),
     /* system */
@@ -391,9 +397,9 @@
     {F_T_INT,GS(rec_sizesplit),LANG_SPLIT_SIZE,INT(0),"rec sizesplit",
         "off,5MB,10MB,15MB,32MB,64MB,75MB,100MB,128MB,"
         "256MB,512MB,650MB,700MB,1GB,1.5GB,1.75GB",UNUSED},
-    {F_T_INT,GS(rec_channels),LANG_RECORDING_CHANNELS,INT(0),
+    {F_T_INT,GS(rec_channels),LANG_CHANNELS,INT(0),
         "rec channels","stereo,mono",UNUSED},
-    {F_T_INT,GS(rec_split_type),LANG_RECORDING_CHANNELS,INT(0),
+    {F_T_INT,GS(rec_split_type),LANG_CHANNELS,INT(0),
         "rec split type","Split, Stop",UNUSED},
     {F_T_INT,GS(rec_split_method),LANG_SPLIT_MEASURE,INT(0),
         "rec split method","Time,Filesize",UNUSED},
@@ -457,7 +463,7 @@
         "trigger stop postrec",trig_durations_conf,UNUSED},
     {F_T_INT,GS(rec_stop_gap),LANG_RECORD_STOP_GAP,INT(1),
         "trigger min gap",trig_durations_conf,UNUSED},
-    {F_T_INT,GS(rec_trigger_mode),LANG_RECORD_TRIGGER_MODE,INT(0),
+    {F_T_INT,GS(rec_trigger_mode),LANG_RECORD_TRIGGER,INT(0),
         "trigger mode","off,once,repeat",UNUSED},
 #endif /* HAVE_RECORDING */
 
@@ -654,11 +660,11 @@
 #endif
 #endif
 #ifdef HAVE_HEADPHONE_DETECTION
-    {F_T_INT,GS(unplug_mode),LANG_UNPLUG,INT(0),
+    {F_T_INT,GS(unplug_mode),LANG_HEADPHONE_UNPLUG,INT(0),
         "pause on headphone unplug",NULL,UNUSED},
-    {F_T_INT,GS(unplug_rw),LANG_UNPLUG_RW,INT(0),
+    {F_T_INT,GS(unplug_rw),LANG_HEADPHONE_UNPLUG_RW,INT(0),
         "rewind duration on pause",NULL,UNUSED},
-    OFFON_SETTING(0,unplug_autoresume,LANG_UNPLUG_DISABLE_AUTORESUME,false,
+    OFFON_SETTING(0,unplug_autoresume,LANG_HEADPHONE_UNPLUG_RESUME,false,
         "disable autoresume if phones not present",NULL),
 #endif
 #ifdef CONFIG_TUNER
Index: apps/features.txt
===================================================================
--- apps/features.txt	(revision 0)
+++ apps/features.txt	(revision 0)
@@ -0,0 +1,98 @@
+#if defined(HAVE_AGC)
+agc
+#endif
+
+#if defined(HAVE_ALARM_MOD)
+alarm
+#endif
+
+#if defined(HAVE_BACKLIGHT_PWM_FADING)
+backlight_fade
+#endif
+
+#if BATTERY_TYPES_COUNT > 1
+battery_types
+#endif
+
+#if defined(HAVE_DIRCACHE)
+dircache
+#endif
+
+#if defined(HAVE_HEADPHONE_DETECTION)
+headphone_detection
+#endif
+
+#if defined(HAVE_LCD_BITMAP)
+lcd_bitmap
+#endif
+
+#if defined(HAVE_LCD_CHARCELLS)
+lcd_charcell
+#endif
+
+#if LCD_DEPTH > 1
+lcd_color
+#endif
+
+#if defined(HAVE_LCD_CONTRAST)
+lcd_constrast
+#endif
+
+#if defined(HAVE_LCD_FLIP)
+lcd_flip
+#endif
+
+#if defined(HAVE_LCD_INVERT) || defined(HAVE_REMOTE_LCD)
+lcd_invert
+#endif
+
+#if defined(HAVE_HEADPHONE_DETECTION)
+headphone_detection
+#endif
+
+#if defined(HAVE_PITCHSCREEN)
+pitchscreen
+#endif
+
+#if defined(HAVE_MULTIVOLUME)
+multivolume
+#endif
+
+#if defined(HAVE_QUICKSCREEN)
+quickscreen
+#endif
+
+#if defined(CONFIG_TUNER)
+radio
+#endif
+
+#if defined(HAVE_RECORDING)
+recording
+#endif
+
+#if defined(HAVE_REMOTE_LCD)
+remote
+#endif
+
+#if defined(HAVE_REMOTE_LCD_TICKING)
+remote_ticking
+#endif
+
+#if defined(CONFIG_RTC)
+rtc
+#endif
+
+#if defined(HAVE_SPDIF_POWER)
+spdif_power
+#endif
+
+#if CONFIG_CODEC == SWCODEC
+swcodec
+#else
+hwcodec
+#endif
+
+#if defined(HAVE_TAGCACHE)
+tagcache
+#endif
+
Index: apps/sound_menu.c
===================================================================
--- apps/sound_menu.c	(revision 12164)
+++ apps/sound_menu.c	(working copy)
@@ -314,7 +314,7 @@
 
     static const struct opt_items names[AUDIO_NUM_SOURCES] = {
         [AUDIO_SRC_MIC]     = { STR(LANG_RECORDING_SRC_MIC) },
-        [AUDIO_SRC_LINEIN]  = { STR(LANG_RECORDING_SRC_LINE) },
+        [AUDIO_SRC_LINEIN]  = { STR(LANG_LINE_IN) },
 #ifdef HAVE_SPDIF_IN
         [AUDIO_SRC_SPDIF]   = { STR(LANG_RECORDING_SRC_DIGITAL) },
 #endif
@@ -490,7 +490,7 @@
         [CHN_MODE_MONO]   = { STR(LANG_CHANNEL_MONO)   }
     };
 #if CONFIG_CODEC == MAS3587F
-    return set_option(str(LANG_RECORDING_CHANNELS),
+    return set_option(str(LANG_CHANNELS),
                       &global_settings.rec_channels, INT,
                       names, CHN_NUM_MODES, NULL );
 #endif /* CONFIG_CODEC == MAS3587F */
@@ -518,7 +518,7 @@
 
     make_options_from_indexes(names, table, n_opts, opts);
 
-    ret = set_option(str(LANG_RECORDING_CHANNELS), &rec_channels,
+    ret = set_option(str(LANG_CHANNELS), &rec_channels,
                      INT, opts, n_opts, NULL );
 
     if (!ret)
@@ -772,7 +772,7 @@
         { ID2P(LANG_TREBLE), treble },
 #endif
         { ID2P(LANG_BALANCE), balance },
-        { ID2P(LANG_CHANNEL_MENU), chanconf },
+        { ID2P(LANG_CHANNELS), chanconf },
         { ID2P(LANG_STEREO_WIDTH), stereo_width },
 #if CONFIG_CODEC == SWCODEC
         { ID2P(LANG_CROSSFEED), crossfeed_menu },
@@ -914,7 +914,7 @@
     };
 
     static const unsigned char *option_name[] = {
-        [TRIGGER_MODE] =    ID2P(LANG_RECORD_TRIGGER_MODE),
+        [TRIGGER_MODE] =    ID2P(LANG_RECORD_TRIGGER),
         [TRIGGER_TYPE] =    ID2P(LANG_RECORD_TRIGGER_TYPE),
         [PRERECORD_TIME] =  ID2P(LANG_RECORD_PRERECORD_TIME),
         [START_THRESHOLD] = ID2P(LANG_RECORD_START_THRESHOLD),
@@ -1094,7 +1094,7 @@
 
         switch (button) {
             case ACTION_STD_CANCEL:
-                gui_syncsplash(50, true, str(LANG_MENU_SETTING_CANCEL));
+                gui_syncsplash(50, true, str(LANG_CANCEL));
                 global_settings.rec_start_thres = old_start_thres;
                 global_settings.rec_start_duration = old_start_duration;
                 global_settings.rec_prerecord_time = old_prerecord_time;
@@ -1265,7 +1265,7 @@
 #endif
         { ID2P(LANG_RECORDING_FREQUENCY), recfrequency },
         { ID2P(LANG_RECORDING_SOURCE), recsource }, /* not shown if no_source */
-        { ID2P(LANG_RECORDING_CHANNELS), recchannels },
+        { ID2P(LANG_CHANNELS), recchannels },
 #if CONFIG_CODEC == MAS3587F
         { ID2P(LANG_RECORDING_EDITABLE), receditable },
 #endif
Index: apps/eq_menu.c
===================================================================
--- apps/eq_menu.c	(revision 12164)
+++ apps/eq_menu.c	(working copy)
@@ -723,7 +723,7 @@
                 break;
         }
         else {
-            gui_syncsplash(HZ, true, str(LANG_MENU_SETTING_CANCEL));
+            gui_syncsplash(HZ, true, str(LANG_CANCEL));
             return false;
         }
     }
Index: apps/playlist_catalog.c
===================================================================
--- apps/playlist_catalog.c	(revision 12164)
+++ apps/playlist_catalog.c	(working copy)
@@ -320,12 +320,7 @@
 static void display_insert_count(int count)
 {
     gui_syncsplash(0, true, str(LANG_PLAYLIST_INSERT_COUNT), count,
-#if CONFIG_KEYPAD == PLAYER_PAD
-        str(LANG_STOP_ABORT)
-#else
-        str(LANG_OFF_ABORT)
-#endif
-        );
+        str(LANG_OFF_ABORT));
 }
 
 /* Add specified track into playlist.  Callback from directory insert */
Index: apps/tagtree.c
===================================================================
--- apps/tagtree.c	(revision 12164)
+++ apps/tagtree.c	(working copy)
@@ -878,12 +878,7 @@
     if (current_tick - last_tick > HZ/4)
     {
         gui_syncsplash(0, true, str(LANG_PLAYLIST_SEARCH_MSG), count,
-#if CONFIG_KEYPAD == PLAYER_PAD
-                       str(LANG_STOP_ABORT)
-#else
-                       str(LANG_OFF_ABORT)
-#endif
-                       );
+                       str(LANG_OFF_ABORT));
         if (action_userabort(TIMEOUT_NOBLOCK))
             return false;
         last_tick = current_tick;
@@ -1566,7 +1561,7 @@
     }
 
     if (tc->filesindir <= 0)
-        gui_syncsplash(HZ, true, str(LANG_END_PLAYLIST_PLAYER));
+        gui_syncsplash(HZ, true, str(LANG_END_PLAYLIST));
     else
     {
         logf("insert_all_playlist");
