frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

MessageFormat: Unicode standard for localizable message strings

https://github.com/unicode-org/message-format-wg
38•todsacerdoti•1h ago

Comments

rocqua•1h ago
This seems great in concept, and totally infeasible. But if anyone can do it, unicode seems like a great candidate.

Does anyone have reason for more optimism?

hobofan•1h ago
Care to explain why you think it's infeasible? Then one could provide targeted counter-optimism ;)

I don't see what's infeasible about it. It doesn't seem to different from .po files (gettext catalogs) meshed with hooks for post-processing as would see in e.g. a handlebars, both of which have individually found great adoption.

bmn__•53m ago
> why you think it's infeasible?

GP based his opinion on the assumption that this spec new and no implementations for it exist.

junon•52m ago
Unicode consortium already manages a ton of language specs. If there's any group of folks I'd trust to understand languages (natural or otherwise), it's them.
tuyiown•39m ago
I've been using this format for almost 10 years, and I only see increasing adoption. Why would I be pessimistic?
BoppreH•1h ago
The meeting notes in the repo was a nice surprise. Overall looked great, striking a good balance.

  .input {$var :number maximumFractionDigits=0}
  .local $var2 = {$var :number maximumFractionDigits=2}
  .match $var2
  0 {{The selector can apply a different function to {$var} for the purposes of selection}}
  * {{A placeholder in a pattern can apply a different function to {$var :number maximumFractionDigits=3}}}
Oof, that's a programming language already. And new syntax to be inevitably iterated on. I feel like we have too many of those already, from Python f-strings to template engines.

I wish it'll at least stay small: no nesting, no plugins, no looping, no operators, no side effects or calls to external functions (see Log4J).

silvestrov•36m ago
English has just singular and plural: one car, two cars, three cars (and zero cars).

Some languages have more variations. E.g. Czech, Slovene and Russian has 1, 2-4 and 5 as different cases.

Personally I think the syntax is too brittle. It looks too much like TeX code and it has the lisp like deal with lines ending with too many } braces.

I would separate it into two cases: simple strings with just simple interpolation and then a more fuller markup language, more like a simplified xml.

There are more example code at https://github.com/unicode-org/message-format-wg/blob/main/d...

BoppreH•31m ago
Oh, the language aspect gets a lot worse than that. They explicitly have a non-goal of "all grammatical features of all languages", but the "common" cases are hard enough. From https://github.com/unicode-org/message-format-wg/blob/main/s... :

  .local $hasCase = {$userName :ns:hasCase}
  .match $hasCase
  vocative {{Hello, {$userName :ns:person case=vocative}!}}
  accusative {{Please welcome {$userName :ns:person case=accusative}!}}
  * {{Hello!}}
But if anyone can find a good compromise, it's the Unicode team.
1116574•45m ago
Looks alot like mozilla's project fluent, atleast in the basic use case.

https://projectfluent.org/

I wonder why it hasn't been adopted more widely.

xnorswap•39m ago
I often wonder this myself, this really should be a standard by now.
hobofan•24m ago
I can't speak for the status quo, but for at least the first ~5 years (so until 3 years ago when I last attempted to use it), the JS implementation of Fluent was a mess. Constant issues with incomplete API, wrong TS typings (which at that point were external) and build/bundling issues to the point where we opted for a homebrew solution.

I imagine that I probably wasn't the only one driven away by that (and I gave it many attempts!).

hobofan•20m ago
They seems to be a strong overlap of people behind both projects, so that likely explains the similarities.
bmn__•37m ago
Looking for an expert who knows both libintl/Gettext and MessageFormat.

What is the equivalent of xgettext.pl, the file extension for the main catalog file `.po`, the __ function?

How does gender work (small example)? How does layering pt_BR on pt_PT work?

What is a compelling reason to switch?

jp1016•37m ago
One practical thing I appreciated about MessageFormat is how it eliminates a bunch of conditional UI logic.

I used to write switch/if blocks for:

• 0 rows → “No results” • 1 row → “1 result” • n rows → “{n} results”

Which seems trivial in English, but gets messy once you support languages with multiple plural categories.

I wasn’t really aware of how nuanced plural rules are until I dug into ICU. The syntax looked intimidating at first, but it actually removes a lot of branching from application code.

I’ve been using an online ICU message editor (https://intlpull.com/tools/icu-message-editor) to experiment with plural/select cases and different locales helped me understand edge cases much faster than reading the spec alone.

pferde•12m ago
Did not gettext have this for decades? https://www.gnu.org/software/gettext/manual/html_node/Plural...
Muromec•9m ago
Gettext has everything, it just takes knowing five languages to understand what to use for
Muromec•10m ago
I checked the spec and don't get that really. Something should specify the formula for choosing the correct form (ie 1 for 21 in Slavic languages) and the format isnt any better compared to the gettext of 30 years ago
strogonoff•31m ago
Does anyone know the status of MessageFormat 2.0? I am aware of the effort since pre-COVID times. I recall that some of the developers behind Mozilla Fluent have been among the people working on MF 2.0, and it’d be great to know whether Fluent and ICU MF are going to be interoperable in foreseeable future.
revetkn•17m ago
My project Lokalized attempts to solve many of these complex plural/gender/ordinal/etc. rules with a tiny expression language:

https://lokalized.com

frizlab•4m ago
Same here (linked to a test because I don’t have a (meaningful) readme…)

https://github.com/Frizlab/XibLoc/blob/e85a5179bdd93e0174731...

MessageFormat: Unicode standard for localizable message strings

https://github.com/unicode-org/message-format-wg
40•todsacerdoti•1h ago•20 comments

I’m joining OpenAI

https://steipete.me/posts/2026/openclaw
1115•mfiguiere•14h ago•811 comments

I want to wash my car. The car wash is 50 meters away. Should I walk or drive?

https://mastodon.world/@knowmadd/116072773118828295
617•novemp•5h ago•430 comments

Magnus Carlsen Wins the Freestyle (Chess960) World Championship

https://www.fide.com/magnus-carlsen-wins-2026-fide-freestyle-world-championship/
302•prophylaxis•13h ago•192 comments

picol: A Tcl interpreter in 500 lines of code

https://github.com/antirez/picol
40•tosh•4h ago•29 comments

Vim-pencil: Rethinking Vim as a tool for writing

https://github.com/preservim/vim-pencil
15•gurjeet•3d ago•0 comments

Building SQLite with a small swarm

https://kiankyars.github.io/machine_learning/2026/02/12/sqlite.html
72•kyars•6h ago•50 comments

Modern CSS Code Snippets: Stop writing CSS like it's 2015

https://modern-css.com
505•eustoria•18h ago•203 comments

Arm wants a bigger slice of the chip business

https://www.economist.com/business/2026/02/12/arm-wants-a-bigger-slice-of-the-chip-business
95•andsoitis•9h ago•56 comments

Expensively Quadratic: The LLM Agent Cost Curve

https://blog.exe.dev/expensively-quadratic
50•luu•3d ago•22 comments

1,300-year-old world chronicle unearthed in Sinai

https://www.heritagedaily.com/2026/02/1300-year-old-world-chronicle-unearthed-in-sinai/156948
56•telotortium•4d ago•8 comments

LT6502: A 6502-based homebrew laptop

https://github.com/TechPaula/LT6502
361•classichasclass•18h ago•176 comments

Audio is the one area small labs are winning

https://www.amplifypartners.com/blog-posts/arming-the-rebels-with-gpus-gradium-kyutai-and-audio-ai
219•rocauc•3d ago•57 comments

JavaScript-heavy approaches are not compatible with long-term performance goals

https://sgom.es/posts/2026-02-13-js-heavy-approaches-are-not-compatible-with-long-term-performanc...
103•luu•11h ago•117 comments

I gave Claude access to my pen plotter

https://harmonique.one/posts/i-gave-claude-access-to-my-pen-plotter
207•futurecat•2d ago•132 comments

Anthropic tries to hide Claude's AI actions. Devs hate it

https://www.theregister.com/2026/02/16/anthropic_claude_ai_edits/
12•beardyw•1h ago•0 comments

Show HN: Microgpt is a GPT you can visualize in the browser

https://microgpt.boratto.ca
204•b44•17h ago•23 comments

Designing a 36-key custom keyboard layout (2021)

https://peterxjang.medium.com/designing-a-36-key-custom-keyboard-layout-24498a0eecd4
19•speckx•2d ago•8 comments

EU bans the destruction of unsold apparel, clothing, accessories and footwear

https://environment.ec.europa.eu/news/new-eu-rules-stop-destruction-unsold-clothes-and-shoes-2026...
1033•giuliomagnifico•18h ago•695 comments

Databases should contain their own Metadata – Use SQL Everywhere

https://floedb.ai/blog/databases-should-contain-their-own-metadata-instrumentation-in-floe
31•matheusalmeida•4d ago•22 comments

Gwtar: A static efficient single-file HTML format

https://gwern.net/gwtar
242•theblazehen•20h ago•76 comments

Real-time PathTracing with global illumination in WebGL

https://erichlof.github.io/THREE.js-PathTracing-Renderer/
166•tobr•3d ago•15 comments

Pocketblue – Fedora Atomic for mobile devices

https://github.com/pocketblue/pocketblue
113•nikodunk•19h ago•31 comments

Hard problems in social media archiving

https://alexwlchan.net/2025/hard-problems-in-social-media-archiving/
9•surprisetalk•3d ago•2 comments

Error payloads in Zig

https://srcreigh.ca/posts/error-payloads-in-zig/
77•srcreigh•12h ago•28 comments

Show HN: Knock-Knock.net – Visualizing the bots knocking on my server's door

https://knock-knock.net
160•djkurlander•19h ago•69 comments

GNU Pies – Program Invocation and Execution Supervisor

https://www.gnu.org.ua/software/pies/
91•smartmic•15h ago•57 comments

Amazon's Ring and Google's Nest reveal the severity of U.S. surveillance state

https://greenwald.substack.com/p/amazons-ring-and-googles-nest-unwittingly
854•mikece•23h ago•590 comments

Lost Soviet Moon Lander May Have Been Found

https://www.nytimes.com/2026/02/10/science/luna-9-moon-lander-soviet.html
62•Brajeshwar•4d ago•44 comments

I fixed Windows native development

https://marler8997.github.io/blog/fixed-windows/
755•deevus•1d ago•361 comments