Fluent
fluent.js
Our great sponsors
Fluent | fluent.js | |
---|---|---|
14 | 18 | |
987 | 888 | |
3.3% | 1.5% | |
6.6 | 7.0 | |
about 1 month ago | 24 days ago | |
Rust | JavaScript | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Fluent
-
Libxo: The Easy Way to Generate Text, XML, JSON, and HTML Output
> Typical printf usage is imperative and additive:
> if (enter) printf("Hello "); else printf("Goodbye "); printf("World!\n");
And unless you want your translator to hate you, you really, really mustn’t do this in user-facing output.
(OK, you can if you really want to and if you’re ready to give them the same tools[1], but it won’t be simple. Although I’m unaware of any professional translators supporting this either—most use a CAT, and the Fluent approach ignores those.)
[1] https://projectfluent.org/
- Fluent – A localization system for natural-sounding translations
-
Extensions written in Rust
I wrote one for creating a Fluent library for PHP.
- Show HN: My first blog post on Rust 1.58.0 format strings
-
New internationalization plugin for Vue - fluent-vue
No. fluent-vue uses Fluent syntax from Mozilla https://projectfluent.org/. Which, I would say is just as powerful as ICU but is much more readable.
-
What they don’t tell you when you translate your app
I think Mozilla's translation system called Fluent can handle that.
https://projectfluent.org/
-
4 Difficulties You Might Encounter When Using vue-i18n
After few months of frustration with trying to use the "de-facto" internationalization library for Vue.js - vue-i18n, I've decided it is time to replace it. And that is why I have created fluent-vue. I will write more about it and Fluent syntax it uses in my following blog posts.
-
5 JavaScript internationalization libraries that look interesting
fluent
-
The Goals of XML at 25: and the one change that XML now needs
> I'm also not sold on the whole "HTML-style error-recovery"
Having used and written a parser for a similar recoverable localization language (https://projectfluent.org/) I'm sold on it.
It makes a lot of things easier. It's kinda like adding trailing comma to lists. It's both boon when writing lists by hand and generating it via code.
fluent.js
-
Internationalize TypeScript app
Want to quick internationalize your app? You can use com.hydroper.ftl from NPM, which uses Fluent. Should work for browser (if you use Webpack targetting "browser") and NodeJS. It uses Intl from ECMA-402 and @fluent/bundle.
-
FTL loader
Fluent is a localization system with more flexibility for translators. FTL means to Fluent Translation List. It seems to refer to the syntax used to define resources, which are (roughly) collections of messages.
- Requesting feedback on a string interpolation concept
-
Questions about a translation system
In general though, translation is very hard. There are more exceptions than rules, and a lot of work has gone into the libraries to support all languages. consider using something like https://projectfluent.org/ if this isn't just a learning exercise.
-
l10n: A proc macros crate to ease project localization and provide compile time checks (message exists, mandatory arguments are set, functions are defined) built upon fluent-bundle.
Working on a personal project that needed localization I decided to use fluent from Mozilla. It already exists an excellent crate to use fluent in Rust which is fluent-bundle (and others fluent crates) but now that I'm used to "If it compiles, it works" I wanted to have a macro that checked that the "localization messages" I'm using existed and had all the required arguments, not finding what I was looking for I decided to write this crate for my needs and share it with the community.
-
Are there any C++ libraries that provide tools for composing English language sentences?
Even if you're not planning to translate your game into other languages, it might be worth looking into one of the localisation systems. For example, Mozilla's Fluent handles pluralisation, gender, etc..
-
Show HN: Localization and translations should be code, not data
It's a tempting argument. By interviewing hundreds of people a different pattern emerged though. Translators don't know how to code. Some companies manually removed quotation marks (") from strings because they confused translators.
What do you think about Mozilla's Fluent format/syntax https://projectfluent.org/?
BTW feel free to reach out via email to me. Look at my profile to find it.
-
I18N in the Multiverse of Formats
The last format in this multiverse trip is Fluent a Mozilla project. The Fluent format shares a lot of philosophy that drove the design of ICU Message Format.
-
Travelm-Agency Updates (Fluent, Webpack)
My Elm code generator for i18n files Travelm-Agency has just reached a critical milestone: supporting all of projectfluents constructs. Yes, that means even locale specific constructs like matching on PluralRules (zero, one, few, many, other) or formatting dates and numbers based on the current locale! As far as I'm aware that is something that no other i18n solution for Elm can do so far.
-
Unsoundness in owning_ref
As an example, there is a really good localisation framework called Project Fluent where you write your translatable expressions in a text file that later gets parsed. The resulting parse tree borrows entirely from the original text and doesn't make any allocations other than the occasional Vec for sequences.
What are some alternatives?
regex - An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
i18n-js - It's a small library to provide the I18n translations on the Javascript. It comes with Rails support.
icu4x - Solving i18n for client-side and resource-constrained environments.
react-intl-example - React internationalization with react-intl
whatlang-rs - Natural language detection library for Rust. Try demo online: https://whatlang.org/
pseudo-localization - Dynamic pseudo-localization in the browser and nodejs
UNIC - UNIC: Unicode and Internationalization Crates for Rust
rails-i18n - Repository for collecting Locale data for Ruby on Rails I18n as well as other interesting, Rails related I18n stuff
cargo-i18n - A Rust Cargo sub-command and libraries to extract and build localization resources to embed in your application/library
jsLingui - 🌍 📖 A readable, automated, and optimized (3 kb) internationalization for JavaScript
tabwriter - Elastic tabstops for Rust.
nextjs-monorepo-example - Collection of monorepo tips & tricks