A lightweight, cross-platform internationalization library for Xamarin and .NET applications.
I18N-Portable is an internationalization library for Xamarin and .NET applications that simplifies managing translations across multiple platforms. It provides a fluent API for loading locale files, switching languages at runtime, and supporting various file formats like .txt, JSON, and XML. The library solves the problem of cumbersome i18n setup by offering a lightweight, dependency-free solution with built-in enum translation and data binding support.
Xamarin and .NET developers building cross-platform mobile or desktop applications that require multi-language support. It's particularly useful for teams needing a simple, embeddable translation system without heavy dependencies.
Developers choose I18N-Portable for its minimalistic design, ease of use with the `"key".Translate()` syntax, and flexibility in supporting custom file formats. Unlike heavier i18n frameworks, it offers zero dependencies, runtime language switching, and seamless integration with MVVM data binding.
Simple and cross platform internationalization/translations for Xamarin and .NET
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers intuitive methods like `"key".Translate()` and fluent initialization, reducing boilerplate code as shown in the README examples.
Works seamlessly across Xamarin and .NET projects, supporting multiple platforms with minimal setup, as emphasized in the key features.
Supports custom readers for .txt, JSON, XML, and other formats via the ILocaleReader interface, allowing flexibility in translation management.
Enables dynamic language changes without app restart using `I18N.Current.Locale`, enhancing user experience as documented.
Has no external dependencies and a minimal footprint, making it easy to integrate without bloat, as stated in the philosophy.
The README explicitly states the project is archived with no updates, meaning no bug fixes, security patches, or compatibility with newer .NET versions.
Lacks built-in support for pluralization, context-aware translations, or date/number formatting, which are common in more mature libraries.
Using non-default formats like JSON requires separate nuget packages and custom reader implementation, adding complexity to initial configuration.