mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-18 21:34:28 -04:00
Localization framework
This commit is contained in:
@@ -16,6 +16,7 @@ namespace Readarr.Api.V1.Config
|
||||
public bool ShowRelativeDates { get; set; }
|
||||
|
||||
public bool EnableColorImpairedMode { get; set; }
|
||||
public int UILanguage { get; set; }
|
||||
}
|
||||
|
||||
public static class UiConfigResourceMapper
|
||||
@@ -33,6 +34,7 @@ namespace Readarr.Api.V1.Config
|
||||
ShowRelativeDates = model.ShowRelativeDates,
|
||||
|
||||
EnableColorImpairedMode = model.EnableColorImpairedMode,
|
||||
UILanguage = model.UILanguage,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
36
src/Readarr.Api.V1/Languages/LanguageController.cs
Normal file
36
src/Readarr.Api.V1/Languages/LanguageController.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NzbDrone.Core.Languages;
|
||||
using Readarr.Http;
|
||||
using Readarr.Http.REST;
|
||||
|
||||
namespace Readarr.Api.V1.Languages
|
||||
{
|
||||
[V1ApiController]
|
||||
public class LanguageController : RestController<LanguageResource>
|
||||
{
|
||||
public override LanguageResource GetResourceById(int id)
|
||||
{
|
||||
var language = (Language)id;
|
||||
|
||||
return new LanguageResource
|
||||
{
|
||||
Id = (int)language,
|
||||
Name = language.ToString()
|
||||
};
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public List<LanguageResource> GetAll()
|
||||
{
|
||||
return Language.All.Select(l => new LanguageResource
|
||||
{
|
||||
Id = (int)l,
|
||||
Name = l.ToString()
|
||||
})
|
||||
.OrderBy(l => l.Name)
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
13
src/Readarr.Api.V1/Languages/LanguageResource.cs
Normal file
13
src/Readarr.Api.V1/Languages/LanguageResource.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Readarr.Http.REST;
|
||||
|
||||
namespace Readarr.Api.V1.Languages
|
||||
{
|
||||
public class LanguageResource : RestResource
|
||||
{
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||
public new int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string NameLower => Name.ToLowerInvariant();
|
||||
}
|
||||
}
|
||||
29
src/Readarr.Api.V1/Localization/LocalizationController.cs
Normal file
29
src/Readarr.Api.V1/Localization/LocalizationController.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System.Text.Json;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NzbDrone.Common.Serializer;
|
||||
using NzbDrone.Core.Localization;
|
||||
using Readarr.Http;
|
||||
|
||||
namespace Readarr.Api.V1.Localization
|
||||
{
|
||||
[V1ApiController]
|
||||
public class LocalizationController : Controller
|
||||
{
|
||||
private readonly ILocalizationService _localizationService;
|
||||
private readonly JsonSerializerOptions _serializerSettings;
|
||||
|
||||
public LocalizationController(ILocalizationService localizationService)
|
||||
{
|
||||
_localizationService = localizationService;
|
||||
_serializerSettings = STJson.GetSerializerSettings();
|
||||
_serializerSettings.DictionaryKeyPolicy = null;
|
||||
_serializerSettings.PropertyNamingPolicy = null;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public string GetLocalizationDictionary()
|
||||
{
|
||||
return JsonSerializer.Serialize(_localizationService.GetLocalizationDictionary().ToResource(), _serializerSettings);
|
||||
}
|
||||
}
|
||||
}
|
||||
26
src/Readarr.Api.V1/Localization/LocalizationResource.cs
Normal file
26
src/Readarr.Api.V1/Localization/LocalizationResource.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System.Collections.Generic;
|
||||
using Readarr.Http.REST;
|
||||
|
||||
namespace Readarr.Api.V1.Localization
|
||||
{
|
||||
public class LocalizationResource : RestResource
|
||||
{
|
||||
public Dictionary<string, string> Strings { get; set; }
|
||||
}
|
||||
|
||||
public static class LocalizationResourceMapper
|
||||
{
|
||||
public static LocalizationResource ToResource(this Dictionary<string, string> localization)
|
||||
{
|
||||
if (localization == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new LocalizationResource
|
||||
{
|
||||
Strings = localization,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user