导入/导出

自定义导入/导出
如果您使用的是 i18next 以外的自定义引擎,LSDE 允许您配置自己的 middleware。这样,您就可以将数据导入为 LSDE 格式,反之亦然,将 LSDE 格式导出为您自己的结构。运作原理
开启 高级模式 以显示可自定义的参数。
在此处定义文件导入过滤器:
指定 LSDE 在搜索中应包含的文件扩展名。
指示文件必须包含的名称或关键词。
这些选项支持正则表达式 (Regex)。例如:`/filename\\d+/` 将获取所有名为“filename”且后跟数字的文件(例如:`filename004`)。
这些选项可以加强安全性并为您定义本地化文件的结构标准:
Monolithic:表示您的所有语言都汇总在一个单一的文件中。
父文件夹中的 Locale:表示由父文件夹定义语言。
文件名中的 Locale:表示语言必须包含在文件名中。
当您选择一个 middleware 时,您必须实现导入和导出的代码。这些选项卡允许在两个接口之间切换。
Middleware 接口
对于导入,您的 parser 必须向 LSDE 返回以下接口:return { valuesEntries, metasEntries, nameSpacePackage }tsinterface ILocalizationImportResult { metasEntries: [ i18nKey:string, value: IStructureMetaData ][]; valuesEntries: [ i18nKey:string, [language:string, text:string][] ][]; nameSpacePackage: [ ns:string, [language:string, filePath:string][] ][]; }
您必须根据 LSDE 找到并作为参数传递的文件构建此对象。接收到的文件接口如下:
tsinterface ILocalizationImportParams { files: { /** 不带扩展名的文件名 */ filename: string; /** 文件的完整路径 */ path: string; /** 文件内容 */ datafile: string; /** 文件的父文件夹 */ parentFolder: string; /** 不含文件名的目录 */ pathWithoutFilename: string; /** 带点的扩展名,例如:'.json' */ type: string; metadata: { modifiedTime: Date; accessedTime: Date; createdTime: Date; fileSize: number; inode: number; } }[] }
对于导出,LSDE 向您传递以下接口,允许您重建自己的数据结构:
tsinterface ILocalizationExportParams { files: ILocalizationImportParams['files'] // ReadonlyMap<LSI18NKey, ReadonlyMap<language, text>> valuesEntriesMap: ReadonlyMap<string, ReadonlyMap<string, string>>; metasEntries: ILocalizationImportResult['metasEntries']; nameSpacePackage: ILocalizationImportResult['nameSpacePackage']; }
您必须返回此结构:
tsinterface ILocalizationExportResult { i18nFiles: { locale: Locales; src: string, data: unknown; }[]; }
`data` 对象将包含您为游戏引擎或项目的特定需求而构建的结构。