@tmikov
Tzvetan Mikov
6 months
Hermes has struggled with the implementation of Intl for some time. There are two primary reasons for this: 1. Meta doesn't utilize Intl internally, limiting our resources for comprehensive testing. 2. Intl is designed to be built on ICU4C, which, in their infinite wisdom,…
5
4
100

Replies

@birch_js
Jamie Birch
6 months
@tmikov > On iOS, rely on the Intl implementation in JavaScriptCore bundled with the OS. Would that mean spinning up a JSC instance to call Intl APIs, or does JSC export all the necessary headers for Hermes to call that native functionality independently?
1
0
1
@tmikov
Tzvetan Mikov
6 months
@LinguaBrowse JSC doesn't export anything like that (AFAIK). It would mean spinning up a JSC instance. Sounds ridiculous, but the alternative is shipping a multi-MB library, larger than Hermes itself...
2
0
4
@jarredsumner
Jarred Sumner
6 months
@tmikov Have you tried linking “icucore” on iOS? We do that on macOS and it lets us keep the binary around 45 MB instead of 90 MB on Linux
1
0
7
@tmikov
Tzvetan Mikov
6 months
@jarredsumner I am not an expert on this horrific topic, but apparently important ICU headers are not included in the iOS SDK, and a lot the ICU APIs, which you can technically link to, are considered private. The app would be rejected by App Store.
1
0
10
@CanadaHonk
CanadaHonk
6 months
@tmikov ICU4X? 🥺🤪
0
0
5
@yahiredquesada
Yahir Ed
6 months
@tmikov Is there a way to get an intl enviorment at meta? Seems like testing with intl will help and provide learnings to remove it.
0
0
0
@birch_js
Jamie Birch
6 months
@tmikov I remember a podcast (maybe @alloy on The React Native Show by @callstackio ?) a few years ago where it was mentioned that Microsoft did some significant work implementing Intl for React Native. Can’t recall whether that was only for Windows, but feels worth discussing with them.
1
0
4