[ 
https://issues.apache.org/jira/browse/CB-4602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13984618#comment-13984618
 ] 

Mike Billau commented on CB-4602:
---------------------------------

I'm not sure what the difference between getPreferredLanguage() and 
getLocaleName() is. Should one return the BCP-47 language tag ("en-US")  while 
the other return the actual text representation of the language ("English")?

Based on some older docs: 
http://cordova.apache.org/docs/en/3.1.0/cordova_globalization_globalization.md.html#globalization.getPreferredLanguage,
 it seems like getPreferredLanguage should return the textual representation 
while getLocaleName should return the language tag.

That means I should revert the changes to getPreferredLanguage and make them to 
getLocaleName() instead. This also means that WP8 and iOS will have to change 
their implementation of getPreferredLanguage since they both return tags and 
not string representations.

> getPreferredLanguage platform inconsistencies
> ---------------------------------------------
>
>                 Key: CB-4602
>                 URL: https://issues.apache.org/jira/browse/CB-4602
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android, Plugin Globalization
>    Affects Versions: 2.6.0, 3.0.0
>         Environment: Android
>            Reporter: Jon Whitlock
>            Assignee: Mike Billau
>            Priority: Minor
>
> In;
> https://github.com/apache/cordova-docs/blob/master/docs/en/edge/cordova/globalization/globalization.getPreferredLanguage.md
> "Returns the language identifier string to the successCallback with a 
> properties object as a parameter. That object should have a value property 
> with a String value."
> navigator.globalization.getPreferredLanguage(
>    function (language) {alert('language: ' + language.value + '\n');},
>    function () {alert('Error getting language\n');}
> );
> On Android the function doesn't seem to return an identifier as such, it 
> returns *a string describing the language localised to that language*, e.g. 
> "English" for English or "中文" for Japanese. Naturally this is less than ideal 
> for subsequent string operations, furthermore on that page "Windows Phone 8 
> Quirks - Returns the ISO 639-1 two-letter code for the current language" 
> which is an identifier, and also what I would expect (or an ISO 639-2 code, 
> as per http://www.loc.gov/standards/iso639-2/php/code_list.php)
> Android seems to support 639-2 
> http://developer.android.com/reference/java/util/Locale.html#getISO3Language()
> I have no idea what it returns on other platforms, but to keep client code 
> consistent I guess it would good if this could be normalised in the API.
> Have tested this on v3.0 and 2.6, is the same.
> As an aside, the locale is not really what I want here, as the user may be in 
> the US but have Japanese as their preferred language.
> Thanks,
> jon
> (first go at using Jira, apols if I got something wrong!)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to