🕹️ Apps
·
📄 Docs
·
💙 Discord
·
𝕏 Twitter
i18n tools are not interoperable.
┌──────────┐ ┌───────────┐ ┌──────────┐
│ i18n lib │───✗────│Translation│────✗────│ Design │
│ │ │ Tool │ │ Tool │
└──────────┘ └───────────┘ └──────────┘
Every tool has its own format, its own sync, its own collaboration layer. Cross-team work? Manual exports and hand-offs.
An open file format. Everything interoperates.
┌──────────┐ ┌───────────┐ ┌──────────┐
│ Paraglide│ │ Fink │ │ Sherlock │
└────┬─────┘ └─────┬─────┘ └─────┬────┘
│ │ │
└─────────┐ │ ┌──────────┘
▼ ▼ ▼
┌──────────────────────────────────┐
│ .inlang file │
└──────────────────────────────────┘
One file format. Multiple tools. All interoperable. The good old Unix philosophy.
- Paraglide — i18n library for JS/TS with fully translated, typesafe & fast apps in minutes
- Fink — translation editor in the browser, invite collaborators to help
- Sherlock — VS Code extension to translate right in your editor
- Parrot — see translations directly in Figma
- CLI — lint messages, machine translate, quality control in CI/CD
import { loadProjectFromDirectory } from "@inlang/sdk";
const project = await loadProjectFromDirectory({
path: "./project.inlang",
});
const messages = await project.db.selectFrom("message").selectAll().execute();The SDK gives you:
- CRUD API for translations
- SQL queries
- Plugin system for any format
- Version control via lix
There are many ways you can contribute to inlang! Here are a few options:
- Star this repo
- Create issues every time you feel something is missing or goes wrong
- Upvote issues with 👍 reaction so we know what the demand for a particular issue to prioritize it within the roadmap
If you would like to contribute to the development of the project, please refer to our Contributing guide.
All contributions are highly appreciated. 🙏
