dotnet / dotnet/runtime

[wasm][globalization] Icelandic (is / is-IS) locale is missing from all WASM ICU shards, including the full icudt.dat

Open
#132,692 3 comments 0 reactions 0 assignees View on GitHub
arch-wasm area-System.Globalization feature-request
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

### Description

On Blazor WebAssembly / browser-wasm, the Icelandic culture (is / is-IS) resolves with invariant number and date formatting, even though the full ICU dataset is loaded (BlazorWebAssemblyLoadAllGlobalizationData=true, globalizationMode: "all", full icudt.dat downloaded at runtime).

The culture name resolves correctly (CultureInfo.CurrentCulture.Name == "is-IS"), but its NumberFormatInfo / DateTimeFormatInfo fall back to invariant-ish values. Every other locale I tested (de-DE, fr-FR, es-ES, it-IT, da-DK, sv-SE, nb-NO, nl-NL, pl-PL, pt-PT, ru-RU) formats correctly.

Root cause appears to be that Icelandic is not present in the WASM ICU data at all — it is absent from the locale include-list/filter used to build the shipped ICU files. Faroese (fo / fo-FO) appears to be missing as well.

### Reproduction Steps

Create a Blazor WebAssembly app targeting net10.0 with true.
Start the app with is-IS as the culture (e.g. Blazor.start({ applicationCulture: 'is-IS' }), or set CultureInfo.CurrentCulture = new CultureInfo("is-IS") in Program.cs).
Format a number and a date:
var c = new CultureInfo("is-IS");
Console.WriteLine(1234.5m.ToString("#,0.0", c)); // number
Console.WriteLine(new DateTime(2026, 8, 21).ToString("d", c)); // short date
Console.WriteLine($"grp='{c.NumberFormat.NumberGroupSeparator}' dec='{c.NumberFormat.NumberDecimalSeparator}' shortDate='{c.DateTimeFormat.ShortDatePattern}'");

### Expected behavior

Matches desktop .NET (Windows ICU) for is-IS:

1.234,5
21.8.2026
grp='.' dec=',' shortDate='d.M.yyyy'

### Actual behavior

1,234.5
2026-08-21 (yyyy-MM-dd)
grp=',' dec='.' shortDate='yyyy-MM-dd'

### Regression?

_No response_

### Known Workarounds

_No response_

### Configuration

.NET SDK: 10.0.300
Runtime pack: microsoft.netcore.app.runtime.mono.browser-wasm 10.0.8
Target: net10.0, browser-wasm (Blazor WebAssembly)
OS building/running: Windows 11 (behavior is platform-independent — it's in the shipped WASM ICU data)

### Other information

Workaround in place: programmatically overwriting NumberFormatInfo / DateTimeFormatInfo on the is-IS CultureInfo at startup with values captured from desktop .NET. This is only viable because Icelandic is the single missing locale we need; it does not restore collation/sort data. A proper fix in the ICU filter would let this workaround be removed.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the locale include-list or filter used to build the shipped WASM ICU shards, then compare Icelandic and Faroese with the locales that format correctly. Reproduce the issue with the provided is-IS number and date formatting checks against the full icudt.dat; done when Icelandic data is included and the output matches the expected separators and short-date pattern.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, wasm
Domain
internationalization
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
70/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.