[gbrainy] Use translation property instead of internal variable to access translation object



commit a2803621e52776e4ba5fcf9f1d15b689538393ae
Author: Jordi Mas <jmas softcatala org>
Date:   Mon Dec 19 13:12:00 2011 +0100

    Use translation property instead of internal variable to access translation object

 src/Clients/Classical/CommandLine.cs               |    9 +-
 src/Clients/Classical/Dialogs/BuilderDialog.cs     |    6 +-
 src/Clients/Classical/Dialogs/CustomGameDialog.cs  |    4 +-
 src/Clients/Classical/Dialogs/PdfExportDialog.cs   |    2 +-
 src/Clients/Classical/gbrainy.cs                   |   39 ++++----
 src/Core/Main/ColorPalette.cs                      |   20 ++--
 src/Core/Main/Game.cs                              |    6 +-
 src/Core/Main/GameAnswer.cs                        |   24 +++---
 src/Core/Main/GameSession.cs                       |   19 ++--
 src/Core/Main/GameTips.cs                          |   35 ++++----
 src/Core/Main/Memory.cs                            |    6 +-
 src/Core/Main/Verbal/Analogies.cs                  |   10 +-
 src/Core/Main/Verbal/AnalogiesMultipleOptions.cs   |    8 +-
 .../Main/Verbal/AnalogiesPairOfWordsCompare.cs     |   10 +-
 .../Main/Verbal/AnalogiesPairOfWordsOptions.cs     |   12 ++--
 src/Core/Main/Verbal/AnalogiesQuestionAnswer.cs    |    2 +-
 src/Core/Main/Xml/GameXml.cs                       |   12 ++--
 src/Core/Views/CountDownView.cs                    |    7 +-
 src/Core/Views/FinishView.cs                       |   41 +++++----
 src/Core/Views/PlayerHistoryView.cs                |   18 ++--
 src/Core/Views/WelcomeView.cs                      |   19 ++--
 src/Games/Calculation/CalculationArithmetical.cs   |    4 +-
 src/Games/Calculation/CalculationAverage.cs        |   10 +-
 src/Games/Calculation/CalculationCloserFraction.cs |   10 +-
 src/Games/Calculation/CalculationFractions.cs      |    4 +-
 .../Calculation/CalculationGreatestDivisor.cs      |   10 +-
 src/Games/Calculation/CalculationOperator.cs       |    8 +-
 src/Games/Calculation/CalculationPrimes.cs         |   10 +-
 src/Games/Calculation/CalculationProportions.cs    |    6 +-
 src/Games/Calculation/CalculationRatio.cs          |   14 ++--
 src/Games/Calculation/CalculationTwoNumbers.cs     |   14 ++--
 src/Games/Logic/Puzzle3DCube.cs                    |    6 +-
 src/Games/Logic/PuzzleBalance.cs                   |    8 +-
 src/Games/Logic/PuzzleBuildTriangle.cs             |    8 +-
 src/Games/Logic/PuzzleCirclesSquare.cs             |   16 ++--
 src/Games/Logic/PuzzleClocks.cs                    |    8 +-
 src/Games/Logic/PuzzleCountCircles.cs              |    6 +-
 src/Games/Logic/PuzzleCountSeries.cs               |   16 ++--
 src/Games/Logic/PuzzleCounting.cs                  |   16 ++--
 src/Games/Logic/PuzzleCoverPercentage.cs           |    4 +-
 src/Games/Logic/PuzzleCube.cs                      |    4 +-
 src/Games/Logic/PuzzleDice.cs                      |   18 ++--
 src/Games/Logic/PuzzleDivideCircle.cs              |    6 +-
 src/Games/Logic/PuzzleEquation.cs                  |    6 +-
 src/Games/Logic/PuzzleExtraCircle.cs               |   10 +-
 src/Games/Logic/PuzzleFigureLetter.cs              |    8 +-
 src/Games/Logic/PuzzleFigurePattern.cs             |   10 +-
 src/Games/Logic/PuzzleFigures.cs                   |    8 +-
 src/Games/Logic/PuzzleFourSided.cs                 |    8 +-
 src/Games/Logic/PuzzleGridCircles.cs               |    8 +-
 src/Games/Logic/PuzzleGridDots.cs                  |   10 +-
 src/Games/Logic/PuzzleGridNumbers.cs               |   20 ++--
 src/Games/Logic/PuzzleHandshakes.cs                |    8 +-
 src/Games/Logic/PuzzleLargerShape.cs               |    8 +-
 src/Games/Logic/PuzzleLines.cs                     |    8 +-
 src/Games/Logic/PuzzleMissingPiece.cs              |   10 +-
 src/Games/Logic/PuzzleMissingSlice.cs              |   10 +-
 src/Games/Logic/PuzzleMostInCommon.cs              |   12 ++--
 src/Games/Logic/PuzzleMoveFigure.cs                |    8 +-
 src/Games/Logic/PuzzleNextFigure.cs                |    8 +-
 src/Games/Logic/PuzzleNumericRelation.cs           |   12 ++--
 src/Games/Logic/PuzzleNumericSequence.cs           |   12 ++--
 src/Games/Logic/PuzzleOstracism.cs                 |   16 ++--
 src/Games/Logic/PuzzlePencil.cs                    |    4 +-
 src/Games/Logic/PuzzlePeopleTable.cs               |   20 ++--
 src/Games/Logic/PuzzlePercentage.cs                |   10 +-
 src/Games/Logic/PuzzlePredicateLogic.cs            |   96 ++++++++++----------
 src/Games/Logic/PuzzleQuadrilaterals.cs            |    6 +-
 src/Games/Logic/PuzzleRelatedNumbers.cs            |   12 ++--
 src/Games/Logic/PuzzleSquareSheets.cs              |   10 +-
 src/Games/Logic/PuzzleSquares.cs                   |   10 +-
 src/Games/Logic/PuzzleSquaresAndLetters.cs         |    6 +-
 src/Games/Logic/PuzzleTetris.cs                    |    8 +-
 src/Games/Logic/PuzzleTimeNow.cs                   |   10 +-
 src/Games/Logic/PuzzleTrains.cs                    |   16 ++--
 src/Games/Logic/PuzzleTriangles.cs                 |    8 +-
 src/Games/Logic/PuzzleTrianglesWithNumbers.cs      |    8 +-
 src/Games/Memory/MemoryColouredFigures.cs          |    6 +-
 src/Games/Memory/MemoryColouredText.cs             |    6 +-
 src/Games/Memory/MemoryCountDots.cs                |    6 +-
 src/Games/Memory/MemoryFacts.cs                    |   24 +++---
 src/Games/Memory/MemoryFigures.cs                  |    4 +-
 src/Games/Memory/MemoryFiguresAndText.cs           |   24 +++---
 src/Games/Memory/MemoryFiguresNumbers.cs           |    4 +-
 src/Games/Memory/MemoryIndications.cs              |   57 ++++++------
 src/Games/Memory/MemoryNumbers.cs                  |   18 ++--
 src/Games/Memory/MemoryWords.cs                    |   74 ++++++++--------
 87 files changed, 584 insertions(+), 578 deletions(-)
---
diff --git a/src/Clients/Classical/CommandLine.cs b/src/Clients/Classical/CommandLine.cs
index e1ac9b9..edb26be 100644
--- a/src/Clients/Classical/CommandLine.cs
+++ b/src/Clients/Classical/CommandLine.cs
@@ -33,13 +33,12 @@ namespace gbrainy.Clients.Classical
 		string [] args;
 		int [] play_list;
 		bool cont_execution;
-		ITranslations translations;
 
 		public static readonly char GAME_SEPARATOR = ',';
 
 		public CommandLine (ITranslations translations, string [] args)
 		{
-			this.translations = translations;
+			Translations = translations;
 			this.args = args;
 			RandomOrder = true;
 			play_list = new int [0];
@@ -55,6 +54,8 @@ namespace gbrainy.Clients.Classical
 
 		public bool RandomOrder { get; set; }
 
+		ITranslations Translations {get; set;}
+
 		public void Parse ()
 		{
 			cont_execution = true;
@@ -125,7 +126,7 @@ namespace gbrainy.Clients.Classical
 					continue;
 
 				Game game = (Game) Activator.CreateInstance (games[i].TypeOf, true);
-				game.translations = translations;
+				game.Translations = Translations;
 				game.Variant = games[i].Variant;
 				Console.WriteLine (" {0}", game.Name);
 			}
@@ -142,7 +143,7 @@ namespace gbrainy.Clients.Classical
 			for (int i = 0; i < games.Length; i++)
 			{
 				Game game = (Game) Activator.CreateInstance (games[i].TypeOf, true);
-				game.translations = translations;
+				game.Translations = Translations;
 				game.Variant = games[i].Variant;
 
 				try
diff --git a/src/Clients/Classical/Dialogs/BuilderDialog.cs b/src/Clients/Classical/Dialogs/BuilderDialog.cs
index 3c0e9f7..5be137a 100644
--- a/src/Clients/Classical/Dialogs/BuilderDialog.cs
+++ b/src/Clients/Classical/Dialogs/BuilderDialog.cs
@@ -23,14 +23,12 @@ namespace gbrainy.Clients.Classical.Dialogs
 {
 	public class BuilderDialog : Gtk.Dialog
 	{
-		ITranslations translations;
-
-		protected ITranslations Translations { get {return translations; }}
+		protected ITranslations Translations { get; private set;}
 
 		public BuilderDialog (ITranslations translations, string resourceName, string dialogName) : 
 			this ((System.Reflection.Assembly) null, resourceName, dialogName)
 		{
-			this.translations = translations;
+			Translations = translations;
 		}
 
 		public BuilderDialog (System.Reflection.Assembly assembly, string resourceName, string dialogName) : 
diff --git a/src/Clients/Classical/Dialogs/CustomGameDialog.cs b/src/Clients/Classical/Dialogs/CustomGameDialog.cs
index 7f4756e..1566b50 100644
--- a/src/Clients/Classical/Dialogs/CustomGameDialog.cs
+++ b/src/Clients/Classical/Dialogs/CustomGameDialog.cs
@@ -66,7 +66,7 @@ namespace gbrainy.Clients.Classical.Dialogs
 
 			treeview.Model = games_store;
 			game = (Game) Activator.CreateInstance (games [0].TypeOf, true);
-			game.translations = Translations;
+			game.Translations = Translations;
 			game.Variant = 0;
 			game.Begin ();
 			drawing_area.Drawable = game;
@@ -92,7 +92,7 @@ namespace gbrainy.Clients.Classical.Dialogs
 					continue;
 
 				game = (Game) Activator.CreateInstance (games [i].TypeOf, true);
-				game.translations = Translations;
+				game.Translations = Translations;
 				game.Variant = games [i].Variant;
 				type = GameTypesDescription.GetLocalized (Translations, game.Type);
 				games_store.AppendValues (game.Name, type, true, game, i);
diff --git a/src/Clients/Classical/Dialogs/PdfExportDialog.cs b/src/Clients/Classical/Dialogs/PdfExportDialog.cs
index 2e4e2bc..7095f49 100644
--- a/src/Clients/Classical/Dialogs/PdfExportDialog.cs
+++ b/src/Clients/Classical/Dialogs/PdfExportDialog.cs
@@ -165,7 +165,7 @@ namespace gbrainy.Clients.Classical.Dialogs
 			for (int n = 0; n < num_games; n++)
 			{
 				games [n] = session.PlayList.GetPuzzle ();
-				games [n].translations = translations;
+				games [n].Translations = Translations;
 			}
 
 			if (PdfExporter.GeneratePdf (games, gamespage, filename) == true) {
diff --git a/src/Clients/Classical/gbrainy.cs b/src/Clients/Classical/gbrainy.cs
index d65d97f..03d5a14 100644
--- a/src/Clients/Classical/gbrainy.cs
+++ b/src/Clients/Classical/gbrainy.cs
@@ -72,14 +72,13 @@ namespace gbrainy.Clients.Classical
 		bool low_res;
 		bool full_screen;
 		GameSession.Types initial_session;
-		ITranslations translations;
 		static bool pluggins_loaded;
 
 		public readonly int MIN_TRANSLATION = 80;
 
 		public GtkClient (ITranslations translations)
 		{
-			this.translations = translations;
+			Translations = translations;
 			if (Preferences.Get <bool> (Preferences.EnglishKey) == false)
 			{
 				translations.Init ("gbrainy", Defines.GNOME_LOCALE_DIR);
@@ -97,12 +96,14 @@ namespace gbrainy.Clients.Classical
 			set { initial_session = value; }
 		}
 
+		ITranslations Translations {get; set;}
+
 		public void Initialize ()
 		{
-			session = new GameSession (translations);
+			session = new GameSession (Translations);
 			
 			GameManagerPreload (session.GameManager);
-			Console.WriteLine (session.GameManager.GetGamesSummary (translations));
+			Console.WriteLine (session.GameManager.GetGamesSummary (Translations));
 
 			session.PlayList.ColorBlind = Preferences.Get <bool> (Preferences.ColorBlindKey);
 			session.DrawRequest += SessionDrawRequest;
@@ -433,9 +434,9 @@ namespace gbrainy.Clients.Classical
 
 			correct = session.ScoreGame (answer_entry.Text);
 			if (correct)
-				answer = translations.GetString ("Congratulations.");
+				answer = Translations.GetString ("Congratulations.");
 			else
-				answer = translations.GetString ("Incorrect answer.");
+				answer = Translations.GetString ("Incorrect answer.");
 
 			session.EnableTimer = false;
 			answer_entry.Text = String.Empty;
@@ -483,19 +484,19 @@ namespace gbrainy.Clients.Classical
 		void OnNewGame (GameSession.Types type)
 		{
 			// If the translation is lower than MIN_TRANSLATION explain that running the English version is an option
-			if (ShowTranslationWarning ())
-				Translations ();
+			if (ShouldShowTranslationWarning ())
+				ShowTranslationWarning ();
 
 			session.Type = type;
 			session.New ();
 			GetNextGame ();
 			GameSensitiveUI ();
-			UpdateSolution (translations.GetString ("Once you have an answer type it in the \"Answer:\" entry box and press the \"OK\" button."),
+			UpdateSolution (Translations.GetString ("Once you have an answer type it in the \"Answer:\" entry box and press the \"OK\" button."),
 				GameDrawingArea.SolutionType.Tip);
 			UpdateStatusBar ();
 		}
 
-		public bool ShowTranslationWarning ()
+		public bool ShouldShowTranslationWarning ()
 		{
 			// Notify the user once per version only
 			if (String.Compare (Preferences.Get <string> (Preferences.EnglishVersionKey), Defines.VERSION, 0) == 0)
@@ -512,7 +513,7 @@ namespace gbrainy.Clients.Classical
 			return false;
 		}
 
-		void Translations ()
+		void ShowTranslationWarning ()
 		{		
 			HigMessageDialog dlg;
 	
@@ -520,8 +521,8 @@ namespace gbrainy.Clients.Classical
 				Gtk.DialogFlags.DestroyWithParent,
 				Gtk.MessageType.Warning,
 				Gtk.ButtonsType.Ok,
-				translations.GetString ("The level of translation of gbrainy for your language is low."),
-				translations.GetString ("You may be exposed to partially translated games making it more difficult to play. If you prefer to play in English, there is an option for doing so in gbrainy's Preferences."));
+				Translations.GetString ("The level of translation of gbrainy for your language is low."),
+				Translations.GetString ("You may be exposed to partially translated games making it more difficult to play. If you prefer to play in English, there is an option for doing so in gbrainy's Preferences."));
 		
 			try {
 	 			dlg.Run ();
@@ -549,7 +550,7 @@ namespace gbrainy.Clients.Classical
 		{
 			PdfExportDialog pdf;
 
-			pdf = new PdfExportDialog (session.GameManager, translations);
+			pdf = new PdfExportDialog (session.GameManager, Translations);
 			pdf.Run ();
 			pdf.Destroy ();
 		}
@@ -558,7 +559,7 @@ namespace gbrainy.Clients.Classical
 		{
 			PreferencesDialog dialog;
 
-			dialog = new PreferencesDialog (translations, session.PlayerHistory);
+			dialog = new PreferencesDialog (Translations, session.PlayerHistory);
 			if ((Gtk.ResponseType) dialog.Run () == ResponseType.Ok) {
 				session.Difficulty = (GameDifficulty) Preferences.Get <int> (Preferences.DifficultyKey);
 				session.PlayList.ColorBlind = Preferences.Get <bool> (Preferences.ColorBlindKey);
@@ -573,7 +574,7 @@ namespace gbrainy.Clients.Classical
 		{
 			CustomGameDialog dialog;
 
-			dialog = new CustomGameDialog (translations, session);
+			dialog = new CustomGameDialog (Translations, session);
 			dialog.Run ();
 			dialog.Destroy ();
 
@@ -617,12 +618,12 @@ namespace gbrainy.Clients.Classical
 			if (pause) {
 				drawing_area.Paused = false;
 				toolbar.PauseButton.StockId = "pause";
-				toolbar.PauseButton.Label = translations.GetString ("Pause");
+				toolbar.PauseButton.Label = Translations.GetString ("Pause");
 				ActiveInputControls (true);
 			} else {
 				drawing_area.Paused = true;
 				toolbar.PauseButton.StockId = "resume";
-				toolbar.PauseButton.Label = translations.GetString ("Resume");
+				toolbar.PauseButton.Label = Translations.GetString ("Resume");
 				ActiveInputControls (false);
 			}
 			UpdateStatusBar ();
@@ -699,7 +700,7 @@ namespace gbrainy.Clients.Classical
 		{
 			PlayerHistoryDialog dialog;
 
-			dialog = new PlayerHistoryDialog (translations, session.PlayerHistory);
+			dialog = new PlayerHistoryDialog (Translations, session.PlayerHistory);
 			dialog.Run ();
 			dialog.Destroy ();
 		}
diff --git a/src/Core/Main/ColorPalette.cs b/src/Core/Main/ColorPalette.cs
index 49d455f..cd82dd9 100644
--- a/src/Core/Main/ColorPalette.cs
+++ b/src/Core/Main/ColorPalette.cs
@@ -27,7 +27,7 @@ namespace gbrainy.Core.Main
 	public class ColorPalette
 	{
 		double alpha;
-		ITranslations translations;
+		ITranslations Translations { get; set; }
 
 		public enum Id
 		{
@@ -50,7 +50,7 @@ namespace gbrainy.Core.Main
 
 		public ColorPalette (ITranslations translations)
 		{
-			this.translations = translations;
+			Translations = translations;
 			alpha = 1;
 			LoadColorArrays ();
 		}
@@ -69,14 +69,14 @@ namespace gbrainy.Core.Main
 			};
 
 			ColorName = new string[] {
-				translations.GetString ("red"),
-				translations.GetString ("green"),
-				translations.GetString ("blue"),
-				translations.GetString ("yellow"),
-				translations.GetString ("magenta"),
-				translations.GetString ("orange"),
-				translations.GetString ("black"),
-				translations.GetString ("white")
+				Translations.GetString ("red"),
+				Translations.GetString ("green"),
+				Translations.GetString ("blue"),
+				Translations.GetString ("yellow"),
+				Translations.GetString ("magenta"),
+				Translations.GetString ("orange"),
+				Translations.GetString ("black"),
+				Translations.GetString ("white")
 			};
 		}
 
diff --git a/src/Core/Main/Game.cs b/src/Core/Main/Game.cs
index 129dabe..90640e4 100644
--- a/src/Core/Main/Game.cs
+++ b/src/Core/Main/Game.cs
@@ -57,7 +57,7 @@ namespace gbrainy.Core.Main
 
 		// At some point, we may move this to constructor injection
 		ITranslations _translations;
-		public ITranslations translations { 
+		public ITranslations Translations {
 			set {  
 				_translations = value;
 				answer.Translations = value;
@@ -135,14 +135,14 @@ namespace gbrainy.Core.Main
 			get {
 				string str;
 
-				str = String.Format (translations.GetString ("The correct answer is {0}."),
+				str = String.Format (Translations.GetString ("The correct answer is {0}."),
 				                     Answer.CorrectShow);
 
 				if (String.IsNullOrEmpty (Rationale))
 					return str;
 
 				// Translators: answer + rationale of the answer
-				return String.Format (translations.GetString ("{0} {1}"), str, Rationale);
+				return String.Format (Translations.GetString ("{0} {1}"), str, Rationale);
 			}
 		}
 
diff --git a/src/Core/Main/GameAnswer.cs b/src/Core/Main/GameAnswer.cs
index d6af574..3055628 100644
--- a/src/Core/Main/GameAnswer.cs
+++ b/src/Core/Main/GameAnswer.cs
@@ -113,21 +113,21 @@ namespace gbrainy.Core.Main
 				// For languages represented with the Latin alphabet use
 				// the same than English
 			case 0: // First possible answer for a series (e.g.: Figure A)
-				return translations.GetString ("A");
+				return Translations.GetString ("A");
 			case 1: // Second possible answer for a series
-				return translations.GetString ("B");
+				return Translations.GetString ("B");
 			case 2: // Third possible answer for a series
-				return translations.GetString ("C");
+				return Translations.GetString ("C");
 			case 3: // Fourth possible answer for a series
-				return translations.GetString ("D");
+				return Translations.GetString ("D");
 			case 4: // Fifth possible answer for a series
-				return translations.GetString ("E");
+				return Translations.GetString ("E");
 			case 5: // Sixth possible answer for a series
-				return translations.GetString ("F");
+				return Translations.GetString ("F");
 			case 6: // Seventh possible answer for a series
-				return translations.GetString ("G");
+				return Translations.GetString ("G");
 			case 7: // Eighth possible answer for a series
-				return translations.GetString ("H");
+				return Translations.GetString ("H");
 				// When adding new items update MAX_POSSIBLE_ANSWER accordingly
 			default:
 				throw new ArgumentOutOfRangeException ("Do not have an option for this answer");
@@ -143,15 +143,15 @@ namespace gbrainy.Core.Main
 				throw new InvalidOperationException ("You need more than 1 answer to select from");
 			case 2:
 				// Translators. This is the list of valid answers, like A or B.
-				return String.Format (translations.GetString ("{0} or {1}"),
+				return String.Format (Translations.GetString ("{0} or {1}"),
 					GetMultiOption (0), GetMultiOption (1));
 			case 3:
 				// Translators. This is the list of valid answers, like A, B or C.
-				return String.Format (translations.GetString ("{0}, {1} or {2}"),
+				return String.Format (Translations.GetString ("{0}, {1} or {2}"),
 					GetMultiOption (0), GetMultiOption (1), GetMultiOption (2));
 			case 4:
 				// Translators. This is the list of valid answers, like A, B, C or D.
-				return String.Format (translations.GetString ("{0}, {1}, {2} or {3}"),
+				return String.Format (Translations.GetString ("{0}, {1}, {2} or {3}"),
 					GetMultiOption (0), GetMultiOption (1), GetMultiOption (2), GetMultiOption (3));
 			default:
 				throw new InvalidOperationException ("Number of multiple options not supported");
@@ -160,7 +160,7 @@ namespace gbrainy.Core.Main
 
 		public string GetFigureName (int answer)
 		{
-			return String.Format (translations.GetString ("Figure {0}"), GetMultiOptionInternal (answer));
+			return String.Format (Translations.GetString ("Figure {0}"), GetMultiOptionInternal (answer));
 		}
 
 		public bool CheckAnswer (string answer)
diff --git a/src/Core/Main/GameSession.cs b/src/Core/Main/GameSession.cs
index 4b5d568..de70518 100644
--- a/src/Core/Main/GameSession.cs
+++ b/src/Core/Main/GameSession.cs
@@ -61,7 +61,6 @@ namespace gbrainy.Core.Main
 		private int id;
 		private GameSessionHistoryExtended history;
 		private GameSessionPlayList play_list;
-		private ITranslations translations;
 		
 		public event EventHandler DrawRequest;
 		public event EventHandler <UpdateUIStateEventArgs> UpdateUIElement;
@@ -69,7 +68,7 @@ namespace gbrainy.Core.Main
 	
 		public GameSession (ITranslations translations)
 		{
-			this.translations = translations;
+			Translations = translations;
 			id = 0;
 			game_manager = new GameManager ();
 			play_list = new GameSessionPlayList (game_manager);
@@ -172,6 +171,8 @@ namespace gbrainy.Core.Main
 			}
 		}
 
+		private ITranslations Translations { get; set; }
+
 		public string StatusText {
 			get {
 				if (Status == SessionStatus.NotPlaying || Status == SessionStatus.Finished)
@@ -179,18 +180,18 @@ namespace gbrainy.Core.Main
 
 				string played, time, game;
 
-				played = String.Format (translations.GetString ("Games played: {0} (Score: {1})"), history.GamesPlayed, history.TotalScore);
-				time = String.Format (translations.GetString ("Time: {0}"),
-					paused == false ? GameTime : translations.GetString ("Paused"));
+				played = String.Format (Translations.GetString ("Games played: {0} (Score: {1})"), history.GamesPlayed, history.TotalScore);
+				time = String.Format (Translations.GetString ("Time: {0}"),
+					paused == false ? GameTime : Translations.GetString ("Paused"));
 
 				if (CurrentGame != null) {
 					// Translators: {0} is the name of the game
-	 				game = String.Format (translations.GetString ("Game: {0}"), CurrentGame.Name);
+	 				game = String.Format (Translations.GetString ("Game: {0}"), CurrentGame.Name);
 					// Translators: text in the status bar: games played - time - game name
-					return String.Format (translations.GetString ("{0} - {1} - {2}"), played, time, game);
+					return String.Format (Translations.GetString ("{0} - {1} - {2}"), played, time, game);
 				} else {
 					// Translators: text in the status bar: games played - time
-					return String.Format (translations.GetString ("{0} - {1}"), played, time);
+					return String.Format (Translations.GetString ("{0} - {1}"), played, time);
 				}	
 			}
 		}
@@ -241,7 +242,7 @@ namespace gbrainy.Core.Main
 
 				history.GamesPlayed++;
 				CurrentGame = play_list.GetPuzzle ();
-				CurrentGame.translations = translations;
+				CurrentGame.Translations = Translations;
 				CurrentGame.SynchronizingObject = SynchronizingObject;
 				CurrentGame.DrawRequest += GameDrawRequest;
 				CurrentGame.UpdateUIElement += GameUpdateUIElement;
diff --git a/src/Core/Main/GameTips.cs b/src/Core/Main/GameTips.cs
index 501f9f0..261274c 100644
--- a/src/Core/Main/GameTips.cs
+++ b/src/Core/Main/GameTips.cs
@@ -26,13 +26,12 @@ namespace gbrainy.Core.Main
 {
 	public class GameTips
 	{
-		ITranslations translations;
 		ArrayListIndicesRandom random_indices;
 		int idx = 0;
 
 		public GameTips (ITranslations translations)
 		{
-			this.translations = translations;
+			Translations = translations;
 		}
 	
 		public int Count {
@@ -51,39 +50,41 @@ namespace gbrainy.Core.Main
 			}
 		}
 
+		private ITranslations Translations { get; set; }
+
 		public string GetTip (int tip)
 		{
 			switch (tip) {
 			case 0:
-				return translations.GetString ("Read the instructions carefully and identify the data and given clues.");
+				return Translations.GetString ("Read the instructions carefully and identify the data and given clues.");
 			case 1:
-				return translations.GetString ("To score the player gbrainy uses the time and tips needed to complete each game.");
+				return Translations.GetString ("To score the player gbrainy uses the time and tips needed to complete each game.");
 			case 2:
-				return translations.GetString ("In logic games, elements that may seem irrelevant can be very important.");
+				return Translations.GetString ("In logic games, elements that may seem irrelevant can be very important.");
 			case 3:
-				return translations.GetString ("Try to approach a problem from different angles.");
+				return Translations.GetString ("Try to approach a problem from different angles.");
 			case 4:
-				return translations.GetString ("Do not be afraid of making mistakes, they are part of the learning process.");
+				return Translations.GetString ("Do not be afraid of making mistakes, they are part of the learning process.");
 			case 5:
-				return translations.GetString ("Do all the problems, even the difficult ones. Improvement comes from challeging yourself.");
+				return Translations.GetString ("Do all the problems, even the difficult ones. Improvement comes from challeging yourself.");
 			case 6:
-				return translations.GetString ("Play on a daily basis, you will notice progress soon.");
+				return Translations.GetString ("Play on a daily basis, you will notice progress soon.");
 			case 7: // Translators: Custom Game Selection is a menu option
-				return translations.GetString ("Use the 'Custom Game Selection' to choose exactly which games you want to play.");
+				return Translations.GetString ("Use the 'Custom Game Selection' to choose exactly which games you want to play.");
 			case 8:
-				return translations.GetString ("Use the Settings to adjust the difficulty level of the game.");
+				return Translations.GetString ("Use the Settings to adjust the difficulty level of the game.");
 			case 9:
-				return translations.GetString ("Association of elements is a common technique for remembering things.");
+				return Translations.GetString ("Association of elements is a common technique for remembering things.");
 			case 10:
-				return translations.GetString ("Grouping elements into categories is a common technique for remembering things.");
+				return Translations.GetString ("Grouping elements into categories is a common technique for remembering things.");
 			case 11:
-				return translations.GetString ("Build acronyms using the first letter of each fact to be remembered.");
+				return Translations.GetString ("Build acronyms using the first letter of each fact to be remembered.");
 			case 12:
-				return translations.GetString ("The enjoyment obtained from a puzzle is proportional to the time spent on it.");
+				return Translations.GetString ("The enjoyment obtained from a puzzle is proportional to the time spent on it.");
 			case 13:
-				return translations.GetString ("Think of breaking down every problem into simpler components.");
+				return Translations.GetString ("Think of breaking down every problem into simpler components.");
 			case 14:
-				return translations.GetString ("When answering verbal analogies pay attention to the verb tense.");
+				return Translations.GetString ("When answering verbal analogies pay attention to the verb tense.");
 			default:
 				throw new InvalidOperationException ();
 			}
diff --git a/src/Core/Main/Memory.cs b/src/Core/Main/Memory.cs
index 79f0a6c..c6d5792 100644
--- a/src/Core/Main/Memory.cs
+++ b/src/Core/Main/Memory.cs
@@ -50,7 +50,7 @@ namespace gbrainy.Core.Main
 
 		public override string Question {
 			get {
-				return translations.GetString ("Memorize the objects below in the given time");
+				return Translations.GetString ("Memorize the objects below in the given time");
 			}
 		}
 
@@ -74,7 +74,7 @@ namespace gbrainy.Core.Main
 				return;
 			}
 
-			downview = new CountDownView (translations, OnCountDownFinish);
+			downview = new CountDownView (Translations, OnCountDownFinish);
 			downview.SynchronizingObject = SynchronizingObject;
 			downview.DrawRequest += OnCountDownRedraw;
 			downview.Start ();
@@ -217,7 +217,7 @@ namespace gbrainy.Core.Main
 			double width = 0.04, height = 0.6;
 			const double w = 0.003, h = 0.003;
 
-			gr.DrawTextCentered (x + (width / 2), y + height + 0.05, translations.GetString ("Time left"));
+			gr.DrawTextCentered (x + (width / 2), y + height + 0.05, Translations.GetString ("Time left"));
 			gr.Stroke ();
 
 			gr.Save ();
diff --git a/src/Core/Main/Verbal/Analogies.cs b/src/Core/Main/Verbal/Analogies.cs
index e59d697..aedab00 100644
--- a/src/Core/Main/Verbal/Analogies.cs
+++ b/src/Core/Main/Verbal/Analogies.cs
@@ -73,7 +73,7 @@ namespace gbrainy.Core.Main.Verbal
 				if (i + 1 < items.Length) {
 					// Translators: this the separator used when concatenating multiple possible answers for verbal analogies
 					// For example: "Possible correct answers are: sleep, rest."
-					str += translations.GetString (", ");
+					str += Translations.GetString (", ");
 				}
 			}
 			Answer.CorrectShow = str;
@@ -115,7 +115,7 @@ namespace gbrainy.Core.Main.Verbal
 					if (GetText.StringExists (analogy.answers [indices[i]]) == false)
 						localized = false;
 
-					answers [i] = translations.GetString (analogy.answers [indices[i]]);
+					answers [i] = Translations.GetString (analogy.answers [indices[i]]);
 					if (indices[i] == analogy.right)
 						new_right = i;
 				}
@@ -129,13 +129,13 @@ namespace gbrainy.Core.Main.Verbal
 				localized = false;
 
 			if (localized == true) {
-				analogy.question = translations.GetString (analogy.question);
+				analogy.question = Translations.GetString (analogy.question);
 
 				if (String.IsNullOrEmpty (analogy.tip) == false)
-					analogy.tip = translations.GetString (analogy.tip);
+					analogy.tip = Translations.GetString (analogy.tip);
 
 				if (String.IsNullOrEmpty (analogy.rationale) == false)
-					analogy.rationale = translations.GetString (analogy.rationale);
+					analogy.rationale = Translations.GetString (analogy.rationale);
 			} else {
 
 				// Get analogy again
diff --git a/src/Core/Main/Verbal/AnalogiesMultipleOptions.cs b/src/Core/Main/Verbal/AnalogiesMultipleOptions.cs
index 06ec68c..b216552 100644
--- a/src/Core/Main/Verbal/AnalogiesMultipleOptions.cs
+++ b/src/Core/Main/Verbal/AnalogiesMultipleOptions.cs
@@ -35,7 +35,7 @@ namespace gbrainy.Core.Main.Verbal
 		}
 
 		public override string Name {
-			get { return String.Format (translations.GetString ("Multiple options #{0}"), Variant);}
+			get { return String.Format (Translations.GetString ("Multiple options #{0}"), Variant);}
 		}
 
 		public override string Question {
@@ -48,7 +48,7 @@ namespace gbrainy.Core.Main.Verbal
 
 				// Translators: {0} is replaced by a question and {1} by the possible valid answers
 				// E.g.: What is the correct option? Answer A, B, C or D.
-				return String.Format (translations.GetString ("{0} Answer {1}."),
+				return String.Format (Translations.GetString ("{0} Answer {1}."),
 					Current.question, Answer.GetMultiOptionsPossibleAnswers (Current.answers.Length));
 			}
 		}
@@ -84,7 +84,7 @@ namespace gbrainy.Core.Main.Verbal
 					int n = (int) e.Data;
 
 					e.Context.MoveTo (0.05, 0.02);
-					e.Context.ShowPangoText (String.Format (translations.GetString ("{0}) {1}"), Answer.GetMultiOption (n), Current.answers[n].ToString ()));
+					e.Context.ShowPangoText (String.Format (Translations.GetString ("{0}) {1}"), Answer.GetMultiOption (n), Current.answers[n].ToString ()));
 				};
 			}
 			SetAnswerCorrectShow ();
@@ -99,7 +99,7 @@ namespace gbrainy.Core.Main.Verbal
 
 			gr.SetPangoLargeFontSize ();
 			gr.MoveTo (0.1, DrawAreaY + 0.05);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 	}
 }
diff --git a/src/Core/Main/Verbal/AnalogiesPairOfWordsCompare.cs b/src/Core/Main/Verbal/AnalogiesPairOfWordsCompare.cs
index 3db3ce8..26bb1dd 100644
--- a/src/Core/Main/Verbal/AnalogiesPairOfWordsCompare.cs
+++ b/src/Core/Main/Verbal/AnalogiesPairOfWordsCompare.cs
@@ -36,7 +36,7 @@ namespace gbrainy.Core.Main.Verbal
 		}
 
 		public override string Name {
-			get { return String.Format (translations.GetString ("Pair of words compare #{0}"), Variant);}
+			get { return String.Format (Translations.GetString ("Pair of words compare #{0}"), Variant);}
 		}
 
 		public override Dictionary <int, Analogy> List {
@@ -51,7 +51,7 @@ namespace gbrainy.Core.Main.Verbal
 				if (Current.answers == null)
 					return Current.question;
 
-				return String.Format (translations.GetString (
+				return String.Format (Translations.GetString (
 					"Given the relationship between the two words below, which word has the same relationship to '{0}'?"),
 					sample);
 			}
@@ -64,7 +64,7 @@ namespace gbrainy.Core.Main.Verbal
 
 				items = Answer.Correct.Split (AnalogiesFactory.Separator);
 
-				str = String.Format (translations.GetPluralString ("The correct answer is {0}.",
+				str = String.Format (Translations.GetPluralString ("The correct answer is {0}.",
 					"The possible correct answers are {0}.", items.Length),
 					Answer.CorrectShow);
 
@@ -72,7 +72,7 @@ namespace gbrainy.Core.Main.Verbal
 					return str;
 
 				// Translators: answer + rationale of the answer
-				return String.Format (translations.GetString ("{0} {1}"), str, Rationale);
+				return String.Format (Translations.GetString ("{0} {1}"), str, Rationale);
 			}
 		}
 
@@ -109,7 +109,7 @@ namespace gbrainy.Core.Main.Verbal
 
 			gr.SetPangoLargeFontSize ();
 			gr.DrawTextCentered (0.5, y + 0.25,
-				String.Format (translations.GetString ("Words: {0}"), samples));
+				String.Format (Translations.GetString ("Words: {0}"), samples));
 		}
 	}
 }
diff --git a/src/Core/Main/Verbal/AnalogiesPairOfWordsOptions.cs b/src/Core/Main/Verbal/AnalogiesPairOfWordsOptions.cs
index 8630409..3a22db2 100644
--- a/src/Core/Main/Verbal/AnalogiesPairOfWordsOptions.cs
+++ b/src/Core/Main/Verbal/AnalogiesPairOfWordsOptions.cs
@@ -36,7 +36,7 @@ namespace gbrainy.Core.Main.Verbal
 		}
 
 		public override string Name {
-			get { return String.Format (translations.GetString ("Pair of words #{0}"), Variant);}
+			get { return String.Format (Translations.GetString ("Pair of words #{0}"), Variant);}
 		}
 
 		public override Dictionary <int, Analogy> List {
@@ -51,13 +51,13 @@ namespace gbrainy.Core.Main.Verbal
 				if (Current.answers == null)
 					return Current.question;
 
-				string ques = String.Format (translations.GetString (
+				string ques = String.Format (Translations.GetString (
 					"Given the relationship between the two words below, which word has the same relationship to '{0}'?"),
 					sample);
 
 				// Translators: {0} is replaced by a question and {1} by the possible valid answers
 				// E.g.: What is the correct option? Answer A, B, C or D.
-				return String.Format (translations.GetString ("{0} Answer {1}."),
+				return String.Format (Translations.GetString ("{0} Answer {1}."),
 					ques, Answer.GetMultiOptionsPossibleAnswers (Current.answers.Length));
 			}
 		}
@@ -100,7 +100,7 @@ namespace gbrainy.Core.Main.Verbal
 					int n = (int) e.Data;
 
 					e.Context.MoveTo (0.05, 0.02);
-					e.Context.ShowPangoText (String.Format (translations.GetString ("{0}) {1}"), Answer.GetMultiOption (n), Current.answers[n].ToString ()));
+					e.Context.ShowPangoText (String.Format (Translations.GetString ("{0}) {1}"), Answer.GetMultiOption (n), Current.answers[n].ToString ()));
 				};
 			}
 			SetAnswerCorrectShow ();
@@ -118,11 +118,11 @@ namespace gbrainy.Core.Main.Verbal
 			gr.SetPangoLargeFontSize ();
 
 			gr.MoveTo (0.1, y + 0.12);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 			gr.Stroke ();
 
 			gr.DrawTextCentered (0.5, y,
-				String.Format (translations.GetString ("Words: {0}"), samples));
+				String.Format (Translations.GetString ("Words: {0}"), samples));
 
 		}
 	}
diff --git a/src/Core/Main/Verbal/AnalogiesQuestionAnswer.cs b/src/Core/Main/Verbal/AnalogiesQuestionAnswer.cs
index 5e4ed18..704df57 100644
--- a/src/Core/Main/Verbal/AnalogiesQuestionAnswer.cs
+++ b/src/Core/Main/Verbal/AnalogiesQuestionAnswer.cs
@@ -33,7 +33,7 @@ namespace gbrainy.Core.Main.Verbal
 		}
 
 		public override string Name {
-			get { return String.Format (translations.GetString ("Question and answer #{0}"), Variant);}
+			get { return String.Format (Translations.GetString ("Question and answer #{0}"), Variant);}
 		}
 
 		public override Dictionary <int, Analogy> List {
diff --git a/src/Core/Main/Xml/GameXml.cs b/src/Core/Main/Xml/GameXml.cs
index 785c23c..f0cead9 100644
--- a/src/Core/Main/Xml/GameXml.cs
+++ b/src/Core/Main/Xml/GameXml.cs
@@ -70,7 +70,7 @@ namespace gbrainy.Core.Main.Xml
 		}
 
 		public override string Name {
-			get { return translations.GetString (game.Name); }
+			get { return Translations.GetString (game.Name); }
 		}
 
 		public override string Question {
@@ -84,10 +84,10 @@ namespace gbrainy.Core.Main.Xml
 		public override string Tip {
 			get {
 				if (game.Variants.Count > 0 && game.Variants[current.Variant].Tip != null)
-					return translations.GetString (game.Variants[current.Variant].Tip);
+					return Translations.GetString (game.Variants[current.Variant].Tip);
 				else
 					if (String.IsNullOrEmpty (game.Tip) == false)
-						return translations.GetString (game.Tip);
+						return Translations.GetString (game.Tip);
 					else
 						return null;
 			}
@@ -213,7 +213,7 @@ namespace gbrainy.Core.Main.Xml
 				Answer.SetMultiOptionAnswer (option_answer, answer);
 
 				// Translators {0}: list of options (A, B, C)
-				string answers = String.Format (translations.GetString ("Answer {0}."),
+				string answers = String.Format (Translations.GetString ("Answer {0}."),
 					Answer.GetMultiOptionsPossibleAnswers (xml_drawing.Options.Count));
 				question = question.Replace (option_answers, answers);
 			}
@@ -279,7 +279,7 @@ namespace gbrainy.Core.Main.Xml
 			if (String.IsNullOrEmpty (str))
 				return str;
 
-			return translations.GetString (str);
+			return Translations.GetString (str);
 		}
 
 		// Protect from calling with null + resolve plurals
@@ -291,7 +291,7 @@ namespace gbrainy.Core.Main.Xml
 			if (localizable.IsPlural () == false)
 				return CatalogGetString (localizable.String);
 
-			return translations.GetPluralString (localizable.String, localizable.PluralString, localizable.ValueComputed);
+			return Translations.GetPluralString (localizable.String, localizable.PluralString, localizable.ValueComputed);
 		}
 
 		// Replace compiler service variables
diff --git a/src/Core/Views/CountDownView.cs b/src/Core/Views/CountDownView.cs
index 21af4de..fe1985d 100644
--- a/src/Core/Views/CountDownView.cs
+++ b/src/Core/Views/CountDownView.cs
@@ -33,13 +33,12 @@ namespace gbrainy.Core.Views
 		System.Timers.Timer timer;
 		EventHandler finish;
 		ISynchronizeInvoke synchronize;
-		ITranslations translations;
 
 		public event EventHandler DrawRequest; // Not used in this view
 
 		public CountDownView (ITranslations translations, EventHandler OnFinish)
 		{
-			this.translations = translations;
+			Translations = translations;
 			timer = new System.Timers.Timer ();
 			timer.Elapsed += TimerUpdater;
 			timer.Interval = (1 * 1000); // 1 second
@@ -51,6 +50,8 @@ namespace gbrainy.Core.Views
 			get { return synchronize; }
 		}
 
+		private ITranslations Translations { get; set; }
+
 		public void Start ()
 		{
 			timer.SynchronizingObject = SynchronizingObject;
@@ -76,7 +77,7 @@ namespace gbrainy.Core.Views
 			gr.Color = new Cairo.Color (0, 0, 0, 1);
 
 			gr.SetPangoLargeFontSize ();
-			gr.DrawTextCentered (0.5, 0.1, translations.GetString ("Get ready to memorize the next objects..."));
+			gr.DrawTextCentered (0.5, 0.1, Translations.GetString ("Get ready to memorize the next objects..."));
 			gr.Stroke ();
 
 			gr.SetPangoFontSize (0.35);
diff --git a/src/Core/Views/FinishView.cs b/src/Core/Views/FinishView.cs
index bc99481..087e472 100644
--- a/src/Core/Views/FinishView.cs
+++ b/src/Core/Views/FinishView.cs
@@ -29,7 +29,6 @@ namespace gbrainy.Core.Views
 	public class FinishView : IDrawable
 	{
 		GameSession session;
-		ITranslations translations;
 		const int tips_shown = 4;
 		const double smaller_font = 0.018;
 
@@ -38,9 +37,11 @@ namespace gbrainy.Core.Views
 		List <string> tips;
 		GameTips game_tips;
 
+		private ITranslations Translations { get; set; }
+
 		public FinishView (ITranslations translations, GameSession session)
 		{
-			this.translations = translations;
+			Translations = translations;
 			this.session = session;
 			tips = new List <string> ();
 			cached_sessionid = -1;
@@ -98,35 +99,35 @@ namespace gbrainy.Core.Views
 
 			x = x + space_x;
 			DrawBar (gr, x, y + area_h, bar_w, bar_h, session.History.TotalScore);
-			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, translations.GetString ("Total"));
+			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, Translations.GetString ("Total"));
 
 			x = x + space_x * 2;
 
 			if (session.History.LogicPlayed > 0)
 				DrawBar (gr, x, y + area_h, bar_w, bar_h, session.History.LogicScore);
 
-			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, translations.GetString ("Logic")); 
+			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, Translations.GetString ("Logic")); 
 
 			x = x + space_x * 2;
 
 			if (session.History.MathPlayed > 0)
 				DrawBar (gr, x, y + area_h, bar_w, bar_h, session.History.MathScore);
 
-			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, translations.GetString ("Calculation"));
+			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, Translations.GetString ("Calculation"));
 
 			x = x + space_x * 2;
 
 			if (session.History.MemoryPlayed > 0)
 				DrawBar (gr, x, y + area_h, bar_w, bar_h, session.History.MemoryScore);
 
-			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, translations.GetString ("Memory"));
+			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, Translations.GetString ("Memory"));
 
 			x = x + space_x * 2;
 
 			if (session.History.VerbalPlayed > 0)
 				DrawBar (gr, x, y + area_h, bar_w, bar_h, session.History.VerbalScore);
 
-			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, translations.GetString ("Verbal"));
+			gr.DrawTextCentered (x + bar_w / 2, y + area_h + 0.03, Translations.GetString ("Verbal"));
 		}
 
 		public void Draw (CairoContextEx gr, int area_width, int area_height, bool rtl)
@@ -141,29 +142,29 @@ namespace gbrainy.Core.Views
 			gr.Color = new Cairo.Color (0, 0, 0, 1);
 
 			gr.MoveTo (x, y);
-			gr.ShowPangoText (translations.GetString ("Score"), false, -1, 0);
+			gr.ShowPangoText (Translations.GetString ("Score"), false, -1, 0);
 			DrawBand (gr, 0.03, y - 0.01);
 
 			y += 0.08;
 			gr.MoveTo (x, y);
 	
-			s = session.History.GetResult (translations);
+			s = session.History.GetResult (Translations);
 
-			played = String.Format (translations.GetPluralString ("{0} played", "{0} played", session.History.GamesPlayed), 
+			played = String.Format (Translations.GetPluralString ("{0} played", "{0} played", session.History.GamesPlayed), 
 				session.History.GamesPlayed);
 
 			if (s == string.Empty) {
-				gr.ShowPangoText (String.Format (translations.GetPluralString ("Games won: {0} ({1})",
+				gr.ShowPangoText (String.Format (Translations.GetPluralString ("Games won: {0} ({1})",
 					"Games won: {0} ({1})", session.History.GamesWon), session.History.GamesWon, played));
 			}
 			else {
-				gr.ShowPangoText (String.Format (translations.GetPluralString ("{0}. Games won: {1} ({2})",
+				gr.ShowPangoText (String.Format (Translations.GetPluralString ("{0}. Games won: {1} ({2})",
 					"{0}. Games won: {1} ({2})", session.History.GamesWon),	s, session.History.GamesWon, played));
 			}
 
 			y += 0.06;
 			gr.MoveTo (x, y);
-			gr.ShowPangoText (String.Format (translations.GetString ("Time played {0} (average per game {1})"), session.GameTime, session.TimePerGame));
+			gr.ShowPangoText (String.Format (Translations.GetString ("Time played {0} (average per game {1})"), session.GameTime, session.TimePerGame));
 		
 			y += 0.09;
 			DrawColumnBarGraphic (gr, x, y);
@@ -172,7 +173,7 @@ namespace gbrainy.Core.Views
 			gr.MoveTo (x, y);
 			gr.SetPangoFontSize (smaller_font);
 			// Translators: translated string should not be longer that the English original (space restriction on the UI)
-			gr.ShowPangoText (translations.GetString ("For details on how gbrainy's scoring works refer to the help."));
+			gr.ShowPangoText (Translations.GetString ("For details on how gbrainy's scoring works refer to the help."));
 
 			y += 0.07;
 			gr.SetPangoNormalFontSize ();
@@ -184,7 +185,7 @@ namespace gbrainy.Core.Views
 			if (records.Count == 0) {
 				bool caching = cached_sessionid != session.ID;
 	
-				gr.ShowPangoText (translations.GetString ("Tips for your next games"), false, -1, 0);
+				gr.ShowPangoText (Translations.GetString ("Tips for your next games"), false, -1, 0);
 				DrawBand (gr, 0.03, y - 0.01);
 
 				y += 0.08;
@@ -212,7 +213,7 @@ namespace gbrainy.Core.Views
 					cached_sessionid = session.ID;
 			} 
 			else  {
-				gr.ShowPangoText (translations.GetString ("Congratulations! New personal record"), false, -1, 0);
+				gr.ShowPangoText (Translations.GetString ("Congratulations! New personal record"), false, -1, 0);
 				DrawBand (gr, 0.03, y - 0.01);
 
 				y += 0.08;
@@ -221,25 +222,25 @@ namespace gbrainy.Core.Views
 				{
 					switch (records[i].GameType) {
 					case GameTypes.LogicPuzzle:
-						s = String.Format (translations.
+						s = String.Format (Translations.
 							GetString ("By scoring {0} in logic puzzle games you have established a new personal record. Your previous record was {1}."),
 							records[i].NewScore,
 							records[i].PreviousScore);
 						break;
 					case GameTypes.Calculation:
-						s = String.Format (translations.
+						s = String.Format (Translations.
 							GetString ("By scoring {0} in calculation games you have established a new personal record. Your previous record was {1}."),
 							records[i].NewScore,
 							records[i].PreviousScore);
 						break;
 					case GameTypes.Memory:
-						s = String.Format (translations.
+						s = String.Format (Translations.
 							GetString ("By scoring {0} in memory games you have established a new personal record. Your previous record was {1}."),
 							records[i].NewScore,
 							records[i].PreviousScore);
 						break;
 					case GameTypes.VerbalAnalogy:
-						s = String.Format (translations.
+						s = String.Format (Translations.
 							GetString ("By scoring {0} in verbal analogies you have established a new personal record. Your previous record was {1}."),
 							records[i].NewScore,
 							records[i].PreviousScore);
diff --git a/src/Core/Views/PlayerHistoryView.cs b/src/Core/Views/PlayerHistoryView.cs
index bbfab9f..9de7c77 100644
--- a/src/Core/Views/PlayerHistoryView.cs
+++ b/src/Core/Views/PlayerHistoryView.cs
@@ -43,11 +43,10 @@ namespace gbrainy.Core.Views
 		readonly Cairo.Color axis_color = new Cairo.Color (0.8, 0.8, 0.8);
 		readonly Cairo.Color desc_color = new Color (0.3, 0.3, 0.3);
 		PlayerHistory history;
-		ITranslations translations;
 
 		public PlayerHistoryView (ITranslations translations, PlayerHistory history)
 		{
-			this.translations = translations;
+			Translations = translations;
 			this.history = history;
 			ShowLogic = ShowMemory = ShowCalculation = ShowVerbal = true;
 		}
@@ -57,6 +56,7 @@ namespace gbrainy.Core.Views
 		public bool ShowMemory { get; set; }
 		public bool ShowCalculation { get; set; }
 		public bool ShowVerbal { get; set; }
+		private ITranslations Translations { get; set; }
 
 		void DrawAxisDescription (CairoContextEx cr, double x, double y, string description)
 		{
@@ -82,7 +82,7 @@ namespace gbrainy.Core.Views
 			cr.Stroke ();
 			cr.Color = text_color;
 			cr.MoveTo (x + line_size + offset_x, y - 0.01);
-			cr.ShowPangoText (translations.GetString ("Total"));
+			cr.ShowPangoText (Translations.GetString ("Total"));
 			cr.Stroke ();
 
 			cr.Color = logic_color;
@@ -91,7 +91,7 @@ namespace gbrainy.Core.Views
 			cr.Stroke ();
 			cr.Color = text_color;
 			cr.MoveTo (x + line_size + offset_x, y - 0.01 + second_row);
-			cr.ShowPangoText (GameTypesDescription.GetLocalized (translations, GameTypes.LogicPuzzle));
+			cr.ShowPangoText (GameTypesDescription.GetLocalized (Translations, GameTypes.LogicPuzzle));
 			cr.Stroke ();
 
 			x += space_hor;
@@ -101,7 +101,7 @@ namespace gbrainy.Core.Views
 			cr.Stroke ();
 			cr.Color = text_color;
 			cr.MoveTo (x + line_size + offset_x, y - 0.01);
-			cr.ShowPangoText (GameTypesDescription.GetLocalized (translations, GameTypes.Memory));
+			cr.ShowPangoText (GameTypesDescription.GetLocalized (Translations, GameTypes.Memory));
 			cr.Stroke ();
 
 			cr.Color = math_color;
@@ -110,7 +110,7 @@ namespace gbrainy.Core.Views
 			cr.Stroke ();
 			cr.Color = text_color;
 			cr.MoveTo (x + line_size + offset_x, y - 0.01 + second_row);
-			cr.ShowPangoText (GameTypesDescription.GetLocalized (translations, GameTypes.Calculation));
+			cr.ShowPangoText (GameTypesDescription.GetLocalized (Translations, GameTypes.Calculation));
 			cr.Stroke ();
 
 			x += space_hor;
@@ -120,7 +120,7 @@ namespace gbrainy.Core.Views
 			cr.Stroke ();
 			cr.Color = text_color;
 			cr.MoveTo (x + line_size + offset_x, y - 0.01);
-			cr.ShowPangoText (GameTypesDescription.GetLocalized (translations, GameTypes.VerbalAnalogy));
+			cr.ShowPangoText (GameTypesDescription.GetLocalized (Translations, GameTypes.VerbalAnalogy));
 			cr.Stroke ();
 
 			cr.LineWidth = old_width;
@@ -273,8 +273,8 @@ namespace gbrainy.Core.Views
 			DrawLegend (cr, x + grid_offsetx, y + area_h + 0.06);
 			DrawGrid (cr, grid_x, grid_y);
 
-			DrawAxisDescription (cr, x + area_w + 0.01, 0.78, translations.GetString ("Time"));
-			DrawAxisDescription (cr, 0, 0.03, translations.GetString ("Score"));
+			DrawAxisDescription (cr, x + area_w + 0.01, 0.78, Translations.GetString ("Time"));
+			DrawAxisDescription (cr, 0, 0.03, Translations.GetString ("Score"));
 		}
 	}
 }
diff --git a/src/Core/Views/WelcomeView.cs b/src/Core/Views/WelcomeView.cs
index f8a35e8..bc24499 100644
--- a/src/Core/Views/WelcomeView.cs
+++ b/src/Core/Views/WelcomeView.cs
@@ -31,17 +31,18 @@ namespace gbrainy.Core.Views
 	public class WelcomeView : IDrawable
 	{
 		List <Toolkit.Container> containers;
-		ITranslations translations;
 		const double space = 0.17;
 		const double image_size = 0.14;
 
+		private ITranslations Translations { get; set; }
+
 		public WelcomeView (ITranslations translations)
 		{
 			Container container;
 			DrawableArea drawable_area;
 			double y = 0.22;
 
-			this.translations = translations;
+			Translations = translations;
 			containers = new List <Toolkit.Container> ();
 	
 			/* Logic */
@@ -60,7 +61,7 @@ namespace gbrainy.Core.Views
 			drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
 			{
 				e.Context.DrawStringWithWrapping (0, 0,
-					translations.GetString ("Logic puzzles. Challenge your reasoning and thinking skills."), 
+					Translations.GetString ("Logic puzzles. Challenge your reasoning and thinking skills."), 
 					e.Width);
 			};
 
@@ -81,7 +82,7 @@ namespace gbrainy.Core.Views
 			drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
 			{
 				e.Context.DrawStringWithWrapping (0, 0,
-					translations.GetString ("Mental calculation. Arithmetical operations that test your mental calculation abilities."),
+					Translations.GetString ("Mental calculation. Arithmetical operations that test your mental calculation abilities."),
 					e.Width);
 			};
 
@@ -102,7 +103,7 @@ namespace gbrainy.Core.Views
 			drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
 			{
 				e.Context.DrawStringWithWrapping (0, 0,
-					translations.GetString ("Memory trainers. To prove your short term memory."),
+					Translations.GetString ("Memory trainers. To prove your short term memory."),
 					e.Width);
 			};
 
@@ -123,7 +124,7 @@ namespace gbrainy.Core.Views
 			drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
 			{
 				e.Context.DrawStringWithWrapping (0, 0,
-					translations.GetString ("Verbal analogies. Challenge your verbal aptitude."),
+					Translations.GetString ("Verbal analogies. Challenge your verbal aptitude."),
 					e.Width);
 			};
 		}
@@ -139,15 +140,15 @@ namespace gbrainy.Core.Views
 
 			gr.MoveTo (0.05, y);
 			// Translators: {0} is the version number of the program
-			gr.ShowPangoText (String.Format (translations.GetString ("Welcome to gbrainy {0}"), Defines.VERSION), true, -1, 0);
+			gr.ShowPangoText (String.Format (Translations.GetString ("Welcome to gbrainy {0}"), Defines.VERSION), true, -1, 0);
 			gr.Stroke ();
 
 			gr.DrawStringWithWrapping (0.05, y + 0.07, 
-				translations.GetString ("gbrainy is a brain teaser game and trainer to have fun and to keep your brain trained. It includes:"),
+				Translations.GetString ("gbrainy is a brain teaser game and trainer to have fun and to keep your brain trained. It includes:"),
 				1 - 0.05);
 
 			y = 0.22 + space * 3;
-			gr.DrawStringWithWrapping (0.05, y + 0.17,  translations.GetString ("Use the Settings to adjust the difficulty level of the game."),
+			gr.DrawStringWithWrapping (0.05, y + 0.17,  Translations.GetString ("Use the Settings to adjust the difficulty level of the game."),
 				1 - 0.05);
 			gr.Stroke ();
 
diff --git a/src/Games/Calculation/CalculationArithmetical.cs b/src/Games/Calculation/CalculationArithmetical.cs
index 6a67192..c1f9865 100644
--- a/src/Games/Calculation/CalculationArithmetical.cs
+++ b/src/Games/Calculation/CalculationArithmetical.cs
@@ -38,7 +38,7 @@ namespace gbrainy.Games.Calculation
 		private int max_operations;
 
 		public override string Name {
-			get {return translations.GetString ("Arithmetical operations");}
+			get {return Translations.GetString ("Arithmetical operations");}
 		}
 
 		public override GameTypes Type {
@@ -46,7 +46,7 @@ namespace gbrainy.Games.Calculation
 		}
 
 		public override string Question {
-			get {return translations.GetString ("What is the result of the following operation?");} 
+			get {return Translations.GetString ("What is the result of the following operation?");} 
 		}
 
 		protected override void Initialize ()
diff --git a/src/Games/Calculation/CalculationAverage.cs b/src/Games/Calculation/CalculationAverage.cs
index e9da3ba..dc6451f 100644
--- a/src/Games/Calculation/CalculationAverage.cs
+++ b/src/Games/Calculation/CalculationAverage.cs
@@ -35,7 +35,7 @@ namespace gbrainy.Games.Calculation
 		double correct;
 
 		public override string Name {
-			get {return translations.GetString ("Average");}
+			get {return Translations.GetString ("Average");}
 		}
 
 		public override GameTypes Type {
@@ -52,17 +52,17 @@ namespace gbrainy.Games.Calculation
 				nums += numbers [numbers.Length - 1];
 
 				return String.Format (
-					translations.GetString ("Given the numbers: {0}. Which of the following numbers is closest to the average? Answer {1}, {2}, {3} or {4}."), nums,
+					Translations.GetString ("Given the numbers: {0}. Which of the following numbers is closest to the average? Answer {1}, {2}, {3} or {4}."), nums,
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("The average of a list of numbers is their sum divided by the number of numbers in the list.");}
+			get { return Translations.GetString ("The average of a list of numbers is their sum divided by the number of numbers in the list.");}
 		}
 
 		public override string Rationale {
 			get {
-				return String.Format (translations.GetString ("The result of the operation is {0}."),
+				return String.Format (Translations.GetString ("The result of the operation is {0}."),
 					correct);
 			}
 		}
@@ -182,7 +182,7 @@ namespace gbrainy.Games.Calculation
 			gr.SetPangoLargeFontSize ();
 
 			gr.MoveTo (0.1, 0.15);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 	}
 }
diff --git a/src/Games/Calculation/CalculationCloserFraction.cs b/src/Games/Calculation/CalculationCloserFraction.cs
index 4b8587d..07d355e 100644
--- a/src/Games/Calculation/CalculationCloserFraction.cs
+++ b/src/Games/Calculation/CalculationCloserFraction.cs
@@ -34,7 +34,7 @@ namespace gbrainy.Games.Calculation
 		private int which;
 
 		public override string Name {
-			get {return translations.GetString ("Closer fraction");}
+			get {return Translations.GetString ("Closer fraction");}
 		}
 
 		public override GameTypes Type {
@@ -43,7 +43,7 @@ namespace gbrainy.Games.Calculation
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("Which of the following numbers is closer to {0}? Answer {1}, {2}, {3} or {4}."),
+				Translations.GetString ("Which of the following numbers is closer to {0}? Answer {1}, {2}, {3} or {4}."),
 				String.Format ("{0:##0.###}", question_num),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
@@ -52,7 +52,7 @@ namespace gbrainy.Games.Calculation
 			get {
 				int ans_idx = random_indices[which];
 
-				return String.Format (translations.GetString ("The result of the operation {0} / {1} is '{2}'."),
+				return String.Format (Translations.GetString ("The result of the operation {0} / {1} is '{2}'."),
 					options[ans_idx * 2], options[(ans_idx * 2) + 1], String.Format ("{0:##0.###}", question_num));
 			}
 		}
@@ -161,7 +161,7 @@ namespace gbrainy.Games.Calculation
 
 					e.Context.SetPangoLargeFontSize ();
 					e.Context.MoveTo (0.02, 0.02);
-					e.Context.ShowPangoText (String.Format (translations.GetString ("{0}) {1}"), Answer.GetMultiOption (n) ,
+					e.Context.ShowPangoText (String.Format (Translations.GetString ("{0}) {1}"), Answer.GetMultiOption (n) ,
 						options [indx * 2] +  " / " + options [(indx  * 2) +1]));
 				};
 			}
@@ -174,7 +174,7 @@ namespace gbrainy.Games.Calculation
 			gr.SetPangoLargeFontSize ();
 
 			gr.MoveTo (0.1, 0.15);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 	}
 }
diff --git a/src/Games/Calculation/CalculationFractions.cs b/src/Games/Calculation/CalculationFractions.cs
index c115677..10f8c95 100644
--- a/src/Games/Calculation/CalculationFractions.cs
+++ b/src/Games/Calculation/CalculationFractions.cs
@@ -58,7 +58,7 @@ namespace gbrainy.Games.Calculation
 		const string format_string = "{0:##0.###}";
 
 		public override string Name {
-			get {return translations.GetString ("Fractions");}
+			get {return Translations.GetString ("Fractions");}
 		}
 
 		public override GameTypes Type {
@@ -66,7 +66,7 @@ namespace gbrainy.Games.Calculation
 		}
 
 		public override string Question {
-			get {return translations.GetString ("What is the result of the given operation? Answer using either a fraction or a number.");}
+			get {return Translations.GetString ("What is the result of the given operation? Answer using either a fraction or a number.");}
 		}
 
 		private int Factor {
diff --git a/src/Games/Calculation/CalculationGreatestDivisor.cs b/src/Games/Calculation/CalculationGreatestDivisor.cs
index 499eabb..753c304 100644
--- a/src/Games/Calculation/CalculationGreatestDivisor.cs
+++ b/src/Games/Calculation/CalculationGreatestDivisor.cs
@@ -33,7 +33,7 @@ namespace gbrainy.Games.Calculation
 		private int answer_idx;
 
 		public override string Name {
-			get {return translations.GetString ("Greatest divisor");}
+			get {return Translations.GetString ("Greatest divisor");}
 		}
 
 		public override GameTypes Type {
@@ -41,7 +41,7 @@ namespace gbrainy.Games.Calculation
 		}
 
 		public override string Question {
-			get { return String.Format (translations.GetString (
+			get { return String.Format (Translations.GetString (
 				"Which of the possible divisors is the greatest that divides all numbers? Answer {0}, {1}, {2} or {3}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));
 			}
@@ -149,7 +149,7 @@ namespace gbrainy.Games.Calculation
 					int d = (int) e.Data;
 					e.Context.SetPangoLargeFontSize ();
 					e.Context.MoveTo (0.07, 0.02);
-					e.Context.ShowPangoText (String.Format (translations.GetString ("{0}) {1}"), Answer.GetMultiOption (d),
+					e.Context.ShowPangoText (String.Format (Translations.GetString ("{0}) {1}"), Answer.GetMultiOption (d),
 						answers[d].ToString ()));
 				};
 			}
@@ -240,7 +240,7 @@ namespace gbrainy.Games.Calculation
 
 			gr.MoveTo (0.05, y);
 			gr.SetPangoLargeFontSize ();
-			gr.ShowPangoText (translations.GetString ("Numbers"));
+			gr.ShowPangoText (Translations.GetString ("Numbers"));
 			y += 0.08;
 
 			for (int n = 0; n < numbers.Length; n++)
@@ -254,7 +254,7 @@ namespace gbrainy.Games.Calculation
 			y += 0.16;
 
 			gr.MoveTo (0.05, y);
-			gr.ShowPangoText (translations.GetString ("Possible divisors"));
+			gr.ShowPangoText (Translations.GetString ("Possible divisors"));
 		}
 	}
 }
diff --git a/src/Games/Calculation/CalculationOperator.cs b/src/Games/Calculation/CalculationOperator.cs
index 4e0f2bf..884a17a 100644
--- a/src/Games/Calculation/CalculationOperator.cs
+++ b/src/Games/Calculation/CalculationOperator.cs
@@ -31,11 +31,11 @@ namespace gbrainy.Games.Calculation
 		private char oper1, oper2;
 
 		public override string Name {
-			get {return translations.GetString ("Operators");}
+			get {return Translations.GetString ("Operators");}
 		}
 
 		public override string Tip {
-			get {return String.Format( translations.GetString ("The first operator is {0}."), oper1);}
+			get {return String.Format( Translations.GetString ("The first operator is {0}."), oper1);}
 		}
 
 		public override GameTypes Type {
@@ -43,7 +43,7 @@ namespace gbrainy.Games.Calculation
 		}
 
 		public override string Question {
-			get {return String.Format (translations.GetString ("Which operators make {0}, {1}, and {2} equal {3}? Answer using '+-/*'."), number_a, number_b, number_c, total);}
+			get {return String.Format (Translations.GetString ("Which operators make {0}, {1}, and {2} equal {3}? Answer using '+-/*'."), number_a, number_b, number_c, total);}
 		}
 
 		static private double ProcessOperation (double total, double number, char op)
@@ -106,7 +106,7 @@ namespace gbrainy.Games.Calculation
 			Answer.Correct = String.Format ("{0} | {1}", oper1, oper2);
 			Answer.CheckExpression = "[+*-/]";
 			Answer.CheckAttributes |= GameAnswerCheckAttributes.MatchAll;
-			Answer.CorrectShow = String.Format (translations.GetString ("{0} and {1}"), oper1, oper2);
+			Answer.CorrectShow = String.Format (Translations.GetString ("{0} and {1}"), oper1, oper2);
 		}
 
 		public override void Draw (CairoContextEx gr, int area_width, int area_height, bool rtl)
diff --git a/src/Games/Calculation/CalculationPrimes.cs b/src/Games/Calculation/CalculationPrimes.cs
index b77aeb3..eb1051e 100644
--- a/src/Games/Calculation/CalculationPrimes.cs
+++ b/src/Games/Calculation/CalculationPrimes.cs
@@ -64,7 +64,7 @@ namespace gbrainy.Games.Calculation
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Primes");}
+			get {return Translations.GetString ("Primes");}
 		}
 
 		public override GameTypes Type {
@@ -73,17 +73,17 @@ namespace gbrainy.Games.Calculation
 
 		public override string Question {
 			get { return String.Format (
-				translations.GetString ("Which of the following numbers is a prime? A prime number is a positive integer that has exactly two different positive divisors, 1 and itself. Answer {0}, {1}, {2} or {3}."),
+				Translations.GetString ("Which of the following numbers is a prime? A prime number is a positive integer that has exactly two different positive divisors, 1 and itself. Answer {0}, {1}, {2} or {3}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("If the sum of all digits in a given number is divisible by 3, then so is the number. For example 15 = 1 + 5 = 6, which is divisible by 3.");}
+			get { return Translations.GetString ("If the sum of all digits in a given number is divisible by 3, then so is the number. For example 15 = 1 + 5 = 6, which is divisible by 3.");}
 		}
 
 		public override string Rationale {
 			get { 
-				return String.Format (translations.GetString ("The number {0} is a primer number."), answer);
+				return String.Format (Translations.GetString ("The number {0} is a primer number."), answer);
 			}
 		}
 
@@ -148,7 +148,7 @@ namespace gbrainy.Games.Calculation
 			gr.SetPangoLargeFontSize ();
 
 			gr.MoveTo (0.1, 0.15);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 
 		short GenerateNonPrime ()
diff --git a/src/Games/Calculation/CalculationProportions.cs b/src/Games/Calculation/CalculationProportions.cs
index 0956129..9cf34d7 100644
--- a/src/Games/Calculation/CalculationProportions.cs
+++ b/src/Games/Calculation/CalculationProportions.cs
@@ -33,7 +33,7 @@ namespace gbrainy.Games.Calculation
 		double num, den, percentage, correct;
 
 		public override string Name {
-			get {return translations.GetString ("Proportions");}
+			get {return Translations.GetString ("Proportions");}
 		}
 
 		public override GameTypes Type {
@@ -43,7 +43,7 @@ namespace gbrainy.Games.Calculation
 		public override string Question {
 			get {
 				return String.Format (
-					translations.GetString ("What is {0}% of {1}/{2}? Answer {3}, {4}, {5} or {6}."), 
+					Translations.GetString ("What is {0}% of {1}/{2}? Answer {3}, {4}, {5} or {6}."), 
 					percentage, num, den, Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
 
@@ -127,7 +127,7 @@ namespace gbrainy.Games.Calculation
 			gr.SetPangoLargeFontSize ();
 
 			gr.MoveTo (0.1, 0.15);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 	}
 }
diff --git a/src/Games/Calculation/CalculationRatio.cs b/src/Games/Calculation/CalculationRatio.cs
index 2f2a3da..0fedfd7 100644
--- a/src/Games/Calculation/CalculationRatio.cs
+++ b/src/Games/Calculation/CalculationRatio.cs
@@ -28,7 +28,7 @@ namespace gbrainy.Games.Calculation
 		int number_a, number_b, ratio_a, ratio_b;
 
 		public override string Name {
-			get {return translations.GetString ("Ratio");}
+			get {return Translations.GetString ("Ratio");}
 		}
 
 		public override GameTypes Type {
@@ -38,20 +38,20 @@ namespace gbrainy.Games.Calculation
 		public override string Question {
 			get {
 				return String.Format (
-					translations.GetString ("Which two numbers have a sum of {0} and have a ratio of {1} to {2}? Answer using two numbers (e.g.: 1 and 2)."), 
+					Translations.GetString ("Which two numbers have a sum of {0} and have a ratio of {1} to {2}? Answer using two numbers (e.g.: 1 and 2)."), 
 					number_a + number_b, ratio_a, ratio_b);
 			}
 		}
 
 		public override string Rationale {
 			get {
-				return String.Format (translations.GetString ("The second number can be calculated by multiplying the first number by {0} and dividing it by {1}."),
+				return String.Format (Translations.GetString ("The second number can be calculated by multiplying the first number by {0} and dividing it by {1}."),
 					ratio_b, ratio_a);
 			}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("A ratio specifies a proportion between two numbers. A ratio of a:b means that for every 'a' parts you have 'b' parts.");}
+			get { return Translations.GetString ("A ratio specifies a proportion between two numbers. A ratio of a:b means that for every 'a' parts you have 'b' parts.");}
 		}
 
 		protected override void Initialize ()
@@ -83,7 +83,7 @@ namespace gbrainy.Games.Calculation
 			Answer.Correct = String.Format ("{0} | {1}", number_a, number_b);
 			Answer.CheckExpression = "[0-9]+";
 			Answer.CheckAttributes |= GameAnswerCheckAttributes.MatchAll;
-			Answer.CorrectShow = String.Format (translations.GetString ("{0} and {1}"), number_a, number_b);
+			Answer.CorrectShow = String.Format (Translations.GetString ("{0} and {1}"), number_a, number_b);
 		}
 
 		public override void Draw (CairoContextEx gr, int area_width, int area_height, bool rtl)
@@ -95,10 +95,10 @@ namespace gbrainy.Games.Calculation
 			gr.SetPangoLargeFontSize ();
 
 			gr.MoveTo (x, DrawAreaY + 0.22);
-			gr.ShowPangoText (String.Format (translations.GetString ("x + y = {0}"), number_a + number_b));
+			gr.ShowPangoText (String.Format (Translations.GetString ("x + y = {0}"), number_a + number_b));
 		
 			gr.MoveTo (x, DrawAreaY + 0.44);
-			gr.ShowPangoText (String.Format (translations.GetString ("have a ratio of {0}:{1}"), ratio_a, ratio_b));
+			gr.ShowPangoText (String.Format (Translations.GetString ("have a ratio of {0}:{1}"), ratio_a, ratio_b));
 		}
 	}
 }
diff --git a/src/Games/Calculation/CalculationTwoNumbers.cs b/src/Games/Calculation/CalculationTwoNumbers.cs
index d33b686..988a90b 100644
--- a/src/Games/Calculation/CalculationTwoNumbers.cs
+++ b/src/Games/Calculation/CalculationTwoNumbers.cs
@@ -37,7 +37,7 @@ namespace gbrainy.Games.Calculation
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Two numbers");}
+			get {return Translations.GetString ("Two numbers");}
 		}
 
 		public override GameTypes Type {
@@ -48,9 +48,9 @@ namespace gbrainy.Games.Calculation
 			get {
 				switch (type) {
 				case SubGameTypes.Addition:
-					return String.Format (translations.GetString ("Which two numbers when added are {0} and when multiplied are {1}? Answer using two numbers (e.g.: 1 and 2)."), op1, op2);
+					return String.Format (Translations.GetString ("Which two numbers when added are {0} and when multiplied are {1}? Answer using two numbers (e.g.: 1 and 2)."), op1, op2);
 				case SubGameTypes.Subtraction:
-					return String.Format (translations.GetString ("Which two numbers when subtracted are {0} and when multiplied are {1}? Answer using two numbers (e.g.: 1 and 2)."), op1, op2);
+					return String.Format (Translations.GetString ("Which two numbers when subtracted are {0} and when multiplied are {1}? Answer using two numbers (e.g.: 1 and 2)."), op1, op2);
 				default:
 					throw new InvalidOperationException ();
 				}
@@ -97,7 +97,7 @@ namespace gbrainy.Games.Calculation
 			op2 = number_a * number_b;
 			Answer.Correct = String.Format ("{0} | {1}", number_a, number_b);
 			Answer.CheckExpression = "[-0-9]+";
-			Answer.CorrectShow = String.Format (translations.GetString ("{0} and {1}"), number_a, number_b);
+			Answer.CorrectShow = String.Format (Translations.GetString ("{0} and {1}"), number_a, number_b);
 		}
 
 		public override void Draw (CairoContextEx gr, int area_width, int area_height, bool rtl)
@@ -111,17 +111,17 @@ namespace gbrainy.Games.Calculation
 
 			switch (type) {
 			case SubGameTypes.Addition:
-				gr.ShowPangoText (String.Format (translations.GetString ("x + y = {0}"), op1));
+				gr.ShowPangoText (String.Format (Translations.GetString ("x + y = {0}"), op1));
 				break;
 			case SubGameTypes.Subtraction:
-				gr.ShowPangoText (String.Format (translations.GetString ("x - y = {0}"), op1));
+				gr.ShowPangoText (String.Format (Translations.GetString ("x - y = {0}"), op1));
 				break;
 			default:
 				throw new InvalidOperationException ();
 			}
 
 			gr.MoveTo (x, DrawAreaY + 0.44);
-			gr.ShowPangoText (String.Format (translations.GetString ("x * y = {0}"), op2));
+			gr.ShowPangoText (String.Format (Translations.GetString ("x * y = {0}"), op2));
 		}
 
 		public override bool CheckAnswer (string answer)
diff --git a/src/Games/Logic/Puzzle3DCube.cs b/src/Games/Logic/Puzzle3DCube.cs
index 20a0d1a..3031db5 100644
--- a/src/Games/Logic/Puzzle3DCube.cs
+++ b/src/Games/Logic/Puzzle3DCube.cs
@@ -28,15 +28,15 @@ namespace gbrainy.Games.Logic
 		int rows, columns, depth;
 
 		public override string Name {
-			get {return translations.GetString ("3D Cube");}
+			get {return Translations.GetString ("3D Cube");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("How many small cubes does it take to build the large cube below? Answer using a number.");}
+			get {return Translations.GetString ("How many small cubes does it take to build the large cube below? Answer using a number.");}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("A cube is a regular solid object having six congruent square faces.");}
+			get { return Translations.GetString ("A cube is a regular solid object having six congruent square faces.");}
 		}
 
 		protected override void Initialize ()
diff --git a/src/Games/Logic/PuzzleBalance.cs b/src/Games/Logic/PuzzleBalance.cs
index 5e36283..8197cc8 100644
--- a/src/Games/Logic/PuzzleBalance.cs
+++ b/src/Games/Logic/PuzzleBalance.cs
@@ -46,21 +46,21 @@ namespace gbrainy.Games.Logic
 		private const double figure_width = 0.1, figure_height = 0.1, space_width = 0.05, space_height = 0;
 
 		public override string Name {
-			get {return translations.GetString ("Balance");}
+			get {return Translations.GetString ("Balance");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("Using triangles only, how many triangles are needed in the right part of the last figure to keep it balanced?");}
+			get {return Translations.GetString ("Using triangles only, how many triangles are needed in the right part of the last figure to keep it balanced?");}
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("Every circle is equivalent to two triangles and every square to three triangles.");
+				return Translations.GetString ("Every circle is equivalent to two triangles and every square to three triangles.");
 			}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("Every circle is equivalent two triangles.");}
+			get { return Translations.GetString ("Every circle is equivalent two triangles.");}
 		}
 
 		protected override void Initialize ()
diff --git a/src/Games/Logic/PuzzleBuildTriangle.cs b/src/Games/Logic/PuzzleBuildTriangle.cs
index 0041ae0..4694ee7 100644
--- a/src/Games/Logic/PuzzleBuildTriangle.cs
+++ b/src/Games/Logic/PuzzleBuildTriangle.cs
@@ -47,17 +47,17 @@ namespace gbrainy.Games.Logic
 		private double radian = Math.PI / 180;
 
 		public override string Name {
-			get {return translations.GetString ("Build a triangle");}
+			get {return Translations.GetString ("Build a triangle");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("Which three pieces can you use together to build a triangle? Answer using the three figure names, e.g.: {0}{1}{2}."),
+				Translations.GetString ("Which three pieces can you use together to build a triangle? Answer using the three figure names, e.g.: {0}{1}{2}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2));}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("The resulting triangle is isosceles.");}
+			get { return Translations.GetString ("The resulting triangle is isosceles.");}
 		}
 
 		protected override void Initialize ()
@@ -170,7 +170,7 @@ namespace gbrainy.Games.Logic
 				return;
 
 			gr.MoveTo (DrawAreaX, y + 0.28);
-			gr.ShowPangoText (translations.GetString ("The triangle is:"));
+			gr.ShowPangoText (Translations.GetString ("The triangle is:"));
 			gr.Stroke ();
 		
 			x = DrawAreaX + 0.35;
diff --git a/src/Games/Logic/PuzzleCirclesSquare.cs b/src/Games/Logic/PuzzleCirclesSquare.cs
index d8e1fc5..5b3fab0 100644
--- a/src/Games/Logic/PuzzleCirclesSquare.cs
+++ b/src/Games/Logic/PuzzleCirclesSquare.cs
@@ -26,21 +26,21 @@ namespace gbrainy.Games.Logic
 	public class PuzzleCirclesSquare : Game
 	{
 		public override string Name {
-			get {return translations.GetString ("Circles in a square");}
+			get {return Translations.GetString ("Circles in a square");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("What is the maximum number of circles (as shown) that fit in the square below?");} 
+			get {return Translations.GetString ("What is the maximum number of circles (as shown) that fit in the square below?");} 
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("You can fit more than 64 circles.");}
+			get { return Translations.GetString ("You can fit more than 64 circles.");}
 		}
 
 		public override string Rationale {
 			get {
 				// Translators: {0} is replaced always by 0.1340
-				return String.Format (translations.GetString ("Using the above layout {0} units of height are gained per row leaving enough space for an additional row."), 0.1340);
+				return String.Format (Translations.GetString ("Using the above layout {0} units of height are gained per row leaving enough space for an additional row."), 0.1340);
 			}
 		}
 
@@ -74,7 +74,7 @@ namespace gbrainy.Games.Logic
 			gr.Stroke ();
 
 			gr.MoveTo (first_x + 0.2, first_y - 0.06 - space_fromrect);
-			gr.ShowPangoText (translations.GetString ("8 units"));
+			gr.ShowPangoText (Translations.GetString ("8 units"));
 			gr.Stroke ();
 
 			//  ---
@@ -93,7 +93,7 @@ namespace gbrainy.Games.Logic
 			gr.Stroke ();
 
 			gr.MoveTo (first_x - space_fromrect - 0.07, first_y + 0.3);
-			gr.ShowPangoText (translations.GetString ("8 units"), false, -1, 270 * Math.PI/180);
+			gr.ShowPangoText (Translations.GetString ("8 units"), false, -1, 270 * Math.PI/180);
 			gr.Stroke ();
 
 			// Sample circle
@@ -112,7 +112,7 @@ namespace gbrainy.Games.Logic
 			gr.Stroke ();
 
 			gr.MoveTo (first_x + 0.65, first_y - 0.04 - space_fromcircle);
-			gr.ShowPangoText (translations.GetString ("1 unit"));
+			gr.ShowPangoText (Translations.GetString ("1 unit"));
 			gr.Stroke ();
 
 			//  ---
@@ -131,7 +131,7 @@ namespace gbrainy.Games.Logic
 			gr.Stroke ();
 
 			gr.MoveTo (first_x + 0.65 - space_fromcircle - 0.08, first_y + 0.15);
-			gr.ShowPangoText (translations.GetString ("1 unit"), false, -1, 270 * Math.PI/180);
+			gr.ShowPangoText (Translations.GetString ("1 unit"), false, -1, 270 * Math.PI/180);
 			gr.Stroke ();
 
 			if (Answer.Draw == false)
diff --git a/src/Games/Logic/PuzzleClocks.cs b/src/Games/Logic/PuzzleClocks.cs
index 945bc52..7f89430 100644
--- a/src/Games/Logic/PuzzleClocks.cs
+++ b/src/Games/Logic/PuzzleClocks.cs
@@ -34,27 +34,27 @@ namespace gbrainy.Games.Logic
 		private const int handle_num = 2;
 
 		public override string Name {
-			get {return translations.GetString ("Clocks");}
+			get {return Translations.GetString ("Clocks");}
 		}
 
 		public override string Question {
 			get {return (String.Format (
 				// Translators: {0} is replaced by 'Figure X'
-				translations.GetString ("To what number should the large handle of the '{0}' clock point? Answer using numbers."),
+				Translations.GetString ("To what number should the large handle of the '{0}' clock point? Answer using numbers."),
 				Answer.GetFigureName (3)));}
 		}
 
 		public override string Rationale {
 			get {
 				// Translators: {0} is replaced by 'Figure X'
-				return String.Format (translations.GetString (
+				return String.Format (Translations.GetString (
 					"Starting from the first clock, add {1} to the number obtained by appending the values to which the hands point. For example, the values of the hands for '{0}' are {3} ({2} + {1})."),
 					Answer.GetFigureName (3), addition, handles [4].ToString () + handles [5].ToString (), handles [6].ToString () + handles [7].ToString ());
 			}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("The clocks do not follow the time logic.");}
+			get { return Translations.GetString ("The clocks do not follow the time logic.");}
 		}
 
 		protected override void Initialize ()
diff --git a/src/Games/Logic/PuzzleCountCircles.cs b/src/Games/Logic/PuzzleCountCircles.cs
index a9a564c..5619d3e 100644
--- a/src/Games/Logic/PuzzleCountCircles.cs
+++ b/src/Games/Logic/PuzzleCountCircles.cs
@@ -42,15 +42,15 @@ namespace gbrainy.Games.Logic
 		ItemCircle[] circles;
 
 		public override string Name {
-			get {return translations.GetString ("Count circles");}
+			get {return Translations.GetString ("Count circles");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("How many circles do you count?");} 
+			get {return Translations.GetString ("How many circles do you count?");} 
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("It is an easy exercise if you systematically count the circles.");}
+			get { return Translations.GetString ("It is an easy exercise if you systematically count the circles.");}
 		}
 
 		protected override void Initialize ()
diff --git a/src/Games/Logic/PuzzleCountSeries.cs b/src/Games/Logic/PuzzleCountSeries.cs
index c60359f..ae8dce8 100644
--- a/src/Games/Logic/PuzzleCountSeries.cs
+++ b/src/Games/Logic/PuzzleCountSeries.cs
@@ -37,7 +37,7 @@ namespace gbrainy.Games.Logic
 		private string question, rationale;
 
 		public override string Name {
-			get {return translations.GetString ("Count series");}
+			get {return Translations.GetString ("Count series");}
 		}
 
 		public override string Question {
@@ -59,19 +59,19 @@ namespace gbrainy.Games.Logic
 			switch (game_type)
 			{
 				case GameType.HowManyNines:
-					question = translations.GetString ("How many numbers '9' are required to represent the numbers between 10 to 100?");
+					question = Translations.GetString ("How many numbers '9' are required to represent the numbers between 10 to 100?");
 					Answer.Correct = "19";
 					numbers = new short [] {19, 29, 39, 49, 59, 69, 79, 89, 90, 91, 92 , 93, 94, 95, 96, 97, 98, 99};
 					break;
 
 				case GameType.HowManyBiggerDigits:
-					question = translations.GetString ("How many two digit numbers occur where the first digit is larger than the second (e.g.: 20 and 21)?");
+					question = Translations.GetString ("How many two digit numbers occur where the first digit is larger than the second (e.g.: 20 and 21)?");
 					Answer.Correct = "45";
 					numbers = new short [] {10, 20, 21, 30, 31, 32, 40, 41, 42, 43, 50, 51, 52, 53, 54, 60, 61, 62, 63, 64, 65, 70, 71, 72, 73, 74, 75, 76, 80, 81, 82, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98};
 					break;
 
 				case GameType.HowManySmallerDigits:
-					question = translations.GetString ("How many two digit numbers occur where the first digit is smaller than the second (e.g.: 12 and 13)?");
+					question = Translations.GetString ("How many two digit numbers occur where the first digit is smaller than the second (e.g.: 12 and 13)?");
 					Answer.Correct = "36";
 					numbers = new short [] {12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 56, 57, 58, 59, 67, 68, 69, 78, 79, 89};
 					break;
@@ -83,15 +83,15 @@ namespace gbrainy.Games.Logic
 			for (int i = 1; i < numbers.Length; i++)
 			{
 				// Translators: A sequence of numbers 1, 2, 3, etc.
-				rationale = string.Format (translations.GetString ("{0}, {1}"), rationale, numbers[i].ToString ());
+				rationale = string.Format (Translations.GetString ("{0}, {1}"), rationale, numbers[i].ToString ());
 			}
 
-			rationale = string.Format (translations.GetString ("The numbers are: {0}."), rationale);
+			rationale = string.Format (Translations.GetString ("The numbers are: {0}."), rationale);
 
 			if (game_type == GameType.HowManyNines) {
 				// Translators: Concatenating two strings (rationale of answer + extra information).
-				rationale = string.Format (translations.GetString ("{0} {1}"), rationale,
-					translations.GetString ("Notice that 99 contains two numbers '9'."));
+				rationale = string.Format (Translations.GetString ("{0} {1}"), rationale,
+					Translations.GetString ("Notice that 99 contains two numbers '9'."));
 			}				
 		}
 	}
diff --git a/src/Games/Logic/PuzzleCounting.cs b/src/Games/Logic/PuzzleCounting.cs
index d972fb7..af46e64 100644
--- a/src/Games/Logic/PuzzleCounting.cs
+++ b/src/Games/Logic/PuzzleCounting.cs
@@ -38,7 +38,7 @@ namespace gbrainy.Games.Logic
 		GameType gametype;
 
 		public override string Name {
-			get {return translations.GetString ("Counting");}
+			get {return Translations.GetString ("Counting");}
 		}
 
 		public override string Question {
@@ -61,15 +61,15 @@ namespace gbrainy.Games.Logic
 				var = 2 + random.Next (5);
 				total = 50 + random.Next (100);
 				question = String.Format (
-					translations.GetPluralString ("We have a {0} meter piece of fabric.", "We have a {0} meters piece of fabric.", total),
+					Translations.GetPluralString ("We have a {0} meter piece of fabric.", "We have a {0} meters piece of fabric.", total),
 					total);
 				question += " ";
 				question += String.Format (
-					translations.GetPluralString ("A machine takes {0} second to cut 1 meter of this fabric. How many seconds does the machine take to cut the entire piece of fabric into 1 meter pieces?",
+					Translations.GetPluralString ("A machine takes {0} second to cut 1 meter of this fabric. How many seconds does the machine take to cut the entire piece of fabric into 1 meter pieces?",
 						"A machine takes {0} seconds to cut 1 meter of this fabric. How many seconds does the machine take to cut the entire piece of fabric into 1 meter pieces?"
 						, var), var);
 				answer = String.Format (
-					translations.GetPluralString ("With the cut number {0}, the machine creates two 1 meter pieces.",
+					Translations.GetPluralString ("With the cut number {0}, the machine creates two 1 meter pieces.",
 						"With the cut number {0}, the machine creates two 1 meter pieces.", total - 1),
 						total - 1);
 
@@ -81,14 +81,14 @@ namespace gbrainy.Games.Logic
 				ans = 4 * total - 4;
 				question = String.Format (
 					// Translators: {0} is a number
-					translations.GetPluralString (
+					Translations.GetPluralString (
 						"A fence is built to enclose a square shaped region. {0} fence pole is used in each side of the square. How many fence poles are used in total?",
 						"A fence is built to enclose a square shaped region. {0} fence poles are used in each side of the square. How many fence poles are used in total?",
 						total),
 					total);
 					// Translators: {0} is a number
 				answer = String.Format (
-					translations.GetPluralString (
+					Translations.GetPluralString (
 						"There is {0} fence pole since the poles on the corners of the square are shared.",
 						"There are {0} fence poles since the poles on the corners of the square are shared.",
 						ans)
@@ -101,14 +101,14 @@ namespace gbrainy.Games.Logic
 				ans = total;
 				question = String.Format (
 					// Translators: {0} is a number
-					translations.GetPluralString (
+					Translations.GetPluralString (
 						"Wrapping an anniversary present costs one monetary unit. The anniversary present costs {0} monetary unit more than the cost to wrap it. How much does it cost to both purchase and wrap the present?",
 						"Wrapping an anniversary present costs one monetary unit. The anniversary present costs {0} monetary units more than the cost to wrap it. How much does it cost to both purchase and wrap the present?",
 						present),
 					present);
 
 				answer = String.Format (
-					translations.GetPluralString (
+					Translations.GetPluralString (
 					"It is the cost of the present, {0} monetary unit, plus one monetary unit of the wrapping.",
 					"It is the cost of the present, {0} monetary units, plus one monetary unit of the wrapping.",
 					present + 1), present + 1);
diff --git a/src/Games/Logic/PuzzleCoverPercentage.cs b/src/Games/Logic/PuzzleCoverPercentage.cs
index 58052ea..567b746 100644
--- a/src/Games/Logic/PuzzleCoverPercentage.cs
+++ b/src/Games/Logic/PuzzleCoverPercentage.cs
@@ -32,11 +32,11 @@ namespace gbrainy.Games.Logic
 		private const double line_width = 0.001;
 
 		public override string Name {
-			get {return translations.GetString ("Cover percentage");}
+			get {return Translations.GetString ("Cover percentage");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("What percentage of the figure is colored?");} 
+			get {return Translations.GetString ("What percentage of the figure is colored?");} 
 		}
 
 		protected override void Initialize ()
diff --git a/src/Games/Logic/PuzzleCube.cs b/src/Games/Logic/PuzzleCube.cs
index bde0730..e2f0e43 100644
--- a/src/Games/Logic/PuzzleCube.cs
+++ b/src/Games/Logic/PuzzleCube.cs
@@ -42,11 +42,11 @@ namespace gbrainy.Games.Logic
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Cube");}
+			get {return Translations.GetString ("Cube");}
 		}
 
 		public override string Question {
-			get {return String.Format (translations.GetString ("When you fold the figure below as a cube, which face on the figure is opposite the face with a {0} drawn on it? Answer the number written on the face."), question);} 
+			get {return String.Format (Translations.GetString ("When you fold the figure below as a cube, which face on the figure is opposite the face with a {0} drawn on it? Answer the number written on the face."), question);} 
 		}
 
 		protected override void Initialize ()
diff --git a/src/Games/Logic/PuzzleDice.cs b/src/Games/Logic/PuzzleDice.cs
index 0e89cb8..2250d14 100644
--- a/src/Games/Logic/PuzzleDice.cs
+++ b/src/Games/Logic/PuzzleDice.cs
@@ -51,26 +51,26 @@ namespace gbrainy.Games.Logic
 		{
 			problems = new Problem []
 			{
-				new Problem (translations.GetString ("What is the probability of getting a '2' or a '6' in a single throw of an unmodified 6 sided die? Answer using a fraction (e.g.: 1/2)."),
+				new Problem (Translations.GetString ("What is the probability of getting a '2' or a '6' in a single throw of an unmodified 6 sided die? Answer using a fraction (e.g.: 1/2)."),
 					"1/3",
-					translations.GetString ("There are 2 of 6 possibilities."), true),
+					Translations.GetString ("There are 2 of 6 possibilities."), true),
 
-				new Problem (translations.GetString ("What is the probability of not getting a '5' in a single throw of an unmodified 6 sided die? Answer using a fraction (e.g.: 1/2)."),
+				new Problem (Translations.GetString ("What is the probability of not getting a '5' in a single throw of an unmodified 6 sided die? Answer using a fraction (e.g.: 1/2)."),
 					"5/6",
-					translations.GetString ("There are 5 of 6 possibilities."), true),
+					Translations.GetString ("There are 5 of 6 possibilities."), true),
 
-				new Problem (translations.GetString ("Two unmodified 6 sided dice are thrown simultaneously. What is the probability of getting two even numbers? Answer using a fraction (e.g.: 1/2)."),
+				new Problem (Translations.GetString ("Two unmodified 6 sided dice are thrown simultaneously. What is the probability of getting two even numbers? Answer using a fraction (e.g.: 1/2)."),
 					"9/36",
-					translations.GetString ("There are 9 of 36 possibilities of getting two even numbers."), false),
+					Translations.GetString ("There are 9 of 36 possibilities of getting two even numbers."), false),
 
-				new Problem (translations.GetString ("Two unmodified 6 sided dice are thrown simultaneously. What is the probability of getting two '6'? Answer using a fraction (e.g.: 1/2)."),
+				new Problem (Translations.GetString ("Two unmodified 6 sided dice are thrown simultaneously. What is the probability of getting two '6'? Answer using a fraction (e.g.: 1/2)."),
 					"1/36",
-					translations.GetString ("There is 1 of 6 possibilities of getting a '6' on the first die and the same for the second die."), false),
+					Translations.GetString ("There is 1 of 6 possibilities of getting a '6' on the first die and the same for the second die."), false),
 			};
 		}
 
 		public override string Name {
-			get {return translations.GetString ("Dice");}
+			get {return Translations.GetString ("Dice");}
 		}
 
 		public override string Question {
diff --git a/src/Games/Logic/PuzzleDivideCircle.cs b/src/Games/Logic/PuzzleDivideCircle.cs
index 091264c..8b65fb2 100644
--- a/src/Games/Logic/PuzzleDivideCircle.cs
+++ b/src/Games/Logic/PuzzleDivideCircle.cs
@@ -42,11 +42,11 @@ namespace gbrainy.Games.Logic
 		}
 
 		public override string Name {
-			get {return translations.GetString ("Divide circles");}
+			get {return Translations.GetString ("Divide circles");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("In the last figure, in how many regions is the circle divided into when all dots are connected?");} 
+			get {return Translations.GetString ("In the last figure, in how many regions is the circle divided into when all dots are connected?");} 
 		}
 
 		protected override void Initialize ()
@@ -176,7 +176,7 @@ namespace gbrainy.Games.Logic
 		
 		string HasNRegionString (int regions)
 		{
-			return String.Format (translations.GetPluralString ("Has {0} region", 
+			return String.Format (Translations.GetPluralString ("Has {0} region", 
 				"Has {0} regions", regions), regions);
 			
 		}
diff --git a/src/Games/Logic/PuzzleEquation.cs b/src/Games/Logic/PuzzleEquation.cs
index d36b516..59e0070 100644
--- a/src/Games/Logic/PuzzleEquation.cs
+++ b/src/Games/Logic/PuzzleEquation.cs
@@ -30,16 +30,16 @@ namespace gbrainy.Games.Logic
 		private string formula;
 
 		public override string Name {
-			get {return translations.GetString ("Equation");}
+			get {return Translations.GetString ("Equation");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("What is the result of the equation below?");} 
+			get {return Translations.GetString ("What is the result of the equation below?");} 
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("The order of arithmetical operations is always as follows: exponents and roots, multiplication and division, addition and subtraction.");
+				return Translations.GetString ("The order of arithmetical operations is always as follows: exponents and roots, multiplication and division, addition and subtraction.");
 			}
 		}
 
diff --git a/src/Games/Logic/PuzzleExtraCircle.cs b/src/Games/Logic/PuzzleExtraCircle.cs
index fbd03b6..d157c6a 100644
--- a/src/Games/Logic/PuzzleExtraCircle.cs
+++ b/src/Games/Logic/PuzzleExtraCircle.cs
@@ -50,7 +50,7 @@ namespace gbrainy.Games.Logic
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Extra circle");}
+			get {return Translations.GetString ("Extra circle");}
 		}
 
 		public override bool UsesColors {
@@ -59,17 +59,17 @@ namespace gbrainy.Games.Logic
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("Which circle does not belong to the group? It is not a sequence of elements. Answer {0}, {1}, {2} or {3}."),
+				Translations.GetString ("Which circle does not belong to the group? It is not a sequence of elements. Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("All circles share a common property except for one.");}
+			get { return Translations.GetString ("All circles share a common property except for one.");}
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("In all circles the color slices follow the same order except for this one.");
+				return Translations.GetString ("In all circles the color slices follow the same order except for this one.");
 			}
 		}
 
@@ -78,7 +78,7 @@ namespace gbrainy.Games.Logic
 			ArrayListIndicesRandom random_indices = new ArrayListIndicesRandom (total_slices);
 			Color clr;
 
-			cp = new ColorPalette (translations);
+			cp = new ColorPalette (Translations);
 
 			Answer.CheckAttributes |= GameAnswerCheckAttributes.MultiOption | GameAnswerCheckAttributes.IgnoreSpaces;
 
diff --git a/src/Games/Logic/PuzzleFigureLetter.cs b/src/Games/Logic/PuzzleFigureLetter.cs
index 9e476b4..9c762b9 100644
--- a/src/Games/Logic/PuzzleFigureLetter.cs
+++ b/src/Games/Logic/PuzzleFigureLetter.cs
@@ -37,20 +37,20 @@ namespace gbrainy.Games.Logic
 		}
 
 		public override string Name {
-			get {return translations.GetString ("Figures and text");}
+			get {return Translations.GetString ("Figures and text");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("The figures and the text are related. What text should go under the last figure?");} 
+			get {return Translations.GetString ("The figures and the text are related. What text should go under the last figure?");} 
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("Every character of the text represents a property of the figure.");}
+			get { return Translations.GetString ("Every character of the text represents a property of the figure.");}
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("'A' indicates that the figures overlap, 'B' that are squares, 'C' that are circles, 'D' that the figures are separated, 'E' that there are three figures and 'F' that there are two figures.");
+				return Translations.GetString ("'A' indicates that the figures overlap, 'B' that are squares, 'C' that are circles, 'D' that the figures are separated, 'E' that there are three figures and 'F' that there are two figures.");
 			}
 		}
 
diff --git a/src/Games/Logic/PuzzleFigurePattern.cs b/src/Games/Logic/PuzzleFigurePattern.cs
index 9829e72..36cacc3 100644
--- a/src/Games/Logic/PuzzleFigurePattern.cs
+++ b/src/Games/Logic/PuzzleFigurePattern.cs
@@ -37,22 +37,22 @@ namespace gbrainy.Games.Logic
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Figure pattern");}
+			get {return Translations.GetString ("Figure pattern");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("What figure should replace the question mark? Answer {0}, {1} or {2}."),
+				Translations.GetString ("What figure should replace the question mark? Answer {0}, {1} or {2}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2));}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("The third figure of every row involves somehow combining the first two figures.");}
+			get { return Translations.GetString ("The third figure of every row involves somehow combining the first two figures.");}
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("Superpose the first and second figures and remove the lines that they have in common, then rotate the resulting figure 45 degrees.");
+				return Translations.GetString ("Superpose the first and second figures and remove the lines that they have in common, then rotate the resulting figure 45 degrees.");
 			}
 		}
 
@@ -188,7 +188,7 @@ namespace gbrainy.Games.Logic
 			gr.Stroke ();
 	
 			gr.MoveTo (0.05, y - 0.01 + space_y);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 
 			// Answers
 			x = org_x;
diff --git a/src/Games/Logic/PuzzleFigures.cs b/src/Games/Logic/PuzzleFigures.cs
index 9df25ef..421144c 100644
--- a/src/Games/Logic/PuzzleFigures.cs
+++ b/src/Games/Logic/PuzzleFigures.cs
@@ -55,17 +55,17 @@ namespace gbrainy.Games.Logic
 		Figure [] figure_answers;
 
 		public override string Name {
-			get {return translations.GetString ("Figures");}
+			get {return Translations.GetString ("Figures");}
 		}
 
 		public override string Question {
-			get {return String.Format (translations.GetString ("What is the next logical sequence of objects in the last column? Answer {0}, {1} or {2}."),
+			get {return String.Format (Translations.GetString ("What is the next logical sequence of objects in the last column? Answer {0}, {1} or {2}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2));}
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("It is the only combination that you can build with the given elements without repeating them.");
+				return Translations.GetString ("It is the only combination that you can build with the given elements without repeating them.");
 			}
 		}
 
@@ -189,7 +189,7 @@ namespace gbrainy.Games.Logic
 			}
 
 			gr.MoveTo (0.08, 0.45);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 			gr.Stroke ();
 		}
 	}
diff --git a/src/Games/Logic/PuzzleFourSided.cs b/src/Games/Logic/PuzzleFourSided.cs
index 3796c8b..6fdd782 100644
--- a/src/Games/Logic/PuzzleFourSided.cs
+++ b/src/Games/Logic/PuzzleFourSided.cs
@@ -29,20 +29,20 @@ namespace gbrainy.Games.Logic
 	{
 		int type;
 		public override string Name {
-			get {return translations.GetString ("Four sided");}
+			get {return Translations.GetString ("Four sided");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("How many four sided figures do you count in the figure below?");} 
+			get {return Translations.GetString ("How many four sided figures do you count in the figure below?");} 
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("A four sided figure can be embedded inside another figure.");}
+			get { return Translations.GetString ("A four sided figure can be embedded inside another figure.");}
 		}
 
 		public override string Rationale {
 			get { 
-				return String.Format (translations.GetString ("The four sided figures are made by connecting the following points: {0}"),
+				return String.Format (Translations.GetString ("The four sided figures are made by connecting the following points: {0}"),
 					(type == 0) ? "abde, degh, bcef, efhi, acdf, dfgi, abhg, bcih, acig, aghe, aefc, deig, bcie." : 
 					"abde, degh, bcef, efhi, acdf, dfgi, abhg, bcih, acig, aghe, aefc, deig, bcie, acde, cehi, abeg, egif.");
 			}
diff --git a/src/Games/Logic/PuzzleGridCircles.cs b/src/Games/Logic/PuzzleGridCircles.cs
index 3d6b55f..b05d85d 100644
--- a/src/Games/Logic/PuzzleGridCircles.cs
+++ b/src/Games/Logic/PuzzleGridCircles.cs
@@ -32,20 +32,20 @@ namespace gbrainy.Games.Logic
 		private int divisor;
 
 		public override string Name {
-			get {return translations.GetString ("Circles in a grid");}
+			get {return Translations.GetString ("Circles in a grid");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("One of the numbers in the grid must be circled. Which one?");}
+			get {return Translations.GetString ("One of the numbers in the grid must be circled. Which one?");}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("All circled numbers share an arithmetical property.");}
+			get { return Translations.GetString ("All circled numbers share an arithmetical property.");}
 		}
 
 		public override string Rationale {
 			get {
-				return String.Format (translations.GetString ("Every circled number can be divided by {0}."), divisor);
+				return String.Format (Translations.GetString ("Every circled number can be divided by {0}."), divisor);
 			}
 		}
 
diff --git a/src/Games/Logic/PuzzleGridDots.cs b/src/Games/Logic/PuzzleGridDots.cs
index e697571..fe9e867 100644
--- a/src/Games/Logic/PuzzleGridDots.cs
+++ b/src/Games/Logic/PuzzleGridDots.cs
@@ -202,12 +202,12 @@ namespace gbrainy.Games.Logic
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Square with dots");}
+			get {return Translations.GetString ("Square with dots");}
 		}
 
 		public override string Question {
 			get {return (String.Format (
-				translations.GetString ("Which is the next logical figure in the sequence? Answer {0}, {1} or {2}."),
+				Translations.GetString ("Which is the next logical figure in the sequence? Answer {0}, {1} or {2}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2)));}
 		}
 
@@ -216,9 +216,9 @@ namespace gbrainy.Games.Logic
 			get {
 				switch (puzzle_index) {
 				case 0:
-					return translations.GetString ("From the top-left figure, the top-left circle moves down, the bottom-left circle moves up, the bottom-right moves diagonally up-left and the top-right moves diagonally down-left.");
+					return Translations.GetString ("From the top-left figure, the top-left circle moves down, the bottom-left circle moves up, the bottom-right moves diagonally up-left and the top-right moves diagonally down-left.");
 				case 2:
-					return translations.GetString
+					return Translations.GetString
 					("From the top-left figure, the figure is rotated counterclockwise 90 degrees.");
 				case 1: // TODO
 				default:
@@ -337,7 +337,7 @@ namespace gbrainy.Games.Logic
 
 			y += figure_size + 0.10;
 			gr.MoveTo (x, y - 0.02);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 	}
 }
diff --git a/src/Games/Logic/PuzzleGridNumbers.cs b/src/Games/Logic/PuzzleGridNumbers.cs
index 3ef574c..b0060d3 100644
--- a/src/Games/Logic/PuzzleGridNumbers.cs
+++ b/src/Games/Logic/PuzzleGridNumbers.cs
@@ -41,19 +41,19 @@ namespace gbrainy.Games.Logic
 		private const int rows = 4, columns = 4;
 
 		public override string Name {
-			get {return translations.GetString ("Numbers in a grid");}
+			get {return Translations.GetString ("Numbers in a grid");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("The numbers in the grid below follow a pattern. Which number should replace the question mark?");}
+			get {return Translations.GetString ("The numbers in the grid below follow a pattern. Which number should replace the question mark?");}
 		}
 
 		public override string Tip {
 			get { 
 				if (orientation) 
-					return translations.GetString ("The pattern is arithmetical and works vertically.");
+					return Translations.GetString ("The pattern is arithmetical and works vertically.");
 				else 
-					return translations.GetString ("The pattern is arithmetical and works horizontally.");
+					return Translations.GetString ("The pattern is arithmetical and works horizontally.");
 			}
 		}
 
@@ -62,21 +62,21 @@ namespace gbrainy.Games.Logic
 				switch (operation) {
 				case Operation.MultiplyAndAdd:
 					if (orientation) {
-						return translations.GetString ("The fourth row is calculated by multiplying the first two rows and adding the third.");
+						return Translations.GetString ("The fourth row is calculated by multiplying the first two rows and adding the third.");
 					} else {
-						return translations.GetString ("The fourth column is calculated by multiplying the first two columns and adding the third.");
+						return Translations.GetString ("The fourth column is calculated by multiplying the first two columns and adding the third.");
 					}
 				case Operation.MutilplyAndSubs:
 					if (orientation) {
-						return translations.GetString ("The fourth row is calculated by multiplying the first two rows and subtracting the third.");
+						return Translations.GetString ("The fourth row is calculated by multiplying the first two rows and subtracting the third.");
 					} else {
-						return translations.GetString ("The fourth column is calculated by multiplying the first two columns and subtracting the third.");
+						return Translations.GetString ("The fourth column is calculated by multiplying the first two columns and subtracting the third.");
 					}
 				case Operation.AddAndSubs:
 					if (orientation) {
-						return translations.GetString ("The fourth row is calculated by adding the first two rows and subtracting the third.");
+						return Translations.GetString ("The fourth row is calculated by adding the first two rows and subtracting the third.");
 					} else {
-						return translations.GetString ("The fourth column is calculated by adding the first two columns and subtracting the third.");
+						return Translations.GetString ("The fourth column is calculated by adding the first two columns and subtracting the third.");
 					}
 				default:
 					return string.Empty;
diff --git a/src/Games/Logic/PuzzleHandshakes.cs b/src/Games/Logic/PuzzleHandshakes.cs
index 26e7bec..965dac1 100644
--- a/src/Games/Logic/PuzzleHandshakes.cs
+++ b/src/Games/Logic/PuzzleHandshakes.cs
@@ -29,21 +29,21 @@ namespace gbrainy.Games.Logic
 		int people, handshakes;
 
 		public override string Name {
-			get {return translations.GetString ("Handshakes");}
+			get {return Translations.GetString ("Handshakes");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("All attendees to a party are introduced to one another. {0} handshakes are made in total. How many people are attending the party?"), 				handshakes);
+				Translations.GetString ("All attendees to a party are introduced to one another. {0} handshakes are made in total. How many people are attending the party?"), 				handshakes);
 			}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("Try to imagine a situation in which you are meeting a small number of people.");}
+			get { return Translations.GetString ("Try to imagine a situation in which you are meeting a small number of people.");}
 		}
 
 		public override string Rationale {
-			get { return translations.GetString ("Using n as the total number of people, the first person handshakes n-1 people, the second n-2 people, etc. The result is the sum of the first n-1 consecutive numbers: 1+2+3+...+(n-1).");}
+			get { return Translations.GetString ("Using n as the total number of people, the first person handshakes n-1 people, the second n-2 people, etc. The result is the sum of the first n-1 consecutive numbers: 1+2+3+...+(n-1).");}
 		}
 		protected override void Initialize ()
 		{
diff --git a/src/Games/Logic/PuzzleLargerShape.cs b/src/Games/Logic/PuzzleLargerShape.cs
index ac0c492..226a292 100644
--- a/src/Games/Logic/PuzzleLargerShape.cs
+++ b/src/Games/Logic/PuzzleLargerShape.cs
@@ -110,7 +110,7 @@ namespace gbrainy.Games.Logic
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Larger shape");}
+			get {return Translations.GetString ("Larger shape");}
 		}
 
 		public override bool UsesColors {
@@ -119,14 +119,14 @@ namespace gbrainy.Games.Logic
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("Which larger shape can you make combining the first two figures? Answer {0}, {1}, {2} or {3}."),
+				Translations.GetString ("Which larger shape can you make combining the first two figures? Answer {0}, {1}, {2} or {3}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
 
 		protected override void Initialize ()
 		{
 			Answer.CheckAttributes |= GameAnswerCheckAttributes.MultiOption | GameAnswerCheckAttributes.IgnoreSpaces;
-			palette = new ColorPalette (translations);
+			palette = new ColorPalette (Translations);
 
 			switch (random.Next (2)) {
 			case 0:
@@ -300,7 +300,7 @@ namespace gbrainy.Games.Logic
 			base.Draw (gr, area_width, area_height, rtl);
 
 			gr.MoveTo (0.1, 0.3);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 			gr.Stroke ();
 		}
 	}
diff --git a/src/Games/Logic/PuzzleLines.cs b/src/Games/Logic/PuzzleLines.cs
index cd951df..55cb7f0 100644
--- a/src/Games/Logic/PuzzleLines.cs
+++ b/src/Games/Logic/PuzzleLines.cs
@@ -31,16 +31,16 @@ namespace gbrainy.Games.Logic
 		private int fig1, fig2;
 
 		public override string Name {
-			get {return translations.GetString ("Lines");}
+			get {return Translations.GetString ("Lines");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("How many line segments in total are in the figures below? A line segment is a line between two points with no crossing lines.");}
+			get {return Translations.GetString ("How many line segments in total are in the figures below? A line segment is a line between two points with no crossing lines.");}
 		}
 
 		public override string Rationale {
 			get {
-				return String.Format (translations.GetPluralString (
+				return String.Format (Translations.GetPluralString (
 					"There is {0} line in the figure to the left and {1} in the figure to the right.",
 					"There are {0} lines in the figure to the left and {1} in the figure to the right.",
 					fig1),
@@ -49,7 +49,7 @@ namespace gbrainy.Games.Logic
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("It is an easy exercise if you systematically count the lines.");}
+			get { return Translations.GetString ("It is an easy exercise if you systematically count the lines.");}
 		}
 
 		protected override void Initialize ()
diff --git a/src/Games/Logic/PuzzleMissingPiece.cs b/src/Games/Logic/PuzzleMissingPiece.cs
index 3f36436..79ed2af 100644
--- a/src/Games/Logic/PuzzleMissingPiece.cs
+++ b/src/Games/Logic/PuzzleMissingPiece.cs
@@ -32,22 +32,22 @@ namespace gbrainy.Games.Logic
 		private const double sub_figure = 0.15;
 
 		public override string Name {
-			get {return translations.GetString ("Missing piece");}
+			get {return Translations.GetString ("Missing piece");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("Which square completes the figure below? Answer {0}, {1} or {2}."),
+				Translations.GetString ("Which square completes the figure below? Answer {0}, {1} or {2}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2));}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("The logic works at row level.");}
+			get { return Translations.GetString ("The logic works at row level.");}
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("In every row the third square is made by flipping the first square and superimposing it on the second square, followed by removing the matching lines.");
+				return Translations.GetString ("In every row the third square is made by flipping the first square and superimposing it on the second square, followed by removing the matching lines.");
 			}
 		}
 
@@ -170,7 +170,7 @@ namespace gbrainy.Games.Logic
 			DrawFigureSequence (gr, x, DrawAreaY + sub_figure * 2 , 2, false);
 
 			gr.MoveTo (0.1, 0.62);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 	}
 }
diff --git a/src/Games/Logic/PuzzleMissingSlice.cs b/src/Games/Logic/PuzzleMissingSlice.cs
index ec13319..7ff160a 100644
--- a/src/Games/Logic/PuzzleMissingSlice.cs
+++ b/src/Games/Logic/PuzzleMissingSlice.cs
@@ -59,22 +59,22 @@ namespace gbrainy.Games.Logic
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Missing slice");}
+			get {return Translations.GetString ("Missing slice");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("The slices below have some kind of relation. Which is the missing slice in the circle below? Answer {0}, {1} or {2}."),
+				Translations.GetString ("The slices below have some kind of relation. Which is the missing slice in the circle below? Answer {0}, {1} or {2}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2));}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("Each slice is related to the opposite one.");}
+			get { return Translations.GetString ("Each slice is related to the opposite one.");}
 		}
 
 		public override string Rationale {
 			get {
-				return String.Format (translations.GetString ("All numbers of each slice, when added to the ones of the opposite slice, add always {0}."), sum_offset + 8);
+				return String.Format (Translations.GetString ("All numbers of each slice, when added to the ones of the opposite slice, add always {0}."), sum_offset + 8);
 			}
 		}
 
@@ -215,7 +215,7 @@ namespace gbrainy.Games.Logic
 			}
 
 			gr.MoveTo (0.1, 0.55);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 			gr.Stroke ();
 		}
 	}
diff --git a/src/Games/Logic/PuzzleMostInCommon.cs b/src/Games/Logic/PuzzleMostInCommon.cs
index 138c385..26b6eb8 100644
--- a/src/Games/Logic/PuzzleMostInCommon.cs
+++ b/src/Games/Logic/PuzzleMostInCommon.cs
@@ -74,25 +74,25 @@ namespace gbrainy.Games.Logic
 		private const double pos7_y = 0.11;
 
 		public override string Name {
-			get {return translations.GetString ("Most in common");}
+			get {return Translations.GetString ("Most in common");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("Which of the possible answers have the most in common with the four given figures? Answer {0}, {1}, {2} or {3}."),
+				Translations.GetString ("Which of the possible answers have the most in common with the four given figures? Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("Think of the common elements that the given figures have inside them.");}
+			get { return Translations.GetString ("Think of the common elements that the given figures have inside them.");}
 		}
 
 		public override string Rationale {
 			get {
 				if (CurrentDifficulty ==  GameDifficulty.Easy)
-					return translations.GetString ("It has the same number of elements inside the figure as the given figures.");
+					return Translations.GetString ("It has the same number of elements inside the figure as the given figures.");
 				else
-					return translations.GetString ("It is the figure with the most elements in common compared to the given figures.");
+					return Translations.GetString ("It is the figure with the most elements in common compared to the given figures.");
 			}
 		}
 
@@ -310,7 +310,7 @@ namespace gbrainy.Games.Logic
 			y += 0.28;
 			x = DrawAreaX;
 			gr.MoveTo (x - 0.06, y);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 			gr.Stroke ();
 		}
 	}
diff --git a/src/Games/Logic/PuzzleMoveFigure.cs b/src/Games/Logic/PuzzleMoveFigure.cs
index 8a037a4..2dea5cb 100644
--- a/src/Games/Logic/PuzzleMoveFigure.cs
+++ b/src/Games/Logic/PuzzleMoveFigure.cs
@@ -30,20 +30,20 @@ namespace gbrainy.Games.Logic
 		private int type;
 
 		public override string Name {
-			get {return translations.GetString ("Move figure");}
+			get {return Translations.GetString ("Move figure");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("What is the minimum number of circles to be moved in order to convert the left figure into the right figure?");} 
+			get {return Translations.GetString ("What is the minimum number of circles to be moved in order to convert the left figure into the right figure?");} 
 		}
 	
 		public override string Rationale {
 			get {
 				switch (type) {
 				case 0:
-					return translations.GetString ("Move the circle from the first line to the second and move two circles from the fourth line to the second and the fifth lines.");
+					return Translations.GetString ("Move the circle from the first line to the second and move two circles from the fourth line to the second and the fifth lines.");
 				case 1:
-					return translations.GetString ("Move the first line to the seventh; move the two circles of the second line to third; and move first and last circles of the fifth line to the sixth.");
+					return Translations.GetString ("Move the first line to the seventh; move the two circles of the second line to third; and move first and last circles of the fifth line to the sixth.");
 				default:	
 					return string.Empty;
 				}
diff --git a/src/Games/Logic/PuzzleNextFigure.cs b/src/Games/Logic/PuzzleNextFigure.cs
index ef075aa..9e7e6fc 100644
--- a/src/Games/Logic/PuzzleNextFigure.cs
+++ b/src/Games/Logic/PuzzleNextFigure.cs
@@ -50,19 +50,19 @@ namespace gbrainy.Games.Logic
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Next figure");}
+			get {return Translations.GetString ("Next figure");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("Which is the next logical figure in the sequence? Answer {0}, {1} or {2}."),
+				Translations.GetString ("Which is the next logical figure in the sequence? Answer {0}, {1} or {2}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2));} 
 		}
 
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("From first figure, the top circle advances by two positions clockwise, while the left circle goes backwards one position.");
+				return Translations.GetString ("From first figure, the top circle advances by two positions clockwise, while the left circle goes backwards one position.");
 			}
 		}
 
@@ -163,7 +163,7 @@ namespace gbrainy.Games.Logic
 		
 			y += figure_size + 0.06;
 			gr.MoveTo (x, y);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 			gr.Stroke ();
 		}
 	}
diff --git a/src/Games/Logic/PuzzleNumericRelation.cs b/src/Games/Logic/PuzzleNumericRelation.cs
index e4f1856..1d4d9c2 100644
--- a/src/Games/Logic/PuzzleNumericRelation.cs
+++ b/src/Games/Logic/PuzzleNumericRelation.cs
@@ -43,15 +43,15 @@ namespace gbrainy.Games.Logic
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Numeric relation");}
+			get {return Translations.GetString ("Numeric relation");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("What number should replace the question mark?");} 
+			get {return Translations.GetString ("What number should replace the question mark?");} 
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("The numbers are related arithmetically.");}
+			get { return Translations.GetString ("The numbers are related arithmetically.");}
 		}
 
 		public override string Rationale {
@@ -59,11 +59,11 @@ namespace gbrainy.Games.Logic
 				switch (formula) {
 				case Formula.AllAdding:
 					// Translators: {0} is always replaced by the number 3
-					return String.Format (translations.GetString ("Every group of {0} numbers sums exactly {1}."), group_size, sum_value);
+					return String.Format (Translations.GetString ("Every group of {0} numbers sums exactly {1}."), group_size, sum_value);
 				case Formula.ThirdMultiply:
-					return translations.GetString ("Divide the sequence in groups of three numbers. Every third number is calculated by multiplying by the two previous ones.");
+					return Translations.GetString ("Divide the sequence in groups of three numbers. Every third number is calculated by multiplying by the two previous ones.");
 				case Formula.ThirdSubstracting:
-					return translations.GetString ("Divide the sequence in groups of three numbers. Every third number is calculated by subtracting the second number from the first.");
+					return Translations.GetString ("Divide the sequence in groups of three numbers. Every third number is calculated by subtracting the second number from the first.");
 				default:
 					throw new InvalidOperationException ("Invalid Value");
 				}
diff --git a/src/Games/Logic/PuzzleNumericSequence.cs b/src/Games/Logic/PuzzleNumericSequence.cs
index 885901e..b373992 100644
--- a/src/Games/Logic/PuzzleNumericSequence.cs
+++ b/src/Games/Logic/PuzzleNumericSequence.cs
@@ -39,26 +39,26 @@ namespace gbrainy.Games.Logic
 		private Formula formula;
 
 		public override string Name {
-			get {return translations.GetString ("Numeric sequence");}
+			get {return Translations.GetString ("Numeric sequence");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("The next sequence follows a logic. What number should replace the question mark?");}
+			get {return Translations.GetString ("The next sequence follows a logic. What number should replace the question mark?");}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("Every number in the sequence is related to the previous one.");}
+			get { return Translations.GetString ("Every number in the sequence is related to the previous one.");}
 		}
 
 		public override string Rationale {
 			get {
 				switch (formula) {
 				case Formula.SubstractingOne:
-					return translations.GetString ("Every number in the sequence is the result of subtracting 1 from the previous number and multiplying it by 2.");
+					return Translations.GetString ("Every number in the sequence is the result of subtracting 1 from the previous number and multiplying it by 2.");
 				case Formula.Adding:
-					return translations.GetString ("Every number in the sequence is the result of adding 1 to the previous number and multiplying it by 3.");
+					return Translations.GetString ("Every number in the sequence is the result of adding 1 to the previous number and multiplying it by 3.");
 				case Formula.SubstractingTwo:
-					return translations.GetString ("Every number in the sequence is the result of subtracting 2 from the previous number and multiplying it by -2.");
+					return Translations.GetString ("Every number in the sequence is the result of subtracting 2 from the previous number and multiplying it by -2.");
 				default:
 					return string.Empty;
 				}
diff --git a/src/Games/Logic/PuzzleOstracism.cs b/src/Games/Logic/PuzzleOstracism.cs
index cf99aa0..cfb07b6 100644
--- a/src/Games/Logic/PuzzleOstracism.cs
+++ b/src/Games/Logic/PuzzleOstracism.cs
@@ -50,12 +50,12 @@ namespace gbrainy.Games.Logic
 		string [] equations;
 
 		public override string Name {
-			get {return translations.GetString ("Ostracism");}
+			get {return Translations.GetString ("Ostracism");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("Which element does not belong to the group? It is not related to any arithmetical of the numbers. Answer {0}, {1}, {2}, {3} or {4}."),
+				Translations.GetString ("Which element does not belong to the group? It is not related to any arithmetical of the numbers. Answer {0}, {1}, {2}, {3} or {4}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3), Answer.GetMultiOption (4));}
 		}
 
@@ -63,9 +63,9 @@ namespace gbrainy.Games.Logic
 			get {
 				switch (gametype) {
 				case GameType.Equations:
-					return translations.GetString ("The criteria for deciding if an equation belongs to the group is not arithmetical.");
+					return Translations.GetString ("The criteria for deciding if an equation belongs to the group is not arithmetical.");
 				case GameType.Numbers:
-					return translations.GetString ("Consider that every number that belongs to the group has two parts that are related.");
+					return Translations.GetString ("Consider that every number that belongs to the group has two parts that are related.");
 				default:
 					throw new InvalidOperationException ();
 				}
@@ -76,9 +76,9 @@ namespace gbrainy.Games.Logic
 			get {
 				switch (gametype) {
 				case GameType.Equations:
-					return translations.GetString ("In all the other equations the digits from the left side also appear on the right side.");
+					return Translations.GetString ("In all the other equations the digits from the left side also appear on the right side.");
 				case GameType.Numbers:
-					return translations.GetString ("In all the other numbers the last three digits are the square of the first two digits.");
+					return Translations.GetString ("In all the other numbers the last three digits are the square of the first two digits.");
 				default:
 					throw new InvalidOperationException ();
 				}
@@ -161,7 +161,7 @@ namespace gbrainy.Games.Logic
 					e.Context.SetPangoLargeFontSize ();
 					e.Context.MoveTo (0.05, 0.02);
 					// Translators: this "option) answer" for example "a) "21 x 60 = 1260". This should not be changed for most of the languages
-					e.Context.ShowPangoText (String.Format (translations.GetString ("{0}) {1}"), Answer.GetMultiOption (n), equations [random_indices[n]]));
+					e.Context.ShowPangoText (String.Format (Translations.GetString ("{0}) {1}"), Answer.GetMultiOption (n), equations [random_indices[n]]));
 				};
 			}
 		}
@@ -173,7 +173,7 @@ namespace gbrainy.Games.Logic
 			gr.SetPangoLargeFontSize ();
 
 			gr.MoveTo (0.1, 0.15);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 	}
 }
diff --git a/src/Games/Logic/PuzzlePencil.cs b/src/Games/Logic/PuzzlePencil.cs
index aa74448..fddd39d 100644
--- a/src/Games/Logic/PuzzlePencil.cs
+++ b/src/Games/Logic/PuzzlePencil.cs
@@ -35,11 +35,11 @@ namespace gbrainy.Games.Logic
 		private const int answer_index = 4;
 
 		public override string Name {
-			get {return translations.GetString ("Pencil");}
+			get {return Translations.GetString ("Pencil");}
 		}
 
 		public override string Question {
-			get {return String.Format ( translations.GetString 
+			get {return String.Format ( Translations.GetString 
 				("Which of the following figures cannot be drawn without crossing any previous lines nor lifting the pencil? Answer {0}, {1}, {2}, {3} or {4}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3), Answer.GetMultiOption (4));} 
 		}
diff --git a/src/Games/Logic/PuzzlePeopleTable.cs b/src/Games/Logic/PuzzlePeopleTable.cs
index 7d75ee1..dd41f14 100644
--- a/src/Games/Logic/PuzzlePeopleTable.cs
+++ b/src/Games/Logic/PuzzlePeopleTable.cs
@@ -42,16 +42,16 @@ namespace gbrainy.Games.Logic
 		}
 
 		public override string Name {
-			get {return translations.GetString ("People at a table");}
+			get {return Translations.GetString ("People at a table");}
 		}
 
 		public override string Question {
-			get {return String.Format (translations.GetString ("A group of people are sitting at a round table spaced out evenly. How many people are there if the {0} person is across from the {1}?"), ques1, ques2);} 
+			get {return String.Format (Translations.GetString ("A group of people are sitting at a round table spaced out evenly. How many people are there if the {0} person is across from the {1}?"), ques1, ques2);} 
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("Subtracting the two positions you find out how many people are seated half way around the table. Doubling this number leaves you with the total amount of people.");
+				return Translations.GetString ("Subtracting the two positions you find out how many people are seated half way around the table. Doubling this number leaves you with the total amount of people.");
 			}
 		}
 
@@ -59,18 +59,18 @@ namespace gbrainy.Games.Logic
 		{
 			switch (random.Next (3)) {
 			case 0:
-				ques1 = translations.GetString ("5th");
-				ques2 = translations.GetString ("19th");
+				ques1 = Translations.GetString ("5th");
+				ques2 = Translations.GetString ("19th");
 				Answer.Correct = "28";
 				break;
 			case 1:
-				ques1 = translations.GetString ("4th");
-				ques2 = translations.GetString ("12th");
+				ques1 = Translations.GetString ("4th");
+				ques2 = Translations.GetString ("12th");
 				Answer.Correct = "16";
 				break;
 			case 2:
-				ques1 = translations.GetString ("9th");
-				ques2 = translations.GetString ("22nd");
+				ques1 = Translations.GetString ("9th");
+				ques2 = Translations.GetString ("22nd");
 				Answer.Correct = "26";
 				break;
 			}			
@@ -82,7 +82,7 @@ namespace gbrainy.Games.Logic
 			gr.DrawImageFromAssembly ("people_table.svg", 0.2, 0.2, 0.6, 0.6);
 
 			gr.DrawTextCentered (0.5, 0.85,
-				translations.GetString ("Two people in the table sitting across each other"));
+				Translations.GetString ("Two people in the table sitting across each other"));
 
 		}
 	}
diff --git a/src/Games/Logic/PuzzlePercentage.cs b/src/Games/Logic/PuzzlePercentage.cs
index 7d31396..f3bc5aa 100644
--- a/src/Games/Logic/PuzzlePercentage.cs
+++ b/src/Games/Logic/PuzzlePercentage.cs
@@ -38,7 +38,7 @@ namespace gbrainy.Games.Logic
 		GameType gametype;
 
 		public override string Name {
-			get {return translations.GetString ("Percentage");}
+			get {return Translations.GetString ("Percentage");}
 		}
 
 		public override string Question {
@@ -71,7 +71,7 @@ namespace gbrainy.Games.Logic
 				}  while (paid != Math.Truncate (paid));
 
 				question = String.Format (
-					translations.GetPluralString (
+					Translations.GetPluralString (
 						"After getting {0}% discount you have paid {1} monetary unit for a TV set. What was the original price of the TV set?",
 						"After getting {0}% discount you have paid {1} monetary units for a TV set. What was the original price of the TV set?",
 						(int) paid),
@@ -92,7 +92,7 @@ namespace gbrainy.Games.Logic
 
 			
 				question = String.Format (
-					translations.GetPluralString (
+					Translations.GetPluralString (
 						"John's shop had sales of {0} monetary unit. This was an increase of {1}% over last month. What were last month sales?",
 						"John's shop had sales of {0} monetary units. This was an increase of {1}% over last month. What were last month sales?",	
 						(int) sales),
@@ -111,10 +111,10 @@ namespace gbrainy.Games.Logic
 				} while (percentage != Math.Truncate (percentage));
 			
 				question = String.Format (
-					translations.GetString ("The amount of water in a bucket decreases by {0}%. By what percentage must the amount of water increase to reach its original value?"),
+					Translations.GetString ("The amount of water in a bucket decreases by {0}%. By what percentage must the amount of water increase to reach its original value?"),
 					decrease);
 
-				answer = translations.GetString ("The objective is to obtain the same total amount.");
+				answer = Translations.GetString ("The objective is to obtain the same total amount.");
 				ans = (int) percentage;
 				svg_image = "bucket.svg";
 				break;
diff --git a/src/Games/Logic/PuzzlePredicateLogic.cs b/src/Games/Logic/PuzzlePredicateLogic.cs
index 293e5d6..00229f9 100644
--- a/src/Games/Logic/PuzzlePredicateLogic.cs
+++ b/src/Games/Logic/PuzzlePredicateLogic.cs
@@ -56,82 +56,82 @@ namespace gbrainy.Games.Logic
 			Answer.CheckAttributes |= GameAnswerCheckAttributes.MultiOption;
 			predicates = new Predicate []
 			{
-				new Predicate (String.Format (translations.GetString ("If all painters are artists and some citizens of Barcelona are artists. Which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
+				new Predicate (String.Format (Translations.GetString ("If all painters are artists and some citizens of Barcelona are artists. Which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
 						Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3)),
-					translations.GetString ("Some citizens of Barcelona are painters"),
-					translations.GetString ("All citizens of Barcelona are painters"),
-					translations.GetString ("No citizen of Barcelona is a painter"),
-					translations.GetString ("None of the other options"),
+					Translations.GetString ("Some citizens of Barcelona are painters"),
+					Translations.GetString ("All citizens of Barcelona are painters"),
+					Translations.GetString ("No citizen of Barcelona is a painter"),
+					Translations.GetString ("None of the other options"),
 					3),
 
-				new Predicate (String.Format (translations.GetString ("If no ill artist is happy and some artists are happy. Which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
+				new Predicate (String.Format (Translations.GetString ("If no ill artist is happy and some artists are happy. Which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
 						Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3)),
-					translations.GetString ("Some artist are not ill"),
-					translations.GetString ("Some painters are not artists"),
-					translations.GetString ("All artists are happy"),
-					translations.GetString ("None of the other options"),
+					Translations.GetString ("Some artist are not ill"),
+					Translations.GetString ("Some painters are not artists"),
+					Translations.GetString ("All artists are happy"),
+					Translations.GetString ("None of the other options"),
 					0),
 
-				new Predicate (String.Format (translations.GetString ("People that travel always buy a map. You are not going to travel. Which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
+				new Predicate (String.Format (Translations.GetString ("People that travel always buy a map. You are not going to travel. Which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3)),
-					translations.GetString ("You do not have any map"),
-					translations.GetString ("You do not buy a map"),
-					translations.GetString ("All people have a map"),
-					translations.GetString ("None of the other options"),
+					Translations.GetString ("You do not have any map"),
+					Translations.GetString ("You do not buy a map"),
+					Translations.GetString ("All people have a map"),
+					Translations.GetString ("None of the other options"),
 					3),
 
-				new Predicate (String.Format (translations.GetString ("If you whistle if you are happy and you always smile when you whistle, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
+				new Predicate (String.Format (Translations.GetString ("If you whistle if you are happy and you always smile when you whistle, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3)),
-					translations.GetString ("You smile if you are happy"),
-					translations.GetString ("You are only happy if you whistle"),
-					translations.GetString ("You whistle if you are not happy"),
-					translations.GetString ("None of the other options"),
+					Translations.GetString ("You smile if you are happy"),
+					Translations.GetString ("You are only happy if you whistle"),
+					Translations.GetString ("You whistle if you are not happy"),
+					Translations.GetString ("None of the other options"),
 					0),
 
-				new Predicate (String.Format (translations.GetString ("If your course is always honest and your course is always the best policy, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
+				new Predicate (String.Format (Translations.GetString ("If your course is always honest and your course is always the best policy, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3)),
-					translations.GetString ("Honesty is sometimes the best policy"),
-					translations.GetString ("Honesty is always the best policy"),
-					translations.GetString ("Honesty is not always the best policy"),
-					translations.GetString ("Some of the best policies are dishonest"),
+					Translations.GetString ("Honesty is sometimes the best policy"),
+					Translations.GetString ("Honesty is always the best policy"),
+					Translations.GetString ("Honesty is not always the best policy"),
+					Translations.GetString ("Some of the best policies are dishonest"),
 					0),
 
-				new Predicate (String.Format (translations.GetString ("If no old misers are cheerful and some old misers are thin, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
+				new Predicate (String.Format (Translations.GetString ("If no old misers are cheerful and some old misers are thin, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3)),
-					translations.GetString ("Some thin people are not cheerful"),
-					translations.GetString ("Thin people are not cheerful"),
-					translations.GetString ("Cheerful people are not thin"),
-					translations.GetString ("Some cheerful people are not thin"),
+					Translations.GetString ("Some thin people are not cheerful"),
+					Translations.GetString ("Thin people are not cheerful"),
+					Translations.GetString ("Cheerful people are not thin"),
+					Translations.GetString ("Some cheerful people are not thin"),
 					0),
 
-				new Predicate (String.Format (translations.GetString ("If all pigs are fat and nothing that is fed on barley-water is fat, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
+				new Predicate (String.Format (Translations.GetString ("If all pigs are fat and nothing that is fed on barley-water is fat, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3)),
-					translations.GetString ("All animals fed on barley-water are non pigs"),
-					translations.GetString ("No pigs are fed on barley-water"),
-					translations.GetString ("Pigs are not fed on barley-water"),
-					translations.GetString ("All the other options"),
+					Translations.GetString ("All animals fed on barley-water are non pigs"),
+					Translations.GetString ("No pigs are fed on barley-water"),
+					Translations.GetString ("Pigs are not fed on barley-water"),
+					Translations.GetString ("All the other options"),
 					3),
 
-				new Predicate (String.Format (translations.GetString ("If some pictures are first attempts and no first attempts are really good, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
+				new Predicate (String.Format (Translations.GetString ("If some pictures are first attempts and no first attempts are really good, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3)),
-					translations.GetString ("Some bad pictures are not first attempts"),
-					translations.GetString ("Some pictures are not really good"),
-					translations.GetString ("All bad pictures are first attempts"),
-					translations.GetString ("All the others"),
+					Translations.GetString ("Some bad pictures are not first attempts"),
+					Translations.GetString ("Some pictures are not really good"),
+					Translations.GetString ("All bad pictures are first attempts"),
+					Translations.GetString ("All the others"),
 					1),
 
-				new Predicate (String.Format (translations.GetString ("If you have been out for a walk and you are feeling better, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
+				new Predicate (String.Format (Translations.GetString ("If you have been out for a walk and you are feeling better, which of the following conclusions is correct? Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3)),
-					translations.GetString ("To feel better, you must go out for a walk"),
-					translations.GetString ("If you go out for a walk, you will feel better"),
-					translations.GetString ("Some who go out for a walk feel better"),
-					translations.GetString ("No one feels better who does not go out for a walk"),
+					Translations.GetString ("To feel better, you must go out for a walk"),
+					Translations.GetString ("If you go out for a walk, you will feel better"),
+					Translations.GetString ("Some who go out for a walk feel better"),
+					Translations.GetString ("No one feels better who does not go out for a walk"),
 					2),
 			};
 		}
 
 		public override string Name {
-			get {return translations.GetString ("Predicate Logic");}
+			get {return Translations.GetString ("Predicate Logic");}
 		}
 
 		public override string Question {
@@ -180,7 +180,7 @@ namespace gbrainy.Games.Logic
 					int option = random_indices [data];
 
 					e.Context.SetPangoNormalFontSize ();
-					e.Context.DrawStringWithWrapping (0.05, 0.02, String.Format (translations.GetString ("{0}) {1}"), Answer.GetMultiOption (data),
+					e.Context.DrawStringWithWrapping (0.05, 0.02, String.Format (Translations.GetString ("{0}) {1}"), Answer.GetMultiOption (data),
 						predicates[question].options[option].ToString ()), 0.8 - DrawAreaX);
 					e.Context.Stroke ();
 				};
@@ -193,7 +193,7 @@ namespace gbrainy.Games.Logic
 
 			gr.SetPangoLargeFontSize ();
 			gr.MoveTo (0.1, DrawAreaY);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 	}
 }
diff --git a/src/Games/Logic/PuzzleQuadrilaterals.cs b/src/Games/Logic/PuzzleQuadrilaterals.cs
index ef47b98..885c917 100644
--- a/src/Games/Logic/PuzzleQuadrilaterals.cs
+++ b/src/Games/Logic/PuzzleQuadrilaterals.cs
@@ -40,19 +40,19 @@ namespace gbrainy.Games.Logic
 		private const double figure_size = 0.15;
 
 		public override string Name {
-			get {return translations.GetString ("Quadrilaterals");}
+			get {return Translations.GetString ("Quadrilaterals");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("Which of the following figures does not belong to the group? Answer {0}, {1}, {2}, {3}, {4} or {5}."),
+				Translations.GetString ("Which of the following figures does not belong to the group? Answer {0}, {1}, {2}, {3}, {4} or {5}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3), Answer.GetMultiOption (4), 
 					Answer.GetMultiOption (5));}
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("It is the only figure with all lines of equal length.");
+				return Translations.GetString ("It is the only figure with all lines of equal length.");
 			}
 		}
 
diff --git a/src/Games/Logic/PuzzleRelatedNumbers.cs b/src/Games/Logic/PuzzleRelatedNumbers.cs
index 8b34a39..c81dadf 100644
--- a/src/Games/Logic/PuzzleRelatedNumbers.cs
+++ b/src/Games/Logic/PuzzleRelatedNumbers.cs
@@ -155,26 +155,26 @@ namespace gbrainy.Games.Logic
 		}
 
 		public override string Name {
-			get {return translations.GetString ("Related numbers");}
+			get {return Translations.GetString ("Related numbers");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("In the grid below, which number should replace the question mark?");}
+			get {return Translations.GetString ("In the grid below, which number should replace the question mark?");}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("The pattern is arithmetical and works horizontally."); }
+			get { return Translations.GetString ("The pattern is arithmetical and works horizontally."); }
 		}
 
 		public override string Rationale {
 			get {
 				switch (operation) {
 				case Operation.AddHalf:
-					return translations.GetString ("The number in the middle of every row is half of the sum of the other numbers in the row.");
+					return Translations.GetString ("The number in the middle of every row is half of the sum of the other numbers in the row.");
 				case Operation.Add:
-					return translations.GetString ("The number in the middle of every row is the sum of the other numbers in the row.");
+					return Translations.GetString ("The number in the middle of every row is the sum of the other numbers in the row.");
 				case Operation.AddDouble:
-					return translations.GetString ("The number in the middle of every row is the double of the sum of the other numbers in the row.");
+					return Translations.GetString ("The number in the middle of every row is the double of the sum of the other numbers in the row.");
 				default:
 					throw new InvalidOperationException ("Invalid value");
 				}
diff --git a/src/Games/Logic/PuzzleSquareSheets.cs b/src/Games/Logic/PuzzleSquareSheets.cs
index aa796df..2817d44 100644
--- a/src/Games/Logic/PuzzleSquareSheets.cs
+++ b/src/Games/Logic/PuzzleSquareSheets.cs
@@ -26,21 +26,21 @@ namespace gbrainy.Games.Logic
 		const double width = 0.4, height = 0.4; 
 
 		public override string Name {
-			get {return translations.GetString ("Square sheets");}
+			get {return Translations.GetString ("Square sheets");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("What is the minimum number of square sheets of paper of any size required to create the figure? Lines indicate frontiers between different sheets.");}
+			get {return Translations.GetString ("What is the minimum number of square sheets of paper of any size required to create the figure? Lines indicate frontiers between different sheets.");}
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("The sheets should overlap.");}
+			get { return Translations.GetString ("The sheets should overlap.");}
 		}
 
 		public override string Rationale {
 			get {
 				// Translators: the translated version should not take more characters that the English original
-				return translations.GetString ("A full sized square of paper (yellow), a 3/4 of the whole size square of paper (blue) in the bottom right corner, another 3/4 square of paper (green) in the top left corner and a 1/4 square of paper (red) in the top left corner.");
+				return Translations.GetString ("A full sized square of paper (yellow), a 3/4 of the whole size square of paper (blue) in the bottom right corner, another 3/4 square of paper (green) in the top left corner and a 1/4 square of paper (red) in the top left corner.");
 			}
 		}
 
@@ -77,7 +77,7 @@ namespace gbrainy.Games.Logic
 
 		void DrawAnswer (CairoContextEx gr, double x, double y)
 		{
-			ColorPalette palette = new ColorPalette (translations);
+			ColorPalette palette = new ColorPalette (Translations);
 			gr.Save ();
 
 			// A full sized square of paper
diff --git a/src/Games/Logic/PuzzleSquares.cs b/src/Games/Logic/PuzzleSquares.cs
index eb82cbf..ae91da1 100644
--- a/src/Games/Logic/PuzzleSquares.cs
+++ b/src/Games/Logic/PuzzleSquares.cs
@@ -27,24 +27,24 @@ namespace gbrainy.Games.Logic
 		private int type;
 
 		public override string Name {
-			get {return translations.GetString ("Squares");}
+			get {return Translations.GetString ("Squares");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("How many squares of any size do you count in the figure below?");} 
+			get {return Translations.GetString ("How many squares of any size do you count in the figure below?");} 
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("A square is a rectangle with sides of equal length. A square can also be built from other squares.");}
+			get { return Translations.GetString ("A square is a rectangle with sides of equal length. A square can also be built from other squares.");}
 		}
 
 		public override string Rationale {
 			get {
 				switch (type) {
 				case 0:
-					return translations.GetString ("There are 16 single squares, 9 squares made by 4 single squares, 4 squares made by 9 single squares and 1 square made by 16 single squares.");
+					return Translations.GetString ("There are 16 single squares, 9 squares made by 4 single squares, 4 squares made by 9 single squares and 1 square made by 16 single squares.");
 				case 1:
-					return translations.GetString ("There are 9 single squares, 4 squares made by 4 single squares and 1 square made by 9 single squares.");
+					return Translations.GetString ("There are 9 single squares, 4 squares made by 4 single squares and 1 square made by 9 single squares.");
 				default:
 					return string.Empty;
 				}
diff --git a/src/Games/Logic/PuzzleSquaresAndLetters.cs b/src/Games/Logic/PuzzleSquaresAndLetters.cs
index 39594ca..8b64d50 100644
--- a/src/Games/Logic/PuzzleSquaresAndLetters.cs
+++ b/src/Games/Logic/PuzzleSquaresAndLetters.cs
@@ -31,16 +31,16 @@ namespace gbrainy.Games.Logic
 		private const int figures = 3;
 
 		public override string Name {
-			get {return translations.GetString ("Squares and letters");}
+			get {return Translations.GetString ("Squares and letters");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("The letters around the squares follow a pattern. Which letter should replace the question mark in the last square?");} 
+			get {return Translations.GetString ("The letters around the squares follow a pattern. Which letter should replace the question mark in the last square?");} 
 		}
 
 		public override string Rationale {
 			get {
-				return String.Format (translations.GetString ("Every letter is calculated by taking the alphabetical position of the previous character and adding {0} to it in order to get the position of the next letter."), step);
+				return String.Format (Translations.GetString ("Every letter is calculated by taking the alphabetical position of the previous character and adding {0} to it in order to get the position of the next letter."), step);
 			}
 		}
 
diff --git a/src/Games/Logic/PuzzleTetris.cs b/src/Games/Logic/PuzzleTetris.cs
index d2a83cb..eb4d9be 100644
--- a/src/Games/Logic/PuzzleTetris.cs
+++ b/src/Games/Logic/PuzzleTetris.cs
@@ -31,18 +31,18 @@ namespace gbrainy.Games.Logic
 		private const double rect_witdh = 0.04, rect_height = 0.04, space_figures = 0.22;
 
 		public override string Name {
-			get {return translations.GetString ("Tetris");}
+			get {return Translations.GetString ("Tetris");}
 		}
 
 		public override string Question {
 			get {return String.Format (
-				translations.GetString ("What figure completes the set below? Answer {0}, {1} or {2}."),
+				Translations.GetString ("What figure completes the set below? Answer {0}, {1} or {2}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2));}
 		}
 
 		public override string Rationale {
 			get {
-				return translations.GetString ("It is the figure that completes all possible combinations with four blocks without taking into account rotations.");
+				return Translations.GetString ("It is the figure that completes all possible combinations with four blocks without taking into account rotations.");
 			}
 		}
 
@@ -168,7 +168,7 @@ namespace gbrainy.Games.Logic
 			}
 
 			gr.MoveTo (0.1, 0.4 - 0.02);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 		}
 	}
 }
diff --git a/src/Games/Logic/PuzzleTimeNow.cs b/src/Games/Logic/PuzzleTimeNow.cs
index 835062c..00c9da6 100644
--- a/src/Games/Logic/PuzzleTimeNow.cs
+++ b/src/Games/Logic/PuzzleTimeNow.cs
@@ -30,7 +30,7 @@ namespace gbrainy.Games.Logic
 		DateTime position_a, position_b, ans, sample;
 
 		public override string Name {
-			get {return translations.GetString ("Time now");}
+			get {return Translations.GetString ("Time now");}
 		}
 
 		public override string Question {
@@ -40,7 +40,7 @@ namespace gbrainy.Games.Logic
 				// http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.aspx
 				// For 12-hour clock format use {0:%h} and for 24-hour clock format use {0:%H}. The date formats {0:h} and {0:H} are invalid.
 				//
-				translations.GetPluralString (
+				Translations.GetPluralString (
 					"{0} hour ago it was as long after {1:h tt} as it was before {2:h tt} on the same day. What is the time now? Answer using the hour (e.g.: {3:h tt})",
 					"{0} hours ago it was as long after {1:h tt} as it was before {2:h tt} on the same day. What is the time now? Answer using the hour (e.g.: {3:h tt})",
 					after),
@@ -49,7 +49,7 @@ namespace gbrainy.Games.Logic
 
 		public override string Rationale {
 			get {
-				return String.Format (translations.GetPluralString (
+				return String.Format (Translations.GetPluralString (
 					"Determine the hour half way between the given times, and then add {0} hour to convert it to the present time.",
 					"Determine the hour half way between the given times, and then add {0} hours to convert it to the present time.",
 					after),
@@ -81,7 +81,7 @@ namespace gbrainy.Games.Logic
  			// Explanation of the date and time format specifications can be found here:
 			// http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.aspx
 			// For 12-hour clock format use {0:%h} and for 24-hour clock format use {0:%H}. The date formats {0:h} and {0:H} are invalid.
-			Answer.Correct = String.Format (translations.GetString ("{0:h tt}"), ans);
+			Answer.Correct = String.Format (Translations.GetString ("{0:h tt}"), ans);
 			Answer.CheckAttributes = GameAnswerCheckAttributes.IgnoreCase | GameAnswerCheckAttributes.IgnoreSpaces;
 		}
 
@@ -91,7 +91,7 @@ namespace gbrainy.Games.Logic
 			gr.DrawClock (DrawAreaX + 0.4, DrawAreaY + 0.4, figure_size,
 				0, 0 /* No hands */);
 
-			gr.DrawTextCentered (0.5, DrawAreaY + 0.3 + figure_size, translations.GetString ("Sample clock"));
+			gr.DrawTextCentered (0.5, DrawAreaY + 0.3 + figure_size, Translations.GetString ("Sample clock"));
 		}
 	}
 }
diff --git a/src/Games/Logic/PuzzleTrains.cs b/src/Games/Logic/PuzzleTrains.cs
index c07a84a..60322d2 100644
--- a/src/Games/Logic/PuzzleTrains.cs
+++ b/src/Games/Logic/PuzzleTrains.cs
@@ -37,7 +37,7 @@ namespace gbrainy.Games.Logic
 		GameType gametype;
 
 		public override string Name {
-			get {return translations.GetString ("Trains");}
+			get {return Translations.GetString ("Trains");}
 		}
 
 		public override string Question {
@@ -49,7 +49,7 @@ namespace gbrainy.Games.Logic
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("The distance formula is 'distance = rate x time'.");}
+			get { return Translations.GetString ("The distance formula is 'distance = rate x time'.");}
 		}
 
 		protected override void Initialize ()
@@ -78,11 +78,11 @@ namespace gbrainy.Games.Logic
 					// Translators:
 					//  - mph (miles per hour). You must localize this using the right unit of speed for your locale
 					// - The translated string should not use more characters than the original sentence
-					translations.GetPluralString ("A train leaves the station traveling at {0} mph. {1} hour later a second train leaves the station traveling in the same direction at {2} mph. How many hours does it take the second train, since it starts moving, to overtake the first train?",
+					Translations.GetPluralString ("A train leaves the station traveling at {0} mph. {1} hour later a second train leaves the station traveling in the same direction at {2} mph. How many hours does it take the second train, since it starts moving, to overtake the first train?",
 						"A train leaves the station traveling at {0} mph. {1} hours later a second train leaves the station traveling in the same direction at {2} mph. How many hours does it take the second train, since it starts moving, to overtake the first train?", (int) hours),
 						speed_a, hours, speed_b);
 
-				answer = translations.GetString ("You can calculate the answer by multiplying the speed of the first train by the time and dividing it by the difference of speeds.");
+				answer = Translations.GetString ("You can calculate the answer by multiplying the speed of the first train by the time and dividing it by the difference of speeds.");
 				break;
 			}
 			case GameType.Meet:
@@ -98,12 +98,12 @@ namespace gbrainy.Games.Logic
 				question = String.Format (
 					// Translators:
 					//  - mph (miles per hour) and miles must be localized this using the right unit of speed for your locale
-					translations.GetPluralString ("Two trains separated by {0} mile are heading towards each other on straight parallel tracks. One travels at {1} mph and the other at {2} mph. In how many hours will they meet?",
+					Translations.GetPluralString ("Two trains separated by {0} mile are heading towards each other on straight parallel tracks. One travels at {1} mph and the other at {2} mph. In how many hours will they meet?",
 						"Two trains separated by {0} miles are heading towards each other on straight parallel tracks. One travels at {1} mph and the other at {2} mph. In how many hours will they meet?",
 						(int) distance),
 						distance, speed_a, speed_b);
 
-				answer = translations.GetString ("You can calculate the answer by dividing the distance by the sum of both speeds.");
+				answer = Translations.GetString ("You can calculate the answer by dividing the distance by the sum of both speeds.");
 				break;
 			}
 			case GameType.Apart:
@@ -120,12 +120,12 @@ namespace gbrainy.Games.Logic
 				question = String.Format (
 					// Translators:
 					//  - mph (miles per hour) and miles must be localized this using the right unit of speed for your locale
-					translations.GetPluralString ("Two trains on straight parallel tracks leave from the same point and time traveling in opposite directions at {0} and {1} mph respectively. In how many hours will they be {2} mile apart?",
+					Translations.GetPluralString ("Two trains on straight parallel tracks leave from the same point and time traveling in opposite directions at {0} and {1} mph respectively. In how many hours will they be {2} mile apart?",
 						"Two trains on straight parallel tracks leave from the same point and time traveling in opposite directions at {0} and {1} mph respectively. In how many hours will they be {2} miles apart?",
 						(int) distance),
 						speed_a, speed_b, distance);
 
-				answer = translations.GetString ("You can calculate the answer by dividing the distance by the sum of both speeds.");
+				answer = Translations.GetString ("You can calculate the answer by dividing the distance by the sum of both speeds.");
 				break;
 			}
 			default:
diff --git a/src/Games/Logic/PuzzleTriangles.cs b/src/Games/Logic/PuzzleTriangles.cs
index 82f5f08..a01de01 100644
--- a/src/Games/Logic/PuzzleTriangles.cs
+++ b/src/Games/Logic/PuzzleTriangles.cs
@@ -28,20 +28,20 @@ namespace gbrainy.Games.Logic
 	{
 		int type;
 		public override string Name {
-			get {return translations.GetString ("Triangles");}
+			get {return Translations.GetString ("Triangles");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("How many triangles of any size do you count in the figure below?");} 
+			get {return Translations.GetString ("How many triangles of any size do you count in the figure below?");} 
 		}
 
 		public override string Tip {
-			get { return translations.GetString ("A triangle can be embedded inside another triangle.");}
+			get { return Translations.GetString ("A triangle can be embedded inside another triangle.");}
 		}
 
 		public override string Rationale {
 			get {
-				return String.Format (translations.GetString ("The triangles are made by connecting the following points: {0}"),
+				return String.Format (Translations.GetString ("The triangles are made by connecting the following points: {0}"),
 					(type == 0) ? "bdc, dcf, dfg, abd, ade, edg, acg, abg, bcg, afg, ecg, acd, acf, ace, adg, cdg." : 
 					"dcf, ade, acg, afg, ecg, acd, acf, ace.");
 			}
diff --git a/src/Games/Logic/PuzzleTrianglesWithNumbers.cs b/src/Games/Logic/PuzzleTrianglesWithNumbers.cs
index 516d577..5185977 100644
--- a/src/Games/Logic/PuzzleTrianglesWithNumbers.cs
+++ b/src/Games/Logic/PuzzleTrianglesWithNumbers.cs
@@ -54,21 +54,21 @@ namespace gbrainy.Games.Logic
 		};
 
 		public override string Name {
-			get {return translations.GetString ("Triangles with numbers");}
+			get {return Translations.GetString ("Triangles with numbers");}
 		}
 
 		public override string Question {
-			get {return translations.GetString ("Which number should replace the question mark below?");} 
+			get {return Translations.GetString ("Which number should replace the question mark below?");} 
 		}
 
 
 		public override string Tip {
-			get { return translations.GetString ("All the triangles share a property and are independent of the rest.");}
+			get { return Translations.GetString ("All the triangles share a property and are independent of the rest.");}
 		}
 
 		public override string Rationale {
 			get {
-				return String.Format (translations.GetString ("The result of multiplying the two numbers inside every triangle is {0}."), answer_number);
+				return String.Format (Translations.GetString ("The result of multiplying the two numbers inside every triangle is {0}."), answer_number);
 			}
 		}
 
diff --git a/src/Games/Memory/MemoryColouredFigures.cs b/src/Games/Memory/MemoryColouredFigures.cs
index e5cbec6..e05cfef 100644
--- a/src/Games/Memory/MemoryColouredFigures.cs
+++ b/src/Games/Memory/MemoryColouredFigures.cs
@@ -47,7 +47,7 @@ namespace gbrainy.Games.Memory
 		private const double block_space = 0.35;
 
 		public override string Name {
-			get {return translations.GetString ("Colored figures");}
+			get {return Translations.GetString ("Colored figures");}
 		}
 
 		public override bool UsesColors {
@@ -56,7 +56,7 @@ namespace gbrainy.Games.Memory
 
 		public override string MemoryQuestion {
 			get { return String.Format (
-				translations.GetString ("Which of these figures was previously shown? Answer {0}, {1}, {2} or {3}."),
+				Translations.GetString ("Which of these figures was previously shown? Answer {0}, {1}, {2} or {3}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
 
@@ -81,7 +81,7 @@ namespace gbrainy.Games.Memory
 			rect_h = 0.3 / columns;
 			squares_colours = new SquareColor [squares * answers];
 			color_sheme = random.Next (2);
-			palette = new ColorPalette (translations);
+			palette = new ColorPalette (Translations);
 
 			for (int i = 0; i < squares; i++)
 				squares_colours[i] = (SquareColor) random.Next ((int) SquareColor.Length);
diff --git a/src/Games/Memory/MemoryColouredText.cs b/src/Games/Memory/MemoryColouredText.cs
index e7e576a..011d681 100644
--- a/src/Games/Memory/MemoryColouredText.cs
+++ b/src/Games/Memory/MemoryColouredText.cs
@@ -32,7 +32,7 @@ namespace gbrainy.Games.Memory
 		private ArrayListIndicesRandom color_order;
 
 		public override string Name {
-			get {return translations.GetString ("Colored text");}
+			get {return Translations.GetString ("Colored text");}
 		}
 
 		public override bool UsesColors {
@@ -41,7 +41,7 @@ namespace gbrainy.Games.Memory
 
 		public override string MemoryQuestion {
 			get { 
-				return String.Format (translations.GetString ("What was the color of the text that said '{0}'?"), question_colorname);}
+				return String.Format (Translations.GetString ("What was the color of the text that said '{0}'?"), question_colorname);}
 		}
 
 		protected override void Initialize ()
@@ -60,7 +60,7 @@ namespace gbrainy.Games.Memory
 				break;
 			}
 
-			palette = new ColorPalette (translations);
+			palette = new ColorPalette (Translations);
 
 			// It is not acceptable that all the random colors names match the right colors
 			while (done == false) {
diff --git a/src/Games/Memory/MemoryCountDots.cs b/src/Games/Memory/MemoryCountDots.cs
index 2ebc6a2..c2d9093 100644
--- a/src/Games/Memory/MemoryCountDots.cs
+++ b/src/Games/Memory/MemoryCountDots.cs
@@ -37,7 +37,7 @@ namespace gbrainy.Games.Memory
 		private int [] dotsPerColor;
 
 		public override string Name {
-			get {return translations.GetString ("Counting dots");}
+			get {return Translations.GetString ("Counting dots");}
 		}
 
 		public override bool UsesColors {
@@ -48,7 +48,7 @@ namespace gbrainy.Games.Memory
 			get { 
 				return String.Format (
 					// Translators: {0} is the name of the color. The color name is always singular
-					translations.GetString ("How many dots of {0} color were in the previous image? Answer using numbers."),
+					Translations.GetString ("How many dots of {0} color were in the previous image? Answer using numbers."),
 					palette.Name (0));
 			}
 		}
@@ -70,7 +70,7 @@ namespace gbrainy.Games.Memory
 			location_order = new ArrayListIndicesRandom (NUMCOLUMNS*NUMCOLUMNS);
 			location_order.Initialize();
 
-			palette = new ColorPalette (translations);
+			palette = new ColorPalette (Translations);
 
 			// dotsPerColor is compared with iterator of dots. (this iterator is 0 based, so I
 			// have to substract 1 to make dotsPerColor contents 0 based.
diff --git a/src/Games/Memory/MemoryFacts.cs b/src/Games/Memory/MemoryFacts.cs
index cda8442..c733559 100644
--- a/src/Games/Memory/MemoryFacts.cs
+++ b/src/Games/Memory/MemoryFacts.cs
@@ -45,7 +45,7 @@ namespace gbrainy.Games.Memory
 		}
 
 		public override string Name {
-			get {return translations.GetString ("Memorize facts");}
+			get {return Translations.GetString ("Memorize facts");}
 		}
 
 		public override string MemoryQuestion {
@@ -103,12 +103,12 @@ namespace gbrainy.Games.Memory
 				fact.fact = String.Format (
 					// Translators: {0} is replaced by a number, {1} by a year (like 1940)
 					// Day in English does not need to be plural
-					translations.GetPluralString ("Shiny Cars had already announced a {0} day production halt next month, but before then it had not halted production since {1}.",
+					Translations.GetPluralString ("Shiny Cars had already announced a {0} day production halt next month, but before then it had not halted production since {1}.",
 					"Shiny Cars had already announced a {0} day production halt next month, but before then it had not halted production since {1}.",
 					fact.answers [0]),
 					fact.answers [0], fact.answers [1]);
-				fact.questions [0] = translations.GetString ("How many days did Shiny Cars halt its production for?");
-				fact.questions [1] = translations.GetString ("In what year did Shiny Cars last halt its production?");
+				fact.questions [0] = Translations.GetString ("How many days did Shiny Cars halt its production for?");
+				fact.questions [1] = Translations.GetString ("In what year did Shiny Cars last halt its production?");
 				break;
 			case 1:
 				fact.Initialize (2);
@@ -116,26 +116,26 @@ namespace gbrainy.Games.Memory
 				fact.answers [1] = 1914 + random.Next (50);
 				fact.fact = String.Format (
 					// Translators: {0} is replaced by a number, {1} by a year (like 1940)
-					translations.GetString ("Shiny Cars sales fell {0}% this past December, the worst decline since {1}."),
+					Translations.GetString ("Shiny Cars sales fell {0}% this past December, the worst decline since {1}."),
 					fact.answers [0], fact.answers [1]);
-				fact.questions [0] = translations.GetString ("By how much did company sales fall last December?");
-				fact.questions [1] = translations.GetString ("In what year was Shiny Cars sales total lower than that of last December?");
+				fact.questions [0] = Translations.GetString ("By how much did company sales fall last December?");
+				fact.questions [1] = Translations.GetString ("In what year was Shiny Cars sales total lower than that of last December?");
 				break;
 			case 2:
 				fact.Initialize (1);
 				fact.answers [0] = 10 + random.Next (30);
-				fact.fact = String.Format (translations.GetString ("About {0}% of Shiny Cars produced worldwide are sold in Europe."),
+				fact.fact = String.Format (Translations.GetString ("About {0}% of Shiny Cars produced worldwide are sold in Europe."),
 					fact.answers [0]);
-				fact.questions [0] = translations.GetString ("What percentage of all Shiny Cars produced worldwide are sold in Europe?");
+				fact.questions [0] = Translations.GetString ("What percentage of all Shiny Cars produced worldwide are sold in Europe?");
 				break;
 			case 3:
 				fact.Initialize (2);
 				fact.answers [0] = 10 + random.Next (30);
 				fact.answers [1] = 100 - (1 + random.Next (10)) - fact.answers [0];
-				fact.fact = String.Format (translations.GetString ("About {0}% of Shiny Cars use diesel, {1}% use gasoline and the remainder use electricity."),
+				fact.fact = String.Format (Translations.GetString ("About {0}% of Shiny Cars use diesel, {1}% use gasoline and the remainder use electricity."),
 					fact.answers [0], fact.answers [1]);
-				fact.questions [0] = translations.GetString ("What percentage of Shiny Cars use diesel?");
-				fact.questions [1] = translations.GetString ("What percentage of Shiny Cars use gasoline?");
+				fact.questions [0] = Translations.GetString ("What percentage of Shiny Cars use diesel?");
+				fact.questions [1] = Translations.GetString ("What percentage of Shiny Cars use gasoline?");
 				break;
 			default:
 				throw new Exception ("Invalid index value");
diff --git a/src/Games/Memory/MemoryFigures.cs b/src/Games/Memory/MemoryFigures.cs
index cd49ea0..e2a5a49 100644
--- a/src/Games/Memory/MemoryFigures.cs
+++ b/src/Games/Memory/MemoryFigures.cs
@@ -51,12 +51,12 @@ namespace gbrainy.Games.Memory
 		}
 
 		public override string Name {
-			get {return translations.GetString ("Memorize figures");}
+			get {return Translations.GetString ("Memorize figures");}
 		}
 
 		public override string MemoryQuestion {
 			get { 
-				return translations.GetString ("In which cell is the other figure like the one shown below? Answer the cell number." );}
+				return Translations.GetString ("In which cell is the other figure like the one shown below? Answer the cell number." );}
 		}
 
 		protected override void Initialize ()
diff --git a/src/Games/Memory/MemoryFiguresAndText.cs b/src/Games/Memory/MemoryFiguresAndText.cs
index 8f5054e..7774b7a 100644
--- a/src/Games/Memory/MemoryFiguresAndText.cs
+++ b/src/Games/Memory/MemoryFiguresAndText.cs
@@ -51,24 +51,24 @@ namespace gbrainy.Games.Memory
 
 		internal class FigureTypeConverter
 		{
-			ITranslations translations;
+			ITranslations Translations {get; set;}
 
 			internal FigureTypeConverter (ITranslations translations)
 			{
-				this.translations = translations;
+				Translations = translations;
 			}
 
 			internal string ToString (FigureType type)
 			{
 				switch (type) {
 				case FigureType.Triangle:
-					return translations.GetString ("Triangle");
+					return Translations.GetString ("Triangle");
 				case FigureType.Square:
-					return translations.GetString ("Square");
+					return Translations.GetString ("Square");
 				case FigureType.Pentagon:
-					return translations.GetString ("Pentagon");
+					return Translations.GetString ("Pentagon");
 				case FigureType.Circle:
-					return translations.GetString ("Circle");
+					return Translations.GetString ("Circle");
 				default:
 					throw new InvalidOperationException ();
 				}
@@ -76,11 +76,11 @@ namespace gbrainy.Games.Memory
 		}
 
 		public override string Name {
-			get {return translations.GetString ("Memorize figures and text");}
+			get {return Translations.GetString ("Memorize figures and text");}
 		}
 
 		public override string MemoryQuestion {
-			get { return String.Format (translations.GetString 
+			get { return String.Format (Translations.GetString 
 				("The list below enumerates the figures shown in the previous image except for one. Which is the missing figure? Answer {0}, {1}, {2} or {3}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));
 			}
@@ -88,7 +88,7 @@ namespace gbrainy.Games.Memory
 
 		protected override void Initialize ()
 		{
-			converter = new FigureTypeConverter (translations);
+			converter = new FigureTypeConverter (Translations);
 
 			switch (CurrentDifficulty) {
 			case GameDifficulty.Easy:
@@ -139,7 +139,7 @@ namespace gbrainy.Games.Memory
 					int d = (int) e.Data;
 					e.Context.SetPangoLargeFontSize ();
 					e.Context.MoveTo (0.07, 0.02);
-					e.Context.ShowPangoText (String.Format (translations.GetString ("{0}) {1}"), Answer.GetMultiOption (d),
+					e.Context.ShowPangoText (String.Format (Translations.GetString ("{0}) {1}"), Answer.GetMultiOption (d),
 						converter.ToString (answers[d])));
 				};
 			}
@@ -216,10 +216,10 @@ namespace gbrainy.Games.Memory
 
 			gr.SetPangoLargeFontSize ();
 			gr.MoveTo (0, 0.4);
-			gr.ShowPangoText (translations.GetString ("Choose one of the following:"));
+			gr.ShowPangoText (Translations.GetString ("Choose one of the following:"));
 
 			gr.MoveTo (0, 0.08);
-			gr.ShowPangoText (translations.GetString ("List of images shown before"));
+			gr.ShowPangoText (Translations.GetString ("List of images shown before"));
 		}
 
 		public override void DrawObjectToMemorize (CairoContextEx gr, int area_width, int area_height, bool rtl)
diff --git a/src/Games/Memory/MemoryFiguresNumbers.cs b/src/Games/Memory/MemoryFiguresNumbers.cs
index 93a8c9d..10015dd 100644
--- a/src/Games/Memory/MemoryFiguresNumbers.cs
+++ b/src/Games/Memory/MemoryFiguresNumbers.cs
@@ -35,12 +35,12 @@ namespace gbrainy.Games.Memory
 		private const double block_space = 0.35;
 
 		public override string Name {
-			get {return translations.GetString ("Figures with numbers");}
+			get {return Translations.GetString ("Figures with numbers");}
 		}
 
 		public override string MemoryQuestion {
 			get { return String.Format (
-				translations.GetString ("Which one of these squares was previously shown? Answer {0}, {1}, {2} or {3}."),
+				Translations.GetString ("Which one of these squares was previously shown? Answer {0}, {1}, {2} or {3}."),
 				Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
 
diff --git a/src/Games/Memory/MemoryIndications.cs b/src/Games/Memory/MemoryIndications.cs
index 4d067f4..07bf69c 100644
--- a/src/Games/Memory/MemoryIndications.cs
+++ b/src/Games/Memory/MemoryIndications.cs
@@ -32,13 +32,14 @@ namespace gbrainy.Games.Memory
 		{
 			public Type type;
 			public object obj;
-			ITranslations translations;
+
+			private ITranslations Translations {get; set;}
 
 			public Indication (ITranslations translations, Type type, object obj)
 			{
 				this.type = type;
 				this.obj = obj;
-				this.translations = translations;
+				Translations = translations;
 			}
 
 			public enum Type
@@ -129,22 +130,22 @@ namespace gbrainy.Games.Memory
 			{
 				switch (type) {
 				case Indication.Type.Start:
-					return String.Format (translations.GetString ("Start at point number {0}"), (int) obj);
+					return String.Format (Translations.GetString ("Start at point number {0}"), (int) obj);
 				case Indication.Type.Turn: {
 					switch ((TurnDirection) obj) {
 					case TurnDirection.Right:
-						return translations.GetString ("Move right");
+						return Translations.GetString ("Move right");
 					case TurnDirection.Left:
-						return translations.GetString ("Move left");
+						return Translations.GetString ("Move left");
 					case TurnDirection.Up:
-						return translations.GetString ("Move up");
+						return Translations.GetString ("Move up");
 					case TurnDirection.Down:
-						return translations.GetString ("Move down");
+						return Translations.GetString ("Move down");
 					}
 					break;
 				}
 				case Indication.Type.End:
-					return String.Format (translations.GetString ("End at point {0}"), obj);
+					return String.Format (Translations.GetString ("End at point {0}"), obj);
 				}
 				return null;
 			}
@@ -158,13 +159,13 @@ namespace gbrainy.Games.Memory
 		private int ans;
 
 		public override string Name {
-			get {return translations.GetString ("Memorize indications");}
+			get {return Translations.GetString ("Memorize indications");}
 		}
 
 		public override string MemoryQuestion {
 			get { 
 				return String.Format (
-					translations.GetString ("Which of the following graphics represents the indications previously given? Answer {0}, {1}, {2} or {3}."),
+					Translations.GetString ("Which of the following graphics represents the indications previously given? Answer {0}, {1}, {2} or {3}."),
 					Answer.GetMultiOption (0), Answer.GetMultiOption (1), Answer.GetMultiOption (2), Answer.GetMultiOption (3));}
 		}
 
@@ -173,23 +174,23 @@ namespace gbrainy.Games.Memory
 			indications = new Indication [CurrentDifficulty == GameDifficulty.Easy ? 5 : 7];
 			Indication.TurnDirection second_turn = (Indication.TurnDirection) 2 +  random.Next (2);
 		
-			indications[0] = new Indication (translations, Indication.Type.Start, 0);
-			indications[1] = new Indication (translations, Indication.Type.Turn, random.Next (2)); // right or left
-			indications[2] = new Indication (translations, Indication.Type.Turn, second_turn); // up or down
-			indications[3] = new Indication (translations, Indication.Type.Turn, random.Next (2)); // right or left
+			indications[0] = new Indication (Translations, Indication.Type.Start, 0);
+			indications[1] = new Indication (Translations, Indication.Type.Turn, random.Next (2)); // right or left
+			indications[2] = new Indication (Translations, Indication.Type.Turn, second_turn); // up or down
+			indications[3] = new Indication (Translations, Indication.Type.Turn, random.Next (2)); // right or left
 
 			Answer.CheckAttributes |= GameAnswerCheckAttributes.MultiOption | GameAnswerCheckAttributes.IgnoreSpaces;
 
 			if (CurrentDifficulty==GameDifficulty.Easy) {
-				indications[4] = new Indication (translations, Indication.Type.End, 1);		
+				indications[4] = new Indication (Translations, Indication.Type.End, 1);		
 			} else {
 				if (second_turn == Indication.TurnDirection.Up)
-					indications[4] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Up);
+					indications[4] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Up);
 				else
-					indications[4] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Down);
+					indications[4] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Down);
 
-				indications[5] = new Indication (translations, Indication.Type.Turn, random.Next (2)); // right or left
-				indications[6] = new Indication (translations, Indication.Type.End, 1);
+				indications[5] = new Indication (Translations, Indication.Type.Turn, random.Next (2)); // right or left
+				indications[6] = new Indication (Translations, Indication.Type.End, 1);
 			}
 		
 			indications_wrongA = CopyAnswer ();
@@ -197,33 +198,33 @@ namespace gbrainy.Games.Memory
 			indications_wrongC = CopyAnswer ();
 
 			if ((Indication.TurnDirection) indications[3].obj == Indication.TurnDirection.Right) {
-				indications_wrongA[3] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Left);
+				indications_wrongA[3] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Left);
 			}
 			else {
-				indications_wrongA[3] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Right);
+				indications_wrongA[3] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Right);
 			}
 
 			if (CurrentDifficulty == GameDifficulty.Easy) {
 				if ((Indication.TurnDirection) indications[2].obj == Indication.TurnDirection.Up) {
-					indications_wrongB[2] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Down);
+					indications_wrongB[2] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Down);
 				}
 				else {
-					indications_wrongB[2] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Up);
+					indications_wrongB[2] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Up);
 				}
 			} else {
 				if ((Indication.TurnDirection) indications[5].obj == Indication.TurnDirection.Right) {
-					indications_wrongB[5] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Left);
+					indications_wrongB[5] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Left);
 				}
 				else {
-					indications_wrongB[5] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Right);
+					indications_wrongB[5] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Right);
 				}
 			}
 
 			if ((Indication.TurnDirection) indications[1].obj == Indication.TurnDirection.Right) {
-				indications_wrongC[1] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Left);
+				indications_wrongC[1] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Left);
 			}
 			else {
-				indications_wrongC[1] = new Indication (translations, Indication.Type.Turn, Indication.TurnDirection.Right);
+				indications_wrongC[1] = new Indication (Translations, Indication.Type.Turn, Indication.TurnDirection.Right);
 			}
 		
 			base.Initialize ();
@@ -286,7 +287,7 @@ namespace gbrainy.Games.Memory
 		{
 			Indication[] answer = new Indication [indications.Length];
 			for (int i = 0; i < indications.Length; i++)
-				answer[i] = new Indication (translations, indications[i].type, indications[i].obj);
+				answer[i] = new Indication (Translations, indications[i].type, indications[i].obj);
 
 			return answer;
 		}
diff --git a/src/Games/Memory/MemoryNumbers.cs b/src/Games/Memory/MemoryNumbers.cs
index 9f22be2..2492229 100644
--- a/src/Games/Memory/MemoryNumbers.cs
+++ b/src/Games/Memory/MemoryNumbers.cs
@@ -32,11 +32,11 @@ namespace gbrainy.Games.Memory
 		class Challenge
 		{
 			protected static int [] numbers;
-			protected ITranslations translations;
+			protected ITranslations Translations {get; set;}
 
 			public Challenge (ITranslations translations)
 			{
-				this.translations = translations;
+				Translations = translations;
 			}
 
 			public static int[] Numbers {
@@ -62,7 +62,7 @@ namespace gbrainy.Games.Memory
 
 			public override string Question {
 				get {
-					return translations.GetString ("How many odd numbers were in the previous image? Answer using numbers.");
+					return Translations.GetString ("How many odd numbers were in the previous image? Answer using numbers.");
 				}
 			}
 
@@ -87,7 +87,7 @@ namespace gbrainy.Games.Memory
 
 			public override string Question {
 				get {
-					return translations.GetString ("How many even numbers were in the previous image? Answer using numbers.");
+					return Translations.GetString ("How many even numbers were in the previous image? Answer using numbers.");
 				}
 			}
 
@@ -112,7 +112,7 @@ namespace gbrainy.Games.Memory
 
 			public override string Question {
 				get {
-					return translations.GetString ("How many numbers with more than one digit were in the previous image? Answer using numbers.");
+					return Translations.GetString ("How many numbers with more than one digit were in the previous image? Answer using numbers.");
 				}
 			}
 
@@ -129,7 +129,7 @@ namespace gbrainy.Games.Memory
 		}
 
 		public override string Name {
-			get {return translations.GetString  ("Memorize numbers");}
+			get {return Translations.GetString  ("Memorize numbers");}
 		}
 
 		public override string MemoryQuestion {
@@ -163,13 +163,13 @@ namespace gbrainy.Games.Memory
 
 			switch (random.Next (num_games)) {
 			case 0:
-				current_game = new ChallengeOdds (translations);
+				current_game = new ChallengeOdds (Translations);
 				break;
 			case 1:
-				current_game = new ChallengeEvens (translations);
+				current_game = new ChallengeEvens (Translations);
 				break;
 			case 2:
-				current_game = new ChallengeTwoDigits (translations);
+				current_game = new ChallengeTwoDigits (Translations);
 				break;
 			}
 
diff --git a/src/Games/Memory/MemoryWords.cs b/src/Games/Memory/MemoryWords.cs
index 73b845d..ce05f68 100644
--- a/src/Games/Memory/MemoryWords.cs
+++ b/src/Games/Memory/MemoryWords.cs
@@ -32,12 +32,12 @@ namespace gbrainy.Games.Memory
 		private int answer;
 
 		public override string Name {
-			get {return translations.GetString ("Memorize words");}
+			get {return Translations.GetString ("Memorize words");}
 		}
 
 		public override string MemoryQuestion {
 			get { 
-				return translations.GetString ("There is a missing word from the previous list. Which one is the missing word?");}
+				return Translations.GetString ("There is a missing word from the previous list. Which one is the missing word?");}
 		}
 
 		protected override void Initialize ()
@@ -46,53 +46,53 @@ namespace gbrainy.Games.Memory
 			words = new List <string> (total_words);
 
 			// Body parts
-			words.Add (translations.GetString ("wrist"));
-			words.Add (translations.GetString ("elbow"));
-			words.Add (translations.GetString ("armpit"));
-			words.Add (translations.GetString ("hand"));
-			words.Add (translations.GetString ("chest"));
+			words.Add (Translations.GetString ("wrist"));
+			words.Add (Translations.GetString ("elbow"));
+			words.Add (Translations.GetString ("armpit"));
+			words.Add (Translations.GetString ("hand"));
+			words.Add (Translations.GetString ("chest"));
 			
 			//Fishes
-			words.Add (translations.GetString ("sardine"));
-			words.Add (translations.GetString ("trout"));
-			words.Add (translations.GetString ("monkfish"));
-			words.Add (translations.GetString ("cod"));
-			words.Add (translations.GetString ("salmon"));
+			words.Add (Translations.GetString ("sardine"));
+			words.Add (Translations.GetString ("trout"));
+			words.Add (Translations.GetString ("monkfish"));
+			words.Add (Translations.GetString ("cod"));
+			words.Add (Translations.GetString ("salmon"));
 
 			// Vegetables
-			words.Add (translations.GetString ("potato"));
-			words.Add (translations.GetString ("ginger"));			
-			words.Add (translations.GetString ("pepper"));
-			words.Add (translations.GetString ("garlic"));
-			words.Add (translations.GetString ("pumpkin"));
+			words.Add (Translations.GetString ("potato"));
+			words.Add (Translations.GetString ("ginger"));			
+			words.Add (Translations.GetString ("pepper"));
+			words.Add (Translations.GetString ("garlic"));
+			words.Add (Translations.GetString ("pumpkin"));
 
 			// Bicycle
-			words.Add (translations.GetString ("brake"));
-			words.Add (translations.GetString ("pedal"));
-			words.Add (translations.GetString ("chain"));			
-			words.Add (translations.GetString ("wheel"));
-			words.Add (translations.GetString ("handlebar"));
+			words.Add (Translations.GetString ("brake"));
+			words.Add (Translations.GetString ("pedal"));
+			words.Add (Translations.GetString ("chain"));			
+			words.Add (Translations.GetString ("wheel"));
+			words.Add (Translations.GetString ("handlebar"));
 
 			// Music
-			words.Add (translations.GetString ("drummer"));
-			words.Add (translations.GetString ("speaker"));
-			words.Add (translations.GetString ("lyrics"));
-			words.Add (translations.GetString ("beat"));			
-			words.Add (translations.GetString ("song"));
+			words.Add (Translations.GetString ("drummer"));
+			words.Add (Translations.GetString ("speaker"));
+			words.Add (Translations.GetString ("lyrics"));
+			words.Add (Translations.GetString ("beat"));			
+			words.Add (Translations.GetString ("song"));
 
 			// Weather
-			words.Add (translations.GetString ("cloud"));
-			words.Add (translations.GetString ("rain"));
-			words.Add (translations.GetString ("storm"));
-			words.Add (translations.GetString ("fog"));
-			words.Add (translations.GetString ("rainbow"));
+			words.Add (Translations.GetString ("cloud"));
+			words.Add (Translations.GetString ("rain"));
+			words.Add (Translations.GetString ("storm"));
+			words.Add (Translations.GetString ("fog"));
+			words.Add (Translations.GetString ("rainbow"));
 
 			// Animals
-			words.Add (translations.GetString ("rabbit"));
-			words.Add (translations.GetString ("mouse"));
-			words.Add (translations.GetString ("monkey"));
-			words.Add (translations.GetString ("bear"));
-			words.Add (translations.GetString ("wolf"));
+			words.Add (Translations.GetString ("rabbit"));
+			words.Add (Translations.GetString ("mouse"));
+			words.Add (Translations.GetString ("monkey"));
+			words.Add (Translations.GetString ("bear"));
+			words.Add (Translations.GetString ("wolf"));
 
 			switch (CurrentDifficulty) {
 			case GameDifficulty.Easy:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]