{"id":46225617,"url":"https://github.com/terai-labs/terai","last_synced_at":"2026-03-03T16:02:25.244Z","repository":{"id":187299866,"uuid":"676505696","full_name":"terai-labs/terai","owner":"terai-labs","description":"🌐🚀 Modern localization for TypeScript codebases","archived":false,"fork":false,"pushed_at":"2026-01-12T06:00:12.000Z","size":55804,"stargazers_count":7,"open_issues_count":3,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-12T15:59:38.128Z","etag":null,"topics":["ai","i18n","internationalization","intl","l10n","localize","t9n","translation"],"latest_commit_sha":null,"homepage":"https://terai-labs.github.io/terai/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terai-labs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2023-08-09T10:58:47.000Z","updated_at":"2025-12-08T14:31:31.000Z","dependencies_parsed_at":"2023-08-09T20:10:48.231Z","dependency_job_id":"421b6ce1-6cd2-4da2-9b68-8b62313cd1f7","html_url":"https://github.com/terai-labs/terai","commit_stats":null,"previous_names":["hugocxl/rosseta","hugocxl/rosetta.js","koi18n/koi18n","teraihq/terai","terai-labs/terai"],"tags_count":362,"template":false,"template_full_name":null,"purl":"pkg:github/terai-labs/terai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terai-labs%2Fterai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terai-labs%2Fterai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terai-labs%2Fterai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terai-labs%2Fterai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terai-labs","download_url":"https://codeload.github.com/terai-labs/terai/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terai-labs%2Fterai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30051099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T15:26:47.567Z","status":"ssl_error","status_checked_at":"2026-03-03T15:26:17.132Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["ai","i18n","internationalization","intl","l10n","localize","t9n","translation"],"created_at":"2026-03-03T16:02:18.903Z","updated_at":"2026-03-03T16:02:21.283Z","avatar_url":"https://github.com/terai-labs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"media/cover.png\" width=\"100%\" align=\"center\" alt=\"cover\" style=\"border-radius:16px\" /\u003e\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Build](https://img.shields.io/github/actions/workflow/status/terai-labs/terai/release.yml?branch=master)](https://github.com/terai-labs/terai/actions/workflows/release.yml)\n[![Tests Coverage](https://img.shields.io/coverallsCoverage/github/terai-labs/terai)](https://coveralls.io/github/terai-labs/terai)\n[![Language](https://img.shields.io/badge/language-TypeScript-blue.svg)](https://www.typescriptlang.org)\n[![License](https://img.shields.io/github/license/terai-labs/terai)](https://www.npmjs.com/package/@terai-labs/terai)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cb\u003eTerai is a i18n framework for Typescript applications. Built for the open source community and optimized for developer experience in the frameworks you love.\u003c/b\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch4\u003e\n    \u003ca href=\"https://terai-labs.github.io/terai\"\u003e\n      Website\n    \u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://terai-labs.github.io/terai/docs\"\u003e\n      Documentation\n    \u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://github.com/terai-labs/terai/issues\"\u003e\n      Issues\n    \u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://github.com/terai-labs/terai/contributing\"\u003e\n      Contributing\n    \u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://github.dev/terai/terai/blob/master/CHANGELOG.md\"\u003e\n      Changelog\n    \u003c/a\u003e\n  \u003c/h4\u003e\n\u003c/div\u003e\n\n\u003e [!WARNING]  \n\u003e **Terai** is currently in development preview with unstable dependencies.\nWhile not planned, we may need to introduce breaking changes in these dependencies on the road to v1.0.\n\n## Introduction\n\n**Terai** is a developer-first open-source localization framework for JavaScript that aims to remove the pain in the localization process.\n\nWorkflow can be broken down into 3 steps:\n\n- 1️⃣ **Develop**: incorporate your translation source messages into your project using our dedicated SDKs.\n- 2️⃣ **Extract**: streamline your extraction process by automatically gathering all the messages within your project.\n- 3️⃣ **Translate**: use your defined translator to get your localized messages.\n\nMore documentation available at [https://terai-labs.github.io/terai](https://terai-labs.github.io/terai).\n\n## Quick Demo\n\n\u003cimg src=\"media/demo.gif\" width=\"100%\" align=\"center\" alt=\"demo\" style=\"border-radius:16px\" /\u003e\n\n## Features\n\n- 🚀 **Speed**: Remove the pain in the localization process. Translate your products **10x faster**.\n- 🧑‍💻 **Developer-focused**: One of our main goal was improving the developer experience. No more looking for keys in your source code, no more editing localisation files, and no more manual exporting data for translators.\n- 🏆 **Javascript-based**: designed to be used in any javascript-based environment with specific integrations for all major frameworks: Node, React, Next...\n- 🤖 **Translation**: Let the machines work for you. We natively support ChatGPT, Google Translate (and more to come), or use your custom translation service.\n- 🕋 **Cache**: Don’t translate the same string twice. Translation cache reuses strings you’ve already translated.\n- 🌱 **Lightweight**: offer your product to your audience in the way they understand better with just a few KB.\n- ✂️ **Code splitting**: Split your translation files with ease. Just import the messages your user needs to see.\n- 💎 **TypeScript**: Full-written in TypeScript.\n- ⭐️ **MIT Licensed**: Free for personal and commercial use.\n\n## Packages\n\n| Package | Description | Version | Size | Downloads |\n| :------ | :---- |  :-----: | :--: | :-------: |\n| `@terai/dev` | Dev package for **Terai** | [![Version](https://img.shields.io/npm/v/@terai/dev.svg?logo=npm)](https://www.npmjs.com/package/@terai/dev) | [![Size](https://img.shields.io/bundlephobia/minzip/@terai/dev)](https://bundlephobia.com/result?p=@terai/dev) | [![NPM](https://img.shields.io/npm/dm/@terai/dev.svg?\u0026logo=npm)](https://www.npmjs.com/package/@terai/dev) |\n| `@terai/react` | **Terai** for **React** | [![Version](https://img.shields.io/npm/v/@terai/react.svg?logo=npm)](https://www.npmjs.com/package/@terai/react) | [![Size](https://img.shields.io/bundlephobia/minzip/@terai/react)](https://bundlephobia.com/result?p=@terai/react) | [![NPM](https://img.shields.io/npm/dm/@terai/react.svg?\u0026logo=npm)](https://www.npmjs.com/package/@terai/react) |\n| `@terai/react-native` | **Terai** for **React Native** | [![Version](https://img.shields.io/npm/v/@terai/react-native.svg?logo=npm)](https://www.npmjs.com/package/@terai/react-native) | [![Size](https://img.shields.io/bundlephobia/minzip/@terai/react-native)](https://bundlephobia.com/result?p=@terai/react-native) | [![NPM](https://img.shields.io/npm/dm/@terai/react-native.svg?\u0026logo=npm)](https://www.npmjs.com/package/@terai/react-native) |\n| `@terai/next` | **Terai** for **Next** (WIP) | [![Version](https://img.shields.io/npm/v/@terai/next.svg?logo=npm)](https://www.npmjs.com/package/@terai/next) | [![Size](https://img.shields.io/bundlephobia/minzip/@terai/next)](https://bundlephobia.com/result?p=@terai/next) | [![NPM](https://img.shields.io/npm/dm/@terai/next.svg?\u0026logo=npm)](https://www.npmjs.com/package/@terai/next) |\n| `@terai/node` | **Terai** for **Node** | [![Version](https://img.shields.io/npm/v/@terai/node.svg?logo=npm)](https://www.npmjs.com/package/@terai/node) | [![Size](https://img.shields.io/bundlephobia/minzip/@terai/node)](https://bundlephobia.com/result?p=@terai/node) | [![NPM](https://img.shields.io/npm/dm/@terai/node.svg?\u0026logo=npm)](https://www.npmjs.com/package/@terai/node) |\n\n## Getting Started\n\nVisit [getting started](https://terai-labs.github.io/terai/docs) to get started with **Terai**.\n\n## Documentation\n\nVisit our [website](https://terai-labs.github.io/terai/docs) to view the full documentation.\n\n## Community\n\nThe **Terai** community can be found on [GitHub Discussions](https://github.com/terai/terai/discussions), where you can ask questions, voice ideas, and share your projects.\n\nOur [Code of Conduct](https://github.com/terai/terai/blob/master/CODE_OF_CONDUCT.md) applies to all **Terai** community channels.\n\n## Contributing\n\nPlease see our [contributing.md](/contributing.md).\n\n### Good First Issues\n\nWe have a list of [good first issues](https://github.com/terai/terai/labels/good%20first%20issue) that contain bugs that have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.\n\n## Authors\n\n- Hugo Corta ([@hugocxl](https://github.com/hugocxl))\n\n## License\n\nMIT License © 2023-Present [Hugo Corta](https://github.com/hugocxl)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterai-labs%2Fterai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterai-labs%2Fterai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterai-labs%2Fterai/lists"}