
Security News
Re-Enabled GitHub Actions Expose Thousands of Repositories to Mini Shai-Hulud
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.
vite-plugin-shipi18n
Advanced tools
Vite plugin for automatic i18n translation at build time — bring your own OpenAI/Anthropic key. No hosted API.
Automatically translate your i18n locale files at build time — bring your own LLM. Uses your
own OpenAI or Anthropic key via @shipi18n/core. No
Shipi18n account, no hosted API, no per-word fees.
npm i -D vite-plugin-shipi18n @shipi18n/core @anthropic-ai/sdk
# or, for OpenAI: npm i -D vite-plugin-shipi18n @shipi18n/core openai
// vite.config.js
import { defineConfig } from 'vite'
import shipi18n from 'vite-plugin-shipi18n'
export default defineConfig({
plugins: [
shipi18n({
provider: 'anthropic', // 'anthropic' (default) | 'openai' | custom adapter
// apiKey: process.env.ANTHROPIC_API_KEY, // optional — falls back to the provider env var
targetLanguages: ['es', 'fr', 'de', 'ja'],
sourceDir: 'public/locales/en',
outputDir: 'public/locales',
}),
],
})
export ANTHROPIC_API_KEY=sk-ant-...
vite build
On buildStart, every JSON file in sourceDir is translated into each target language and written to
outputDir/<lang>/<file>, preserving structure and placeholders.
| Option | Default | Description |
|---|---|---|
provider | 'anthropic' | 'anthropic', 'openai', or a custom { complete } adapter |
apiKey | env var | LLM key; falls back to ANTHROPIC_API_KEY / OPENAI_API_KEY |
model | provider default | Override the model |
targetLanguages | — | Required. Array of language codes (['es','fr']) |
sourceDir | 'public/locales/en' | Directory of source locale JSON files |
outputDir | 'public/locales' | Where translated <lang>/<file> are written |
sourceLanguage | 'en' | Source language code |
cache | true | Cache translations by content hash |
cacheDir | node_modules/.cache/vite-plugin-shipi18n | Cache location |
fallback.fallbackToSource | true | Use source text when a translation is missing |
fallback.regionalFallback | true | pt-BR → pt base-language fallback |
Translations are cached by an MD5 of the source content + target languages. Change the source (or the target list) and only the affected files are re-translated on the next build.
Your key is used to call your LLM directly — nothing is sent to a Shipi18n server. Set
ANTHROPIC_API_KEY (default) or use provider: 'openai' with OPENAI_API_KEY.
Apache-2.0
FAQs
Vite plugin for automatic i18n translation at build time — bring your own OpenAI/Anthropic key. No hosted API.
We found that vite-plugin-shipi18n demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.

Research
/Security News
The compromise affects MemTensor's MemOS, an open source memory framework for large language models (LLMs) and AI agents. Both npm package @memtensor/memos-cloud-openclaw-plugin and the PyPI package MemoryOS are compromised. They drop cross-platform Go binaries that exfiltrate developer secrets.