diff --git a/README.md b/README.md index 7a7a000..6ca9948 100644 --- a/README.md +++ b/README.md @@ -54,8 +54,7 @@ translate po file (default command) Options: -k, --key openai api key (env: OPENAI_API_KEY) --host openai api host (env: OPENAI_API_HOST) - --model openai model (choices: "gpt-4o", "gpt-4-turbo", "gpt-4", "gpt-4-0314", "gpt-4-32k", "gpt-4-32k-0314", "gpt-3.5-turbo", "gpt-3.5-turbo-0301", - default: "gpt-4o") + --model openai model (default: "gpt-4o-mini", env: OPENAI_MODEL) --po po file path --dir po file directory -src, --source source language (default: "english") diff --git a/README_zh-CN.md b/README_zh-CN.md index 9a47442..853c1ad 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -56,7 +56,7 @@ npm install gpt-po 选项: -k, --key openai api key (环境变量: OPENAI_API_KEY) --host openai api host (环境变量: OPENAI_API_HOST) - --model openai 模型 (选项: "gpt-4o", "gpt-4-turbo", "gpt-4", "gpt-4-0314", "gpt-4-32k", "gpt-4-32k-0314", "gpt-3.5-turbo", "gpt-3.5-turbo-0301", 默认: "gpt-4o") + --model openai 模型 (默认: "gpt-4o-mini", 环境变量: OPENAI_MODEL) --po po 文件路径 --dir po 文件目录 -src, --source 源语言 (默认: "english") diff --git a/package-lock.json b/package-lock.json index 7cde47e..526d2a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "openai": "^4.56.0" }, "bin": { - "gpt-po": "lib/src/index.js" + "gpt-po": "lib/src/wrapper.js" }, "devDependencies": { "@types/gettext-parser": "^4.0.4", @@ -29,7 +29,7 @@ "typescript": "^5.5.4" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@ampproject/remapping": { @@ -1790,12 +1790,13 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://mirrors.cloud.tencent.com/npm/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -2441,10 +2442,11 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://mirrors.cloud.tencent.com/npm/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2798,6 +2800,7 @@ "resolved": "https://mirrors.cloud.tencent.com/npm/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -4727,12 +4730,13 @@ "dev": true }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://mirrors.cloud.tencent.com/npm/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -5625,6 +5629,7 @@ "resolved": "https://mirrors.cloud.tencent.com/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, diff --git a/package.json b/package.json index cf2e8d1..d2ef86d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gpt-po", - "version": "1.1.1", + "version": "1.1.2", "description": "command tool for translate po files by gpt", "main": "lib/src/index.js", "type": "module", diff --git a/src/index.ts b/src/index.ts index c7be36b..83906fc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,7 +3,7 @@ import { Command, Option } from "commander"; import path from "path"; import { fileURLToPath } from "url"; -import * as pkg from "../package.json" assert { type: "json" }; +import pkg from "../package.json" with { type: "json" }; import { sync } from "./sync.js"; import { init, translatePo, translatePoDir } from "./translate.js"; import { copyFileIfNotExists, compilePo, findConfig, openFileByDefault, openFileExplorer, parsePo } from "./utils.js"; @@ -14,28 +14,14 @@ const __dirname = path.dirname(__filename); const program = new Command(); -program.name(pkg.default.name).version(pkg.default.version).description(pkg.default.description); +program.name(pkg.name).version(pkg.version).description(pkg.description); program .command("translate", { isDefault: true }) .description("translate po file (default command)") .addOption(new Option("-k, --key ", "openai api key").env("OPENAI_API_KEY")) .addOption(new Option("--host ", "openai api host").env("OPENAI_API_HOST")) - .addOption( - new Option("--model ", "openai model") - .default("gpt-4o") - .choices([ - "gpt-4o", - "gpt-4o-mini", - "gpt-4-turbo", - "gpt-4", - "gpt-4-0314", - "gpt-4-32k", - "gpt-4-32k-0314", - "gpt-3.5-turbo", - "gpt-3.5-turbo-0301", - ]), - ) + .addOption(new Option("--model ", "openai model").env("OPENAI_MODEL").default("gpt-4o-mini")) .addOption(new Option("--po ", "po file path").conflicts("dir")) .addOption(new Option("--dir ", "po file directory").conflicts("po")) .option("-src, --source ", "source language (ISO 639-1)", "en") diff --git a/src/translate.ts b/src/translate.ts index be9e1c1..d3d09a2 100644 --- a/src/translate.ts +++ b/src/translate.ts @@ -3,7 +3,7 @@ import { GetTextTranslation } from "gettext-parser"; import { OpenAI } from "openai"; import path from "path"; import { fileURLToPath } from "url"; -import * as pkg from "../package.json" assert { type: "json" }; +import pkg from "../package.json" with { type: "json" }; import { compilePo, copyFileIfNotExists, findConfig, parsePo, printProgress } from "./utils.js"; const __filename = fileURLToPath(import.meta.url); @@ -147,7 +147,7 @@ export async function translatePo( console.log("done."); return; } - potrans.headers["Last-Translator"] = `gpt-po v${pkg.default.version}`; + potrans.headers["Last-Translator"] = `gpt-po v${pkg.version}`; let err429 = false; let modified = false; for (let i = 0; i < list.length; i++) {