2024年3月11日发(作者:)

}

public IStringLocalizer Create(Type resourceSource)

{

TypeInfo typeInfo = eInfo(resourceSource);

//Assembly assembly = ly;

//AssemblyName assemblyName = new AssemblyName(me);

string baseResourceName = me;

baseResourceName = TrimPrefix(baseResourceName, _applicationName + ".");

return new JsonStringLocalizer(_hostingEnvironment, _options, baseResourceName, null);

}

public IStringLocalizer Create(string baseName, string location)

{

location = location ?? _applicationName;

string baseResourceName = baseName;

baseResourceName = TrimPrefix(baseName, location + ".");

return new JsonStringLocalizer(_hostingEnvironment, _options, baseResourceName, null);

}

private static string TrimPrefix(string name, string prefix)

{

if (With(prefix, l))

{

return ing();

}

return name;

}

}

2, JsonStringLocalizer

public class JsonStringLocalizer : IStringLocalizer

{

private readonly ConcurrentDictionary _all;

private readonly IHostingEnvironment _hostingEnvironment;

private readonly LocalizationOptions _options;

private readonly string _baseResourceName;

private readonly CultureInfo _cultureInfo;

public LocalizedString this[string name] => Get(name);

public LocalizedString this[string name, params object[] arguments] => Get(name, arguments);

public JsonStringLocalizer(IHostingEnvironment hostingEnvironment, LocalizationOptions options, string baseResourceName, CultureInfo culture)

{

_options = options;

_hostingEnvironment = hostingEnvironment;

_cultureInfo = culture ?? tUICulture;

_baseResourceName = baseResourceName + "." + _;

_all = GetAll();

}

public IEnumerable GetAllStrings(bool includeParentCultures)

{

return _(t => new LocalizedString(, , true)).ToArray();

}

public IStringLocalizer WithCulture(CultureInfo culture)

{

if (culture == null)

return this;

tUICulture = culture;

tThreadCurrentCulture = culture;

return new JsonStringLocalizer(_hostingEnvironment, _options, _baseResourceName, culture);

}

private LocalizedString Get(string name, params object[] arguments)

{

if (_nsKey(name))

{

var current = _all[name];

return new LocalizedString(name, (_all[name], arguments));

}

return new LocalizedString(name, name, true);

}

private ConcurrentDictionary GetAll()

{

var file = e(_tRootPath, _baseResourceName + ".json");