This was discovered recently by inspecting the content of the MonochromePublic.apk while trying to resolve https://crbug.com/919858
There are two related but distinct languages spoken in Norway, identified by the locale tags 'nb' (for Bokmål, the main language) and 'nn' (for Nynorsk).
ISO 639-1 also defined a locale tag 'no' used to cover both languages as "Norwegian" at the same time. This is called a macrolanguage[1], but should normally not be used to identify either language, nor used in translated strings.
Unfortunately, for historical reasons, many packages still provide 'nb' strings under res/values-no/ directories, which is incorrect.
More precisely:
- Some packages only provide res/values-no/ and a quick inspection
seems to indicate these are really 'nb' strings.
- Other packages provide both res/values-nb/ and res/values-no/
but their content are identical.
- So far, no package provides res/values-nn/ at all.
We should deal with that when compiling resources, by doing the following:
- If both 'values-no/' and 'values-nb/' are provided, ignore
the former.
- If only 'values-no/' is provided, rename the directory to
'values-nb/' before passing it to aapt / aapt2 / bundletool.
[1] https://en.wikipedia.org/wiki/ISO_639_macrolanguage
[2] https://cs.chromium.org/search/?q=res/values-no/&type=cs