{"id":35775900,"url":"https://github.com/opral/inlang","last_synced_at":"2026-01-13T09:01:07.942Z","repository":{"id":38172734,"uuid":"394757291","full_name":"opral/inlang","owner":"opral","description":"open file format for localizing software (i18n)","archived":false,"fork":false,"pushed_at":"2026-01-11T20:16:56.000Z","size":244286,"stargazers_count":1699,"open_issues_count":15,"forks_count":169,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-11T23:52:48.625Z","etag":null,"topics":["globalization","i18n","localisation","localization","vscode"],"latest_commit_sha":null,"homepage":"https://inlang.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opral.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-08-10T19:13:21.000Z","updated_at":"2026-01-11T20:17:00.000Z","dependencies_parsed_at":"2023-09-22T14:31:31.720Z","dependency_job_id":"3a101502-06f5-451e-a060-6a2f23c2852b","html_url":"https://github.com/opral/inlang","commit_stats":{"total_commits":12147,"total_committers":94,"mean_commits":"129.22340425531914","dds":0.7776405696879888,"last_synced_commit":"d9ba219da87d3ad2af43ee4185cd6109e0ba63fd"},"previous_names":["inlang/monorepo","opral/monorepo","inlang/inlang","samuelstroschein/inlang"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/opral/inlang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opral%2Finlang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opral%2Finlang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opral%2Finlang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opral%2Finlang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opral","download_url":"https://codeload.github.com/opral/inlang/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opral%2Finlang/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28379228,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T08:40:31.739Z","status":"ssl_error","status_checked_at":"2026-01-13T08:40:23.736Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["globalization","i18n","localisation","localization","vscode"],"created_at":"2026-01-07T05:00:35.066Z","updated_at":"2026-01-13T09:01:07.903Z","avatar_url":"https://github.com/opral.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/opral/monorepo\"\u003e  \u003c/a\u003e\n\n  \u003cimg src=\"https://github.com/opral/monorepo/blob/main/inlang/assets/logo_rounded.png?raw=true\" alt=\"inlang icon\" width=\"90px\"\u003e\n  \n  \u003ch2 align=\"center\"\u003e\n    The open file format and ecosystem for localization (i18n)\n  \u003c/h2\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003cbr\u003e\n    \u003ca href='https://inlang.com/c/apps' target=\"_blank\"\u003e🕹️ Apps\u003c/a\u003e\n    ·\n    \u003ca href='https://inlang.com/documentation' target=\"_blank\"\u003e📄 Docs\u003c/a\u003e\n    ·\n    \u003ca href='https://discord.gg/gdMPPWy57R' target=\"_blank\"\u003e💙 Discord\u003c/a\u003e\n    ·\n    \u003ca href='https://twitter.com/inlangHQ' target=\"_blank\"\u003e𝕏 Twitter\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## The problem\n\ni18n tools are not interoperable.\n\n```\n┌──────────┐        ┌───────────┐         ┌──────────┐\n│ i18n lib │───✗────│Translation│────✗────│  Design  │\n│          │        │   Tool    │         │   Tool   │\n└──────────┘        └───────────┘         └──────────┘\n```\n\nEvery tool has its own format, its own sync, its own collaboration layer. Cross-team work? Manual exports and hand-offs.\n\n## The solution\n\nAn open file format. Everything interoperates.\n\n```\n┌──────────┐        ┌───────────┐         ┌──────────┐\n│ Paraglide│        │   Fink    │         │ Sherlock │\n└────┬─────┘        └─────┬─────┘         └─────┬────┘\n     │                    │                     │\n     └─────────┐          │          ┌──────────┘\n               ▼          ▼          ▼\n           ┌──────────────────────────────────┐\n           │          .inlang file            │\n           └──────────────────────────────────┘\n```\n\nOne file format. Multiple tools. All interoperable. The good old Unix philosophy.\n\n## Popular tools\n\n- [Paraglide](https://inlang.com/m/gerre34r/library-inlang-paraglideJs) — i18n library for JS/TS with fully translated, typesafe \u0026 fast apps in minutes\n- [Fink](https://inlang.com/m/tdozzpar/app-inlang-finkLocalizationEditor) — translation editor in the browser, invite collaborators to help\n- [Sherlock](https://inlang.com/m/r7kp499g/app-inlang-ideExtension) — VS Code extension to translate right in your editor\n- [Parrot](https://inlang.com/m/gkrpgoir/app-parrot-figmaPlugin) — see translations directly in Figma\n- [CLI](https://inlang.com/m/2qj2w8pu/app-inlang-cli) — lint messages, machine translate, quality control in CI/CD\n\n## Build your own\n\n```ts\nimport { loadProjectFromDirectory } from \"@inlang/sdk\";\n\nconst project = await loadProjectFromDirectory({\n  path: \"./project.inlang\",\n});\n\nconst messages = await project.db.selectFrom(\"message\").selectAll().execute();\n```\n\nThe SDK gives you:\n\n- CRUD API for translations\n- SQL queries\n- Plugin system for any format\n- Version control via lix\n\n[Read the docs →](https://inlang.com/documentation)\n\n## Contributing\n\nThere are many ways you can contribute to inlang! Here are a few options:\n\n- Star this repo\n- Create issues every time you feel something is missing or goes wrong\n- Upvote issues with 👍 reaction so we know what the demand for a particular issue to prioritize it within the roadmap\n\nIf you would like to contribute to the development of the project, please refer to our [Contributing guide](https://github.com/opral/monorepo/blob/main/CONTRIBUTING.md).\n\nAll contributions are highly appreciated. 🙏\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopral%2Finlang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopral%2Finlang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopral%2Finlang/lists"}