]> granicus.if.org Git - handbrake/commitdiff
LinGui: mark more strings as translation candidates
authorjstebbins <jstebbins.hb@gmail.com>
Thu, 1 Aug 2013 00:23:58 +0000 (00:23 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Thu, 1 Aug 2013 00:23:58 +0000 (00:23 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5678 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/audiohandler.c
gtk/src/callbacks.c
gtk/src/hb-backend.c
gtk/src/hb-backend.h
gtk/src/main.c
gtk/src/preview.c
gtk/src/queuehandler.c

index c90e67239532e6d3f33a9a8d83d5fd9d56d69873..cdf1d16e3397a90ed5e7fa7a7bd89ccd92f41074 100644 (file)
@@ -11,6 +11,7 @@
  * any later version.
  */
 
+#include <glib/gi18n.h>
 #include "ghbcompat.h"
 #include "hb.h"
 #include "settings.h"
@@ -553,7 +554,7 @@ ghb_audio_list_refresh_selected(signal_user_data_t *ud)
 
         drc = ghb_settings_get_double(asettings, "AudioTrackDRCSlider");
         if (drc < 1.0)
-            s_drc = g_strdup("Off");
+            s_drc = g_strdup(_("Off"));
         else
             s_drc = g_strdup_printf("%.1f", drc);
 
@@ -620,7 +621,7 @@ ghb_audio_list_refresh(signal_user_data_t *ud)
 
             drc = ghb_settings_get_double(asettings, "AudioTrackDRCSlider");
             if (drc < 1.0)
-                s_drc = g_strdup("Off");
+                s_drc = g_strdup(_("Off"));
             else
                 s_drc = g_strdup_printf("%.1f", drc);
 
@@ -851,7 +852,7 @@ G_MODULE_EXPORT gchar*
 format_drc_cb(GtkScale *scale, gdouble val, signal_user_data_t *ud)
 {
     if (val < 1.0)
-        return g_strdup_printf("%-7s", "Off");
+        return g_strdup_printf("%-7s", _("Off"));
     else
         return g_strdup_printf("%-7.1f", val);
 }
@@ -925,7 +926,7 @@ drc_widget_changed_cb(GtkWidget *widget, gdouble drc, signal_user_data_t *ud)
 
     char *s_drc;
     if (drc < 0.99)
-        s_drc = g_strdup("Off");
+        s_drc = g_strdup(_("Off"));
     else
         s_drc = g_strdup_printf("%.1f", drc);
     ghb_ui_update( ud, "AudioTrackDRCValue", ghb_string_value(s_drc));
@@ -1040,7 +1041,7 @@ ghb_add_audio_to_ui(GtkBuilder *builder, const GValue *settings)
 
     drc = ghb_settings_get_double(settings, "AudioTrackDRCSlider");
     if (drc < 1.0)
-        s_drc = g_strdup("Off");
+        s_drc = g_strdup(_("Off"));
     else
         s_drc = g_strdup_printf("%.1f", drc);
 
index 603c23fc495b18fd3ccbc37bce30c0753797cf46..a6839c42b813ecf77e7f9485673caf6753fe54d2 100644 (file)
@@ -21,6 +21,7 @@
 #include <time.h>
 
 #include <glib/gstdio.h>
+#include <glib/gi18n.h>
 #include <gio/gio.h>
 
 #include "ghbcompat.h"
@@ -324,7 +325,7 @@ on_quit1_activate(GtkMenuItem *quit, signal_user_data_t *ud)
     g_debug("on_quit1_activate ()");
     if (state & (GHB_STATE_WORKING|GHB_STATE_SEARCHING))
     {
-        if (ghb_cancel_encode2(ud, "Closing HandBrake will terminate encoding.\n"))
+        if (ghb_cancel_encode2(ud, _("Closing HandBrake will terminate encoding.\n")))
         {
             ghb_hb_cleanup(FALSE);
             prune_logs(ud);
@@ -772,7 +773,7 @@ update_source_label(signal_user_data_t *ud, const gchar *source, gboolean update
     }
     else
     {
-        label = "No Title Found";
+        label = _("No Title Found");
         gtk_label_set_text (GTK_LABEL(widget), label);
         ghb_settings_set_string(ud->settings, "volume_label", label);
         return FALSE;
@@ -856,7 +857,7 @@ source_dialog_extra_widgets(
                 gtk_combo_box_get_model(GTK_COMBO_BOX(combo))));
 
     link = drives = dvd_device_list();
-    gtk_combo_box_text_append_text (combo, "Not Selected");
+    gtk_combo_box_text_append_text (combo, _("Not Selected"));
     while (link != NULL)
     {
         gchar *name = get_dvd_device_name(link->data);
@@ -883,7 +884,7 @@ show_scan_progress(signal_user_data_t *ud)
     gtk_widget_show(GTK_WIDGET(progress));
 
     label = GTK_LABEL(GHB_WIDGET(ud->builder, "source_title"));
-    gtk_label_set_text( label, "Scanning ..." );
+    gtk_label_set_text( label, _("Scanning ...") );
 }
 
 static void
@@ -903,8 +904,8 @@ start_scan(
 
     widget = GHB_WIDGET(ud->builder, "sourcetoolbutton");
     gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-stop");
-    gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Stop Scan");
-    gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Stop Scan");
+    gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Stop Scan"));
+    gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Stop Scan"));
     //gtk_widget_set_sensitive(widget, FALSE);
 
     action = GHB_ACTION(ud->builder, "source_action");
@@ -1258,7 +1259,7 @@ window_delete_event_cb(GtkWidget *widget, GdkEvent *event, signal_user_data_t *u
     g_debug("window_delete_event_cb ()");
     if (state & (GHB_STATE_WORKING|GHB_STATE_SEARCHING))
     {
-        if (ghb_cancel_encode2(ud, "Closing HandBrake will terminate encoding.\n"))
+        if (ghb_cancel_encode2(ud, _("Closing HandBrake will terminate encoding.\n")))
         {
             ghb_hb_cleanup(FALSE);
             prune_logs(ud);
@@ -1423,7 +1424,7 @@ show_title_info(signal_user_data_t *ud, hb_title_t *title)
         }
         else
         {
-            gchar *label = "No Title Found";
+            gchar *label = _("No Title Found");
             gtk_label_set_text (GTK_LABEL(widget), label);
             ghb_settings_set_string(ud->settings, "volume_label", label);
         }
@@ -1604,7 +1605,7 @@ set_title_settings(GValue *settings, gint titleindex)
             }
             else
             {
-                gchar *label = "No Title Found";
+                gchar *label = _("No Title Found");
                 ghb_settings_set_string(settings, "volume_label", label);
             }
         }
@@ -2160,28 +2161,28 @@ scale_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
     
     gchar *text;
     
-    text = ghb_settings_get_boolean(ud->settings, "PictureAutoCrop") ? "On" : "Off";
+    text = ghb_settings_get_boolean(ud->settings, "PictureAutoCrop") ? _("On") : _("Off");
     widget = GHB_WIDGET (ud->builder, "crop_auto");
     gtk_label_set_text (GTK_LABEL(widget), text);
-    text = ghb_settings_get_boolean(ud->settings, "autoscale") ? "On" : "Off";
+    text = ghb_settings_get_boolean(ud->settings, "autoscale") ? _("On") : _("Off");
     widget = GHB_WIDGET (ud->builder, "scale_auto");
     gtk_label_set_text (GTK_LABEL(widget), text);
     switch (ghb_settings_combo_int(ud->settings, "PicturePAR"))
     {
         case 0:
-            text = "Off";
+            text = _("Off");
             break;
         case 1:
-            text = "Strict";
+            text = _("Strict");
             break;
         case 2:
-            text = "Loose";
+            text = _("Loose");
             break;
         case 3:
-            text = "Custom";
+            text = _("Custom");
             break;
         default:
-            text = "Unknown";
+            text = _("Unknown");
             break;
     }
     widget = GHB_WIDGET (ud->builder, "scale_anamorphic");
@@ -2252,7 +2253,7 @@ quit_cb(countdown_t *cd)
         gtk_main_quit();
         return FALSE;
     }
-    str = g_strdup_printf("%s\n\n%s in %d seconds ..."
+    str = g_strdup_printf(_("%s\n\n%s in %d seconds ...")
                             cd->msg, cd->action, cd->timeout);
     gtk_message_dialog_set_markup(cd->dlg, str);
     g_free(str);
@@ -2274,7 +2275,7 @@ shutdown_cb(countdown_t *cd)
         gtk_main_quit();
         return FALSE;
     }
-    str = g_strdup_printf("%s\n\n%s in %d seconds ..."
+    str = g_strdup_printf(_("%s\n\n%s in %d seconds ...")
                             cd->msg, cd->action, cd->timeout);
     gtk_message_dialog_set_markup(cd->dlg, str);
     g_free(str);
@@ -2293,7 +2294,7 @@ suspend_cb(countdown_t *cd)
         ghb_suspend_gpm();
         return FALSE;
     }
-    str = g_strdup_printf("%s\n\n%s in %d seconds ..."
+    str = g_strdup_printf(_("%s\n\n%s in %d seconds ...")
                             cd->msg, cd->action, cd->timeout);
     gtk_message_dialog_set_markup(cd->dlg, str);
     g_free(str);
@@ -2323,7 +2324,7 @@ ghb_countdown_dialog(
     // Toss up a warning dialog
     dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
                             type, GTK_BUTTONS_NONE,
-                            "%s\n\n%s in %d seconds ..."
+                            _("%s\n\n%s in %d seconds ...")
                             message, action, timeout);
     gtk_dialog_add_buttons( GTK_DIALOG(dialog), 
                            cancel, GTK_RESPONSE_CANCEL,
@@ -2392,13 +2393,13 @@ ghb_cancel_encode(signal_user_data_t *ud, const gchar *extra_msg)
     // Toss up a warning dialog
     dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
                 GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE,
-                "%sYour movie will be lost if you don't continue encoding.",
+                _("%sYour movie will be lost if you don't continue encoding."),
                 extra_msg);
     gtk_dialog_add_buttons( GTK_DIALOG(dialog), 
-                           "Cancel Current and Stop", 1,
-                           "Cancel Current, Start Next", 2,
-                           "Finish Current, then Stop", 3,
-                           "Continue Encoding", 4,
+                           _("Cancel Current and Stop"), 1,
+                           _("Cancel Current, Start Next"), 2,
+                           _("Finish Current, then Stop"), 3,
+                           _("Continue Encoding"), 4,
                            NULL);
     response = gtk_dialog_run(GTK_DIALOG(dialog));
     gtk_widget_destroy (dialog);
@@ -2432,11 +2433,11 @@ ghb_cancel_encode2(signal_user_data_t *ud, const gchar *extra_msg)
     // Toss up a warning dialog
     dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
                 GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE,
-                "%sYour movie will be lost if you don't continue encoding.",
+                _("%sYour movie will be lost if you don't continue encoding."),
                 extra_msg);
     gtk_dialog_add_buttons( GTK_DIALOG(dialog), 
-                           "Cancel Current and Stop", 1,
-                           "Continue Encoding", 4,
+                           _("Cancel Current and Stop"), 1,
+                           _("Continue Encoding"), 4,
                            NULL);
     response = gtk_dialog_run(GTK_DIALOG(dialog));
     gtk_widget_destroy (dialog);
@@ -2735,7 +2736,7 @@ working_status_string(signal_user_data_t *ud, ghb_instance_status_t *status)
     }
     if (qcount > 1)
     {
-        job_str = g_strdup_printf("job %d of %d, ", index+1, qcount);
+        job_str = g_strdup_printf(_("job %d of %d, "), index+1, qcount);
     }
     else
     {
@@ -2745,12 +2746,12 @@ working_status_string(signal_user_data_t *ud, ghb_instance_status_t *status)
     {
         if (status->job_cur == 1 && subtitle_scan)
         {
-            task_str = g_strdup_printf("pass %d (subtitle scan) of %d, "
+            task_str = g_strdup_printf(_("pass %d (subtitle scan) of %d, ")
                 status->job_cur, status->job_count);
         }
         else
         {
-            task_str = g_strdup_printf("pass %d of %d, "
+            task_str = g_strdup_printf(_("pass %d of %d, ")
                 status->job_cur, status->job_count);
         }
     }
@@ -2763,8 +2764,8 @@ working_status_string(signal_user_data_t *ud, ghb_instance_status_t *status)
         if (status->rate_cur > 0.0)
         {
             status_str= g_strdup_printf(
-                "Encoding: %s%s%.2f %%"
-                " (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)",
+                _("Encoding: %s%s%.2f %%"
+                " (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)"),
                 job_str, task_str,
                 100.0 * status->progress,
                 status->rate_cur, status->rate_avg, status->hours, 
@@ -2773,8 +2774,8 @@ working_status_string(signal_user_data_t *ud, ghb_instance_status_t *status)
         else
         {
             status_str= g_strdup_printf(
-                "Encoding: %s%s%.2f %%"
-                " (ETA %02dh%02dm%02ds)",
+                _("Encoding: %s%s%.2f %%"
+                " (ETA %02dh%02dm%02ds)"),
                 job_str, task_str,
                 100.0 * status->progress,
                 status->hours, status->minutes, status->seconds );
@@ -2783,7 +2784,7 @@ working_status_string(signal_user_data_t *ud, ghb_instance_status_t *status)
     else
     {
         status_str= g_strdup_printf(
-            "Encoding: %s%s%.2f %%",
+            _("Encoding: %s%s%.2f %%"),
             job_str, task_str,
             100.0 * status->progress );
     }
@@ -2804,18 +2805,18 @@ searching_status_string(signal_user_data_t *ud, ghb_instance_status_t *status)
     index = find_queue_job(ud->queue, status->unique_id, &js);
     if (qcount > 1)
     {
-        job_str = g_strdup_printf("job %d of %d, ", index+1, qcount);
+        job_str = g_strdup_printf(_("job %d of %d, "), index+1, qcount);
     }
     else
     {
         job_str = g_strdup("");
     }
-    task_str = g_strdup_printf("Searching for start time, ");
+    task_str = g_strdup_printf(_("Searching for start time, "));
     if(status->seconds > -1)
     {
         status_str= g_strdup_printf(
-            "Encoding: %s%s%.2f %%"
-            " (ETA %02dh%02dm%02ds)",
+            _("Encoding: %s%s%.2f %%"
+            " (ETA %02dh%02dm%02ds)"),
             job_str, task_str,
             100.0 * status->progress,
             status->hours, status->minutes, status->seconds );
@@ -2823,7 +2824,7 @@ searching_status_string(signal_user_data_t *ud, ghb_instance_status_t *status)
     else
     {
         status_str= g_strdup_printf(
-            "Encoding: %s%s%.2f %%",
+            _("Encoding: %s%s%.2f %%"),
             job_str, task_str,
             100.0 * status->progress );
     }
@@ -2882,16 +2883,16 @@ ghb_backend_events(signal_user_data_t *ud)
 
         if (status.scan.title_cur == 0)
         {
-            status_str = g_strdup ("Scanning...");
+            status_str = g_strdup (_("Scanning..."));
         }
         else
         {
             if (status.scan.preview_cur == 0)
-                status_str = g_strdup_printf("Scanning title %d of %d...",
+                status_str = g_strdup_printf(_("Scanning title %d of %d..."),
                               status.scan.title_cur, status.scan.title_count );
             else
                 status_str = g_strdup_printf(
-                    "Scanning title %d of %d preview %d...",
+                    _("Scanning title %d of %d preview %d..."),
                     status.scan.title_cur, status.scan.title_count,
                     status.scan.preview_cur);
 
@@ -2914,8 +2915,8 @@ ghb_backend_events(signal_user_data_t *ud)
 
         widget = GHB_WIDGET(ud->builder, "sourcetoolbutton");
         gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-source");
-        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Source");
-        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Choose Video Source");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Source"));
+        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Choose Video Source"));
 
         action = GHB_ACTION(ud->builder, "source_action");
         gtk_action_set_sensitive(action, TRUE);
@@ -2943,7 +2944,7 @@ ghb_backend_events(signal_user_data_t *ud)
         hb_title_t * title = ghb_get_title_info(titleindex);
         if (title == NULL)
         {
-            gtk_label_set_text(label, "None");
+            gtk_label_set_text(label, _("None"));
         }
         ghb_clear_scan_state(GHB_STATE_SCANDONE);
         if (ghb_queue_edit_settings)
@@ -2961,7 +2962,7 @@ ghb_backend_events(signal_user_data_t *ud)
     {
         // This needs to be in scanning and working since scanning
         // happens fast enough that it can be missed
-        gtk_label_set_text (work_status, "Scanning ...");
+        gtk_label_set_text (work_status, _("Scanning ..."));
         gtk_progress_bar_set_fraction (progress, 0);
     }
     else if (status.queue.state & GHB_STATE_SCANDONE)
@@ -2973,7 +2974,7 @@ ghb_backend_events(signal_user_data_t *ud)
     }
     else if (status.queue.state & GHB_STATE_PAUSED)
     {
-        gtk_label_set_text (work_status, "Paused");
+        gtk_label_set_text (work_status, _("Paused"));
     }
     else if (status.queue.state & GHB_STATE_SEARCHING)
     {
@@ -3085,7 +3086,7 @@ ghb_backend_events(signal_user_data_t *ud)
         switch( status.queue.error )
         {
             case GHB_ERROR_NONE:
-                gtk_label_set_text (work_status, "Encode Done!");
+                gtk_label_set_text (work_status, _("Encode Done!"));
                 qstatus = GHB_QUEUE_DONE;
                 if (js != NULL)
                 {
@@ -3099,7 +3100,7 @@ ghb_backend_events(signal_user_data_t *ud)
                 }
                 break;
             case GHB_ERROR_CANCELED:
-                gtk_label_set_text (work_status, "Encode Canceled.");
+                gtk_label_set_text (work_status, _("Encode Canceled."));
                 qstatus = GHB_QUEUE_CANCELED;
                 if (js != NULL)
                 {
@@ -3113,7 +3114,7 @@ ghb_backend_events(signal_user_data_t *ud)
                 }
                 break;
             default:
-                gtk_label_set_text (work_status, "Encode Failed.");
+                gtk_label_set_text (work_status, _("Encode Failed."));
                 qstatus = GHB_QUEUE_CANCELED;
                 if (js != NULL)
                 {
@@ -3159,7 +3160,7 @@ ghb_backend_events(signal_user_data_t *ud)
     }
     else if (status.queue.state & GHB_STATE_MUXING)
     {
-        gtk_label_set_text (work_status, "Muxing: This may take a while...");
+        gtk_label_set_text (work_status, _("Muxing: This may take a while..."));
     }
 
     if (status.scan.state & GHB_STATE_WORKING)
@@ -3208,7 +3209,7 @@ status_icon_query_tooltip_cb(
     else if (status.queue.state & GHB_STATE_SEARCHING)
         status_str = searching_status_string(ud, &status.queue);
     else if (status.queue.state & GHB_STATE_WORKDONE)
-        status_str = g_strdup("Encode Complete");
+        status_str = g_strdup(_("Encode Complete"));
     else
         status_str = g_strdup("HandBrake");
 
@@ -4868,7 +4869,7 @@ tweak_setting_cb(
             {
                 gchar *message;
                 message = g_strdup_printf(
-                            "Invalid Settings:\n%s",
+                            _("Invalid Settings:\n%s"),
                             tweak);
                 ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
                 g_free(message);
@@ -4911,7 +4912,7 @@ format_deblock_cb(GtkScale *scale, gdouble val, signal_user_data_t *ud)
 {
     if (val < 5.0)
     {
-        return g_strdup_printf("Off");
+        return g_strdup_printf(_("Off"));
     }
     else
     {
@@ -4929,7 +4930,7 @@ format_vquality_cb(GtkScale *scale, gdouble val, signal_user_data_t *ud)
         {
             if (val == 0.0)
             {
-                return g_strdup_printf("RF: %.4g (Warning: lossless)", val);
+                return g_strdup_printf(_("RF: %.4g (Warning: lossless)"), val);
             }
             else
             {
@@ -4980,7 +4981,7 @@ process_appcast(signal_user_data_t *ud)
     {
         goto done;
     }
-    msg = g_strdup_printf("HandBrake %s/%s is now available (you have %s/%d).",
+    msg = g_strdup_printf(_("HandBrake %s/%s is now available (you have %s/%d)."),
             version, build, hb_get_version(NULL), hb_get_build(NULL));
     label = GHB_WIDGET(ud->builder, "update_message");
     gtk_label_set_text(GTK_LABEL(label), msg);
@@ -5221,8 +5222,8 @@ ghb_notify_done(signal_user_data_t *ud)
 #if !defined(_WIN32)
     NotifyNotification *notification;
     notification = notify_notification_new(
-        "Encode Complete",
-        "Put down that cocktail, Your HandBrake queue is done!",
+        _("Encode Complete"),
+        _("Put down that cocktail, Your HandBrake queue is done!"),
         NULL
 #if NOTIFY_CHECK_VERSION (0, 7, 0)
                 );
@@ -5246,9 +5247,9 @@ ghb_notify_done(signal_user_data_t *ud)
         if (ghb_can_shutdown_gsm())
         {
             ghb_countdown_dialog(GTK_MESSAGE_WARNING, 
-                "Your encode is complete.",
-                "Shutting down the computer"
-                "Cancel", (GSourceFunc)shutdown_cb, ud, 60);
+                _("Your encode is complete."),
+                _("Shutting down the computer")
+                _("Cancel"), (GSourceFunc)shutdown_cb, ud, 60);
         }
     }
     if (ghb_settings_combo_int(ud->settings, "WhenComplete") == 2)
@@ -5256,17 +5257,17 @@ ghb_notify_done(signal_user_data_t *ud)
         if (ghb_can_suspend_gpm())
         {
             ghb_countdown_dialog(GTK_MESSAGE_WARNING, 
-                "Your encode is complete.",
-                "Putting computer to sleep"
-                "Cancel", (GSourceFunc)suspend_cb, ud, 60);
+                _("Your encode is complete."),
+                _("Putting computer to sleep")
+                _("Cancel"), (GSourceFunc)suspend_cb, ud, 60);
         }
     }
     if (ghb_settings_combo_int(ud->settings, "WhenComplete") == 4)
     {
         ghb_countdown_dialog(GTK_MESSAGE_WARNING, 
-                            "Your encode is complete.",
-                            "Quiting Handbrake"
-                            "Cancel", (GSourceFunc)quit_cb, ud, 60);
+                            _("Your encode is complete."),
+                            _("Quiting Handbrake")
+                            _("Cancel"), (GSourceFunc)quit_cb, ud, 60);
     }
 }
 
index 0787b26ffbe569df29869181853c9451e0fc0120..ec6379eb2486e53a0c903a6df3586c708f1458f9 100644 (file)
@@ -27,6 +27,7 @@
 #include "hb.h"
 #include "ghbcompat.h"
 #include <glib/gstdio.h>
+#include <glib/gi18n.h>
 #include "hb-backend.h"
 #include "settings.h"
 #include "callbacks.h"
@@ -72,9 +73,9 @@ index_str_init(gint max_index)
 
 static options_map_t d_point_to_point_opts[] =
 {
-    {"Chapters:",       "chapter", 0, "0"},
-    {"Seconds:", "time",    1, "1"},
-    {"Frames:",   "frame",   2, "2"},
+    {N_("Chapters:"), "chapter", 0, "0"},
+    {N_("Seconds:"),  "time",    1, "1"},
+    {N_("Frames:"),   "frame",   2, "2"},
 };
 combo_opts_t point_to_point_opts =
 {
@@ -84,11 +85,11 @@ combo_opts_t point_to_point_opts =
 
 static options_map_t d_when_complete_opts[] =
 {
-    {"Do Nothing",            "nothing",  0, "0"},
-    {"Show Notification",     "notify",   1, "1"},
-    {"Quit Handbrake",        "quit",     4, "4"},
-    {"Put Computer To Sleep", "sleep",    2, "2"},
-    {"Shutdown Computer",     "shutdown", 3, "3"},
+    {N_("Do Nothing"),            "nothing",  0, "0"},
+    {N_("Show Notification"),     "notify",   1, "1"},
+    {N_("Quit Handbrake"),        "quit",     4, "4"},
+    {N_("Put Computer To Sleep"), "sleep",    2, "2"},
+    {N_("Shutdown Computer"),     "shutdown", 3, "3"},
 };
 combo_opts_t when_complete_opts =
 {
@@ -98,10 +99,10 @@ combo_opts_t when_complete_opts =
 
 static options_map_t d_par_opts[] =
 {
-    {"Off", "0", 0, "0"},
-    {"Strict", "1", 1, "1"},
-    {"Loose", "2", 2, "2"},
-    {"Custom", "3", 3, "3"},
+    {N_("Off"),    "0", 0, "0"},
+    {N_("Strict"), "1", 1, "1"},
+    {N_("Loose"),  "2", 2, "2"},
+    {N_("Custom"), "3", 3, "3"},
 };
 combo_opts_t par_opts =
 {
@@ -136,10 +137,10 @@ combo_opts_t logging_opts =
 
 static options_map_t d_log_longevity_opts[] =
 {
-    {"Week",     "week",     7, "7"},
-    {"Month",    "month",    30, "30"},
-    {"Year",     "year",     365, "365"},
-    {"Immortal", "immortal", 366, "366"},
+    {N_("Week"),     "week",     7, "7"},
+    {N_("Month"),    "month",    30, "30"},
+    {N_("Year"),     "year",     365, "365"},
+    {N_("Immortal"), "immortal", 366, "366"},
 };
 combo_opts_t log_longevity_opts =
 {
@@ -149,10 +150,10 @@ combo_opts_t log_longevity_opts =
 
 static options_map_t d_appcast_update_opts[] =
 {
-    {"Never", "never", 0, "never"},
-    {"Daily", "daily", 1, "daily"},
-    {"Weekly", "weekly", 2, "weekly"},
-    {"Monthly", "monthly", 3, "monthly"},
+    {N_("Never"),   "never", 0, "never"},
+    {N_("Daily"),   "daily", 1, "daily"},
+    {N_("Weekly"),  "weekly", 2, "weekly"},
+    {N_("Monthly"), "monthly", 3, "monthly"},
 };
 combo_opts_t appcast_update_opts =
 {
@@ -175,9 +176,9 @@ combo_opts_t vqual_granularity_opts =
 
 static options_map_t d_detel_opts[] =
 {
-    {"Off",    "off",   0, ""},
-    {"Custom", "custom", 1, ""},
-    {"Default","default",2, NULL},
+    {N_("Off"),    "off",   0, ""},
+    {N_("Custom"), "custom", 1, ""},
+    {N_("Default"),"default",2, NULL},
 };
 combo_opts_t detel_opts =
 {
@@ -187,11 +188,11 @@ combo_opts_t detel_opts =
 
 static options_map_t d_decomb_opts[] =
 {
-    {"Off",    "off",   0, ""},
-    {"Custom", "custom", 1, ""},
-    {"Default","default",2, NULL},
-    {"Fast",   "fast",   3, "7:2:6:9:1:80"},
-    {"Bob",    "bob",    4, "455"},
+    {N_("Off"),    "off",   0, ""},
+    {N_("Custom"), "custom", 1, ""},
+    {N_("Default"),"default",2, NULL},
+    {N_("Fast"),   "fast",   3, "7:2:6:9:1:80"},
+    {N_("Bob"),    "bob",    4, "455"},
 };
 combo_opts_t decomb_opts =
 {
@@ -201,12 +202,12 @@ combo_opts_t decomb_opts =
 
 static options_map_t d_deint_opts[] =
 {
-    {"Off",    "off",    0,  ""},
-    {"Custom", "custom", 1,  ""},
-    {"Fast",   "fast",   2,  "0:-1:-1:0:1"},
-    {"Slow",   "slow",   3,  "1:-1:-1:0:1"},
-    {"Slower", "slower", 4,  "3:-1:-1:0:1"},
-    {"Bob",    "bob",    5, "15:-1:-1:0:1"},
+    {N_("Off"),    "off",    0,  ""},
+    {N_("Custom"), "custom", 1,  ""},
+    {N_("Fast"),   "fast",   2,  "0:-1:-1:0:1"},
+    {N_("Slow"),   "slow",   3,  "1:-1:-1:0:1"},
+    {N_("Slower"), "slower", 4,  "3:-1:-1:0:1"},
+    {N_("Bob"),    "bob",    5, "15:-1:-1:0:1"},
 };
 combo_opts_t deint_opts =
 {
@@ -216,11 +217,11 @@ combo_opts_t deint_opts =
 
 static options_map_t d_denoise_opts[] =
 {
-    {"Off",    "off",   0, ""},
-    {"Custom", "custom", 1, ""},
-    {"Weak",   "weak",   2, "2:1:2:3"},
-    {"Medium", "medium", 3, "3:2:2:3"},
-    {"Strong", "strong", 4, "7:7:5:5"},
+    {N_("Off"),    "off",   0, ""},
+    {N_("Custom"), "custom", 1, ""},
+    {N_("Weak"),   "weak",   2, "2:1:2:3"},
+    {N_("Medium"), "medium", 3, "3:2:2:3"},
+    {N_("Strong"), "strong", 4, "7:7:5:5"},
 };
 combo_opts_t denoise_opts =
 {
@@ -230,10 +231,10 @@ combo_opts_t denoise_opts =
 
 static options_map_t d_direct_opts[] =
 {
-    {"None",      "none",     0, "none"},
-    {"Spatial",   "spatial",  1, "spatial"},
-    {"Temporal",  "temporal", 2, "temporal"},
-    {"Automatic", "auto",     3, "auto"},
+    {N_("None"),      "none",     0, "none"},
+    {N_("Spatial"),   "spatial",  1, "spatial"},
+    {N_("Temporal"),  "temporal", 2, "temporal"},
+    {N_("Automatic"), "auto",     3, "auto"},
 };
 combo_opts_t direct_opts =
 {
@@ -243,9 +244,9 @@ combo_opts_t direct_opts =
 
 static options_map_t d_badapt_opts[] =
 {
-    {"Off",             "0", 0, "0"},
-    {"Fast",            "1", 1, "1"},
-    {"Optimal",         "2", 2, "2"},
+    {N_("Off"),             "0", 0, "0"},
+    {N_("Fast"),            "1", 1, "1"},
+    {N_("Optimal"),         "2", 2, "2"},
 };
 combo_opts_t badapt_opts =
 {
@@ -255,9 +256,9 @@ combo_opts_t badapt_opts =
 
 static options_map_t d_bpyramid_opts[] =
 {
-    {"Off",    "none",   0, "none"},
-    {"Strict", "strict", 1, "strict"},
-    {"Normal", "normal", 2, "normal"},
+    {N_("Off"),    "none",   0, "none"},
+    {N_("Strict"), "strict", 1, "strict"},
+    {N_("Normal"), "normal", 2, "normal"},
 };
 combo_opts_t bpyramid_opts =
 {
@@ -267,9 +268,9 @@ combo_opts_t bpyramid_opts =
 
 static options_map_t d_weightp_opts[] =
 {
-    {"Off",    "0", 0, "0"},
-    {"Simple", "1", 1, "1"},
-    {"Smart",  "2", 2, "2"},
+    {N_("Off"),    "0", 0, "0"},
+    {N_("Simple"), "1", 1, "1"},
+    {N_("Smart"),  "2", 2, "2"},
 };
 combo_opts_t weightp_opts =
 {
@@ -279,11 +280,11 @@ combo_opts_t weightp_opts =
 
 static options_map_t d_me_opts[] =
 {
-    {"Diamond",              "dia",  0, "dia"},
-    {"Hexagon",              "hex",  1, "hex"},
-    {"Uneven Multi-Hexagon", "umh",  2, "umh"},
-    {"Exhaustive",           "esa",  3, "esa"},
-    {"Hadamard Exhaustive",  "tesa", 4, "tesa"},
+    {N_("Diamond"),              "dia",  0, "dia"},
+    {N_("Hexagon"),              "hex",  1, "hex"},
+    {N_("Uneven Multi-Hexagon"), "umh",  2, "umh"},
+    {N_("Exhaustive"),           "esa",  3, "esa"},
+    {N_("Hadamard Exhaustive"),  "tesa", 4, "tesa"},
 };
 combo_opts_t me_opts =
 {
@@ -293,18 +294,18 @@ combo_opts_t me_opts =
 
 static options_map_t d_subme_opts[] =
 {
-    {"0: SAD, no subpel",          "0", 0, "0"},
-    {"1: SAD, qpel",               "1", 1, "1"},
-    {"2: SATD, qpel",              "2", 2, "2"},
-    {"3: SATD: multi-qpel",        "3", 3, "3"},
-    {"4: SATD, qpel on all",       "4", 4, "4"},
-    {"5: SATD, multi-qpel on all", "5", 5, "5"},
-    {"6: RD in I/P-frames",        "6", 6, "6"},
-    {"7: RD in all frames",        "7", 7, "7"},
-    {"8: RD refine in I/P-frames", "8", 8, "8"},
-    {"9: RD refine in all frames", "9", 9, "9"},
-    {"10: QPRD in all frames",     "10", 10, "10"},
-    {"11: No early terminations in analysis", "11", 11, "11"},
+    {N_("0: SAD, no subpel"),          "0", 0, "0"},
+    {N_("1: SAD, qpel"),               "1", 1, "1"},
+    {N_("2: SATD, qpel"),              "2", 2, "2"},
+    {N_("3: SATD: multi-qpel"),        "3", 3, "3"},
+    {N_("4: SATD, qpel on all"),       "4", 4, "4"},
+    {N_("5: SATD, multi-qpel on all"), "5", 5, "5"},
+    {N_("6: RD in I/P-frames"),        "6", 6, "6"},
+    {N_("7: RD in all frames"),        "7", 7, "7"},
+    {N_("8: RD refine in I/P-frames"), "8", 8, "8"},
+    {N_("9: RD refine in all frames"), "9", 9, "9"},
+    {N_("10: QPRD in all frames"),     "10", 10, "10"},
+    {N_("11: No early terminations in analysis"), "11", 11, "11"},
 };
 combo_opts_t subme_opts =
 {
@@ -314,11 +315,11 @@ combo_opts_t subme_opts =
 
 static options_map_t d_analyse_opts[] =
 {
-    {"Most", "p8x8,b8x8,i8x8,i4x4", 0, "p8x8,b8x8,i8x8,i4x4"},
-    {"None", "none", 1, "none"},
-    {"Some", "i4x4,i8x8", 2, "i4x4,i8x8"},
-    {"All",  "all",  3, "all"},
-    {"Custom",  "custom",  4, "all"},
+    {N_("Most"), "p8x8,b8x8,i8x8,i4x4", 0, "p8x8,b8x8,i8x8,i4x4"},
+    {N_("None"), "none", 1, "none"},
+    {N_("Some"), "i4x4,i8x8", 2, "i4x4,i8x8"},
+    {N_("All"),  "all",  3, "all"},
+    {N_("Custom"),  "custom",  4, "all"},
 };
 combo_opts_t analyse_opts =
 {
@@ -328,9 +329,9 @@ combo_opts_t analyse_opts =
 
 static options_map_t d_trellis_opts[] =
 {
-    {"Off",         "0", 0, "0"},
-    {"Encode only", "1", 1, "1"},
-    {"Always",      "2", 2, "2"},
+    {N_("Off"),         "0", 0, "0"},
+    {N_("Encode only"), "1", 1, "1"},
+    {N_("Always"),      "2", 2, "2"},
 };
 combo_opts_t trellis_opts =
 {
@@ -1408,44 +1409,6 @@ ghb_subtitle_track_source(GValue *settings, gint track)
         return VOBSUB;
 }
 
-const char*
-ghb_subtitle_track_source_name(GValue *settings, gint track)
-{
-    gint titleindex;
-    const gchar * name = "Unknown";
-
-    if (track == -2)
-    {
-        name = "SRT";
-        goto done;
-    }
-    if (track == -1)
-    {
-        name = "Bitmap";
-        goto done;
-    }
-
-    titleindex = ghb_settings_combo_int(settings, "title");
-    if (titleindex < 0)
-        goto done;
-
-    hb_title_t * title;
-    hb_subtitle_t * sub;
-    
-    title = ghb_get_title_info( titleindex );
-    if (title == NULL)
-        goto done;
-
-    sub = hb_list_item( title->list_subtitle, track);
-    if (sub != NULL)
-    {
-        name = hb_subsource_name(sub->source);
-    }
-
-done:
-    return name;
-}
-
 const gchar*
 ghb_subtitle_track_lang(GValue *settings, gint track)
 {
@@ -1715,13 +1678,15 @@ audio_samplerate_opts_set(GtkBuilder *builder, const gchar *name)
     gtk_list_store_clear(store);
     // Add an item for "Same As Source"
     gtk_list_store_append(store, &iter);
+    str = g_strdup_printf("<small>%s</small>", _("Same as source"));
     gtk_list_store_set(store, &iter, 
-                       0, "<small>Same as source</small>", 
+                       0, str,
                        1, TRUE, 
                        2, "source", 
                        3, 0.0, 
                        4, "source", 
                        -1);
+    g_free(str);
 
     const hb_rate_t *rate;
     for (rate = hb_audio_samplerate_get_next(NULL); rate != NULL;
@@ -1752,7 +1717,7 @@ video_framerate_opts_set(GtkBuilder *builder, const gchar *name)
     // Add an item for "Same As Source"
     gtk_list_store_append(store, &iter);
     gtk_list_store_set(store, &iter, 
-                       0, "Same as source"
+                       0, _("Same as source")
                        1, TRUE, 
                        2, "source", 
                        3, 0.0, 
@@ -1767,15 +1732,15 @@ video_framerate_opts_set(GtkBuilder *builder, const gchar *name)
         gchar *option;
         if (strcmp(rate->name, "23.976") == 0)
         {
-            desc = "(NTSC Film)";
+            desc = _("(NTSC Film)");
         }
         else if (strcmp(rate->name, "25") == 0)
         {
-            desc = "(PAL Film/Video)";
+            desc = _("(PAL Film/Video)");
         }
         else if (strcmp(rate->name, "29.97") == 0)
         {
-            desc = "(NTSC Video)";
+            desc = _("(NTSC Video)");
         }
         option = g_strdup_printf ("%s %s", rate->name, desc);
         gtk_list_store_append(store, &iter);
@@ -2019,7 +1984,7 @@ title_opts_set(GtkBuilder *builder, const gchar *name)
         // No titles.  Fill in a default.
         gtk_list_store_append(store, &iter);
         gtk_list_store_set(store, &iter, 
-                           0, "No Titles"
+                           0, _("No Titles")
                            1, TRUE, 
                            2, "none", 
                            3, -1.0, 
@@ -2114,7 +2079,7 @@ x264_tune_opts_set(GtkBuilder *builder, const gchar *name)
 
     gtk_list_store_append(store, &iter);
     gtk_list_store_set(store, &iter, 
-                       0, "None",
+                       0, _("None"),
                        1, TRUE, 
                        2, "none",
                        3, (gdouble)0, 
@@ -2263,13 +2228,15 @@ audio_track_opts_set(GtkBuilder *builder, const gchar *name, gint titleindex)
     {
         // No audio. set some default
         gtk_list_store_append(store, &iter);
+        str = g_strdup_printf("<small>%s</small>", _("No Audio"));
         gtk_list_store_set(store, &iter, 
-                           0, "<small>No Audio</small>", 
+                           0, str,
                            1, TRUE, 
                            2, "none", 
                            3, -1.0, 
                            4, "none", 
                            -1);
+        g_free(str);
         audio_track_opts.map[0].option = g_strdup("No Audio");
         audio_track_opts.map[0].shortOpt = "none";
         audio_track_opts.map[0].ivalue = -1;
@@ -2351,7 +2318,7 @@ subtitle_track_opts_set(GtkBuilder *builder, const gchar *name, gint titleindex)
     }
     gtk_list_store_append(store, &iter);
     gtk_list_store_set(store, &iter, 
-                       0, "Foreign Audio Search"
+                       0, _("Foreign Audio Search")
                        1, TRUE, 
                        2, "-1", 
                        3, -1.0, 
@@ -2815,7 +2782,7 @@ generic_opts_set(GtkBuilder *builder, const gchar *name, combo_opts_t *opts)
     {
         gtk_list_store_append(store, &iter);
         gtk_list_store_set(store, &iter, 
-                           0, opts->map[ii].option
+                           0, _(opts->map[ii].option)
                            1, TRUE, 
                            2, opts->map[ii].shortOpt, 
                            3, opts->map[ii].ivalue, 
@@ -2839,7 +2806,7 @@ small_opts_set(GtkBuilder *builder, const gchar *name, combo_opts_t *opts)
     for (ii = 0; ii < opts->count; ii++)
     {
         gtk_list_store_append(store, &iter);
-        str = g_strdup_printf("<small>%s</small>", opts->map[ii].option);
+        str = g_strdup_printf("<small>%s</small>", _(opts->map[ii].option));
         gtk_list_store_set(store, &iter, 
                            0, str,
                            1, TRUE, 
@@ -4362,9 +4329,9 @@ ghb_validate_filters(GValue *settings)
         if (!ghb_validate_filter_string(str, -1))
         {
             message = g_strdup_printf(
-                        "Invalid Deinterlace Settings:\n\n%s\n",
+                        _("Invalid Deinterlace Settings:\n\n%s\n"),
                         str);
-            ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
+            ghb_message_dialog(GTK_MESSAGE_ERROR, message, _("Cancel"), NULL);
             g_free(message);
             g_free(str);
             return FALSE;
@@ -4379,9 +4346,9 @@ ghb_validate_filters(GValue *settings)
         if (!ghb_validate_filter_string(str, -1))
         {
             message = g_strdup_printf(
-                        "Invalid Detelecine Settings:\n\n%s\n",
+                        _("Invalid Detelecine Settings:\n\n%s\n"),
                         str);
-            ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
+            ghb_message_dialog(GTK_MESSAGE_ERROR, message, _("Cancel"), NULL);
             g_free(message);
             g_free(str);
             return FALSE;
@@ -4396,9 +4363,9 @@ ghb_validate_filters(GValue *settings)
         if (!ghb_validate_filter_string(str, -1))
         {
             message = g_strdup_printf(
-                        "Invalid Decomb Settings:\n\n%s\n",
+                        N_("Invalid Decomb Settings:\n\n%s\n"),
                         str);
-            ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
+            ghb_message_dialog(GTK_MESSAGE_ERROR, message, _("Cancel"), NULL);
             g_free(message);
             g_free(str);
             return FALSE;
@@ -4413,9 +4380,9 @@ ghb_validate_filters(GValue *settings)
         if (!ghb_validate_filter_string(str, -1))
         {
             message = g_strdup_printf(
-                        "Invalid Denoise Settings:\n\n%s\n",
+                        _("Invalid Denoise Settings:\n\n%s\n"),
                         str);
-            ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
+            ghb_message_dialog(GTK_MESSAGE_ERROR, message, _("Cancel"), NULL);
             g_free(str);
             g_free(message);
             return FALSE;
@@ -4437,10 +4404,10 @@ ghb_validate_video(GValue *settings)
     {
         // mp4/theora combination is not supported.
         message = g_strdup_printf(
-                    "Theora is not supported in the MP4 container.\n\n"
+                    _("Theora is not supported in the MP4 container.\n\n"
                     "You should choose a different video codec or container.\n"
-                    "If you continue, FFMPEG will be chosen for you.");
-        if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, "Cancel", "Continue"))
+                    "If you continue, FFMPEG will be chosen for you."));
+        if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, _("Cancel"), _("Continue")))
         {
             g_free(message);
             return FALSE;
@@ -4484,10 +4451,10 @@ ghb_validate_subtitles(GValue *settings)
             // MP4 can only handle burned vobsubs.  make sure there isn't
             // already something burned in the list
             message = g_strdup_printf(
-            "Only one subtitle may be burned into the video.\n\n"
+            _("Only one subtitle may be burned into the video.\n\n"
                 "You should change your subtitle selections.\n"
-                "If you continue, some subtitles will be lost.");
-            if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, "Cancel", "Continue"))
+                "If you continue, some subtitles will be lost."));
+            if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, _("Cancel"), _("Continue")))
             {
                 g_free(message);
                 return FALSE;
@@ -4507,11 +4474,11 @@ ghb_validate_subtitles(GValue *settings)
             if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR))
             {
                 message = g_strdup_printf(
-                "Srt file does not exist or not a regular file.\n\n"
+                _("Srt file does not exist or not a regular file.\n\n"
                     "You should choose a valid file.\n"
-                    "If you continue, this subtitle will be ignored.");
+                    "If you continue, this subtitle will be ignored."));
                 if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, 
-                    "Cancel", "Continue"))
+                    _("Cancel"), _("Continue")))
                 {
                     g_free(message);
                     return FALSE;
@@ -4567,10 +4534,10 @@ ghb_validate_audio(GValue *settings)
         {
             // Not supported.  AC3 is passthrough only, so input must be AC3
             message = g_strdup_printf(
-                        "The source does not support Pass-Thru.\n\n"
+                        _("The source does not support Pass-Thru.\n\n"
                         "You should choose a different audio codec.\n"
-                        "If you continue, one will be chosen for you.");
-            if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, "Cancel", "Continue"))
+                        "If you continue, one will be chosen for you."));
+            if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, _("Cancel"), _("Continue")))
             {
                 g_free(message);
                 return FALSE;
@@ -4607,10 +4574,10 @@ ghb_validate_audio(GValue *settings)
         if (a_unsup)
         {
             message = g_strdup_printf(
-                        "%s is not supported in the %s container.\n\n"
+                        _("%s is not supported in the %s container.\n\n"
                         "You should choose a different audio codec.\n"
-                        "If you continue, one will be chosen for you.", a_unsup, mux_s);
-            if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, "Cancel", "Continue"))
+                        "If you continue, one will be chosen for you."), a_unsup, mux_s);
+            if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, _("Cancel"), _("Continue")))
             {
                 g_free(message);
                 return FALSE;
@@ -4632,10 +4599,10 @@ ghb_validate_audio(GValue *settings)
         if (mix_unsup)
         {
             message = g_strdup_printf(
-                        "The source audio does not support %s mixdown.\n\n"
+                        _("The source audio does not support %s mixdown.\n\n"
                         "You should choose a different mixdown.\n"
-                        "If you continue, one will be chosen for you.", mix_unsup);
-            if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, "Cancel", "Continue"))
+                        "If you continue, one will be chosen for you."), mix_unsup);
+            if (!ghb_message_dialog(GTK_MESSAGE_WARNING, message, _("Cancel"), _("Continue")))
             {
                 g_free(message);
                 return FALSE;
@@ -4692,13 +4659,13 @@ ghb_validate_vquality(GValue *settings)
         if (vcodec == HB_VCODEC_X264 && vquality == 0.0)
         {
             message = g_strdup_printf(
-                        "Warning: lossless h.264 selected\n\n"
+                        _("Warning: lossless h.264 selected\n\n"
                         "Lossless h.264 is not well supported by\n"
                         "many players and editors.\n\n"
                         "It will produce enormous output files.\n\n"
-                        "Are you sure you wish to use this setting?");
+                        "Are you sure you wish to use this setting?"));
             if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, 
-                                    "Cancel", "Continue"))
+                                    _("Cancel"), _("Continue")))
             {
                 g_free(message);
                 return FALSE;
@@ -4709,12 +4676,12 @@ ghb_validate_vquality(GValue *settings)
         else if (vquality < min || vquality > max)
         {
             message = g_strdup_printf(
-                        "Interesting video quality choice: %d\n\n"
+                        _("Interesting video quality choice: %d\n\n"
                         "Typical values range from %d to %d.\n\n"
-                        "Are you sure you wish to use this setting?",
+                        "Are you sure you wish to use this setting?"),
                         (gint)vquality, min, max);
             if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, 
-                                    "Cancel", "Continue"))
+                                    _("Cancel"), _("Continue")))
             {
                 g_free(message);
                 return FALSE;
index 03d0ce4ed50bca7191724068ed83a1436c5c964d..68a91cf013a55c7cc79e82b141cec0c6aed6ed63 100644 (file)
@@ -141,7 +141,6 @@ gchar* ghb_dvd_volname(const gchar *device);
 gint ghb_get_title_number(gint titleindex);
 int ghb_get_title_count();
 gint ghb_subtitle_track_source(GValue *settings, gint track);
-const char* ghb_subtitle_track_source_name(GValue *settings, gint track);
 const gchar* ghb_subtitle_track_lang(GValue *settings, gint track);
 
 gboolean ghb_validate_vquality(GValue *settings);
index b656f7812eec241387d6c0c38c636fbb4aea1a0c..b23936d34dd703bf8137e983fcf3f6d6c3655e92 100644 (file)
@@ -52,6 +52,7 @@
 #endif
 
 #include <glib/gstdio.h>
+#include <glib/gi18n.h>
 #include <gio/gio.h>
 #include "hb.h"
 #include "renderer_button.h"
 /*
  * Standard gettext macros.
  */
-#ifdef ENABLE_NLS
-#  include <libintl.h>
-#  undef _
-#  define _(String) dgettext(PACKAGE, String)
-#  ifdef gettext_noop
-#    define N_(String) gettext_noop(String)
-#  else
-#    define N_(String) (String)
-#  endif
-#else
+#ifndef ENABLE_NLS
 #  define textdomain(String) (String)
 #  define gettext(String) (String)
 #  define dgettext(Domain,Message) (Message)
@@ -688,9 +680,9 @@ static gboolean ghb_debug = FALSE;
 
 static GOptionEntry entries[] = 
 {
-    { "device", 'd', 0, G_OPTION_ARG_FILENAME, &dvd_device, "The device or file to encode", NULL },
-    { "preset", 'p', 0, G_OPTION_ARG_STRING, &arg_preset, "The preset values to use for encoding", NULL },
-    { "debug", 'x', 0, G_OPTION_ARG_NONE, &ghb_debug, "Spam a lot", NULL },
+    { "device", 'd', 0, G_OPTION_ARG_FILENAME, &dvd_device, N_("The device or file to encode"), NULL },
+    { "preset", 'p', 0, G_OPTION_ARG_STRING, &arg_preset, N_("The preset values to use for encoding"), NULL },
+    { "debug",  'x', 0, G_OPTION_ARG_NONE, &ghb_debug, N_("Spam a lot"), NULL },
     { NULL }
 };
 
@@ -857,7 +849,7 @@ main(int argc, char *argv[])
     textdomain(GETTEXT_PACKAGE);
 #endif
 
-    context = g_option_context_new("- Transcode media formats");
+    context = g_option_context_new(_("- Transcode media formats"));
     g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE);
     g_option_context_add_group(context, gtk_get_option_group(TRUE));
 #if defined(_ENABLE_GST)
index 126943a54f5b0cd45c8a68325b0ea567694ec991..561deb15a40b0235753ec9dd4ed87ef91699a810 100644 (file)
@@ -14,6 +14,7 @@
 #include <unistd.h>
 #include <glib.h>
 #include <glib/gstdio.h>
+#include <glib/gi18n.h>
 #include <glib-object.h>
 #include "ghbcompat.h"
 
@@ -558,8 +559,8 @@ live_preview_cb(GstBus *bus, GstMessage *msg, gpointer data)
             gchar *message, *desc;
             desc = gst_missing_plugin_message_get_description(msg);
             message = g_strdup_printf(
-                        "Missing GStreamer plugin\n"
-                        "Audio or Video may not play as expected\n\n%s",
+                        _("Missing GStreamer plugin\n"
+                        "Audio or Video may not play as expected\n\n%s"),
                         desc);
             ghb_message_dialog(GTK_MESSAGE_WARNING, message, "Ok", NULL);
             g_free(message);
@@ -1286,16 +1287,16 @@ picture_settings_alt2_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
     window = GHB_WIDGET(ud->builder, "settings_window");
     if (!active)
     {
-        gtk_button_set_label(GTK_BUTTON(toggle), "Hide Settings");
+        gtk_button_set_label(GTK_BUTTON(toggle), _("Hide Settings"));
         gtk_widget_set_tooltip_text(toggle, 
-            "Hide the picture settings window while "
-            "leaving the preview visible.");
+            _("Hide the picture settings window while "
+            "leaving the preview visible."));
         gtk_widget_show(window);
     }
     else
     {
-        gtk_button_set_label(GTK_BUTTON(toggle), "Show Settings");
-        gtk_widget_set_tooltip_text(toggle, "Show picture settings.");
+        gtk_button_set_label(GTK_BUTTON(toggle), _("Show Settings"));
+        gtk_widget_set_tooltip_text(toggle, _("Show picture settings."));
         gtk_widget_hide(window);
     }
 }
index d8b6f6d2c727e7486b14da7970e6358855a3a45e..8642bfe215dcc7313298403904187e0763b3912d 100644 (file)
@@ -13,6 +13,7 @@
 
 #include "ghbcompat.h"
 #include <glib/gstdio.h>
+#include <glib/gi18n.h>
 #include <gio/gio.h>
 #include "hb.h"
 #include "settings.h"
@@ -93,13 +94,13 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
     vqtype = ghb_settings_get_boolean(settings, "vquality_type_constant");
     if (!vqtype)
         pass2 = ghb_settings_get_boolean(settings, "VideoTwoPass");
-    const gchar *points = "Chapters";
+    const gchar *points = _("Chapters");
     if (ghb_settings_combo_int(settings, "PtoPType") == 0)
-        points = "Chapters";
+        points = _("Chapters");
     else if (ghb_settings_combo_int(settings, "PtoPType") == 1)
-        points = "Seconds";
+        points = _("Seconds");
     else if (ghb_settings_combo_int(settings, "PtoPType") == 2)
-        points = "Frames";
+        points = _("Frames");
     info = g_strdup_printf 
     (
         "<big><b>%s</b></big> "
@@ -549,11 +550,11 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
         if (strcmp(dest, filename) == 0)
         {
             message = g_strdup_printf(
-                        "Destination: %s\n\n"
+                        _("Destination: %s\n\n"
                         "Another queued job has specified the same destination.\n"
-                        "Do you want to overwrite?",
+                        "Do you want to overwrite?"),
                         dest);
-            if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, "Cancel", "Overwrite"))
+            if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, _("Cancel"), _("Overwrite")))
             {
                 g_free(filename);
                 g_free(dest);
@@ -569,10 +570,10 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
     if (!g_file_test(destdir, G_FILE_TEST_IS_DIR))
     {
         message = g_strdup_printf(
-                    "Destination: %s\n\n"
-                    "This is not a valid directory.",
+                    _("Destination: %s\n\n"
+                    "This is not a valid directory."),
                     destdir);
-        ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
+        ghb_message_dialog(GTK_MESSAGE_ERROR, message, _("Cancel"), NULL);
         g_free(dest);
         g_free(message);
         g_free(destdir);
@@ -583,10 +584,10 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
     if (g_access(destdir, R_OK|W_OK) != 0)
     {
         message = g_strdup_printf(
-                    "Destination: %s\n\n"
-                    "Can not read or write the directory.",
+                    _("Destination: %s\n\n"
+                    "Can not read or write the directory."),
                     destdir);
-        ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
+        ghb_message_dialog(GTK_MESSAGE_ERROR, message, _("Cancel"), NULL);
         g_free(dest);
         g_free(message);
         g_free(destdir);
@@ -614,10 +615,10 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
                 if (size < fsize)
                 {
                     message = g_strdup_printf(
-                                "Destination filesystem is almost full: %uM free\n\n"
-                                "Encode may be incomplete if you proceed.\n",
+                                _("Destination filesystem is almost full: %uM free\n\n"
+                                "Encode may be incomplete if you proceed.\n"),
                                 (guint)(size / (1024L*1024L)));
-                    if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, "Cancel", "Proceed"))
+                    if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, _("Cancel"), _("Proceed")))
                     {
                         g_free(dest);
                         g_free(message);
@@ -635,11 +636,11 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
     if (g_file_test(dest, G_FILE_TEST_EXISTS))
     {
         message = g_strdup_printf(
-                    "Destination: %s\n\n"
+                    _("Destination: %s\n\n"
                     "File already exists.\n"
-                    "Do you want to overwrite?",
+                    "Do you want to overwrite?"),
                     dest);
-        if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, "Cancel", "Overwrite"))
+        if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, _("Cancel"), _("Overwrite")))
         {
             g_free(dest);
             g_free(message);
@@ -1028,60 +1029,60 @@ ghb_queue_buttons_grey(signal_user_data_t *ud)
     {
         gtk_widget_set_sensitive (widget, TRUE);
         gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-stop");
-        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Stop");
-        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Stop Encoding");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Stop"));
+        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Stop Encoding"));
     }
     else
     {
         gtk_widget_set_sensitive (widget, show_start);
         gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-start");
-        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Start");
-        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Start Encoding");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Start"));
+        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Start Encoding"));
     }
     widget = GHB_WIDGET (ud->builder, "queue_start2");
     if (show_stop)
     {
         gtk_widget_set_sensitive (widget, TRUE);
         gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-stop");
-        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Stop");
-        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Stop Encoding");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Stop"));
+        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Stop Encoding"));
     }
     else
     {
         gtk_widget_set_sensitive (widget, show_start);
         gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-start");
-        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Start");
-        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Start Encoding");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Start"));
+        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Start Encoding"));
     }
     widget = GHB_WIDGET (ud->builder, "queue_pause1");
     if (paused)
     {
         gtk_widget_set_sensitive (widget, show_stop);
         gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-start");
-        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Resume");
-        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Resume Encoding");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Resume"));
+        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Resume Encoding"));
     }
     else
     {
         gtk_widget_set_sensitive (widget, show_stop);
         gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-pause");
-        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Pause");
-        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Pause Encoding");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Pause"));
+        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Pause Encoding"));
     }
     widget = GHB_WIDGET (ud->builder, "queue_pause2");
     if (paused)
     {
         gtk_widget_set_sensitive (widget, show_stop);
         gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-start");
-        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Resume");
-        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Resume Encoding");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Resume"));
+        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Resume Encoding"));
     }
     else
     {
         gtk_widget_set_sensitive (widget, show_stop);
         gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(widget), "hb-pause");
-        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), "Pause");
-        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), "Pause Encoding");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(widget), _("Pause"));
+        gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(widget), _("Pause Encoding"));
     }
 
     action = GHB_ACTION (ud->builder, "queue_start_menu");
@@ -1090,15 +1091,15 @@ ghb_queue_buttons_grey(signal_user_data_t *ud)
         gtk_action_set_sensitive (action, TRUE);
 #if GTK_CHECK_VERSION(2, 16, 0)
         gtk_action_set_icon_name(action, "hb-stop");
-        gtk_action_set_label(action, "S_top Queue");
-        gtk_action_set_tooltip(action, "Stop Encoding");
+        gtk_action_set_label(action, _("S_top Queue"));
+        gtk_action_set_tooltip(action, _("Stop Encoding"));
 #else
         g_object_set_property(G_OBJECT(action), "icon-name", 
                                             ghb_string_value("hb-stop"));
         g_object_set_property(G_OBJECT(action), "label",
-                                            ghb_string_value("S_top Queue"));
+                                            ghb_string_value(_("S_top Queue")));
         g_object_set_property(G_OBJECT(action), "tooltip",
-                                            ghb_string_value("Stop Encoding"));
+                                            ghb_string_value(_("Stop Encoding")));
 #endif
     }
     else
@@ -1106,15 +1107,15 @@ ghb_queue_buttons_grey(signal_user_data_t *ud)
         gtk_action_set_sensitive (action, show_start);
 #if GTK_CHECK_VERSION(2, 16, 0)
         gtk_action_set_icon_name(action, "hb-start");
-        gtk_action_set_label(action, "_Start Queue");
-        gtk_action_set_tooltip(action, "Start Encoding");
+        gtk_action_set_label(action, _("_Start Queue"));
+        gtk_action_set_tooltip(action, _("Start Encoding"));
 #else
         g_object_set_property(G_OBJECT(action), "icon-name", 
                                             ghb_string_value("hb-start"));
         g_object_set_property(G_OBJECT(action), "label",
-                                            ghb_string_value("_Start Queue"));
+                                            ghb_string_value(_("_Start Queue")));
         g_object_set_property(G_OBJECT(action), "tooltip",
-                                            ghb_string_value("Start Encoding"));
+                                            ghb_string_value(_("Start Encoding")));
 #endif
     }
     action = GHB_ACTION (ud->builder, "queue_pause_menu");
@@ -1129,9 +1130,9 @@ ghb_queue_buttons_grey(signal_user_data_t *ud)
         g_object_set_property(G_OBJECT(action), "icon-name", 
                                         ghb_string_value("hb-start"));
         g_object_set_property(G_OBJECT(action), "label",
-                                        ghb_string_value("_Resume Queue"));
+                                        ghb_string_value(_("_Resume Queue")));
         g_object_set_property(G_OBJECT(action), "tooltip",
-                                        ghb_string_value("Resume Encoding"));
+                                        ghb_string_value(_("Resume Encoding")));
 #endif
     }
     else
@@ -1139,15 +1140,15 @@ ghb_queue_buttons_grey(signal_user_data_t *ud)
         gtk_action_set_sensitive (action, show_stop);
 #if GTK_CHECK_VERSION(2, 16, 0)
         gtk_action_set_icon_name(action, "hb-pause");
-        gtk_action_set_label(action, "_Pause Queue");
-        gtk_action_set_tooltip(action, "Pause Encoding");
+        gtk_action_set_label(action, _("_Pause Queue"));
+        gtk_action_set_tooltip(action, _("Pause Encoding"));
 #else
         g_object_set_property(G_OBJECT(action), "icon-name", 
                                         ghb_string_value("hb-pause"));
         g_object_set_property(G_OBJECT(action), "label",
-                                        ghb_string_value("_Pause Queue"));
+                                        ghb_string_value(_("_Pause Queue")));
         g_object_set_property(G_OBJECT(action), "tooltip",
-                                        ghb_string_value("Pause Encoding"));
+                                        ghb_string_value(_("Pause Encoding")));
 #endif
     }
 }
@@ -1180,8 +1181,8 @@ queue_start_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
     if (state & (GHB_STATE_WORKING | GHB_STATE_SEARCHING | 
                  GHB_STATE_SCANNING | GHB_STATE_MUXING))
     {
-        ghb_cancel_encode(ud, "You are currently encoding.  "
-                                "What would you like to do?");
+        ghb_cancel_encode(ud, _("You are currently encoding.  "
+                                "What would you like to do?\n\n"));
         return;
     }
 
@@ -1260,12 +1261,9 @@ find_pid:
     if (unfinished)
     {
         message = g_strdup_printf(
-                    "You have %d unfinished job%s in a saved queue.\n\n"
-                    "Would you like to reload %s?",
-                    unfinished, 
-                    (unfinished > 1) ? "s" : "",
-                    (unfinished > 1) ? "them" : "it");
-        if (ghb_message_dialog(GTK_MESSAGE_QUESTION, message, "No", "Yes"))
+                    _("You have %d unfinished job(s) in a saved queue.\n\n"
+                    "Would you like to reload them?"), unfinished);
+        if (ghb_message_dialog(GTK_MESSAGE_QUESTION, message, _("No"), _("Yes")))
         {
             GtkWidget *widget = GHB_WIDGET (ud->builder, "queue_window");
             gtk_widget_show (widget);