Getting started
Before installing any package you need three things: an account, a project with its AI configured, and a project API token.
1. Create your account
Sign up for free at translateprojects.dev/accounts/register. No credit card required.
2. Create a project
In the dashboard, go to Projects and create a new one. Use one project for each application or site you want to translate.
| Field | What it's for |
|---|---|
| Project name | A name to recognize it in the dashboard. |
| Project description | Context for the AI: what it's about, who reads it and the tone. A good description improves the translations. |
| Category | It's also context for the AI (for example, technical documentation or video games). If it's not in the list, write a new one. |
| Default language | The language you write your texts in. It must match the base language you set in the package. |
| AI provider | Claude, OpenAI, DeepSeek or Gemini. |
| AI model for translation | The model from that provider that will do the translations. |
| API key from your AI provider | The key for your account with that provider. It is stored encrypted and is only used for texts that are not in the shared network. |
Target languages are added automatically the first time the package requests them. If you disable one in the dashboard, the API rejects that language until you enable it again.
3. Generate the API token
Inside the project, open API Tokens and click Create new token. That token identifies the project to the API; it is not your AI provider's key.
Save it in the environment variable TRANSLATE_PROJECTS_API_KEY:
export TRANSLATE_PROJECTS_API_KEY=tu_token
Or in the .env file of your project. Laravel reads it automatically; the Node commands (React, Next.js, Astro, Docusaurus) and Django don't, so export the variable or load it yourself (on Node 20 or higher, with node --env-file=.env).
TRANSLATE_PROJECTS_API_KEY=tu_token
Never write the token in the code or commit it to the repository. Always read it from the environment variable; in CI store it as a secret. If it leaks, disable it in API Tokens and create another one.