/// <summary> /// Create an instance of `MessageContext`. /// /// The `locales` argument is used to instantiate `Intl` formatters used by /// translations. The `options` object can be used to configure the context. /// /// Examples: /// /// const ctx = new MessageContext(locales); /// /// const ctx = new MessageContext(locales, { useIsolating: false }); /// /// const ctx = new MessageContext(locales, { /// useIsolating: true, /// functions: { /// NODE_ENV: () => process.env.NODE_ENV /// } /// }); /// /// Available options: /// /// - `functions` - an object of additional functions available to /// translations as builtins. /// /// - `useIsolating` - boolean specifying whether to use Unicode isolation /// marks (FSI, PDI) for bidi interpolations. /// /// - `transform` - a function used to transform string parts of patterns. /// </summary> /// <param name="locales">Locale or locales of the context</param> /// <param name="options">[options]</param> /// public MessageContext( IEnumerable <string> locales, MessageContextOptions options = null ) { Locales = locales; Culture = new CultureInfo(Locales.First()); if (options != null) { UseIsolating = options.UseIsolating; } Transform = options?.Transform ?? NoOpTransform; Functions = options?.Functions ?? s_emptyFunctions; }
public MessageContext( string locale, MessageContextOptions options = null ) : this(new string[] { locale }, options) { }