UAI-1 / Kit de instalación

Kit de soporte web C# para UAI-1

Esta página publica la descarga inicial de Protocol5 para agregar compatibilidad con UAI-1 a sitios web de C#, en especial a sitios ASP.NET Core que quieren una ruta práctica de integración con CultureInfo y Accept-Language sin hacer que la semántica canónica de UAI dependa de reglas locales de formato humano.

Raw / developer layer

UAI language source and developer tools

The public page renders compact UAI as an alternate language layer. JSON, linked registries, and validation schema remain here for developer inspection.

Loading compact UAI language source...
Loading compact source...

Protocol5 is fetching the compact UAI language source before developer JSON.

Language layer

Kit de soporte web C# para UAI-1

Use the view control to switch between human prose, rendered UAI, and raw developer inspection. The rendered UAI mode keeps this page layout intact and changes only the text layer.

Kit de soporte web C# para UAI-1

Esta página publica la descarga inicial de Protocol5 para agregar compatibilidad con UAI-1 a sitios web de C#, en especial a sitios ASP.NET Core que quieren una ruta práctica de integración con CultureInfo y Accept-Language sin hacer que la semántica canónica de UAI dependa de reglas locales de formato humano.

Información del documento

Qué contiene la descarga

  • proyecto fuente Protocol5.UAI.CSharp
  • un .nupkg empaquetado de Protocol5.UAI.CSharp
  • utilidades para codificar y decodificar Radix 63404
  • middleware de ASP.NET Core que reconoce solicitudes UAI desde query string, cookie o Accept-Language
  • un readme breve de instalación para equipos que prefieren una descarga directa en lugar de un feed de paquetes

Por qué el starter usa x-uai-1

Para sitios web, la separación limpia es esta:

  • usar x-uai-1 para lang en HTML, la negociación de solicitudes y Content-Language
  • usar CultureInfo.GetCultureInfo("x-uai-1") cuando el runtime lo permita
  • usar CultureInfo.InvariantCulture al serializar valores canónicos de UAI

Esa última regla importa porque UAI-1 está definido como un lenguaje canónico para máquinas. Los separadores decimales, los formatos de fecha y las convenciones locales de presentación nunca deben cambiar el significado serializado de un mensaje UAI.

Por qué esto no es solo un instalador de cultura para Windows

La guía de globalización de Microsoft hace una distinción importante:

  • CultureInfo es el punto de entrada normal del runtime para comportamiento sensible a cultura
  • CultureAndRegionInfoBuilder existe para crear culturas personalizadas, pero ese camino es específico de Windows y no es la opción correcta por defecto para una adopción web multiplataforma

Por eso este starter de Protocol5 no exige registrar culturas personalizadas a nivel de sistema operativo. Primero ofrece a los sitios web una ruta práctica, y deja el registro de culturas específico por plataforma como un paso avanzado opcional.

Inicio rápido

Instale desde el archivo del paquete descargado:

dotnet add package Protocol5.UAI.CSharp --source .\downloads

Luego conéctelo a un sitio ASP.NET Core:

using Protocol5.UAI;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddProtocol5UaiWebsiteSupport();

var app = builder.Build();
app.UseProtocol5UaiWebsiteSupport();

app.MapGet("/uai-demo", (HttpContext context) =>
{
    var sampleCanonicalId = Radix63404.Encode(5651);

    return Results.Json(new
    {
        protocol = UaiCultureInfo.CanonicalVersion,
        language = context.GetProtocol5HtmlLanguage(),
        sampleCanonicalId
    });
});

app.Run();

Recomendación para HTML

Si una página debe declarar contenido compatible con UAI de forma directa, use:

<html lang="x-uai-1">

Regla de formato canónico

Al serializar valores canónicos de UAI, use siempre InvariantCulture:

using Protocol5.UAI;

var confidence = 0.875m.ToString(UaiCultureInfo.CanonicalSerializationCulture);

Ejemplos de Radix 63404 incluidos en el kit

Radix63404.Encode(41);        // J
Radix63404.Encode(5651);      // ᙖ
Radix63404.Encode(267914296); // Ⴤ绠

Enlaces de descarga