57 lines
1.4 KiB
C#
57 lines
1.4 KiB
C#
|
using decePubClient.Resources;
|
|||
|
|
|||
|
using Microsoft.Extensions.Localization;
|
|||
|
|
|||
|
using SocialPub.ClientModels.Resources;
|
|||
|
|
|||
|
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];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|