{"id":21057026,"url":"https://github.com/aymericzip/intlayer","last_synced_at":"2025-04-05T07:01:16.000Z","repository":{"id":233887565,"uuid":"776924173","full_name":"aymericzip/intlayer","owner":"aymericzip","description":"Internationalisation solution for JS application. Make your JavaScript application multilingue.","archived":false,"fork":false,"pushed_at":"2025-03-28T20:46:17.000Z","size":108208,"stargazers_count":46,"open_issues_count":9,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T21:31:10.668Z","etag":null,"topics":["cms","content","content-management-system","i18n","internationalization","javascript","multilingual","nextjs","nodejs","react","translation","typescript","vite","website"],"latest_commit_sha":null,"homepage":"https://intlayer.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aymericzip.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":["aypineau"]}},"created_at":"2024-03-24T20:14:24.000Z","updated_at":"2025-03-28T20:44:09.000Z","dependencies_parsed_at":"2024-05-12T14:23:27.399Z","dependency_job_id":"6c2fde8d-d8fd-403b-9a10-f0b8fc0d00f3","html_url":"https://github.com/aymericzip/intlayer","commit_stats":{"total_commits":617,"total_committers":3,"mean_commits":"205.66666666666666","dds":0.03889789303079416,"last_synced_commit":"88a6363a264db41d38c536651bee4cf00a6e80ce"},"previous_names":["aypineau/intlayer","aymericzip/intlayer","intlayer-org/intlayer"],"tags_count":297,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aymericzip%2Fintlayer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aymericzip%2Fintlayer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aymericzip%2Fintlayer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aymericzip%2Fintlayer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aymericzip","download_url":"https://codeload.github.com/aymericzip/intlayer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299828,"owners_count":20916190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cms","content","content-management-system","i18n","internationalization","javascript","multilingual","nextjs","nodejs","react","translation","typescript","vite","website"],"created_at":"2024-11-19T16:56:02.923Z","updated_at":"2025-04-05T07:01:15.908Z","avatar_url":"https://github.com/aymericzip.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://intlayer.org\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/aymericzip/intlayer/572ae9c9acafb74307b81530c1931a8e98990aef/docs/assets/logo.png\" width=\"500\" alt=\"intlayer\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/intlayer\"\u003e\n    \u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/v/intlayer.svg?labelColor=49516F\u0026color=8994BC\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://npmjs.org/package/intlayer\"\u003e\n    \u003cimg alt=\"downloads\" src=\"https://badgen.net/npm/dm/intlayer?labelColor=49516F\u0026color=8994BC\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://npmjs.org/package/intlayer\"\u003e\n    \u003cimg alt=\"types included\" src=\"https://badgen.net/npm/types/intlayer?labelColor=49516F\u0026color=8994BC\" \n  /\u003e\n\u003c/div\u003e\n\n# Intlayer: A closer way to translate your application\n\nIntlayer offers a more flexible and modern approach to **internationalization** (i18n). Its seamless integration with **Next.js**, **React**, **Vite** and **Express**, customizable configuration, and support for various content declaration formats, such as **TypeScript** make it a powerful choice for internationalization.\n\n![Watch the video](https://github.com/aymericzip/intlayer/blob/main/docs/assets/demo_video.gif)\n\n### Key Benefits of Intlayer:\n\n- **Effortless Dictionary**  \n  Organize and maintain your multilingual content efficiently by declaring content dictionaries directly alongside your components. This not only reduces complexity but also improves maintainability.  \n  [Learn more about content declaration](https://intlayer.org/doc/concept/content)\n\n- **Seamless Integration with Next.js, React, and Express**  \n  Intlayer is designed to work flawlessly with Next.js and React, supporting features like server-side rendering, dynamic routing, and client-side rendering. This makes it the perfect choice for developers building modern web applications.  \n  [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs)  \n  [Explore React integration](https://intlayer.org/doc/environment/create-react-app)\n  [Explore Express integration](https://intlayer.org/doc/environment/express)\n\n- **Simplified Content Management for Non-Developers**  \n  With the command `npm intlayer push`, you can externalize content management, making it accessible to non-developer teams. Intlayer includes a free Content Management System (CMS), enabling your team to manage translations effortlessly.  \n  [Learn about Intlayer CLI](https://intlayer.org/doc/concept/cli)\n\n- **AI-Powered Translation**  \n  Transform your website into 231 languages with just one click using Intlayer's advanced AI-powered translation tools. This feature simplifies the translation process and ensures global reach.  \n  [Learn about Intlayer CLI](https://intlayer.org/doc/concept/cli)  \n  [Learn about Intlayer Editor](https://github.com/aymericzip/intlayer/blob/main/docs/en/intlayer_visual_editor.md)\n\n- **Optimized for Server Components**  \n  Intlayer seamlessly supports React Server Components, enabling efficient internationalization in modern server-rendered applications. This ensures faster load times and improved SEO performance while maintaining a consistent multilingual experience across your app.  \n  [Learn more about Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code)\n\n- **Enhanced Developer Experience with TypeScript**  \n  With full TypeScript support, Intlayer enables type-safe content definitions, improving code quality and boosting developer productivity.\n\n- **Powerful Customization Options**  \n  Tailor Intlayer to meet your project’s unique needs. Adjust settings for internationalization, middleware, and content handling with ease.  \n  [Discover how to configure Intlayer](https://intlayer.org/doc/concept/configuration)\n\nStart your journey with Intlayer today and experience a smoother, more powerful approach to internationalization.  \n[Get Started with Intlayer](https://intlayer.org/doc/concept/content)\n\n---\n\n## Table of Contents\n\nExplore our comprehensive documentation to get started with Intlayer and learn how to integrate it into your projects.\n\n### Get Started\n\n- [Introduction](https://intlayer.org/doc)\n\n### Concept\n\n- [How Intlayer Works](https://intlayer.org/doc/concept/how-works-intlayer)\n- [Configuration](https://intlayer.org/doc/concept/configuration)\n- [Interest of Intlayer](https://intlayer.org/doc/concept/interest)\n- [Intlayer CLI](https://intlayer.org/doc/concept/cli)\n- [Intlayer Editor](https://intlayer.org/doc/concept/editor)\n- [Intlayer CMS](https://intlayer.org/doc/concept/cms)\n- [Dictionary](https://intlayer.org/doc/concept/content)\n  - [Translation](https://intlayer.org/doc/concept/content/translation)\n  - [Enumeration](https://intlayer.org/doc/concept/content/enumeration)\n  - [Condition](https://intlayer.org/doc/concept/content/condition)\n  - [Nesting](https://intlayer.org/doc/concept/content/nesting)\n  - [Markdown](https://intlayer.org/doc/concept/content/markdown)\n  - [Function Fetching](https://intlayer.org/doc/concept/content/function-fetching)\n  - [Insertion](https://intlayer.org/doc/concept/content/insertion)\n  - [File](https://intlayer.org/doc/concept/content/file)\n\n### Environment\n\n- [Intlayer with Next.js 15](https://intlayer.org/doc/environment/nextjs)\n  - [Intlayer with Next.js 14 (App Router)](https://intlayer.org/doc/environment/nextjs/14)\n  - [Intlayer with Next.js Page Router](https://intlayer.org/doc/environment/nextjs/next-with-Page-Router)\n- [Intlayer with React CRA](https://intlayer.org/doc/environment/create-react-app)\n- [Intlayer with Vite and React](https://github.com/aymericzip/intlayer/blob/main/docs/en/intlayer_with_vite+react.md)\n- [Intlayer with React Native](https://intlayer.org/fr/doc/environment/react-native-and-expo)\n- [Intlayer with Lynx and React](https://intlayer.org/fr/doc/environment/lynx-and-react)\n- [Intlayer with Express](https://intlayer.org/doc/environment/express)\n\n### Packages\n\n#### intlayer\n\n- [Package](https://intlayer.org/doc/packages/intlayer)\n  - [getConfiguration](https://intlayer.org/doc/packages/intlayer/getConfiguration)\n  - [getHTMLTextDir](https://intlayer.org/doc/packages/intlayer/getHTMLTextDir)\n  - [getLocaleLang](https://intlayer.org/doc/packages/intlayer/getLocaleLang)\n  - [getLocaleName](https://intlayer.org/doc/packages/intlayer/getLocaleName)\n  - [getLocalizedUrl](https://intlayer.org/doc/packages/intlayer/getLocalizedUrl)\n  - [getMultilingualUrls](https://intlayer.org/doc/packages/intlayer/getMultilingualUrls)\n  - [getPathWithoutLocale](https://intlayer.org/doc/packages/intlayer/getPathWithoutLocale)\n  - [getTranslation](https://intlayer.org/doc/packages/intlayer/getTranslation)\n  - [getEnumeration](https://intlayer.org/doc/packages/intlayer/getEnumeration)\n\n#### express-intlayer\n\n- [Package](https://intlayer.org/doc/packages/express-intlayer)\n  - [t](https://intlayer.org/doc/packages/express-intlayer/t)\n\n#### react-intlayer\n\n- [Package](https://intlayer.org/doc/packages/react-intlayer)\n  - [t](https://intlayer.org/doc/packages/react-intlayer/t)\n  - [useIntlayer](https://intlayer.org/doc/packages/react-intlayer/useIntlayer)\n  - [useDictionary](https://intlayer.org/doc/packages/react-intlayer/useDictionary)\n  - [useLocale](https://intlayer.org/doc/packages/react-intlayer/useLocale)\n\n#### next-intlayer\n\n- [Package](https://intlayer.org/doc/packages/next-intlayer)\n  - [t](https://intlayer.org/doc/packages/next-intlayer/t)\n  - [useIntlayer](https://intlayer.org/doc/packages/next-intlayer/useIntlayer)\n  - [useDictionary](https://intlayer.org/doc/packages/next-intlayer/useDictionary)\n  - [useLocale](https://intlayer.org/doc/packages/next-intlayer/useLocale)\n\n#### vite-intlayer\n\n- [Package](https://intlayer.org/doc/packages/vite-intlayer)\n\n#### lynx-intlayer\n\n- [Package](https://intlayer.org/doc/packages/lynx-intlayer)\n\n#### react-native-intlayer\n\n- [Package](https://intlayer.org/doc/packages/react-native-intlayer)\n\n#### react-scripts-intlayer\n\n- [Package](https://intlayer.org/doc/packages/react-scripts-intlayer)\n\n### Blog\n\n- [What is i18n](https://github.com/aymericzip/intlayer/blob/main/blog/en/what_is_internationalization.md)\n- [i18n and SEO](https://intlayer.org//blog/SEO-and-i18n)\n- [Intlayer and i18next](https://intlayer.org//blog/intlayer-with-next-i18next)\n- [Intlayer and react-intl](https://intlayer.org//blog/intlayer-with-react-i18next)\n- [Intlayer and next-intl](https://intlayer.org//blog/intlayer-with-next-intl)\n- [Intlayer and react-intl](https://intlayer.org//blog/intlayer-with-react-intl)\n\n---\n\n## Live tutorial on YouTube\n\n[![How to Internationalize your application using Intlayer](https://i.ytimg.com/vi/W2G7KxuSD4c/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\u0026rs=AOn4CLDtyJ4uYotEjl12nZ_gZKZ_kjEgOQ)](https://youtu.be/W2G7KxuSD4c?si=GyU_KpVhr61razRw)\n","funding_links":["https://github.com/sponsors/aypineau"],"categories":["Translation","Development Tools Mcp Servers","📦 Other","پیاده‌سازی‌های سرور","Community Servers","Command Line","Components \u0026 Libraries","📖 Categories","Uncategorized"],"sub_categories":["SIEM \u0026 SecOps","🖥️ \u003ca name=\"command-line\"\u003e\u003c/a\u003eخط فرمان","Utilities","React i18n","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faymericzip%2Fintlayer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faymericzip%2Fintlayer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faymericzip%2Fintlayer/lists"}