btcpayserver/BTCPayServer/Services/LanguageService.cs

51 lines
1.3 KiB
C#
Raw Normal View History

2020-06-28 21:44:35 -05:00
using System.Collections.Generic;
using System.IO;
2020-06-28 17:55:27 +09:00
using Microsoft.AspNetCore.Hosting;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Serialization;
2018-03-23 17:27:48 +09:00
namespace BTCPayServer.Services
{
public class Language
{
public Language(string code, string displayName)
{
DisplayName = displayName;
Code = code;
}
[JsonProperty("code")]
2018-03-23 17:27:48 +09:00
public string Code { get; set; }
[JsonProperty("currentLanguage")]
2018-03-23 17:27:48 +09:00
public string DisplayName { get; set; }
}
2018-03-23 17:27:48 +09:00
public class LanguageService
{
private readonly Language[] _languages;
2019-10-03 17:06:49 +09:00
public LanguageService(IWebHostEnvironment environment)
2018-03-23 17:27:48 +09:00
{
2019-10-03 17:37:10 +09:00
var path = environment.WebRootPath;
path = Path.Combine(path, "locales");
var files = Directory.GetFiles(path, "*.json");
var result = new List<Language>();
foreach (var file in files)
{
using (var stream = new StreamReader(file))
{
var json = stream.ReadToEnd();
result.Add(JObject.Parse(json).ToObject<Language>());
}
}
_languages = result.ToArray();
}
public Language[] GetLanguages()
{
return _languages;
2018-03-23 17:27:48 +09:00
}
}
}