/// <summary> /// Load localization texts from and embedded json file /// </summary> /// <param name="assembly"></param> /// <param name="resourceId"></param> /// <param name="caseSensitivity">Case sensitivity when searching for property names</param> /// <param name="jsonMaxDepth"> /// <see cref="JsonDocumentOptions.MaxDepth" /> /// </param> public JsonLocalizationSource(Assembly assembly, string resourceId, PropertyCaseSensitivity caseSensitivity, int jsonMaxDepth = 128) { this.caseSensitivity = caseSensitivity; var em = new EmbdRes(assembly); var json = em.ReadAsString(resourceId); root = ToRootElement(json, jsonMaxDepth); }
private static ILocalizer GetLocalizer(PropertyCaseSensitivity caseSensitivity) { return(new Localizer( source: new JsonLocalizationSource( assembly: Assembly.GetExecutingAssembly(), resourceId: $"{typeof(EmbeddedResourceTranslationTests).Namespace}.embedded.json", caseSensitivity: caseSensitivity ) )); }
/// <summary> /// Load localization texts from an <see cref="Stream" /> /// </summary> /// <param name="stream"></param> /// <param name="caseSensitivity">Case sensitivity when searching for property names</param> /// <param name="jsonMaxDepth"> /// <see cref="JsonDocumentOptions.MaxDepth" /> /// </param> public JsonLocalizationSource(Stream stream, PropertyCaseSensitivity caseSensitivity, int jsonMaxDepth = 128) { this.caseSensitivity = caseSensitivity; string json; using (var sr = new StreamReader(stream)) { json = sr.ReadToEnd(); } root = ToRootElement(json, jsonMaxDepth); }
/// <summary> /// Load localization texts from a json file residing on the disk /// </summary> /// <param name="file"></param> /// <param name="caseSensitivity">Case sensitivity when searching for property names</param> /// <param name="jsonMaxDepth"> /// <see cref="JsonDocumentOptions.MaxDepth" /> /// </param> public JsonLocalizationSource(FileInfo file, PropertyCaseSensitivity caseSensitivity, int jsonMaxDepth = 128) : this(file.OpenRead(), caseSensitivity, jsonMaxDepth) { }
/// <summary> /// </summary> /// <param name="jsonDocument">The json document. You freely can dispose json document after calling this constructor.</param> /// <param name="caseSensitivity">Case sensitivity when searching for property names</param> public JsonLocalizationSource(JsonDocument jsonDocument, PropertyCaseSensitivity caseSensitivity) { this.caseSensitivity = caseSensitivity; root = GetRootElement(jsonDocument); }