changeset 1304:f34112ab9101

As usual, "i18n" modifications.
author Stany HENRY <StrassBoy@gmail.com>
date Fri, 20 Jul 2007 05:39:56 +0200
parents 2a7c9e0b9c0f
children fbeb9446aa2e
files src/aac/src/libmp4.c src/musepack/libmpc.cxx src/musepack/libmpc.h src/null/null.c
diffstat 4 files changed, 95 insertions(+), 80 deletions(-) [+]
line wrap: on
line diff
--- a/src/aac/src/libmp4.c	Fri Jul 20 03:29:42 2007 +0300
+++ b/src/aac/src/libmp4.c	Fri Jul 20 05:39:56 2007 +0200
@@ -105,7 +105,7 @@
 
 static gchar *
 extname(const char *filename)
-{   
+{
     gchar *ext = strrchr(filename, '.');
 
     if (ext != NULL)
@@ -218,7 +218,7 @@
       break;
     }
 #ifdef DEBUG
-    g_print("AUDIO PAYLOAD: %x %x %x %x\n", 
+    g_print("AUDIO PAYLOAD: %x %x %x %x\n",
 	buffer[i], buffer[i+1], buffer[i+2], buffer[i+3]);
 #endif
     i++;
@@ -293,14 +293,21 @@
 static void mp4_about(void)
 {
     static GtkWidget *aboutbox = NULL;
-    aboutbox = xmms_show_message("About MP4 AAC player plugin",
-                   "Using libfaad2-" FAAD2_VERSION " for decoding.\n"
-		   "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n"
-                   "Copyright (c) 2005-2006 Audacious team",
-                   "Ok", FALSE, NULL, NULL);
+    gchar *about_text;
+
+    about_text = g_strjoin ("", _("Using libfaad2-"), FAAD2_VERSION,
+				_(" for decoding.\n"
+				  "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n"
+				  "Copyright (c) 2005-2006 Audacious team"), NULL);
+
+    aboutbox = xmms_show_message(_("About MP4 AAC player plugin"),
+				 about_text,
+				 _("Ok"), FALSE, NULL, NULL);
+
+    g_free(about_text);
+
     g_signal_connect(G_OBJECT(aboutbox), "destroy",
-                     G_CALLBACK(gtk_widget_destroyed),
-                     &aboutbox);
+                     G_CALLBACK(gtk_widget_destroyed), &aboutbox);
 }
 
 static void mp4_pause(InputPlayback *playback, short flag)
@@ -355,7 +362,7 @@
 
     mp4cb->read = mp4_read_callback;
     mp4cb->seek = mp4_seek_callback;
-    mp4cb->user_data = mp4fh;   
+    mp4cb->user_data = mp4fh;
 
     if (!(mp4file = mp4ff_open_read(mp4cb))) {
         g_free(mp4cb);
@@ -383,7 +390,7 @@
             faacDecClose(decoder);
             return FALSE;
         }
-        if ( faacDecInit2(decoder, buffer, bufferSize, 
+        if ( faacDecInit2(decoder, buffer, bufferSize,
                   &samplerate, &channels) < 0 ) {
             faacDecClose(decoder);
 
@@ -395,7 +402,7 @@
             if (mp4ASC.frameLengthFlag == 1) framesize = 960;
             if (mp4ASC.sbr_present_flag == 1) framesize *= 2;
         }
-            
+
         g_free(buffer);
 
         faacDecClose(decoder);
@@ -444,7 +451,7 @@
     mp4fh = vfs_fopen(filename, "rb");
     mp4cb->read = mp4_read_callback;
     mp4cb->seek = mp4_seek_callback;
-    mp4cb->user_data = mp4fh;   
+    mp4cb->user_data = mp4fh;
 
     if (!(mp4file = mp4ff_open_read(mp4cb))) {
         g_free(mp4cb);
@@ -527,7 +534,7 @@
         faacDecClose(decoder);
         return FALSE;
     }
-    if ( faacDecInit2(decoder, buffer, bufferSize, 
+    if ( faacDecInit2(decoder, buffer, bufferSize,
               &samplerate, &channels) < 0 ) {
         faacDecClose(decoder);
 
@@ -539,7 +546,7 @@
         if (mp4ASC.frameLengthFlag == 1) framesize = 960;
         if (mp4ASC.sbr_present_flag == 1) framesize *= 2;
     }
-        
+
     g_free(buffer);
     if( !channels ) {
         faacDecClose(decoder);
@@ -551,13 +558,13 @@
     playback->output->open_audio(FMT_S16_NE, samplerate, channels);
     playback->output->flush(0);
 
-    mp4_ip.set_info(xmmstitle, msDuration, 
-            mp4ff_get_avg_bitrate( mp4file, mp4track ), 
+    mp4_ip.set_info(xmmstitle, msDuration,
+            mp4ff_get_avg_bitrate( mp4file, mp4track ),
             samplerate,channels);
 
     while ( buffer_playing ) {
         void*           sampleBuffer;
-        faacDecFrameInfo    frameInfo;    
+        faacDecFrameInfo    frameInfo;
         gint            rc;
 
         /* Seek if seek position has changed */
@@ -591,7 +598,7 @@
 
             return FALSE;
         }
-        rc= mp4ff_read_sample(mp4file, mp4track, 
+        rc= mp4ff_read_sample(mp4file, mp4track,
                   sampleID++, &buffer, &bufferSize);
 
         /*g_print(":: %d/%d\n", sampleID-1, numSamples);*/
@@ -611,9 +618,9 @@
 
 /*          g_print(" :: %d/%d\n", bufferSize, BUFFER_SIZE); */
 
-        sampleBuffer= faacDecDecode(decoder, 
-                        &frameInfo, 
-                        buffer, 
+        sampleBuffer= faacDecDecode(decoder,
+                        &frameInfo,
+                        buffer,
                         bufferSize);
 
         /* If there was an error decoding, we're done. */
@@ -684,7 +691,7 @@
         gint size = 0;
 
         vfs_fseek(file, 0, SEEK_SET);
-        size = (streambuffer[6]<<21) | (streambuffer[7]<<14) | 
+        size = (streambuffer[6]<<21) | (streambuffer[7]<<14) |
 		(streambuffer[8]<<7) | streambuffer[9];
         size+=10;
         vfs_fread(streambuffer, 1, size, file);
@@ -858,7 +865,7 @@
     mp4cb->user_data = mp4fh;
 
     mp4file= mp4ff_open_read(mp4cb);
-  
+
     if( ret == TRUE ) {
         g_free(mp4cb);
         my_decode_aac( playback, filename, mp4fh );
--- a/src/musepack/libmpc.cxx	Fri Jul 20 03:29:42 2007 +0300
+++ b/src/musepack/libmpc.cxx	Fri Jul 20 05:39:56 2007 +0200
@@ -142,9 +142,9 @@
         gdk_window_raise(aboutBox->window);
     else
     {
-        char* titleText      = g_strdup_printf("Musepack Decoder Plugin 1.2");
-        const char* contentText = "Plugin code by\nBenoit Amiaux\nMartin Spuler\nKuniklo\n\nGet latest version at http://musepack.net\n";
-        const char* buttonText  = "Nevermind";
+        char* titleText      = g_strdup_printf(_("Musepack Decoder Plugin 1.2"));
+        const char* contentText = _("Plugin code by\nBenoit Amiaux\nMartin Spuler\nKuniklo\n\nGet latest version at http://musepack.net\n");
+        const char* buttonText  = _("Nevermind");
         aboutBox = xmms_show_message(titleText, contentText, buttonText, FALSE, NULL, NULL);
         widgets.aboutBox = aboutBox;
         g_signal_connect(G_OBJECT(aboutBox), "destroy", G_CALLBACK(gtk_widget_destroyed), &widgets.aboutBox);
@@ -162,7 +162,7 @@
         gtk_window_set_type_hint(GTK_WINDOW(configBox), GDK_WINDOW_TYPE_HINT_DIALOG);
         widgets.configBox = configBox;
         g_signal_connect(G_OBJECT(configBox), "destroy", G_CALLBACK(gtk_widget_destroyed), &widgets.configBox);
-        gtk_window_set_title(GTK_WINDOW(configBox), "Musepack Decoder Configuration");
+        gtk_window_set_title(GTK_WINDOW(configBox), _("Musepack Decoder Configuration"));
         gtk_window_set_policy(GTK_WINDOW(configBox), FALSE, FALSE, FALSE);
         gtk_container_border_width(GTK_CONTAINER(configBox), 10);
 
@@ -172,38 +172,38 @@
         gtk_container_add(GTK_CONTAINER(configBox), vbox);
 
         //General Settings Tab
-        GtkWidget* generalSet = gtk_frame_new("General Settings");
+        GtkWidget* generalSet = gtk_frame_new(_("General Settings"));
         gtk_container_border_width(GTK_CONTAINER(generalSet), 5);
 
         GtkWidget* gSvbox = gtk_vbox_new(FALSE, 10);
         gtk_container_border_width(GTK_CONTAINER(gSvbox), 5);
         gtk_container_add(GTK_CONTAINER(generalSet), gSvbox);
 
-        GtkWidget* bitrateCheck = gtk_check_button_new_with_label("Enable Dynamic Bitrate Display");
+        GtkWidget* bitrateCheck = gtk_check_button_new_with_label(_("Enable Dynamic Bitrate Display"));
         widgets.bitrateCheck = bitrateCheck;
         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bitrateCheck), pluginConfig.dynamicBitrate);
         gtk_box_pack_start(GTK_BOX(gSvbox), bitrateCheck, FALSE, FALSE, 0);
-        gtk_notebook_append_page(GTK_NOTEBOOK(notebook), generalSet, gtk_label_new("Plugin"));
+        gtk_notebook_append_page(GTK_NOTEBOOK(notebook), generalSet, gtk_label_new(_("Plugin")));
 
         //ReplayGain Settings Tab
-        GtkWidget* replaygainSet = gtk_frame_new("ReplayGain Settings");
+        GtkWidget* replaygainSet = gtk_frame_new(_("ReplayGain Settings"));
         gtk_container_border_width(GTK_CONTAINER(replaygainSet), 5);
 
         GtkWidget* rSVbox = gtk_vbox_new(FALSE, 10);
         gtk_container_border_width(GTK_CONTAINER(rSVbox), 5);
         gtk_container_add(GTK_CONTAINER(replaygainSet), rSVbox);
 
-        GtkWidget* clippingCheck = gtk_check_button_new_with_label("Enable Clipping Prevention");
+        GtkWidget* clippingCheck = gtk_check_button_new_with_label(_("Enable Clipping Prevention"));
         widgets.clippingCheck = clippingCheck;
         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(clippingCheck), pluginConfig.clipPrevention);
         gtk_box_pack_start(GTK_BOX(rSVbox), clippingCheck, FALSE, FALSE, 0);
 
-        GtkWidget* replaygainCheck = gtk_check_button_new_with_label("Enable ReplayGain");
+        GtkWidget* replaygainCheck = gtk_check_button_new_with_label(_("Enable ReplayGain"));
         widgets.replaygainCheck = replaygainCheck;
         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(replaygainCheck), pluginConfig.replaygain);
         gtk_box_pack_start(GTK_BOX(rSVbox), replaygainCheck, FALSE, FALSE, 0);
 
-        GtkWidget* replaygainType = gtk_frame_new("ReplayGain Type");
+        GtkWidget* replaygainType = gtk_frame_new(_("ReplayGain Type"));
         gtk_box_pack_start(GTK_BOX(rSVbox), replaygainType, FALSE, FALSE, 0);
         g_signal_connect(G_OBJECT(replaygainCheck), "toggled", G_CALLBACK(toggleSwitch), replaygainType);
 
@@ -211,16 +211,16 @@
         gtk_container_set_border_width(GTK_CONTAINER(rgVbox), 5);
         gtk_container_add(GTK_CONTAINER(replaygainType), rgVbox);
 
-        GtkWidget* trackCheck = gtk_radio_button_new_with_label(NULL, "Use Track Gain");
+        GtkWidget* trackCheck = gtk_radio_button_new_with_label(NULL, _("Use Track Gain"));
         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(trackCheck), !pluginConfig.albumGain);
         gtk_box_pack_start(GTK_BOX(rgVbox), trackCheck, FALSE, FALSE, 0);
 
-        GtkWidget* albumCheck = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(trackCheck)), "Use Album Gain");
+        GtkWidget* albumCheck = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(trackCheck)), _("Use Album Gain"));
         widgets.albumCheck = albumCheck;
         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(albumCheck), pluginConfig.albumGain);
         gtk_box_pack_start(GTK_BOX(rgVbox), albumCheck, FALSE, FALSE, 0);
         gtk_widget_set_sensitive(replaygainType, pluginConfig.replaygain);
-        gtk_notebook_append_page(GTK_NOTEBOOK(notebook), replaygainSet, gtk_label_new("ReplayGain"));
+        gtk_notebook_append_page(GTK_NOTEBOOK(notebook), replaygainSet, gtk_label_new(_("ReplayGain")));
 
         //Buttons
         GtkWidget* buttonBox = gtk_hbutton_box_new();
@@ -228,12 +228,12 @@
         gtk_button_box_set_spacing(GTK_BUTTON_BOX(buttonBox), 5);
         gtk_box_pack_start(GTK_BOX(vbox), buttonBox, FALSE, FALSE, 0);
 
-        GtkWidget* okButton = gtk_button_new_with_label("Ok");
+        GtkWidget* okButton = gtk_button_new_with_label(_("Ok"));
         g_signal_connect(G_OBJECT(okButton), "clicked", G_CALLBACK(saveConfigBox), NULL);
         GTK_WIDGET_SET_FLAGS(okButton, GTK_CAN_DEFAULT);
         gtk_box_pack_start(GTK_BOX(buttonBox), okButton, TRUE, TRUE, 0);
 
-        GtkWidget* cancelButton = gtk_button_new_with_label("Cancel");
+        GtkWidget* cancelButton = gtk_button_new_with_label(_("Cancel"));
         g_signal_connect_swapped(G_OBJECT(cancelButton), "clicked", G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(widgets.configBox));
         GTK_WIDGET_SET_FLAGS(cancelButton, GTK_CAN_DEFAULT);
         gtk_widget_grab_default(cancelButton);
@@ -479,7 +479,7 @@
         GtkWidget* filenameHbox = gtk_hbox_new(FALSE, 5);
         gtk_box_pack_start(GTK_BOX(iVbox), filenameHbox, FALSE, TRUE, 0);
 
-        GtkWidget* fileLabel = gtk_label_new("Filename:");
+        GtkWidget* fileLabel = gtk_label_new(_("Filename:"));
         gtk_box_pack_start(GTK_BOX(filenameHbox), fileLabel, FALSE, TRUE, 0);
 
         GtkWidget* fileEntry = gtk_entry_new();
@@ -494,7 +494,7 @@
         gtk_box_pack_start(GTK_BOX(iHbox), leftBox, FALSE, FALSE, 0);
 
         //Tag labels
-        GtkWidget* tagFrame = gtk_frame_new("Musepack Tag");
+        GtkWidget* tagFrame = gtk_frame_new(_("Musepack Tag"));
         gtk_box_pack_start(GTK_BOX(leftBox), tagFrame, FALSE, FALSE, 0);
         gtk_widget_set_sensitive(tagFrame, TRUE);
 
@@ -502,33 +502,33 @@
         gtk_container_set_border_width(GTK_CONTAINER(iTable), 5);
         gtk_container_add(GTK_CONTAINER(tagFrame), iTable);
 
-        mpcGtkTagLabel("Title:", 0, 1, 0, 1, iTable);
+        mpcGtkTagLabel(_("Title:"), 0, 1, 0, 1, iTable);
         GtkWidget* titleEntry = mpcGtkTagEntry(1, 4, 0, 1, 0, iTable);
         widgets.titleEntry = titleEntry;
 
-        mpcGtkTagLabel("Artist:", 0, 1, 1, 2, iTable);
+        mpcGtkTagLabel(_("Artist:"), 0, 1, 1, 2, iTable);
         GtkWidget* artistEntry = mpcGtkTagEntry(1, 4, 1, 2, 0, iTable);
         widgets.artistEntry = artistEntry;
 
-        mpcGtkTagLabel("Album:", 0, 1, 2, 3, iTable);
+        mpcGtkTagLabel(_("Album:"), 0, 1, 2, 3, iTable);
         GtkWidget* albumEntry = mpcGtkTagEntry(1, 4, 2, 3, 0, iTable);
         widgets.albumEntry = albumEntry;
 
-        mpcGtkTagLabel("Comment:", 0, 1, 3, 4, iTable);
+        mpcGtkTagLabel(_("Comment:"), 0, 1, 3, 4, iTable);
         GtkWidget* commentEntry = mpcGtkTagEntry(1, 4, 3, 4, 0, iTable);
         widgets.commentEntry = commentEntry;
 
-        mpcGtkTagLabel("Year:", 0, 1, 4, 5, iTable);
+        mpcGtkTagLabel(_("Year:"), 0, 1, 4, 5, iTable);
         GtkWidget* yearEntry = mpcGtkTagEntry(1, 2, 4, 5, 4, iTable);
         widgets.yearEntry = yearEntry;
         gtk_widget_set_usize(yearEntry, 4, -1);
 
-        mpcGtkTagLabel("Track:", 2, 3, 4, 5, iTable);
+        mpcGtkTagLabel(_("Track:"), 2, 3, 4, 5, iTable);
         GtkWidget* trackEntry = mpcGtkTagEntry(3, 4, 4, 5, 4, iTable);
         widgets.trackEntry = trackEntry;
         gtk_widget_set_usize(trackEntry, 3, -1);
 
-        mpcGtkTagLabel("Genre:", 0, 1, 5, 6, iTable);
+        mpcGtkTagLabel(_("Genre:"), 0, 1, 5, 6, iTable);
         GtkWidget* genreEntry = mpcGtkTagEntry(1, 4, 5, 6, 0, iTable);
         widgets.genreEntry = genreEntry;
         gtk_widget_set_usize(genreEntry, 20, -1);
@@ -539,18 +539,18 @@
         gtk_button_box_set_spacing(GTK_BUTTON_BOX(buttonBox), 5);
         gtk_box_pack_start(GTK_BOX(leftBox), buttonBox, FALSE, FALSE, 0);
 
-        GtkWidget* saveButton = mpcGtkButton("Save", buttonBox);
+        GtkWidget* saveButton = mpcGtkButton(_("Save"), buttonBox);
         g_signal_connect(G_OBJECT(saveButton), "clicked", G_CALLBACK(saveTags), NULL);
 
-        GtkWidget* removeButton = mpcGtkButton("Remove Tag", buttonBox);
+        GtkWidget* removeButton = mpcGtkButton(_("Remove Tag"), buttonBox);
         g_signal_connect_swapped(G_OBJECT(removeButton), "clicked", G_CALLBACK(removeTags), NULL);
 
-        GtkWidget* cancelButton = mpcGtkButton("Cancel", buttonBox);
+        GtkWidget* cancelButton = mpcGtkButton(_("Cancel"), buttonBox);
         g_signal_connect_swapped(G_OBJECT(cancelButton), "clicked", G_CALLBACK(closeInfoBox), NULL);
         gtk_widget_grab_default(cancelButton);
 
         //File information
-        GtkWidget* infoFrame = gtk_frame_new("Musepack Info");
+        GtkWidget* infoFrame = gtk_frame_new(_("Musepack Info"));
         gtk_box_pack_start(GTK_BOX(iHbox), infoFrame, FALSE, FALSE, 0);
 
         GtkWidget* infoVbox = gtk_vbox_new(FALSE, 5);
@@ -583,18 +583,18 @@
             int minutes = time / 60;
             int seconds = time % 60;
 
-            mpcGtkPrintLabel(streamLabel,    "Streamversion %d", info.stream_version);
-            mpcGtkPrintLabel(encoderLabel,   "Encoder: \%s", info.encoder);
-            mpcGtkPrintLabel(profileLabel,   "Profile: \%s", info.profile_name);
-            mpcGtkPrintLabel(bitrateLabel,   "Average bitrate: \%6.1f kbps", info.average_bitrate * 1.e-3);
-            mpcGtkPrintLabel(rateLabel,      "Samplerate: \%d Hz", info.sample_freq);
-            mpcGtkPrintLabel(channelsLabel,  "Channels: \%d", info.channels);
-            mpcGtkPrintLabel(lengthLabel,    "Length: \%d:\%.2d", minutes, seconds);
-            mpcGtkPrintLabel(fileSizeLabel,  "File size: \%d Bytes", info.total_file_length);
-            mpcGtkPrintLabel(trackPeakLabel, "Track Peak: \%5u", info.peak_title);
-            mpcGtkPrintLabel(trackGainLabel, "Track Gain: \%-+2.2f dB", 0.01 * info.gain_title);
-            mpcGtkPrintLabel(albumPeakLabel, "Album Peak: \%5u", info.peak_album);
-            mpcGtkPrintLabel(albumGainLabel, "Album Gain: \%-+5.2f dB", 0.01 * info.gain_album);
+            mpcGtkPrintLabel(streamLabel,    _("Streamversion %d"), info.stream_version);
+            mpcGtkPrintLabel(encoderLabel,   _("Encoder: %s"), info.encoder);
+            mpcGtkPrintLabel(profileLabel,   _("Profile: %s"), info.profile_name);
+            mpcGtkPrintLabel(bitrateLabel,   _("Average bitrate: %6.1f kbps"), info.average_bitrate * 1.e-3);
+            mpcGtkPrintLabel(rateLabel,      _("Samplerate: %d Hz"), info.sample_freq);
+            mpcGtkPrintLabel(channelsLabel,  _("Channels: %d"), info.channels);
+            mpcGtkPrintLabel(lengthLabel,    _("Length: %d:\%.2d"), minutes, seconds);
+            mpcGtkPrintLabel(fileSizeLabel,  _("File size: %d Bytes"), info.total_file_length);
+            mpcGtkPrintLabel(trackPeakLabel, _("Track Peak: %5u"), info.peak_title);
+            mpcGtkPrintLabel(trackGainLabel, _("Track Gain: %-+2.2f dB"), 0.01 * info.gain_title);
+            mpcGtkPrintLabel(albumPeakLabel, _("Album Peak: %5u"), info.peak_album);
+            mpcGtkPrintLabel(albumGainLabel, _("Album Gain: %-+5.2f dB"), 0.01 * info.gain_album);
 
             MpcInfo tags = getTags(p_Filename);
             gtk_entry_set_text(GTK_ENTRY(titleEntry),   tags.title);
@@ -622,7 +622,7 @@
         }
 
 	char* name = g_filename_display_basename(p_Filename);
-        char* text = g_strdup_printf("File Info - %s", name);
+        char* text = g_strdup_printf(_("File Info - %s"), name);
         free(name);
         gtk_window_set_title(GTK_WINDOW(infoBox), text);
         free(text);
--- a/src/musepack/libmpc.h	Fri Jul 20 03:29:42 2007 +0300
+++ b/src/musepack/libmpc.h	Fri Jul 20 05:39:56 2007 +0200
@@ -10,6 +10,8 @@
 #include "audacious/configdb.h"
 #include "audacious/titlestring.h"
 #include "audacious/vfs.h"
+#include <audacious/i18n.h>
+#include "../../config.h"
 }
 
 //stdlib headers
--- a/src/null/null.c	Fri Jul 20 03:29:42 2007 +0300
+++ b/src/null/null.c	Fri Jul 20 05:39:56 2007 +0200
@@ -2,7 +2,7 @@
  *  Copyright 2006 Christian Birchinger <joker@netswarm.net>
  *
  *  Based on the XMMS plugin:
- *  Copyright 2000 Håvard Kvålen <havardk@sol.no>
+ *  Copyright 2000 H�vard Kv�len <havardk@sol.no>
  *
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -53,15 +53,21 @@
 static void null_about(void)
 {
 	static GtkWidget *about;
+	gchar *about_text;
 
 	if (about)
 		return;
+
+	about_text = g_strjoin("", _("Null output plugin "), VERSION,
+			           _(" by Christian Birchinger <joker@netswarm.net>\n"
+			             "based on the XMMS plugin by Håvard Kvål <havardk@xmms.org>"), NULL);
+
 	about = xmms_show_message(_("About Null Output"),
-				  _("Null output plugin " VERSION
-				  " by Christian Birchinger <joker@netswarm.net>\n"
-				  " based on the XMMS plugin by Håvard Kvål <havardk@xmms.org>"),
+				  about_text,
 				  _("Ok"), FALSE, NULL, NULL);
 
+	g_free(about_text);
+
 	g_signal_connect(G_OBJECT(about), "destroy",
 			 G_CALLBACK(gtk_widget_destroyed), &about);
 }
@@ -84,9 +90,9 @@
 
 	if (configurewin)
 		return;
-	
+
 	configurewin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-	gtk_window_set_title(GTK_WINDOW(configurewin), "Null output preferences");
+	gtk_window_set_title(GTK_WINDOW(configurewin), _("Null output preferences"));
 	gtk_window_set_policy(GTK_WINDOW(configurewin), FALSE, FALSE, FALSE);
 	gtk_container_set_border_width(GTK_CONTAINER(configurewin), 10);
 	gtk_signal_connect(GTK_OBJECT(configurewin), "destroy",
@@ -95,15 +101,15 @@
 	vbox = gtk_vbox_new(FALSE, 10);
 	gtk_container_add(GTK_CONTAINER(configurewin), vbox);
 
-	rt_btn = gtk_check_button_new_with_label("Run in real time");
+	rt_btn = gtk_check_button_new_with_label(_("Run in real time"));
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rt_btn), real_time);
 	gtk_box_pack_start(GTK_BOX(vbox), rt_btn, FALSE, FALSE, 0);
 	bbox = gtk_hbutton_box_new();
 	gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
 	gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
 	gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
-	ok_button = gtk_button_new_with_label("Ok");
-	cancel_button = gtk_button_new_with_label("Cancel");
+	ok_button = gtk_button_new_with_label(_("Ok"));
+	cancel_button = gtk_button_new_with_label(_("Cancel"));
 	GTK_WIDGET_SET_FLAGS(ok_button, GTK_CAN_DEFAULT);
 	GTK_WIDGET_SET_FLAGS(cancel_button, GTK_CAN_DEFAULT);
 	gtk_widget_grab_default(ok_button);
@@ -159,7 +165,7 @@
 		ep->mod_samples(&ptr, length, input_format.format,
 				input_format.frequency, input_format.channels);
 #endif
-	
+
 	written += length;
 }
 
@@ -183,7 +189,7 @@
 	paused = p;
 	if (!timer)
 		return;
-	
+
 	if (paused)
 		g_timer_stop(timer);
 	else
@@ -212,7 +218,7 @@
 {
 	if (!timer)
 		return FALSE;
-	
+
 	if ((gdouble)(written * 1000) / bps > ELAPSED_TIME)
 		return TRUE;
 	return FALSE;
@@ -229,7 +235,7 @@
 {
 	if (!timer)
 		return null_get_written_time();
-	
+
 	return ELAPSED_TIME;
 }
 
@@ -239,7 +245,7 @@
 	NULL,
 	"Null Output Plugin",
 	null_init,
-	NULL,			/* cleanup */ 
+	NULL,			/* cleanup */
 	null_about,
 	null_configure,
 	NULL,			/* Get volume */