Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fluent is a localization system designed to unleash the expressive power of natural language translations.
Software localization has been dominated by an outdated paradigm: the translation is just a dictionary of strings which map one-to-one to the English (en-US) copy. This paradigm is unfair and limiting to languages with grammars more complex than English. For any grammatical feature not supported by English, a special case must be added to the source code, leaking logic into all translations. Furthermore, creating good UIs which depend on multiple external arguments is hard and requires the developer to understand the grammar of the languages the product targets.
- Design a DSL for creating expressive translations which can depend on many internal and external arguments.
- Design a low-level API for parsing and formatting translations which keeps localizations isolated from each other.
- Create a reference implementation which can be used to build localization frameworks.
- Create a new localization framework.
- Solve IO for all platforms.
The design of Fluent is centered around the following five concepts: Control and Isolation, Simplicity, Tolerance, Modularity and composability, and The Principle of Least Power. See the Design Principles document for more details.
The intended outcome of Project Fluent is a syntax for describing translation resources and a low-level API for formatting translations into strings.