TakahikoKawasaki / nv-i18n

Package to support internationalization, containing ISO 3166-1 country code enum, ISO 639-1 language code enum, etc.
Apache License 2.0
391 stars 115 forks source link

Why is CountryCode.TW "Taiwan, Province of China"? #81

Open stickfigure opened 3 years ago

stickfigure commented 3 years ago

The explicit label "Province of China" seems unnecessarily political. If I print the country name text as-is in my app I'm at risk of making it look like my app has a political opinion.

It's mildly annoying having to filter this bit of text out. How about we change the text to simply "Taiwan"?

hshar7 commented 3 years ago

Yep.. just got a complaint about this from a user and we have to filter it out now

stickfigure commented 3 years ago

Not my preference, but I've forked this project and published a drop-in compatible library in maven central:

https://github.com/stickfigure/nv-i18n-safe

        <dependency>
            <groupId>com.voodoodyne</groupId>
            <artifactId>nv-i18n-safe</artifactId>
            <version>1.29</version>
        </dependency>

I also made a few other names human readable, like "South Korea" and "North Korea". Everything should be suitable for displaying in UIs now.

marcwrobel commented 2 years ago

@stickfigure, Taiwan, Province of China is the name given by the International Organization for Standardization (ISO) for the TW code (https://www.iso.org/obp/ui/#iso:code:3166:TW).

stickfigure commented 2 years ago

@marcwrobel no matter what the ISO says, that name is politically unsuitable for use in UIs outside of China. The Koreas are also problematic - I doubt half the world's population could tell the difference between "Korea, Democratic People's Republic of" and "Korea, Republic of".

I need text I can display in UIs so folks can ship packages to those places. The ISO names for countries don't quite work. So it's either convince nv-i18n to change, make a fork, or figure out some sort of layer on top of nv-i18n that gives me access to friendly names. The fork got me up and running, but it's not my favorite choice.

If this is just a pedantic issue, can nv-i18n add a "friendly name" field as well as the ISO name? I would be happy to submit a PR for that.

marcwrobel commented 2 years ago

@stickfigure, I did not try to make a point, I just gave an answer to the question you asked in this issue's title : Why is CountryCode.TW "Taiwan, Province of China"?.

And I agree with you : the name provided by the ISO are not suitable for a UI. But I also don't think the goal of nv-i18n is to provide suitable names for any UI, mainly because such names are intrinsically political (e.g. Taiwan,, Palestine...), but also because many softwares need to be internationalized (nv-i18n does not provide such features - see also #19).