{"_id":"@asiegrist/strapi-llm-translator","_rev":"3-922585be2d1ae5542178a465c96cd23e","name":"@asiegrist/strapi-llm-translator","dist-tags":{"latest":"0.11.1"},"versions":{"0.10.0":{"name":"@asiegrist/strapi-llm-translator","version":"0.10.0","keywords":["strapi","plugin","translation","ai","llm"],"author":{"name":"asiegrist","email":"asiegrist@hotmail.fr"},"license":"MIT","_id":"@asiegrist/strapi-llm-translator@0.10.0","maintainers":[{"name":"asiegrist","email":"asiegrist@hotmail.fr"}],"homepage":"https://github.com/asiegrist/strapi-llm-translator#readme","bugs":{"url":"https://github.com/asiegrist/strapi-llm-translator/issues"},"dist":{"shasum":"be54b4cb5c5639512de07eb46358ae85e7110685","tarball":"https://registry.npmjs.org/@asiegrist/strapi-llm-translator/-/strapi-llm-translator-0.10.0.tgz","fileCount":3,"integrity":"sha512-uUhZ1WTkMsbUYF6Gjocco0ILrE1DLGoVVnHACTlk+e6+TqeF5T181cShCcCA+/wz92xpUzReWNRoZwVwgLg5EA==","signatures":[{"sig":"MEYCIQDO3iRtHLOiPwFj6l7IgqTSLh88oV3u+PFUedpJ7X0TaQIhAI2SCx2ux8DuATAxASLRz8UXjSD023ugz6VFTL2Sw/A2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6508},"type":"commonjs","strapi":{"kind":"plugin","name":"strapi-llm-translator","description":"AI-Powered Content Translation for Strapi","displayName":"LLM Translator"},"exports":{"./package.json":"./package.json","./strapi-admin":{"types":"./dist/admin/src/index.d.ts","import":"./dist/admin/index.mjs","source":"./admin/src/index.ts","default":"./dist/admin/index.js","require":"./dist/admin/index.js"},"./strapi-server":{"types":"./dist/server/src/index.d.ts","import":"./dist/server/index.mjs","source":"./server/src/index.ts","default":"./dist/server/index.js","require":"./dist/server/index.js"}},"gitHead":"d3b2ea6bceabe0789a784251198d9e8710b6d78b","scripts":{"build":"strapi-plugin build","watch":"strapi-plugin watch","verify":"strapi-plugin verify","watch:link":"strapi-plugin watch:link","test:ts:back":"run -T tsc -p server/tsconfig.json","test:ts:front":"run -T tsc -p admin/tsconfig.json"},"_npmUser":{"name":"asiegrist","email":"asiegrist@hotmail.fr"},"repository":{"url":"git+https://github.com/asiegrist/strapi-llm-translator.git","type":"git"},"_npmVersion":"8.19.3","description":"AI-Powered Content Translation for Strapi","directories":{},"_nodeVersion":"20.19.6","dependencies":{"openai":"^5.3.0","react-intl":"^7.1.11","@azure/openai":"^2.0.0","@strapi/icons":"^2.0.2","@strapi/design-system":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","prettier":"^3.7.4","react-dom":"^18.3.1","typescript":"^5.9.3","@types/react":"^19.2.7","@strapi/strapi":"^5.33.0","@types/react-dom":"^19.2.3","react-router-dom":"^6.30.0","styled-components":"^6.1.19","@strapi/sdk-plugin":"^5.3.2","@strapi/typescript-utils":"^5.33.0"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","@strapi/strapi":">=5.12.3","react-router-dom":"^6.30.0","styled-components":"^6.1.17","@strapi/sdk-plugin":"^5.3.2"},"_npmOperationalInternal":{"tmp":"tmp/strapi-llm-translator_0.10.0_1766076809529_0.041268263469433464","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@asiegrist/strapi-llm-translator","version":"0.10.1","keywords":["strapi","plugin","translation","ai","llm"],"author":{"name":"asiegrist","email":"asiegrist@hotmail.fr"},"license":"MIT","_id":"@asiegrist/strapi-llm-translator@0.10.1","maintainers":[{"name":"asiegrist","email":"asiegrist@hotmail.fr"}],"homepage":"https://github.com/asiegrist/strapi-llm-translator#readme","bugs":{"url":"https://github.com/asiegrist/strapi-llm-translator/issues"},"dist":{"shasum":"6c21061e645123f97b003e06871a54870c003be3","tarball":"https://registry.npmjs.org/@asiegrist/strapi-llm-translator/-/strapi-llm-translator-0.10.1.tgz","fileCount":43,"integrity":"sha512-VGvRb9o5eBrqjRO2y21YrctBIRYp6OhNEWO4e9TTtuecKja6iNkE95pDZMnt1+pVDna4XlmQ6TEl6IeZTKG9DQ==","signatures":[{"sig":"MEUCICBwNG4nkpV2ftx4RmcC0v3q+cM/yWr7I5QKRv2mG7Y1AiEAl3rTh5dauuWE9hXhqOdCIN7oX7uCF1a47AFfs5QxGcg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100340},"type":"commonjs","strapi":{"kind":"plugin","name":"strapi-llm-translator","description":"AI-Powered Content Translation for Strapi","displayName":"LLM Translator"},"exports":{"./package.json":"./package.json","./strapi-admin":{"types":"./dist/admin/src/index.d.ts","import":"./dist/admin/index.mjs","source":"./admin/src/index.ts","default":"./dist/admin/index.js","require":"./dist/admin/index.js"},"./strapi-server":{"types":"./dist/server/src/index.d.ts","import":"./dist/server/index.mjs","source":"./server/src/index.ts","default":"./dist/server/index.js","require":"./dist/server/index.js"}},"gitHead":"f097f8c14757c4dacb60f5b943c83254307402e2","scripts":{"build":"strapi-plugin build","watch":"strapi-plugin watch","verify":"strapi-plugin verify","watch:link":"strapi-plugin watch:link","test:ts:back":"run -T tsc -p server/tsconfig.json","test:ts:front":"run -T tsc -p admin/tsconfig.json"},"_npmUser":{"name":"asiegrist","email":"asiegrist@hotmail.fr"},"repository":{"url":"git+https://github.com/asiegrist/strapi-llm-translator.git","type":"git"},"_npmVersion":"11.6.1","description":"AI-Powered Content Translation for Strapi","directories":{},"_nodeVersion":"24.11.0","dependencies":{"openai":"^5.3.0","react-intl":"^7.1.11","@azure/openai":"^2.0.0","@strapi/icons":"^2.0.2","@strapi/design-system":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","prettier":"^3.7.4","react-dom":"^18.3.1","typescript":"^5.9.3","@types/react":"^19.2.7","@strapi/strapi":"^5.33.0","@types/react-dom":"^19.2.3","react-router-dom":"^6.30.0","styled-components":"^6.1.19","@strapi/sdk-plugin":"^5.3.2","@strapi/typescript-utils":"^5.33.0"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","@strapi/strapi":">=5.12.3","react-router-dom":"^6.30.0","styled-components":"^6.1.17","@strapi/sdk-plugin":"^5.3.2"},"_npmOperationalInternal":{"tmp":"tmp/strapi-llm-translator_0.10.1_1766152076122_0.09957878348623672","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"_id":"@asiegrist/strapi-llm-translator@0.11.1","bugs":{"url":"https://github.com/asiegrist/strapi-llm-translator/issues"},"dist":{"shasum":"5b28b416c968f98ff91ec45322a053237fc8f1f4","tarball":"https://registry.npmjs.org/@asiegrist/strapi-llm-translator/-/strapi-llm-translator-0.11.1.tgz","fileCount":43,"integrity":"sha512-+jZBh+GjEnrEeLdBG8gnOReChuXRD08v7l2MIqul4hzl2ci3DV/NX6D4MrsTOa8tVIu3L9tAeKDYUeK+sGJjXQ==","signatures":[{"sig":"MEUCIG3CyagJoAHJw59rfaBueqUmjxQxSy5jYWj0BUHtLZOwAiEAwDDFpxRj+8oecVNF7OP07QN5VWq8nacujsFH6np/L64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCq9O6ZRaQmavKxK6HCtaf/uPrA3dy80qnL7O1j3mg+hgIhALLY8/2rOfKP+UwIvcL1IPChZuZF3eaKWHujBoqC4wbP"}],"unpackedSize":106107},"name":"@asiegrist/strapi-llm-translator","type":"commonjs","author":{"name":"asiegrist","email":"asiegrist@hotmail.fr"},"strapi":{"kind":"plugin","name":"strapi-llm-translator","description":"AI-Powered Content Translation for Strapi","displayName":"LLM Translator"},"exports":{"./package.json":"./package.json","./strapi-admin":{"types":"./dist/admin/src/index.d.ts","import":"./dist/admin/index.mjs","source":"./admin/src/index.ts","default":"./dist/admin/index.js","require":"./dist/admin/index.js"},"./strapi-server":{"types":"./dist/server/src/index.d.ts","import":"./dist/server/index.mjs","source":"./server/src/index.ts","default":"./dist/server/index.js","require":"./dist/server/index.js"}},"gitHead":"17d38d831f57a282deb94314448876ef3c4273ab","license":"MIT","scripts":{"build":"strapi-plugin build","watch":"strapi-plugin watch","verify":"strapi-plugin verify","watch:link":"strapi-plugin watch:link","test:ts:back":"run -T tsc -p server/tsconfig.json","test:ts:front":"run -T tsc -p admin/tsconfig.json"},"version":"0.11.1","_npmUser":{"name":"asiegrist","email":"asiegrist@hotmail.fr"},"homepage":"https://github.com/asiegrist/strapi-llm-translator#readme","keywords":["strapi","plugin","translation","ai","llm"],"repository":{"url":"git+https://github.com/asiegrist/strapi-llm-translator.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-Powered Content Translation for Strapi","directories":{},"maintainers":[{"name":"asiegrist","email":"asiegrist@hotmail.fr"}],"_nodeVersion":"20.19.6","dependencies":{"openai":"^5.3.0","react-intl":"^7.1.11","@strapi/icons":"^2.0.0-rc.21","@strapi/design-system":"^2.0.0-rc.21"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.1.0","prettier":"^3.5.3","react-dom":"^19.1.0","typescript":"^5.8.3","@types/react":"^19.1.8","@strapi/strapi":"^5.15.1","@types/react-dom":"^19.1.6","react-router-dom":"^7.6.2","styled-components":"^6.1.18","@strapi/sdk-plugin":"^5.3.2","@strapi/typescript-utils":"^5.15.1"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","@strapi/strapi":">=5.12.3","react-router-dom":"^6.30.0","styled-components":"^6.1.17","@strapi/sdk-plugin":"^5.3.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/strapi-llm-translator_0.11.1_1789648586989_0.025080891587297316"}}},"time":{"created":"2025-12-18T16:53:29.444Z","modified":"2026-09-17T12:36:27.276Z","0.10.0":"2025-12-18T16:53:29.666Z","0.10.1":"2025-12-19T13:47:56.273Z","0.11.1":"2026-09-17T12:36:27.095Z"},"bugs":{"url":"https://github.com/asiegrist/strapi-llm-translator/issues"},"author":{"name":"asiegrist","email":"asiegrist@hotmail.fr"},"license":"MIT","homepage":"https://github.com/asiegrist/strapi-llm-translator#readme","keywords":["strapi","plugin","translation","ai","llm"],"repository":{"url":"git+https://github.com/asiegrist/strapi-llm-translator.git","type":"git"},"description":"AI-Powered Content Translation for Strapi","maintainers":[{"name":"asiegrist","email":"asiegrist@hotmail.fr"}],"readme":"# <img alt=\"Strapi LLM Translator Icon\" src=\"./docs/strapi-llm-translator-icon.png\" width=\"50\"> Strapi LLM Translator\n\n#### AI-Powered Content Translation for Strapi\n\nThe Strapi LLM Translator plugin enhances your localization workflow by utilising LLMs to translate your content fields with a single click. Compatible with any OpenAI-compatible LLM, it preserves your original formatting while delivering fast, accurate results in seconds.\n\n## 🚀 Key Features\n\n- 🌍 **Multi-field Support** - Translates all text-based fields (string, text, richtext) and JSON/Blocks content, including Strapi 5 structured rich text\n- 🔌 **LLM Agnostic** - Works with any OpenAI-compatible API (your choice of provider or local)\n- 📝 **Format Preservation** - Maintains markdown formatting during translation\n- 🔗 **Smart UUID Handling** - Auto-translates slugs when i18n is enabled with relative fields\n- ⚡ **Auto-fill** - Instantly populates generated translations\n- 🎛️ **Customizable** - Adjust system prompts and temperature for optimal results\n\n---\n\n<img alt=\"strapi-llm-translator\" style=\"border-radius:5px\" src=\"./docs/strapi-llm-translator.gif\" width=\"640\">\n\n---\n\n## ✅ Tested With\n\n- **Strapi**: v5.12.x, v5.15.x\n- **LLM Providers**:\n  - OpenAI: `gpt-4o`\n  - Azure OpenAI: `gpt-4.1`\n  - Groq: `meta-llama/llama-4-scout-17b-16e-instruct`\n  - Local: `Ollama`, e.g. `phi4-mini`\n\n## 🛠️ Installation & Setup\n\n### Prerequisites\n\n- Strapi project (v5+)\n- API key for your preferred LLM provider, Base Url + Model Name (+ API Version for Azure OpenAI)\n- Configured internationalization with at least two languages in your Strapi application\n\n### Installation\n\n1. Install the plugin in your Strapi project:\n\n```bash\nnpm install strapi-llm-translator\n```\n\n2. Configure environment variables:\n\n```\n# Optional - Your LLM provider API key (Can be left empty if there is no API Key needed)\nLLM_TRANSLATOR_LLM_API_KEY=\n\n# Optional - Defaults to OpenAI's endpoint\nSTRAPI_ADMIN_LLM_TRANSLATOR_LLM_BASE_URL=\n\n# Optional - ⚠️ Only Required for Azure OpenAI\nSTRAPI_ADMIN_LLM_TRANSLATOR_AZURE_API_VERSION=\n\n# Optional - Defaults to gpt-4o\nSTRAPI_ADMIN_LLM_TRANSLATOR_LLM_MODEL=\n```\n\n3. Rebuild your admin panel:\n\n```\nnpm run build\n```\n\nAfter installation, customize the translation behavior through the LLM Translator configuration page:\n\n---\n\n<img alt=\"Strapi LLM Translator Configuration screen\" style=\"border-radius:5px\" src=\"./docs/strapi-llm-translator-configuration.png\" width=\"640\">\n\n---\n\n## 💻 Plugin Development\n\nTo contribute to the plugin development:\n\n1. Navigate to your Strapi project\n2. Add and link the plugin: `npx yalc add strapi-llm-translator && npx yalc link strapi-llm-translator && npm install`\n3. Start your Strapi project\n4. In a separate terminal, watch the plugin for changes:\n   `npm run watch:link`\n\n## Contributors ✨\n\nThanks goes to these wonderful people:\n\n- [jacco-webleads](https://github.com/jacco-webleads) (Parallel Batch Processing)\n- [asiegrist](https://github.com/asiegrist) (Azure OpenAI Support)\n- [DrTimmi](https://github.com/DrTimmi) (Support for nested components, dynamic zones, rich-text fields, and robust JSON parsing)\n\n## Author\n\n- [grenzbotin](https://github.com/grenzbotin) – [vulpis.dev](https://vulpis.dev)\n\nDistributed under the MIT license.\nSee `LICENSE` for more information.\n","readmeFilename":"README.md"}