Skip to content

Plantillas y parámetros ​

Elegir el origen del mensaje ​

Usa Message.Create para un texto puntual que no necesita traducción. Usa Message.FromResource cuando la plantilla pertenece a un catálogo de recursos.

csharp
// Texto literal.
Message unauthorized = "El usuario no tiene autorización.";

// Plantilla almacenada con la clave error.min_length.
var localizer = new ResourceMessageLocalizer(Messages.ResourceManager);
Message minimumLength = Message.FromResource("error.min_length", localizer);

La conversión desde string siempre representa texto literal. Una cadena nunca se interpreta como clave de recurso por accidente: para ello se usa explícitamente FromResource.

Marcadores de una plantilla ​

Una plantilla contiene marcadores con nombre, por ejemplo:

text
El campo {field} debe tener al menos {min} caracteres.

Los parámetros aportan los valores de esos marcadores. Se agregan con With, que devuelve un mensaje nuevo y conserva el original intacto.

csharp
var passwordLength = minimumLength
    .With("field", "Contraseña")
    .With("min", 8);

string text = passwordLength;
// El campo Contraseña debe tener al menos 8 caracteres.

Varios parámetros y reutilización ​

También puedes definir varios parámetros en una sola llamada:

csharp
var usernameLength = minimumLength.With(
    ("field", "Usuario"),
    ("min", 3));

Los nombres deben coincidir con los marcadores de la plantilla. Los valores pueden ser fechas, números u otros objetos; se convierten a texto al resolver el mensaje, respetando la cultura seleccionada.

Como With no modifica la instancia de origen, una plantilla se puede compartir entre varios mensajes sin que los parámetros se mezclen.

csharp
var required = Message.FromResource("error.required", localizer);
var emailRequired = required.With("field", "Correo");
var nameRequired = required.With("field", "Nombre");

Uso personal limitado. Uso comercial sujeto a autorización escrita.