A simple Elixir library for internationalization (i18n) with nested key support and pluralization.
Linguist is an Elixir internationalization library that provides a simple way to manage translations in Elixir applications. It allows developers to define locale-specific vocabularies with nested keys and supports runtime interpolation and pluralization. The library solves the problem of adding multilingual support without heavy dependencies or complex configuration.
Elixir developers building applications that require internationalization, such as web apps with Phoenix Framework or any Elixir-based service needing multi-language support.
Developers choose Linguist for its minimalistic design, ease of integration with Elixir projects, and straightforward API that handles common i18n tasks like nested translations and pluralization without bloat.
Elixir Internationalization library
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 nested translation keys like 'flash.notice.hello' for better maintainability, as shown in the example vocabulary structure in the README.
Allows dynamic value injection with placeholders such as '%{first}', enabling flexible translations without preprocessing.
Offers pluralization based on a configurable key (e.g., ':count'), simplifying handling of singular and plural forms in translations.
Can load translations from external files like 'fr.exs', separating translation data from code for cleaner project structure.
Only supports a single pluralization key, lacking built-in handling for complex plural forms or gender agreements in some languages.
Does not provide automatic locale fallback mechanisms, requiring manual error handling for missing translations.
Translations are compiled at runtime from fixed files or modules, limiting dynamic updates without code changes or restarts.