formatLengthLocalized
CLDR-driven measure rendering: unit choice, conversion, digits, symbol, and spacing all come from the platform's ICU data for the current locale, forced onto system via the ms Unicode keyword — the mechanism Android 16's Measurement system setting itself uses. usage("road") is deliberately not used anywhere: CLDR road preferences snap values (87 m renders as "90 m") and pick yards for the UK, which is wrong for GNSS-accuracy labels and surprising for node distance.
Each function takes the raw metric value the mesh transmits and returns null where the engine cannot answer — no ICU units support on this platform or OS version, or a non-finite value — and the caller renders the hand-rolled fallback instead, which keeps every unit the app ever shows identical across engine and fallback except for CLDR's own precision choices.
CLDR-driven measure rendering: unit choice, conversion, digits, symbol, and spacing all come from the platform's ICU data for the current locale, forced onto system via the ms Unicode keyword — the mechanism Android 16's Measurement system setting itself uses. usage("road") is deliberately not used anywhere: CLDR road preferences snap values (87 m renders as "90 m") and pick yards for the UK, which is wrong for GNSS-accuracy labels and surprising for node distance.
Each function takes the raw metric value the mesh transmits and returns null where the engine cannot answer — no ICU units support on this platform or OS version, or a non-finite value — and the caller renders the hand-rolled fallback instead, which keeps every unit the app ever shows identical across engine and fallback except for CLDR's own precision choices.
CLDR-driven measure rendering: unit choice, conversion, digits, symbol, and spacing all come from the platform's ICU data for the current locale, forced onto system via the ms Unicode keyword — the mechanism Android 16's Measurement system setting itself uses. usage("road") is deliberately not used anywhere: CLDR road preferences snap values (87 m renders as "90 m") and pick yards for the UK, which is wrong for GNSS-accuracy labels and surprising for node distance.
Each function takes the raw metric value the mesh transmits and returns null where the engine cannot answer — no ICU units support on this platform or OS version, or a non-finite value — and the caller renders the hand-rolled fallback instead, which keeps every unit the app ever shows identical across engine and fallback except for CLDR's own precision choices.