export const i18nConfig = {
  en: {
    toolbarHeader: 'Body',
    toolbarFont: 'System',
    fontYahei: 'MS Yahei',
    fontSong: 'SimSun',
    fontKai: 'KaiTi',
    tableDialogLabel: 'Slide & Click',
    imageDialogLocal: 'Select Local Image',
    imageDialogUrlLabel: 'Or input image url',
    iamgeDialogInsert: 'Insert',
    imageDialogTypeErr: 'File type is error, please upload again!',
    imageDialogSizeErr: 'Image size cannot exceed $M',
    dividerDialogColorLabel: 'Primary Color:',

    placeholder: 'Start Note(Support input markdown)...',
    alignLeft: 'Left align',
    alignRight: 'Right align',
    alignCenter: 'Center align',
    tableBackground: 'Background Colors',

    linkWords: 'Text',
    linkUrl: 'Link',
    linkSave: 'Save',
    linkTarget: 'Link To Url',
    linkClear: 'Remove Link',
    linkUrlErr: 'Please input correct Url!',

    imgStatusUploading: ' Image uploading... ',
    imgStatusFail: ' Upload fail & click to upload again ',
    imgRemarkPre: 'Fig. ',
    imgRemarkLabel: 'Add Remark',
    deleteImg: 'Delete Image',
  },
  zh: {
    toolbarHeader: '正文',
    toolbarFont: '系统字体',
    fontYahei: '微软雅黑',
    fontSong: '宋体',
    fontKai: '楷体',
    tableDialogLabel: '滑动点击生成',
    imageDialogLocal: '选择本地图片',
    imageDialogUrlLabel: '或输入网络图片URL',
    iamgeDialogInsert: '插入',
    imageDialogTypeErr: '图片格式错误，请重新上传！',
    imageDialogSizeErr: '图片大小不能超过$M',
    dividerDialogColorLabel: '主色：',

    placeholder: '开始笔记（支持直接Markdown输入）...',
    alignLeft: '居左',
    alignRight: '居右',
    alignCenter: '居中',
    tableBackground: '背景色',

    linkWords: '文本',
    linkUrl: '链接',
    linkSave: '保存',
    linkTarget: '跳转',
    linkClear: '取消链接',
    linkUrlErr: '请输入正确Url！',

    imgStatusUploading: ' 图片上传中... ',
    imgStatusFail: ' 上传失败，点击重新上传 ',
    imgRemarkPre: '图：',
    imgRemarkLabel: '添加备注',
    deleteImg: '删除图片',
  },
  es: {
    toolbarHeader: 'Texto',
    toolbarFont: 'Sistema',
    fontYahei: 'MS Yahei',
    fontSong: 'SimSun',
    fontKai: 'KaiTi',
    tableDialogLabel: 'Desliza y haz clic',
    imageDialogLocal: 'Subir imagen',
    imageDialogUrlLabel: 'O introduce la URL de la imagen',
    iamgeDialogInsert: 'Insertar',
    imageDialogTypeErr: '¡El tipo de archivo es incorrecto, por favor súbelo de nuevo!',
    imageDialogSizeErr: 'El tamaño de la imagen no puede exceder $M',
    dividerDialogColorLabel: 'Color principal:',

    placeholder: 'Empieza la nota (admite Markdown)...',
    alignLeft: 'Alinear a la izquierda',
    alignRight: 'Alinear a la derecha',
    alignCenter: 'Alinear al centro',
    tableBackground: 'Colores de fondo',

    linkWords: 'Texto',
    linkUrl: 'Enlace',
    linkSave: 'Guardar',
    linkTarget: 'Enlazar a URL',
    linkClear: 'Eliminar enlace',
    linkUrlErr: '¡Introduce una URL correcta!',

    imgStatusUploading: ' Subiendo imagen... ',
    imgStatusFail: ' Error al subir. Haz clic para volver a intentarlo ',
    imgRemarkPre: 'Fig. ',
    imgRemarkLabel: 'Agregar comentario',
    deleteImg: 'Eliminar imagen',
  },
};

export const getI18nText = (
  keys: (keyof (typeof i18nConfig)['en'])[] | keyof (typeof i18nConfig)['en'],
  i18n: keyof typeof i18nConfig = 'en',
) => {
  if (Array.isArray(keys)) return keys.map((key) => i18nConfig[i18n][key]);
  return i18nConfig[i18n][keys];
};