@mariokreitz/langsync 0.7.0 → 0.7.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.
Files changed (3) hide show
  1. package/README.md +17 -9
  2. package/dist/cli.js +3 -3
  3. package/package.json +13 -9
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @mariokreitz/langsync
2
2
 
3
- > Modern localization workflow tooling for TypeScript applications.
3
+ > CLI tooling for localization workflows in TypeScript projects.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@mariokreitz/langsync.svg?style=flat-square&color=2563eb)](https://www.npmjs.com/package/@mariokreitz/langsync)
6
6
  [![CI](https://img.shields.io/github/actions/workflow/status/mariokreitz/langsync/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/mariokreitz/langsync/actions/workflows/ci.yml)
@@ -8,14 +8,16 @@
8
8
  [![Node](https://img.shields.io/node/v/@mariokreitz/langsync?style=flat-square&color=2563eb)](https://nodejs.org)
9
9
  [![License](https://img.shields.io/npm/l/@mariokreitz/langsync.svg?style=flat-square)](https://github.com/mariokreitz/langsync/blob/main/LICENSE)
10
10
 
11
- LangSync is a fast, typed, framework-agnostic CLI that keeps your translation
12
- files consistent across every locale and every collaborator without the
13
- chaos of hand-edited JSON or fragile Excel hand-offs.
11
+ LangSync is a practical CLI for localization maintenance: validate locale
12
+ structure, sync missing keys, translate empty values, and run Excel handoffs
13
+ without changing your existing JSON-based i18n setup.
14
14
 
15
- - **Typed configuration** with `defineConfig()` and IntelliSense.
16
- - **Bidirectional Excel I/O** for non-technical translators.
15
+ - **Translation sync** with missing-key detection across locales and namespaces.
17
16
  - **Strict validation** with CI-friendly exit codes and JSON output.
18
17
  - **Auto-detected integrations** for `i18next`, `ngx-translate`, `react-intl`.
18
+ - **AI translation adapters**: OpenAI and DeepL are released; Anthropic and Gemini are experimental (`LANGSYNC_AI_EXPERIMENTAL=1`).
19
+ - **Optional Excel round-trip** for translator collaboration when needed.
20
+ - **Typed configuration** with `defineConfig()` and IntelliSense.
19
21
  - **Interactive setup** that scaffolds your config and single-file or namespaced locale files.
20
22
 
21
23
  ## Install
@@ -46,13 +48,13 @@ npx langsync validate
46
48
  # 3. Add missing keys (empty placeholders) to non-reference locales
47
49
  npx langsync sync
48
50
 
49
- # 4. Optionally fill the gaps with AI
51
+ # 4. Optionally fill the gaps with AI (OpenAI/DeepL)
50
52
  npx langsync translate
51
53
 
52
- # 5. Hand off to translators via Excel
54
+ # 5. Optionally hand off to translators via Excel
53
55
  npx langsync export excel
54
56
 
55
- # 6. Import their work back
57
+ # 6. Optionally import their work back
56
58
  npx langsync import excel
57
59
  ```
58
60
 
@@ -119,6 +121,12 @@ npm install @mariokreitz/langsync-sdk
119
121
  See the [SDK reference](https://docs.langsync.kreitz-webdev.de/docs/sdk) for the
120
122
  full surface, options, and result types.
121
123
 
124
+ ## Migration from i18n-excel-manager
125
+
126
+ For migration steps and command mapping, use the dedicated guide:
127
+
128
+ - [Migration from i18n-excel-manager](https://docs.langsync.kreitz-webdev.de/docs/migration-from-i18n-excel-manager)
129
+
122
130
  ## Documentation
123
131
 
124
132
  Full documentation — configuration reference, every CLI command, the VS Code
package/dist/cli.js CHANGED
@@ -26,7 +26,7 @@ var logger = {
26
26
  };
27
27
  function printBanner(version) {
28
28
  const title = chalk.bold.cyan("LangSync");
29
- const tagline = chalk.gray("Modern localization workflow tooling.");
29
+ const tagline = chalk.gray("CLI tooling for localization workflows.");
30
30
  const ver = chalk.dim(`v${version}`);
31
31
  console.log(`
32
32
  ${title} ${ver}
@@ -1206,11 +1206,11 @@ function registerWatchCommand(program) {
1206
1206
  }
1207
1207
 
1208
1208
  // src/cli.ts
1209
- var VERSION = "0.7.0" ;
1209
+ var VERSION = "0.7.1" ;
1210
1210
  async function main() {
1211
1211
  assertNodeVersion(22);
1212
1212
  const program = new Command();
1213
- program.name("langsync").description("Modern localization workflow tooling for TypeScript applications.").version(VERSION, "-v, --version", "Output the current version.").hook("preAction", () => {
1213
+ program.name("langsync").description("CLI tooling for localization workflows in TypeScript projects.").version(VERSION, "-v, --version", "Output the current version.").hook("preAction", () => {
1214
1214
  printBanner(VERSION);
1215
1215
  });
1216
1216
  registerInitCommand(program);
package/package.json CHANGED
@@ -1,19 +1,23 @@
1
1
  {
2
2
  "name": "@mariokreitz/langsync",
3
- "version": "0.7.0",
4
- "description": "Modern localization workflow tooling for TypeScript applications.",
3
+ "version": "0.7.1",
4
+ "description": "CLI tooling for localization workflows in TypeScript projects.",
5
5
  "keywords": [
6
6
  "i18n",
7
7
  "localization",
8
+ "sync",
8
9
  "translation",
9
- "excel",
10
10
  "cli",
11
+ "json",
12
+ "missing-keys",
13
+ "workflow",
14
+ "developer-tools",
15
+ "ai-translation",
16
+ "typescript",
17
+ "framework-agnostic",
11
18
  "i18next",
12
19
  "ngx-translate",
13
- "react-intl",
14
- "ai-translation",
15
- "openai",
16
- "watch-mode"
20
+ "react-intl"
17
21
  ],
18
22
  "license": "MIT",
19
23
  "author": "Mario Kreitz",
@@ -66,10 +70,10 @@
66
70
  "devDependencies": {
67
71
  "@types/prompts": "^2.4.9",
68
72
  "memfs": "^4.57.3",
69
- "@langsync/shared": "0.2.2",
70
73
  "@langsync/core": "0.1.3",
71
74
  "@langsync/ai-engine": "0.2.2",
72
- "@langsync/excel-engine": "0.2.1"
75
+ "@langsync/excel-engine": "0.2.1",
76
+ "@langsync/shared": "0.2.2"
73
77
  },
74
78
  "scripts": {
75
79
  "build": "tsup",