i18n
La librería trae 5 idiomas: en, es, fr, pt, nl.
vue
<SheetMapper :fields="fields" locale="es" />Overrides por idioma
Pasa un MessagesOverride. Solo se reemplazan las claves que envías; el resto sale de las cadenas base del idioma activo.
typescript
import type { Locale, MessagesOverride } from "@dazzadev/vue-sheet-mapper";
const customMessages: Partial<Record<Locale, MessagesOverride>> = {
es: {
dropzone: { title: "Sube aquí tu archivo de contactos" },
confirm: "Importar contactos",
},
en: {
dropzone: { title: "Upload your contacts file here" },
confirm: "Import contacts",
},
};vue
<SheetMapper
:fields="fields"
:locale="locale"
:messages="customMessages[locale]"
/>Una clave con valor undefined no borra la cadena base: se ignora y se mantiene la traducción original.
Cadenas sobrescribibles
typescript
interface Messages {
dropzone: {
title: string;
subtitle: string;
button: string;
changeFile: string;
};
columns: {
toggleHasHeaders: string;
toggleNoHeaders: string;
unassigned: string;
ignored: string;
changeColumn: string;
ignoreColumn: string;
columnLabel: string;
selectPlaceholder: string;
ignoreOption: string;
columnFallback: string; // usa {n} como número de columna
};
confirm: string;
issues: {
title: string; // usa {n} como número de problemas
row: string; // usa {n} como número de fila en la hoja
more: string; // usa {n} y {total}
checking: string;
retry: string;
};
errors: {
title: string;
noFile: string;
invalidFileType: string;
fileReadError: string;
noWorksheet: string;
emptyWorksheet: string;
unassignedColumns: string;
missingRequiredFields: string;
duplicateAssignments: string;
fileTooLarge: string; // usa {size}
tooManyRows: string; // usa {max}
dismiss: string;
};
loading: string;
}Si necesitas las cadenas resueltas fuera del componente, exporta getMessages:
typescript
import { getMessages } from "@dazzadev/vue-sheet-mapper";
const msgs = getMessages("es", { confirm: "Importar" });