A powerful and flexible JavaScript internationalization framework for organizing text and composing translatable UI.
FBT is an internationalization (i18n) framework for JavaScript designed to simplify the process of creating multilingual applications. It helps developers organize source text for translation, compose grammatically correct translatable user interfaces, and eliminate verbose boilerplate code. The framework uses Babel plugins for build-time transformation and runtime lookup of pre-generated translation tables.
JavaScript developers, particularly those using React or React Native, who are building applications that require robust, grammatically accurate translations across multiple languages. It is suited for teams needing a structured workflow for extracting and managing translatable strings from source code.
Developers choose FBT for its combination of power and simplicity, offering intuitive APIs like `<fbt>` and `fbt(...)` to reduce boilerplate while handling complex grammatical constructs for accurate translations. Its build-time extraction and runtime lookup system streamline the i18n process, making it efficient for large-scale multilingual projects.
A JavaScript Internationalization Framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports complex grammatical constructs and variations to ensure accurate translations across languages, as emphasized in the README for linguistically correct UIs.
Uses intuitive APIs like <fbt> and fbt(...) to minimize repetitive code for embedding translatable content, streamlining internationalization workflows.
Employs Babel plugins to extract strings and generate translation payloads during build, organizing source text efficiently for translation management.
Accesses pre-generated translation tables at runtime for fast localized content delivery, reducing performance overhead in production applications.
Requires Node.js, Yarn, Babel, and multiple npm modules (e.g., babel-plugin-fbt), making initial integration cumbersome compared to drop-in i18n solutions.
Primarily targets React and React Native, with no official support for other JavaScript frameworks, limiting flexibility for diverse project stacks.
Relies heavily on build-time processes, which can be inflexible for dynamic content updates and increase development complexity, as admitted in the transformation workflow.