Как использовать Askmethat.Aspnet.JsonLocalizer для локализации нескольких файлов Json - PullRequest
0 голосов
/ 26 октября 2018

Я использую пакет Nuget Askmethat.Aspnet.JsonLocalizer для локализации файлов Json. Однако я заметил, что это работает только для уникального файла Json. На самом деле, в моем запуске, CS файл, я написал этот код:

 services.AddJsonLocalization(options =>
            {
                options.ResourcesPath = "Json";
                options.CacheDuration = TimeSpan.FromMinutes(15);
            });

            services.Configure<RequestLocalizationOptions>(options =>
            {
                var supportedCultures = new[]
                {
                        new CultureInfo("en-US"),
                        new CultureInfo("fr-FR")
                };

                options.DefaultRequestCulture = new RequestCulture(culture: "en-US", uiCulture: "en-US");
                options.SupportedCultures = supportedCultures;
                options.SupportedUICultures = supportedCultures;
            });

Поскольку путь к ресурсу был обозначен как «Json», мне пришлось поместить второй файл Json рядом с первым (было бы замечательно, если бы два файла Json не находились в одной папке). Поэтому я поместил два файла Json в папку с именем Json: AllMessages.json и localisation.json. Теперь, чтобы прочитать AllMessages.son, я написал этот код в моем контроллере:

[Route("api/[controller]")]
    [ApiController]
    public class BotMessagesController : ControllerBase
    {
        private readonly IStringLocalizerFactory _sharedLocalizerFactory;

        public BotMessagesController(IStringLocalizerFactory sharedLocalizerFactory)
        {
            _sharedLocalizerFactory = sharedLocalizerFactory;
        }

        // GET api/messages
        [HttpGet()]
        public ActionResult<IEnumerable<LocalizedString>> GetAllBotMessages()
        {
            IStringLocalizer jsonLocalizer = _sharedLocalizerFactory.Create("AllMessages", "S4B.Diagnostic.API.Json");
            IEnumerable<LocalizedString> jsonResult = jsonLocalizer.GetAllStrings();
            return Ok(jsonResult);
        }
    }

Однако в моем результате json я получаю ресурсы из обоих файлов json, как будто имя файла json, переданное в качестве параметра методу _sharedLocalizerFactory.Create, не имеет значения.

Can someone help me please ?

...