gt@2.11.3
Descripción general
derive() ahora admite acceso a objetos y arrays. Antes, derive() solo podía resolver llamadas a funciones; ahora también puede resolver valores de objetos, arrays y diccionarios, lo que facilita trabajar con patrones de búsqueda.
Esto se basa en el lanzamiento de derive() en tagged templates de gt-react@10.15.0.
Novedades
Acceso a objetos
Usa derive() al acceder a propiedades de objetos. La CLI resuelve estáticamente todos los valores posibles en el momento de la extracción:
const statusMessages = {
success: "Your order has been placed.",
pending: "Your order is being processed.",
error: "Something went wrong with your order.",
} as const;
export default function OrderBanner({ status }: { status: string }) {
return <p>{t`Thanks for shopping! ${derive(statusMessages[status])}`}</p>;
}La CLI extrae una traducción independiente para cada valor posible:
"¡Gracias por tu compra! Tu pedido se ha realizado.""¡Gracias por tu compra! Tu pedido se está procesando.""¡Gracias por tu compra! Se produjo un error con tu pedido."
Se admite tanto el acceso estático (statusMessages.success) como el dinámico (statusMessages[status]).
Acceso a arrays
Los arrays funcionan igual:
const steps = [
"Create your account",
"Verify your email",
"Start your first project",
] as const;
export default function Onboarding({ step }: { step: number }) {
return <h2>{t`Step ${step + 1}: ${derive(steps[step])}`}</h2>;
}Extracted entries:
"Paso {step + 1}: Crea tu cuenta""Paso {step + 1}: Verifica tu correo electrónico""Paso {step + 1}: Inicia tu primer proyecto"
Acceso anidado
Encadena el acceso a objetos y arrays a cualquier nivel de profundidad:
const content = {
greetings: {
formal: "Good morning.",
casual: "Hey!",
},
} as const;
// derive(content[category][style]) funcionaSoporte para Python
Los mismos patrones funcionan en Python con t(). Usa derive() como primer argumento o dentro de una f-string:
badges = {
"admin": "Administrator",
"mod": "Moderator",
"user": "Member",
}
# Derivación autónoma
t(derive(badges[role]))
# derivar dentro de f-string para contexto circundante
t(f"Logged in as {derive(badges[role])}")Entradas extraídas:
"Conectado como Administrador""Conectado como Moderador""Conectado como Miembro"