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];
|
|
}
|
|
}
|
|
}
|
|
}
|