@translatehub/vite-plugin 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -0
- package/package.json +2 -4
package/README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# @translatehub/vite-plugin
|
|
2
|
+
|
|
3
|
+
Vite-плагин для [TranslateHub](https://translate-hub.ru) — генерирует TypeScript-типы ключей переводов при сборке.
|
|
4
|
+
|
|
5
|
+
## Установка
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -D @translatehub/vite-plugin
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Использование
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
// vite.config.ts
|
|
15
|
+
import { defineConfig } from 'vite';
|
|
16
|
+
import react from '@vitejs/plugin-react';
|
|
17
|
+
import { translateHub } from '@translatehub/vite-plugin';
|
|
18
|
+
|
|
19
|
+
export default defineConfig({
|
|
20
|
+
plugins: [
|
|
21
|
+
react(),
|
|
22
|
+
translateHub({
|
|
23
|
+
apiKey: process.env.TRANSLATEHUB_API_KEY!,
|
|
24
|
+
languages: ['ru', 'en'],
|
|
25
|
+
}),
|
|
26
|
+
],
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Что делает плагин
|
|
31
|
+
|
|
32
|
+
При каждом `vite dev` / `vite build` плагин:
|
|
33
|
+
|
|
34
|
+
1. Загружает ключи переводов из TranslateHub API
|
|
35
|
+
2. Генерирует `src/types/translations.d.ts` с union-типом всех ключей
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
// Пример сгенерированного файла
|
|
39
|
+
export type TranslationKey =
|
|
40
|
+
| 'nav.home'
|
|
41
|
+
| 'nav.about'
|
|
42
|
+
| 'checkout.button.submit'
|
|
43
|
+
| 'cart.empty.message';
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
После этого `t('nav.home')` проверяется TypeScript — опечатки сразу видны в IDE.
|
|
47
|
+
|
|
48
|
+
> **Важно:** переводы в runtime загружает `@translatehub/core` напрямую через API.
|
|
49
|
+
> Изменение перевода появится в продакшне через TTL кэша (5 минут) — **без пересборки**.
|
|
50
|
+
|
|
51
|
+
## Опции
|
|
52
|
+
|
|
53
|
+
| Параметр | Тип | По умолчанию | Описание |
|
|
54
|
+
|----------|-----|-------------|----------|
|
|
55
|
+
| `apiKey` | `string` | — | API-ключ проекта |
|
|
56
|
+
| `languages` | `string[]` | — | Список языков для генерации типов |
|
|
57
|
+
| `generateTypes` | `boolean` | `true` | Генерировать `translations.d.ts` |
|
|
58
|
+
| `typesOutputPath` | `string` | `'src/types/translations.d.ts'` | Путь для файла с типами |
|
|
59
|
+
| `downloadTranslations` | `boolean` | `false` | Скачивать JSON-файлы в `public/locales/` |
|
|
60
|
+
| `outputDir` | `string` | `'public/locales'` | Папка для JSON-файлов |
|
|
61
|
+
|
|
62
|
+
## Лицензия
|
|
63
|
+
|
|
64
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@translatehub/vite-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Vite plugin — downloads translations from TranslateHub at build time and generates TypeScript types",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
"types": "./dist/index.d.ts"
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
|
-
"files": [
|
|
16
|
-
"dist"
|
|
17
|
-
],
|
|
15
|
+
"files": ["dist", "README.md"],
|
|
18
16
|
"scripts": {
|
|
19
17
|
"build": "tsup src/index.ts --format esm,cjs --dts",
|
|
20
18
|
"dev": "tsup src/index.ts --format esm,cjs --dts --watch"
|