mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-17 22:14:26 +01:00
Add translations to the Dashboard
This commit is contained in:
@@ -2,6 +2,7 @@ using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BTCPayServer.Abstractions.Constants;
|
||||
using BTCPayServer.Abstractions.Extensions;
|
||||
using BTCPayServer.Abstractions.Models;
|
||||
using BTCPayServer.Client;
|
||||
using BTCPayServer.Data;
|
||||
@@ -12,7 +13,9 @@ using BTCPayServer.Services.Stores;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Localization;
|
||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||
using Microsoft.Extensions.Localization;
|
||||
|
||||
namespace BTCPayServer.Controllers
|
||||
{
|
||||
@@ -21,6 +24,7 @@ namespace BTCPayServer.Controllers
|
||||
public class UIUserStoresController : Controller
|
||||
{
|
||||
private readonly StoreRepository _repo;
|
||||
private readonly IStringLocalizer StringLocalizer;
|
||||
private readonly SettingsRepository _settingsRepository;
|
||||
private readonly UserManager<ApplicationUser> _userManager;
|
||||
private readonly DefaultRulesCollection _defaultRules;
|
||||
@@ -31,10 +35,12 @@ namespace BTCPayServer.Controllers
|
||||
UserManager<ApplicationUser> userManager,
|
||||
DefaultRulesCollection defaultRules,
|
||||
StoreRepository storeRepository,
|
||||
IStringLocalizer stringLocalizer,
|
||||
RateFetcher rateFactory,
|
||||
SettingsRepository settingsRepository)
|
||||
{
|
||||
_repo = storeRepository;
|
||||
StringLocalizer = stringLocalizer;
|
||||
_userManager = userManager;
|
||||
_defaultRules = defaultRules;
|
||||
_rateFactory = rateFactory;
|
||||
@@ -95,7 +101,7 @@ namespace BTCPayServer.Controllers
|
||||
store.SetStoreBlob(blob);
|
||||
await _repo.CreateStore(GetUserId(), store);
|
||||
CreatedStoreId = store.Id;
|
||||
TempData[WellKnownTempData.SuccessMessage] = "Store successfully created";
|
||||
TempData.SetStatusSuccess(StringLocalizer["Store successfully created"]);
|
||||
return RedirectToAction(nameof(UIStoresController.Index), "UIStores", new
|
||||
{
|
||||
storeId = store.Id
|
||||
@@ -109,7 +115,7 @@ namespace BTCPayServer.Controllers
|
||||
var store = HttpContext.GetStoreData();
|
||||
if (store == null)
|
||||
return NotFound();
|
||||
return View("Confirm", new ConfirmModel($"Delete store {store.StoreName}", "This store will still be accessible to users sharing it", "Delete"));
|
||||
return View("Confirm", new ConfirmModel(StringLocalizer["Delete store {0}", store.StoreName], StringLocalizer["This store will still be accessible to users sharing it"], "Delete"));
|
||||
}
|
||||
|
||||
[HttpPost("{storeId}/me/delete")]
|
||||
@@ -121,24 +127,23 @@ namespace BTCPayServer.Controllers
|
||||
if (store == null)
|
||||
return NotFound();
|
||||
await _repo.RemoveStore(storeId, userId);
|
||||
TempData[WellKnownTempData.SuccessMessage] = "Store removed successfully";
|
||||
TempData.SetStatusSuccess(StringLocalizer["Store removed successfully"]);
|
||||
return RedirectToAction(nameof(UIHomeController.Index), "UIHome");
|
||||
}
|
||||
|
||||
private string GetUserId() => _userManager.GetUserId(User);
|
||||
|
||||
private SelectList GetExchangesSelectList(StoreBlob storeBlob) => GetExchangesSelectList(_rateFactory, _defaultRules, storeBlob);
|
||||
internal static SelectList GetExchangesSelectList(RateFetcher rateFetcher, DefaultRulesCollection defaultRules, StoreBlob storeBlob)
|
||||
internal SelectList GetExchangesSelectList(StoreBlob storeBlob)
|
||||
{
|
||||
if (storeBlob is null)
|
||||
storeBlob = new StoreBlob();
|
||||
var defaultExchange = defaultRules.GetRecommendedExchange(storeBlob.DefaultCurrency);
|
||||
var exchanges = rateFetcher.RateProviderFactory
|
||||
var defaultExchange = _defaultRules.GetRecommendedExchange(storeBlob.DefaultCurrency);
|
||||
var exchanges = _rateFactory.RateProviderFactory
|
||||
.AvailableRateProviders
|
||||
.OrderBy(s => s.Id, StringComparer.OrdinalIgnoreCase)
|
||||
.ToList();
|
||||
var exchange = exchanges.First(e => e.Id == defaultExchange);
|
||||
exchanges.Insert(0, new(null, $"Recommendation ({exchange.DisplayName})", ""));
|
||||
exchanges.Insert(0, new(null, StringLocalizer["Recommendation ({0})", exchange.DisplayName], ""));
|
||||
var chosen = exchanges.FirstOrDefault(f => f.Id == storeBlob.PreferredExchange) ?? exchanges.First();
|
||||
return new SelectList(exchanges, nameof(chosen.Id), nameof(chosen.DisplayName), chosen.Id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user