From 90275f1d56a6d74f93021d9b15a742f381ec4bfd Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 28 May 2017 17:53:44 -0400 Subject: add shortcut for translation with tokens (#296) --- src/StardewModdingAPI/Framework/TranslationHelper.cs | 8 ++++++++ src/StardewModdingAPI/ITranslationHelper.cs | 5 +++++ src/StardewModdingAPI/Translation.cs | 4 ++-- 3 files changed, 15 insertions(+), 2 deletions(-) (limited to 'src/StardewModdingAPI') diff --git a/src/StardewModdingAPI/Framework/TranslationHelper.cs b/src/StardewModdingAPI/Framework/TranslationHelper.cs index e4a178e2..1e73c425 100644 --- a/src/StardewModdingAPI/Framework/TranslationHelper.cs +++ b/src/StardewModdingAPI/Framework/TranslationHelper.cs @@ -60,6 +60,14 @@ namespace StardewModdingAPI.Framework return new Translation(this.ModName, this.Locale, key, text); } + /// Get a translation for the current locale. + /// The translation key. + /// An object containing token key/value pairs. This can be an anonymous object (like new { value = 42, name = "Cranberries" }), a dictionary, or a class instance. + public Translation Get(string key, object tokens) + { + return this.Get(key).Tokens(tokens); + } + /// Set the translations to use. /// The translations to use. internal TranslationHelper SetTranslations(IDictionary> translations) diff --git a/src/StardewModdingAPI/ITranslationHelper.cs b/src/StardewModdingAPI/ITranslationHelper.cs index 23980a1b..15f6b3c8 100644 --- a/src/StardewModdingAPI/ITranslationHelper.cs +++ b/src/StardewModdingAPI/ITranslationHelper.cs @@ -25,5 +25,10 @@ namespace StardewModdingAPI /// Get a translation for the current locale. /// The translation key. Translation Get(string key); + + /// Get a translation for the current locale. + /// The translation key. + /// An object containing token key/value pairs. This can be an anonymous object (like new { value = 42, name = "Cranberries" }), a dictionary, or a class instance. + Translation Get(string key, object tokens); } } diff --git a/src/StardewModdingAPI/Translation.cs b/src/StardewModdingAPI/Translation.cs index 31a1b7e1..b86efc10 100644 --- a/src/StardewModdingAPI/Translation.cs +++ b/src/StardewModdingAPI/Translation.cs @@ -83,12 +83,12 @@ namespace StardewModdingAPI } /// Replace tokens in the text like {{value}} with the given values. Returns a new instance. - /// An object containing token key/value pairs. This can be an anonymous object (like new { value = 42, name = "Cranberries" }) or a dictionary of token values. + /// An object containing token key/value pairs. This can be an anonymous object (like new { value = 42, name = "Cranberries" }), a dictionary, or a class instance. /// The argument is null. public Translation Tokens(object tokens) { if (tokens == null) - throw new ArgumentNullException(nameof(tokens)); + return this; // get dictionary of tokens IDictionary tokenLookup = new Dictionary(StringComparer.InvariantCultureIgnoreCase); -- cgit