next-i18n-ai
v1.0.2
Published
AI-powered translation for Next.js internationalization
Readme
AI Translation API with Caching
🚀 Overview
This project provides an AI-powered translation service using the Gemini API with Upstash Redis caching for optimized performance. It supports multiple language translations with caching to reduce redundant API requests.
🛠 Features
- 🌍 AI-powered language translation
- ⚡ Upstash Redis caching to reduce API calls
- 🔐 Secure API key usage with
.envfile - 🧪 Jest tests for error handling
📦 Installation
Clone the repository and install dependencies:
npm i next-i18n-ai🔑 Environment Variables
Create a .env file in the project root and add:
API_KEY=your-gemini-api-key
Usage
const { AIClient } = require("next-i18n-ai");
const client = new AIClient({
apiKey: "your-api-key",
provider: "gemini",
});
async function main() {
const translatedText = await client.translate("Hello", "es");
console.log("Translated:", translatedText);
}
main().catch(console.error);Configuration
Ensure you have a valid API key and provider set up for the translations to work correctly.
Run Example Translation
npx tsx ./examples/example.ts📂 Project Structure
├── src
│ ├── ai-client.ts # Main AIClient with API call & caching logic
│ ├── index.ts # Export AIClient
├── examples
│ ├── example.ts # Example usage
├── tests
│ ├── ai-client.test.ts # Jest test cases
├── .env # Environment variables
├── LICENSE # MIT License
├── package.json # Project dependencies
├── README.md # Project documentation🧪 Running Tests
Run unit tests using Jest:
npm test🚀 Deployment
You can deploy this service on Vercel, Railway, or Fly.io:
Deploy with Docker
Create a
Dockerfile:FROM node:18 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . CMD ["node", "src/index.js"]Build & run:
docker build -t ai-translation . docker run -p 3000:3000 ai-translation
📜 License
This project is licensed under the MIT License. See the LICENSE file for more details.
🤝 Contributing
PRs are welcome! Open an issue for discussions or improvements.
📞 Contact
For any queries, reach out to Your Name.
