ppl-i18n
Fluent
ppl-i18n | Fluent | |
---|---|---|
1 | 14 | |
24 | 997 | |
- | 2.2% | |
8.8 | 6.6 | |
2 days ago | 9 days ago | |
Python | Rust | |
MIT License | 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.
ppl-i18n
-
What they don’t tell you when you translate your app
> Translation and localization costs money
If you have a fan base, you can leverage it to get some amount of translation done. A lot of users are happy to help the product they like get better. Granted, the quality will not be as good as the quality you get with professional translators.
The article also did not talk about the actual the translation process, which in the case of a product that is released but keeps getting updates, is not trivial.
There are tools that exists, but I personally decided to build a workflow around git, with a python scripts that generates a status of all the translations: https://github.com/jyaif/ppl-i18n#status
The downside is that contributors need to figure out how to use github to contribute. The upside is that it's free, you get auditability, versioning, and the barrier of entry may actually increase the quality of translations.
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.
What are some alternatives?
nicotine-plus - Graphical client for the Soulseek peer-to-peer network
regex - An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
cldr - The home of the Unicode Common Locale Data Repository
whatlang-rs - Natural language detection library for Rust. Try demo online: https://whatlang.org/
django-parler - Easily translate "cheese omelet" into "omelette au fromage".
icu4x - Solving i18n for client-side and resource-constrained environments.
Font-Downloader - Download fonts from the web!
UNIC - UNIC: Unicode and Internationalization Crates for Rust
cargo-i18n - A Rust Cargo sub-command and libraries to extract and build localization resources to embed in your application/library
tabwriter - Elastic tabstops for Rust.
textwrap - An efficient and powerful Rust library for word wrapping text.
fluent-vue - Internationalization plugin for Vue.js