# facebookincubator/fbt

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/facebookincubator-fbt).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

3,884 stars · 177 forks · JavaScript · MIT · archived

## Links

- GitHub: https://github.com/facebookincubator/fbt
- Homepage: https://facebook.github.io/fbt
- awesome-repositories: https://awesome-repositories.com/repository/facebookincubator-fbt.md

## Description

This project is a JavaScript internationalization framework designed to manage the lifecycle of multilingual user interfaces. It provides a system for embedding translatable strings directly into source code, enabling developers to maintain context while building applications that support multiple languages and regional formats.

The framework distinguishes itself through a grammatical localization engine that handles complex pluralization and gender variations. By utilizing programmatic rules and placeholders, it ensures that sentences remain grammatically correct across different languages. The system also supports dynamic locale switching, allowing applications to update translation payloads and re-render content at runtime without requiring a full page reload.

The project includes a comprehensive suite of tools for automating the localization pipeline. This includes static analysis utilities that scan source code to extract translatable strings, as well as compilers that transform these strings and translation data into optimized binary structures for efficient runtime resolution.

## Tags

### Web Development

- [JavaScript Internationalization Libraries](https://awesome-repositories.com/f/web-development/javascript-internationalization-libraries.md) — Provides a comprehensive framework for managing and translating text strings within JavaScript applications.
- [Localization Pipeline Automation](https://awesome-repositories.com/f/web-development/feature-detection-polyfills/modular-loading/localization-pipeline-automation.md) — Automates the extraction of strings and integration of localized content to streamline the translation and deployment process.
- [String Translations](https://awesome-repositories.com/f/web-development/html-templating-engines/twig-engine-integrations/string-translations.md) — Allows developers to embed translatable strings directly within source code to maintain context and simplify development. ([source](https://facebook.github.io/fbt))
- [Grammatical Localization Rules](https://awesome-repositories.com/f/web-development/internationalization-localization/translation-management-platforms/site-localization/multi-language-content-delivery/grammatical-localization-rules.md) — Composes context-aware UI text that handles complex pluralization and grammatical variations across different languages.
- [Runtime Locale Loaders](https://awesome-repositories.com/f/web-development/runtime-locale-loaders.md) — Maps source identifiers to pre-compiled translation tables at execution time to serve localized content.

### Development Tools & Productivity

- [Grammar Rule Specification](https://awesome-repositories.com/f/development-tools-productivity/rule-definition-languages/grammar-rule-specification.md) — Uses programmatic rules and placeholders to construct grammatically correct sentences handling pluralization and gender variations.
- [Translation Message Extraction](https://awesome-repositories.com/f/development-tools-productivity/translation-message-extraction.md) — Scans source code during the build process to identify and collect translatable strings into a centralized registry.
- [Translation Tools](https://awesome-repositories.com/f/development-tools-productivity/translation-tools.md) — Automates the collection of translatable source text and generates optimized translation payloads for runtime resolution.

### Part of an Awesome List

- [Dynamic Locale Switching](https://awesome-repositories.com/f/awesome-lists/devtools/internationalization-and-localization/dynamic-locale-switching.md) — Updates the active translation payload and locale context at runtime to re-render the user interface in a different language. ([source](https://facebook.github.io/fbt/docs/getting_started_on_web))
- [Internationalization](https://awesome-repositories.com/f/awesome-lists/devtools/internationalization.md) — Internationalization framework for JS.

### Software Engineering & Architecture

- [Automated String Extraction](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-formats-and-schemas/yaml-configuration-files/locale-translation-files/automated-string-extraction.md) — Automates the scanning of source code to export translatable strings and metadata into structured formats. ([source](https://facebook.github.io/fbt/docs/getting_started_on_web))
- [Translation File Generators](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-formats-and-schemas/yaml-configuration-files/locale-translation-files/translation-file-generators.md) — Combines extracted source text with translation files to create optimized data structures for runtime resolution. ([source](https://facebook.github.io/fbt/docs/getting_started_on_web))
- [Compile-Time Code Generation](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation.md) — Transforms extracted text and translation data into optimized binary structures to minimize runtime overhead.

### User Interface & Experience

- [Locale Translation Bundles](https://awesome-repositories.com/f/user-interface-experience/interface-localizations/locale-translation-bundles.md) — Maps source text to pre-compiled translation tables at runtime to serve the appropriate language version. ([source](https://cdn.jsdelivr.net/gh/facebookincubator/fbt@main/README.md))
- [Multilingual Text Management](https://awesome-repositories.com/f/user-interface-experience/multilingual-text-management.md) — Enables embedding translatable text directly into source code to maintain context for multilingual user interfaces.
- [View Context Injections](https://awesome-repositories.com/f/user-interface-experience/view-hierarchy-injections/state-based-view-injection/activity-context-injections/view-context-injections.md) — Updates the active translation state at runtime to re-render the user interface without requiring a full page reload.
