Example #1
0
        /// <summary>
        /// Adds multiple temporary language tokens, and corresponding values, to a specific language. Overlays added later in time will take precedence. Call LanguageOverlay.Remove() on the result to remove your changes to these language tokens.
        /// </summary>
        /// <param name="tokenDictionary">dictionaries of key-value (eg ["mytoken"]="mystring")</param>
        /// <param name="language">Language you want to add this to</param>
        /// <returns>A LanguageOverlay representing your language addition/override; call .Remove() on it to undo the change.</returns>
        public static LanguageOverlay AddOverlay(Dictionary <string, string?>?tokenDictionary, string?language)
        {
            var overlay = new LanguageOverlay(tokenDictionary.Select(kvp => { return(new OverlayTokenData(kvp.Key, kvp.Value, language)); }).ToArray());

            overlay.Add();
            return(overlay);
        }
Example #2
0
        /// <summary>
        /// Adds a single temporary language token, and its associated value, to a specific language. Please add multiple instead (dictionary- or file-based signatures) where possible. Overlays added later in time will take precedence. Call LanguageOverlay.Remove() on the result to undo your change to this language token.
        /// </summary>
        /// <param name="key">Token the game asks</param>
        /// <param name="value">Value it gives back</param>
        /// <param name="lang">Language you want to add this to</param>
        /// <returns>A LanguageOverlay representing your language addition/override; call .Remove() on it to undo the change. May be safely disposed after calling .Remove().</returns>
        public static LanguageOverlay AddOverlay(string?key, string?value, string?lang)
        {
            var overlay = new LanguageOverlay(new OverlayTokenData(key, value, lang));

            overlay.Add();
            return(overlay);
        }
Example #3
0
        /// <summary>
        /// Adds multiple temporary language tokens, and corresponding values, to mixed languages. Overlays added later in time will take precedence. Call LanguageOverlay.Remove() on the result to remove your changes to these language tokens.
        /// </summary>
        /// <param name="languageDictionary">dictionary of languages containing dictionaries of key-value (eg ["en"]["mytoken"]="mystring")</param>
        /// <returns>A LanguageOverlay representing your language addition/override; call .Remove() on it to undo the change.</returns>
        public static LanguageOverlay AddOverlay(Dictionary <string, Dictionary <string, string?>?>?languageDictionary)
        {
            var overlay = new LanguageOverlay(
                languageDictionary.SelectMany(subdict => {
                return(subdict.Value.Select(kvp => {
                    return new OverlayTokenData(kvp.Key, kvp.Value, subdict.Key);
                }));
            }).ToArray());

            overlay.Add();
            return(overlay);
        }