Index: src/apps/midiplayer/MidiPlayerApp.cpp
===================================================================
--- src/apps/midiplayer/MidiPlayerApp.cpp	(revision 35149)
+++ src/apps/midiplayer/MidiPlayerApp.cpp	(working copy)
@@ -21,15 +21,20 @@
  */
 
 #include <Alert.h>
+#include <Catalog.h>
+#include <Locale.h>
 #include <StorageKit.h>
 
 #include "MidiPlayerApp.h"
 #include "MidiPlayerWindow.h"
 
+#undef TR_CONTEXT
+#define TR_CONTEXT "Main Application"
 
 MidiPlayerApp::MidiPlayerApp()
 	: BApplication(MIDI_PLAYER_SIGNATURE)
 {
+	be_locale->GetAppCatalog(&fCatalog);
 	window = new MidiPlayerWindow;
 }
 
@@ -46,10 +51,10 @@
 {
 	(new BAlert(
 		NULL,
-		"Haiku MIDI Player 1.0.0 beta\n\n"
+		TR_CMT("Haiku MIDI Player 1.0.0 beta\n\n"
 		"This tiny program\n"
 		"Knows how to play thousands of\n"
-		"Cheesy sounding songs",
+		"Cheesy sounding songs", "This is a haiku. First line has five syllables, second has seven and last has five again. Create your own."),
 		"Okay", NULL, NULL,
 		B_WIDTH_AS_USUAL, B_INFO_ALERT))->Go();
 }
Index: src/apps/midiplayer/ScopeView.cpp
===================================================================
--- src/apps/midiplayer/ScopeView.cpp	(revision 35149)
+++ src/apps/midiplayer/ScopeView.cpp	(working copy)
@@ -20,11 +20,17 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include <Catalog.h>
+#include <Locale.h>
 #include <Synth.h>
 #include <Window.h>
 
 #include "ScopeView.h"
 
+#undef TR_CONTEXT
+#define TR_CONTEXT "Scope View"
+
+
 //------------------------------------------------------------------------------
 
 ScopeView::ScopeView()
@@ -180,7 +186,7 @@
 
 void ScopeView::DrawNoFile()
 {
-	DrawText("Drop MIDI file here");
+	DrawText(TR("Drop MIDI file here"));
 }
 
 //------------------------------------------------------------------------------
Index: src/apps/midiplayer/MidiPlayerApp.h
===================================================================
--- src/apps/midiplayer/MidiPlayerApp.h	(revision 35149)
+++ src/apps/midiplayer/MidiPlayerApp.h	(working copy)
@@ -39,7 +39,7 @@
 
 	private:
 		typedef BApplication super;
-
+		BCatalog fCatalog;
 		MidiPlayerWindow* window;
 };
 
Index: src/apps/midiplayer/Jamfile
===================================================================
--- src/apps/midiplayer/Jamfile	(revision 35149)
+++ src/apps/midiplayer/Jamfile	(working copy)
@@ -7,7 +7,16 @@
 	MidiPlayerWindow.cpp 
 	ScopeView.cpp
 	SynthBridge.cpp
-	: be midi midi2 $(TARGET_LIBSUPC++)
+	: be midi midi2 $(TARGET_LIBSUPC++) liblocale.so
 	: MidiPlayer.rdef
 ;
 
+DoCatalogs MidiPlayer :
+	x-vnd.Haiku-MidiPlayer
+	:
+	MidiPlayerApp.cpp 
+	MidiPlayerWindow.cpp 
+	ScopeView.cpp
+	: en.catalog
+	: eo.catkeys
+	;
Index: src/apps/midiplayer/MidiPlayerWindow.cpp
===================================================================
--- src/apps/midiplayer/MidiPlayerWindow.cpp	(revision 35149)
+++ src/apps/midiplayer/MidiPlayerWindow.cpp	(working copy)
@@ -20,9 +20,11 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include <Catalog.h>
 #include <GridLayoutBuilder.h>
 #include <GroupLayout.h>
 #include <GroupLayoutBuilder.h>
+#include <Locale.h>
 #include <MidiProducer.h>
 #include <MidiRoster.h>
 #include <StorageKit.h>
@@ -36,10 +38,13 @@
 #define _W(a) (a->Frame().Width())
 #define _H(a) (a->Frame().Height())
 
+#undef TR_CONTEXT
+#define TR_CONTEXT "Main Window"
+
 //------------------------------------------------------------------------------
 
 MidiPlayerWindow::MidiPlayerWindow()
-	: BWindow(BRect(0, 0, 1, 1), "MidiPlayer", B_TITLED_WINDOW, 
+	: BWindow(BRect(0, 0, 1, 1), TR("MidiPlayer"), B_TITLED_WINDOW, 
 	          B_ASYNCHRONOUS_CONTROLS | B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS)
 {
 	playing = false;
@@ -188,11 +193,11 @@
 	msg->what = MSG_INPUT_CHANGED;
 	msg->AddInt32("id", -1);
 
-	inputOff = new BMenuItem("Off", msg);
+	inputOff = new BMenuItem(TR("Off"), msg);
 
 	inputPopUp->AddItem(inputOff);
 
-	inputMenu = new BMenuField("Live input:", inputPopUp, NULL);
+	inputMenu = new BMenuField(TR("Live input:"), inputPopUp, NULL);
 }
 
 //------------------------------------------------------------------------------
@@ -202,22 +207,22 @@
 	BPopUpMenu* reverbPopUp = new BPopUpMenu("reverbPopUp");
 
 	reverbNone = new BMenuItem(
-		"None", new BMessage(MSG_REVERB_NONE));
+		TR("None"), new BMessage(MSG_REVERB_NONE));
 
 	reverbCloset = new BMenuItem(
-		"Closet", new BMessage(MSG_REVERB_CLOSET));
+		TR("Closet"), new BMessage(MSG_REVERB_CLOSET));
 
 	reverbGarage = new BMenuItem(
-		"Garage", new BMessage(MSG_REVERB_GARAGE));
+		TR("Garage"), new BMessage(MSG_REVERB_GARAGE));
 
 	reverbIgor = new BMenuItem(
-		"Igor's lab", new BMessage(MSG_REVERB_IGOR));
+		TR("Igor's lab"), new BMessage(MSG_REVERB_IGOR));
 
 	reverbCavern = new BMenuItem(
-		"Cavern", new BMessage(MSG_REVERB_CAVERN));
+		TR("Cavern"), new BMessage(MSG_REVERB_CAVERN));
 
 	reverbDungeon = new BMenuItem(
-		"Dungeon", new BMessage(MSG_REVERB_DUNGEON));
+		TR("Dungeon"), new BMessage(MSG_REVERB_DUNGEON));
 
 	reverbPopUp->AddItem(reverbNone);
 	reverbPopUp->AddItem(reverbCloset);
@@ -226,7 +231,7 @@
 	reverbPopUp->AddItem(reverbCavern);
 	reverbPopUp->AddItem(reverbDungeon);
 
-	reverbMenu = new BMenuField("Reverb:", reverbPopUp, NULL);
+	reverbMenu = new BMenuField(TR("Reverb:"), reverbPopUp, NULL);
 }
 
 //------------------------------------------------------------------------------
@@ -236,7 +241,7 @@
 	// Set up needed views
 	scopeView = new ScopeView;
 
-	showScope = new BCheckBox("showScope", "Scope",
+	showScope = new BCheckBox("showScope", TR("Scope"),
 		new BMessage(MSG_SHOW_SCOPE));
 	showScope->SetValue(B_CONTROL_ON);
 
@@ -249,7 +254,7 @@
 	volumeSlider->UseFillColor(true, &col);
 	volumeSlider->SetModificationMessage(new BMessage(MSG_VOLUME));
 
-	playButton = new BButton("playButton", "Play", new BMessage(MSG_PLAY_STOP));
+	playButton = new BButton("playButton", TR("Play"), new BMessage(MSG_PLAY_STOP));
 	playButton->SetEnabled(false);
 
 	BBox* divider = new BBox(B_EMPTY_STRING, B_WILL_DRAW | B_FRAME_EVENTS,
@@ -257,7 +262,7 @@
 	divider->SetExplicitMaxSize(
 		BSize(B_SIZE_UNLIMITED, 1));
 
-	BStringView* volumeLabel = new BStringView(NULL, "Volume:");
+	BStringView* volumeLabel = new BStringView(NULL, TR("Volume:"));
 	volumeLabel->SetAlignment(B_ALIGN_LEFT);
 	volumeLabel->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET));
 
@@ -381,7 +386,7 @@
 		synth.SetVolume(volume / 100.0f);
 
 		playButton->SetEnabled(true);
-		playButton->SetLabel("Stop");
+		playButton->SetLabel(TR("Stop"));
 		scopeView->SetHaveFile(true);
 		scopeView->SetPlaying(true);
 		scopeView->Invalidate();
@@ -391,13 +396,13 @@
 	else
 	{
 		playButton->SetEnabled(false);
-		playButton->SetLabel("Play");
+		playButton->SetLabel(TR("Play"));
 		scopeView->SetHaveFile(false);
 		scopeView->SetPlaying(false);
 		scopeView->Invalidate();
 
 		(new BAlert(
-			NULL, "Could not load song", "OK", NULL, NULL,
+			NULL, TR("Could not load song"), TR("OK"), NULL, NULL,
 			B_WIDTH_AS_USUAL, B_STOP_ALERT))->Go();
 	}
 }
@@ -441,7 +446,7 @@
 	scopeView->SetPlaying(false);
 	scopeView->Invalidate();
 	playButton->SetEnabled(true);
-	playButton->SetLabel("Play");
+	playButton->SetLabel(TR("Play"));
 	
 	Unlock();
 }
@@ -461,7 +466,7 @@
 	}
 	else
 	{
-		playButton->SetLabel("Stop");
+		playButton->SetLabel(TR("Stop"));
 		scopeView->SetPlaying(true);
 		scopeView->Invalidate();
 
Index: data/catalogs/apps/midiplayer/eo.catkeys
===================================================================
--- data/catalogs/apps/midiplayer/eo.catkeys	(revision 0)
+++ data/catalogs/apps/midiplayer/eo.catkeys	(revision 0)
@@ -0,0 +1,19 @@
+1	esperanto	x-vnd.Haiku-MidiPlayer	1406887279
+None	Main Window		Neniu
+Live input:	Main Window		Viva enigo:
+Haiku MIDI Player 1.0.0 beta\n\nThis tiny program\nKnows how to play thousands of\nCheesy sounding songs	Main Application	This is a haiku. First line has five syllables, second has seven and last has five again. Create your own.	Haiku MIDI-a Legilo 1.0.0 beta\n\nLa programet' ĉi\nEblas legi milojn da\nRidindaj kantoj
+Stop	Main Window		Halti
+Cavern	Main Window		Kavo
+Volume:	Main Window		Laŭteco:
+Reverb:	Main Window		Eĥo:
+OK	Main Window		Daŭrigi
+MidiPlayer	Main Window		MIDI-a Legilo
+Off	Main Window		Malŝaltita
+Dungeon	Main Window		Karcero
+Play	Main Window		Legi
+Garage	Main Window		Aŭtejo
+Closet	Main Window		Ĉambreto
+Drop MIDI file here	Scope View		Faligu MIDI-an dosieron ĉi tie
+Igor's lab	Main Window		La laboratorio de Igoro
+Scope	Main Window		Skopo
+Could not load song	Main Window		La kanto ne eblis ŝarĝiĝi.
