private void WireLanguage(ContainerBuilder builder)
        {
            builder.Register(context =>
            {
                var languageManager = new LanguageManager();
                languageManager.AddTranslation(new EnglishTranslations());
                languageManager.AddTranslation(new GermanTranslations());

                return(languageManager.GetCurrentTranslation());
            });
        }
		public void Falls_back_to_english_when_translation_missing() {
			var l = new LanguageManager();
			l.AddTranslation("en", "TestValidator", "foo");

			using (new CultureScope("zh-CN")) {
				var msg = l.GetString("TestValidator");
				msg.ShouldEqual("foo");
			}
		}
		public void Can_replace_message_without_overriding_all_languages() {
			using (new CultureScope("fr-FR")) {
				var custom = new LanguageManager();
				custom.AddTranslation("fr", "NotNullValidator", "foo");
				var msg = custom.GetString("NotNullValidator");
				msg.ShouldEqual("foo");

				// Using a custom translation should only override the single message.
				// Other messages in the language should be unaffected.
				// Need to do this test as non-english, as english is always loaded.
				msg = custom.GetString("NotEmptyValidator");
				msg.ShouldEqual("'{PropertyName}' ne doit pas être vide.");
			}
		}