2026-10-01 08:09:45 +02:00
|
|
|
using decePubClient.Resources;
|
2022-12-15 20:03:40 +01:00
|
|
|
|
|
|
|
|
using Microsoft.Extensions.Localization;
|
|
|
|
|
|
2026-10-01 08:09:45 +02:00
|
|
|
using PrivaPub.ClientModels.Resources;
|
2022-12-15 20:03:40 +01:00
|
|
|
|
|
|
|
|
namespace collAnon.Client.Services
|
|
|
|
|
{
|
|
|
|
|
public sealed class CoalescingStringLocalizer
|
|
|
|
|
{
|
|
|
|
|
public readonly IStringLocalizer<AllStrings> _pLocalizer;
|
|
|
|
|
readonly IStringLocalizer<FieldsNameResource> _fLocalizer;
|
|
|
|
|
readonly IStringLocalizer<ErrorsResource> _eLocalizer;
|
|
|
|
|
|
|
|
|
|
public CoalescingStringLocalizer(
|
|
|
|
|
IStringLocalizer<AllStrings> pLocalizer,
|
|
|
|
|
IStringLocalizer<FieldsNameResource> fLocalizer,
|
|
|
|
|
IStringLocalizer<ErrorsResource> eLocalizer) =>
|
|
|
|
|
(_pLocalizer, _fLocalizer, _eLocalizer) =
|
|
|
|
|
(pLocalizer, fLocalizer, eLocalizer);
|
|
|
|
|
|
|
|
|
|
internal LocalizedString this[string name]
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (_pLocalizer[name].ResourceNotFound)
|
|
|
|
|
if (_fLocalizer[name].ResourceNotFound)
|
|
|
|
|
if (_eLocalizer[name].ResourceNotFound)
|
|
|
|
|
return new(name, name, false);
|
|
|
|
|
else
|
|
|
|
|
return _eLocalizer[name];
|
|
|
|
|
else
|
|
|
|
|
return _fLocalizer[name];
|
|
|
|
|
else
|
|
|
|
|
return _pLocalizer[name];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal LocalizedString this[string name, params object[] arguments]
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (_pLocalizer[name].ResourceNotFound)
|
|
|
|
|
if (_fLocalizer[name].ResourceNotFound)
|
|
|
|
|
if (_eLocalizer[name].ResourceNotFound)
|
|
|
|
|
return new(name, name, false);
|
|
|
|
|
else
|
|
|
|
|
return _eLocalizer[name, arguments];
|
|
|
|
|
else
|
|
|
|
|
return _fLocalizer[name, arguments];
|
|
|
|
|
else
|
|
|
|
|
return _pLocalizer[name, arguments];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|