The project referenced ../SocialPub/SocialPub/SocialPub.ClientModels, a path that has not existed since the server became PrivaPub; it references ../SocialPub/PrivaPub.ClientModels now, and CI clones SocialPub beside it. Retargeted to net10.0 with the Microsoft packages at 10.0.9. BlazorDownloadFileFast moves to 1.0.0.1 because 0.2.0 used IJSUnmarshalledRuntime, which .NET 9 removed. The Visual Studio bundler and web compiler packages are gone; the bundle they produced, css/style.min.css, is committed and stays the stylesheet, and its stale .gz is deleted because .NET's static-asset compression writes that path itself. AppConfiguration.ApiBaseAddress (https://privapub.thepra.dev) is the API client's base address; the template's placeholder OIDC section and the Toolbelt.Blazor.HotKeys script tag, whose package is not referenced, are removed. The vhost sends noindex while the feed shows the prototype's mock posts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
57 lines
1.4 KiB
C#
57 lines
1.4 KiB
C#
using decePubClient.Resources;
|
|
|
|
using Microsoft.Extensions.Localization;
|
|
|
|
using PrivaPub.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];
|
|
}
|
|
}
|
|
}
|
|
}
|