Skip to content

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" });

Publicado bajo la licencia MIT.