@nova-fe/i18next-cache-backend
Version:
强大的 i18next 后端插件,具有 IndexedDB 缓存、批量加载和智能缓存策略
124 lines (96 loc) • 2.4 kB
Markdown
一个强大的 i18next 后端插件,具有 IndexedDB 缓存、批量加载和智能缓存策略。
- 🚀 **高性能**: IndexedDB 缓存实现闪电般的翻译加载速度
- 📦 **批量加载**: 单次请求加载所有翻译内容
- 🔄 **智能缓存**: 智能的缓存失效和更新机制
- 🌐 **离线支持**: 支持离线模式下的缓存翻译
- 📱 **跨平台**: 兼容所有现代浏览器
- ⚡ **TypeScript**: 完整的 TypeScript 支持和类型定义
```bash
npm install @nova-fe/i18next-cache-backend
yarn add @nova-fe/i18next-cache-backend
pnpm add @nova-fe/i18next-cache-backend
```
```typescript
import i18next from 'i18next';
import { CacheBackend } from '@nova-fe/i18next-cache-backend';
i18next
.use(CacheBackend)
.init({
backend: {
loadPath: '/api/{{lng}}/{{ns}}',
fetchStrategy: 'namespace', // 或 'bulk'
},
// 其他 i18next 配置选项
});
```
```typescript
{
backend: {
// API 端点模式
loadPath: '/api/{{lng}}/{{ns}}',
// 获取策略: 'namespace' 或 'bulk'
fetchStrategy: 'namespace',
// 批量端点 (使用 'bulk' 策略时)
bulkPath: '/api/all',
// 缓存设置
cachePrefix: 'i18next-cache',
cacheTTL: 24 * 60 * 60 * 1000, // 24 小时
// 请求选项
requestOptions: {
headers: {
'Authorization': 'Bearer token'
}
}
}
}
```
一次加载一个命名空间的翻译:
```typescript
{
backend: {
loadPath: '/api/{{lng}}/{{ns}}',
fetchStrategy: 'namespace'
}
}
```
单次请求加载所有翻译:
```typescript
{
backend: {
loadPath: '/api/{{lng}}/{{ns}}', // 单个请求的回退选项
bulkPath: '/api/all',
fetchStrategy: 'bulk'
}
}
```
实现 i18next 后端接口的主要后端类。
```typescript
interface CacheBackendConfig {
loadPath?: string;
bulkPath?: string;
fetchStrategy?: 'namespace' | 'bulk';
cachePrefix?: string;
cacheTTL?: number;
requestOptions?: RequestInit;
}
```
查看 [examples](../../examples) 目录获取完整的实现示例:
- [React 示例](../../examples/react)
- [Vue 示例](../../examples/vue)
MIT © Leslie