Code Monkey home page Code Monkey logo

cordova-plugin-globalization's Introduction

title description
Globalization
Access locale data.
AppVeyor Travis CI
Build status Build Status

cordova-plugin-globalization

This plugin obtains information and performs operations specific to the user's locale, language, and timezone. Note the difference between locale and language: locale controls how numbers, dates, and times are displayed for a region, while language determines what language text appears as, independently of locale settings. Often developers use locale to set both settings, but there is no reason a user couldn't set her language to "English" but locale to "French", so that text is displayed in English but dates, times, etc., are displayed as they are in France. Unfortunately, most mobile platforms currently do not make a distinction between these settings.

This plugin defines global navigator.globalization object.

Although in the global scope, it is not available until after the deviceready event.

    document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() {
        console.log(navigator.globalization);
    }

Report issues with this plugin on the Apache Cordova issue tracker

Deprecation Notice

With the ECMA Internationalization API now supported on iOS, Android and Windows devices, this plugin is not required any more. Migrating from this plugin to the ECMA Internationalization API is explained in this Cordova blog post.

Installation

cordova plugin add cordova-plugin-globalization

Objects

  • GlobalizationError

Methods

  • navigator.globalization.getPreferredLanguage
  • navigator.globalization.getLocaleName
  • navigator.globalization.dateToString
  • navigator.globalization.stringToDate
  • navigator.globalization.getDatePattern
  • navigator.globalization.getDateNames
  • navigator.globalization.isDayLightSavingsTime
  • navigator.globalization.getFirstDayOfWeek
  • navigator.globalization.numberToString
  • navigator.globalization.stringToNumber
  • navigator.globalization.getNumberPattern
  • navigator.globalization.getCurrencyPattern

navigator.globalization.getPreferredLanguage

Get the BCP 47 language tag for the client's current language.

    navigator.globalization.getPreferredLanguage(successCallback, errorCallback);

Description

Returns the BCP-47 compliant language identifier tag to the successCallback with a properties object as a parameter. That object should have a value property with a String value.

If there is an error getting the language, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.UNKNOWN_ERROR.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • Browser
  • Firefox OS
  • iOS
  • Windows Phone 8
  • Windows

Example

When the browser is set to the en-US language, this should display a popup dialog with the text language: en-US:

    navigator.globalization.getPreferredLanguage(
        function (language) {alert('language: ' + language.value + '\n');},
        function () {alert('Error getting language\n');}
    );

Android Quirks

  • Returns the ISO 639-1 two-letter language code, upper case ISO 3166-1 country code and variant separated by hyphens. Examples: "en", "en-US", "US"

Windows Phone 8 Quirks

  • Returns the ISO 639-1 two-letter language code and ISO 3166-1 country code of the regional variant corresponding to the "Language" setting, separated by a hyphen.
  • Note that the regional variant is a property of the "Language" setting and not determined by the unrelated "Country/Region" setting on Windows Phone.

Windows Quirks

  • Returns the ISO 639-1 two-letter language code and ISO 3166-1 country code of the regional variant corresponding to the "Language" setting, separated by a hyphen.

Browser Quirks

  • Falls back on getLocaleName

navigator.globalization.getLocaleName

Returns the BCP 47 compliant tag for the client's current locale setting.

    navigator.globalization.getLocaleName(successCallback, errorCallback);

Description

Returns the BCP 47 compliant locale identifier string to the successCallback with a properties object as a parameter. That object should have a value property with a String value. The locale tag will consist of a two-letter lower case language code, two-letter upper case country code, and (unspecified) variant code, separated by a hyphen.

If there is an error getting the locale, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.UNKNOWN_ERROR.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • Windows
  • Browser

Example

When the browser is set to the en-US locale, this displays a popup dialog with the text locale: en-US.

    navigator.globalization.getLocaleName(
        function (locale) {alert('locale: ' + locale.value + '\n');},
        function () {alert('Error getting locale\n');}
    );

Android Quirks

  • Java does not distinguish between a set "langauge" and set "locale," so this method is essentially the same as navigator.globalization.getPreferredLanguage().

Windows Phone 8 Quirks

  • Returns the ISO 639-1 two-letter language code and ISO 3166-1 country code of the regional variant corresponding to the "Regional Format" setting, separated by a hyphen.

Windows Quirks

  • Locale setting can be changed in Control Panel -> Clock, Language and Region -> Region -> Formats -> Format, and in Settings -> Region -> Regional Format on Windows Phone 8.1.

Browser Quirks

  • IE returns the locale of operating system. Chrome and Firefox return browser language tag.

navigator.globalization.dateToString

Returns a date formatted as a string according to the client's locale and timezone.

    navigator.globalization.dateToString(date, successCallback, errorCallback, options);

Description

Returns the formatted date String via a value property accessible from the object passed as a parameter to the successCallback.

The inbound date parameter should be of type Date.

If there is an error formatting the date, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.FORMATTING_ERROR.

The options parameter is optional, and its default values are:

    {formatLength:'short', selector:'date and time'}

The options.formatLength can be short, medium, long, or full.

The options.selector can be date, time or date and time.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • Windows
  • Browser

Example

If the browser is set to the en_US locale, this displays a popup dialog with text similar to date: 9/25/2012 4:21PM using the default options:

    navigator.globalization.dateToString(
        new Date(),
        function (date) { alert('date: ' + date.value + '\n'); },
        function () { alert('Error getting dateString\n'); },
        { formatLength: 'short', selector: 'date and time' }
    );

Android Quirks

  • formatLength options are a subset of Unicode UTS #35. The default option short depends on a user selected date format within Settings -> System -> Date & time -> Choose date format, which provide a year pattern only with 4 digits, not 2 digits. This means that it is not completely aligned with ICU.

Windows Phone 8 Quirks

  • The formatLength option supports only short and full values.

  • The pattern for 'date and time' selector is always a full datetime format.

  • The returned value may be not completely aligned with ICU depending on a user locale.

Windows Quirks

  • The formatLength option supports only short and full values.

  • The pattern for 'date and time' selector is always a full datetime format.

  • The returned value may be not completely aligned with ICU depending on a user locale.

Browser Quirks

  • Only 79 locales are supported because moment.js is used in this method.

  • The returned value may be not completely aligned with ICU depending on a user locale.

  • time selector supports full and short formatLength only.

Firefox OS Quirks

  • formatLength is not distinguishing long and full
  • only one method of displaying date (no long or full version)

navigator.globalization.getCurrencyPattern

Returns a pattern string to format and parse currency values according to the client's user preferences and ISO 4217 currency code.

     navigator.globalization.getCurrencyPattern(currencyCode, successCallback, errorCallback);

Description

Returns the pattern to the successCallback with a properties object as a parameter. That object should contain the following properties:

  • pattern: The currency pattern to format and parse currency values. The patterns follow Unicode Technical Standard #35. (String)

  • code: The ISO 4217 currency code for the pattern. (String)

  • fraction: The number of fractional digits to use when parsing and formatting currency. (Number)

  • rounding: The rounding increment to use when parsing and formatting. (Number)

  • decimal: The decimal symbol to use for parsing and formatting. (String)

  • grouping: The grouping symbol to use for parsing and formatting. (String)

The inbound currencyCode parameter should be a String of one of the ISO 4217 currency codes, for example 'USD'.

If there is an error obtaining the pattern, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.FORMATTING_ERROR.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • iOS
  • Windows

Example

When the browser is set to the en_US locale and the selected currency is United States Dollars, this example displays a popup dialog with text similar to the results that follow:

    navigator.globalization.getCurrencyPattern(
        'USD',
        function (pattern) {
            alert('pattern: '  + pattern.pattern  + '\n' +
                  'code: '     + pattern.code     + '\n' +
                  'fraction: ' + pattern.fraction + '\n' +
                  'rounding: ' + pattern.rounding + '\n' +
                  'decimal: '  + pattern.decimal  + '\n' +
                  'grouping: ' + pattern.grouping);
        },
        function () { alert('Error getting pattern\n'); }
    );

Expected result:

    pattern: $#,##0.##;($#,##0.##)
    code: USD
    fraction: 2
    rounding: 0
    decimal: .
    grouping: ,

Windows Quirks

  • Only 'code' and 'fraction' properties are supported

navigator.globalization.getDateNames

Returns an array of the names of the months or days of the week, depending on the client's user preferences and calendar.

    navigator.globalization.getDateNames(successCallback, errorCallback, options);

Description

Returns the array of names to the successCallback with a properties object as a parameter. That object contains a value property with an Array of String values. The array features names starting from either the first month in the year or the first day of the week, depending on the option selected.

If there is an error obtaining the names, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.UNKNOWN_ERROR.

The options parameter is optional, and its default values are:

    {type:'wide', item:'months'}

The value of options.type can be narrow or wide.

The value of options.item can be months or days.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • Windows
  • Browser

Example

When the browser is set to the en_US locale, this example displays a series of twelve popup dialogs, one per month, with text similar to month: January:

    navigator.globalization.getDateNames(
        function (names) {
            for (var i = 0; i < names.value.length; i++) {
                alert('month: ' + names.value[i] + '\n');
            }
        },
        function () { alert('Error getting names\n'); },
        { type: 'wide', item: 'months' }
    );

Firefox OS Quirks

  • options.type supports a genitive value, important for some languages.

Windows Phone 8 Quirks

  • The array of months contains 13 elements.
  • The returned array may be not completely aligned with ICU depending on a user locale.

Windows Quirks

  • The array of months contains 12 elements.
  • The returned array may be not completely aligned with ICU depending on a user locale.

Browser Quirks

  • Date names are not completely aligned with ICU.
  • The array of months contains 12 elements.

navigator.globalization.getDatePattern

Returns a pattern string to format and parse dates according to the client's user preferences.

    navigator.globalization.getDatePattern(successCallback, errorCallback, options);

Description

Returns the pattern to the successCallback. The object passed in as a parameter contains the following properties:

  • pattern: The date and time pattern to format and parse dates. The patterns follow Unicode Technical Standard #35. (String)

  • timezone: The abbreviated name of the time zone on the client. (String)

  • iana_timezone: The IANA name of the time zone on the client. (String)

  • utc_offset: The current difference in seconds between the client's time zone and coordinated universal time. (Number)

  • dst_offset: The current daylight saving time offset in seconds between the client's non-daylight saving's time zone and the client's daylight saving's time zone. (Number)

If there is an error obtaining the pattern, the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.PATTERN_ERROR.

The options parameter is optional, and defaults to the following values:

    {formatLength:'short', selector:'date and time'}

The options.formatLength can be short, medium, long, or full. The options.selector can be date, time or date and time.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • iOS
  • Windows Phone 8
  • Windows
  • Browser

Example

When the browser is set to the en_US locale, this example displays a popup dialog with text such as pattern: M/d/yyyy h:mm a:

    function checkDatePattern() {
        navigator.globalization.getDatePattern(
            function (date) { alert('pattern: ' + date.pattern + '\n'); },
            function () { alert('Error getting pattern\n'); },
            { formatLength: 'short', selector: 'date and time' }
        );
    }

Windows Phone 8 Quirks

  • The formatLength supports only short and full values.

  • The pattern for date and time pattern returns only full datetime format.

  • The timezone returns the full time zone name.

  • The dst_offset property is not supported, and always returns zero.

  • The pattern may be not completely aligned with ICU depending on a user locale.

Windows Quirks

  • The formatLength supports only short and full values.

  • The pattern for date and time pattern returns only full datetime format.

  • The timezone returns the full time zone name.

  • The iana_timezone property is not supported, and always returns empty string.

  • The dst_offset property is not supported, and always returns zero.

  • The pattern may be not completely aligned with ICU depending on a user locale.

Browser Quirks

  • The 'pattern' property is not supported and returns empty string.

  • Only Chrome returns 'timezone' property. Its format is "Part of the world/{City}". Other browsers return empty string.

navigator.globalization.getFirstDayOfWeek

Returns the first day of the week according to the client's user preferences and calendar.

    navigator.globalization.getFirstDayOfWeek(successCallback, errorCallback);

Description

The days of the week are numbered starting from 1, where 1 is assumed to be Sunday. Returns the day to the successCallback with a properties object as a parameter. That object should have a value property with a Number value.

If there is an error obtaining the pattern, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.UNKNOWN_ERROR.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • Windows
  • Browser

Example

When the browser is set to the en_US locale, this displays a popup dialog with text similar to day: 1.

    navigator.globalization.getFirstDayOfWeek(
        function (day) {alert('day: ' + day.value + '\n');},
        function () {alert('Error getting day\n');}
    );

Windows Quirks

  • On Windows 8.0/8.1 the value depends on user' calendar preferences. On Windows Phone 8.1 the value depends on current locale.

Browser Quirks

  • Only 79 locales are supported because moment.js is used in this method.

navigator.globalization.getNumberPattern

Returns a pattern string to format and parse numbers according to the client's user preferences.

    navigator.globalization.getNumberPattern(successCallback, errorCallback, options);

Description

Returns the pattern to the successCallback with a properties object as a parameter. That object contains the following properties:

  • pattern: The number pattern to format and parse numbers. The patterns follow Unicode Technical Standard #35. (String)

  • symbol: The symbol to use when formatting and parsing, such as a percent or currency symbol. (String)

  • fraction: The number of fractional digits to use when parsing and formatting numbers. (Number)

  • rounding: The rounding increment to use when parsing and formatting. (Number)

  • positive: The symbol to use for positive numbers when parsing and formatting. (String)

  • negative: The symbol to use for negative numbers when parsing and formatting. (String)

  • decimal: The decimal symbol to use for parsing and formatting. (String)

  • grouping: The grouping symbol to use for parsing and formatting. (String)

If there is an error obtaining the pattern, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.PATTERN_ERROR.

The options parameter is optional, and default values are:

    {type:'decimal'}

The options.type can be decimal, percent, or currency.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • iOS
  • Windows Phone 8
  • Windows
  • Browser

Example

When the browser is set to the en_US locale, this should display a popup dialog with text similar to the results that follow:

    navigator.globalization.getNumberPattern(
        function (pattern) {alert('pattern: '  + pattern.pattern  + '\n' +
                                  'symbol: '   + pattern.symbol   + '\n' +
                                  'fraction: ' + pattern.fraction + '\n' +
                                  'rounding: ' + pattern.rounding + '\n' +
                                  'positive: ' + pattern.positive + '\n' +
                                  'negative: ' + pattern.negative + '\n' +
                                  'decimal: '  + pattern.decimal  + '\n' +
                                  'grouping: ' + pattern.grouping);},
        function () {alert('Error getting pattern\n');},
        {type:'decimal'}
    );

Results:

    pattern: #,##0.###
    symbol: .
    fraction: 0
    rounding: 0
    positive:
    negative: -
    decimal: .
    grouping: ,

Windows Phone 8 Quirks

  • The pattern property is not supported, and returns an empty string.

  • The fraction property is not supported, and returns zero.

Windows Quirks

  • The pattern property is not supported, and returns an empty string.

Browser Quirks

  • getNumberPattern is supported in Chrome only; the only defined property is pattern.

navigator.globalization.isDayLightSavingsTime

Indicates whether daylight savings time is in effect for a given date using the client's time zone and calendar.

navigator.globalization.isDayLightSavingsTime(date, successCallback, errorCallback);

Description

Indicates whether or not daylight savings time is in effect to the successCallback with a properties object as a parameter. That object should have a dst property with a Boolean value. A true value indicates that daylight savings time is in effect for the given date, and false indicates that it is not.

The inbound parameter date should be of type Date.

If there is an error reading the date, then the errorCallback executes. The error's expected code is GlobalizationError.UNKNOWN_ERROR.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • Windows
  • Browser

Example

During the summer, and if the browser is set to a DST-enabled timezone, this should display a popup dialog with text similar to dst: true:

    navigator.globalization.isDayLightSavingsTime(
        new Date(),
        function (date) {alert('dst: ' + date.dst + '\n');},
        function () {alert('Error getting names\n');}
    );

navigator.globalization.numberToString

Returns a number formatted as a string according to the client's user preferences.

    navigator.globalization.numberToString(number, successCallback, errorCallback, options);

Description

Returns the formatted number string to the successCallback with a properties object as a parameter. That object should have a value property with a String value.

If there is an error formatting the number, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.FORMATTING_ERROR.

The options parameter is optional, and its default values are:

    {type:'decimal'}

The options.type can be decimal, percent, or currency.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • iOS
  • Windows Phone 8
  • Windows
  • Browser

Example

When the browser is set to the en_US locale, this displays a popup dialog with text similar to number: 3.142:

    navigator.globalization.numberToString(
        3.1415926,
        function (number) {alert('number: ' + number.value + '\n');},
        function () {alert('Error getting number\n');},
        {type:'decimal'}
    );

Windows Quirks

  • Windows 8.0 does not support number rounding, therefore values will not be rounded automatically.

  • On Windows 8.1 and Windows Phone 8.1 fractional part is being truncated instead of rounded in case of percent number type therefore fractional digits count is set to 0.

  • percent numbers are not grouped as they can't be parsed in stringToNumber if grouped.

Browser Quirks

  • currency type is not supported.

navigator.globalization.stringToDate

Parses a date formatted as a string, according to the client's user preferences and calendar using the time zone of the client, and returns the corresponding date object.

    navigator.globalization.stringToDate(dateString, successCallback, errorCallback, options);

Description

Returns the date to the success callback with a properties object as a parameter. That object should have the following properties:

  • year: The four digit year. (Number)

  • month: The month from (0-11). (Number)

  • day: The day from (1-31). (Number)

  • hour: The hour from (0-23). (Number)

  • minute: The minute from (0-59). (Number)

  • second: The second from (0-59). (Number)

  • millisecond: The milliseconds (from 0-999), not available on all platforms. (Number)

The inbound dateString parameter should be of type String.

The options parameter is optional, and defaults to the following values:

    {formatLength:'short', selector:'date and time'}

The options.formatLength can be short, medium, long, or full. The options.selector can be date, time or date and time.

If there is an error parsing the date string, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.PARSING_ERROR.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • Windows
  • Browser

Example

When the browser is set to the en_US locale, this displays a popup dialog with text similar to month:8 day:25 year:2012. Note that the month integer is one less than the string, as the month integer represents an array index.

    navigator.globalization.stringToDate(
        '9/25/2012',
        function (date) {alert('month:' + date.month +
                               ' day:'  + date.day   +
                               ' year:' + date.year  + '\n');},
        function () {alert('Error getting date\n');},
        {selector: 'date'}
    );

Windows Phone 8 Quirks

  • The formatLength option supports only short and full values.

  • The pattern for 'date and time' selector is always a full datetime format.

  • The inbound dateString parameter should be formed in compliance with a pattern returned by getDatePattern. This pattern may be not completely aligned with ICU depending on a user locale.

Windows Quirks

  • The formatLength option supports only short and full values.

  • The pattern for 'date and time' selector is always a full datetime format.

  • The inbound dateString parameter should be formed in compliance with a pattern returned by getDatePattern. This pattern may be not completely aligned with ICU depending on a user locale.

Browser Quirks

  • Only 79 locales are supported because moment.js is used in this method.

  • Inbound string should be aligned with dateToString output format and may not completely aligned with ICU depending on a user locale.

  • time selector supports full and short formatLength only.

navigator.globalization.stringToNumber

Parses a number formatted as a string according to the client's user preferences and returns the corresponding number.

    navigator.globalization.stringToNumber(string, successCallback, errorCallback, options);

Description

Returns the number to the successCallback with a properties object as a parameter. That object should have a value property with a Number value.

If there is an error parsing the number string, then the errorCallback executes with a GlobalizationError object as a parameter. The error's expected code is GlobalizationError.PARSING_ERROR.

The options parameter is optional, and defaults to the following values:

    {type:'decimal'}

The options.type can be decimal, percent, or currency.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • iOS
  • Windows Phone 8
  • Windows

Example

When the browser is set to the en_US locale, this should display a popup dialog with text similar to number: 1234.56:

    navigator.globalization.stringToNumber(
        '1234.56',
        function (number) {alert('number: ' + number.value + '\n');},
        function () {alert('Error getting number\n');},
        {type:'decimal'}
    );

Windows Phone 8 Quirks

  • In case of percent type the returned value is not divided by 100.

Windows Quirks

  • The string must strictly conform to the locale format. For example, percent symbol should be separated by space for 'en-US' locale if the type parameter is 'percent'.

  • percent numbers must not be grouped to be parsed correctly.

GlobalizationError

An object representing a error from the Globalization API.

Properties

  • code: One of the following codes representing the error type (Number)
    • GlobalizationError.UNKNOWN_ERROR: 0
    • GlobalizationError.FORMATTING_ERROR: 1
    • GlobalizationError.PARSING_ERROR: 2
    • GlobalizationError.PATTERN_ERROR: 3
  • message: A text message that includes the error's explanation and/or details. (String)

Description

This object is created and populated by Cordova, and returned to a callback in the case of an error.

Supported Platforms

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • Firefox OS
  • iOS
  • Windows Phone 8
  • Windows

Example

When the following error callback executes, it displays a popup dialog with the text similar to code: 3 and message:

    function errorCallback(error) {
        alert('code: ' + error.code + '\n' +
              'message: ' + error.message + '\n');
    };

cordova-plugin-globalization's People

Contributors

agrieve avatar alsorokin avatar apla avatar audreyso avatar bennmapes avatar clelland avatar cmarcelk avatar csantanapr avatar dblotsky avatar dubee avatar eweiter avatar eymorale avatar filmaj avatar hermwong avatar infil00p avatar janpio avatar jcesarmobile avatar ldeluca avatar maverickmishra avatar mbillau avatar purplecabbage avatar sgrebnov avatar shazron avatar sruthakeerthikotla avatar stacic avatar stevengill avatar t1st3 avatar timkim avatar vladimir-kotikov avatar zalun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cordova-plugin-globalization's Issues

getDatePattern() not returns the updated date time format on resume

Bug Report

Problem

getDatePattern() not returns the updated date time format on resume

getDatePattern() should return the actual date time format of the system

What does actually happen?

getDatePattern() returns the date time format when I launch the application not the updated system time format

Information

Launch the application and get the date time format (12hr now). Minimise the app. change the time format to 24hr in settings. onResume try to get the time format should return 24hr but returns 12 hr. Restart the app returns the updated value

Command or Code

this.globalization.getDatePattern({ formatLength: 'short', selector: 'time' }) on resume

Environment, Platform, Device

iOS
Ionic

Version information

cli packages: (/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.18.0
ionic (Ionic CLI) : 3.18.0

global packages:

cordova (Cordova CLI) : 8.0.0 

local packages:

@ionic/app-scripts : 3.2.3
Cordova Platforms  : android 7.0.0 ios 4.5.5
Ionic Framework    : ionic-angular 3.9.5

System:

ios-deploy : 1.9.2 
ios-sim    : 1.9.0 
Node       : v8.15.0
npm        : 6.9.0 
OS         : macOS
Xcode      : Xcode 10.2.1 Build version 10E1001 

Environment Variables:

ANDROID_HOME : not set

Misc:

backend : pro

Checklist

  • I searched for existing GitHub issues
  • I updated all Cordova tooling to most recent version
  • I included all the necessary information above

Question: When migrating how to get the timezone?

Hi,

As this plugin is said to be deprecated, how exactly ECMA Internationalization API can then be used to get the device timezone? So, in essence, what is the equivalent (using ECMA Internationalization API) of navigator.globalization.getDatePattern and using date.timezone from the result?

Thanks in advance and regards

Do NOT deprecate this plugin

navigator.language simply returns the first language set by the user in the device.

getLocaleName does much more than that. getLocaleName will return the language the OS chose after running a resolution algorithm. This includes matching declared languages by the user with supported languages within the App (it can get quite sophisticated; follow the links below).

For example:

  • A user may have set this list of preferred languages: German, Spanish and English (in that order).
  • A developer may develop an app in Spanish and English.

navigator.language will simply return German both in iOS and Android. I have checked that.
getLocaleName will correctly return Spanish both in iOS and Android. Also checked.

Learn more about Android language resolution here:
https://developer.android.com/guide/topics/resources/multilingual-support

And about iOS resolution here:
https://developer.apple.com/library/archive/qa/qa1828/_index.html

Need MSAL Cordova for the Cordova Version 6.5.0

As our Mobile Application is using Cordova Version 6.5.0. Please I need MSAL Cordova which will be combability with this Cordova version 6.5.0

Motivation Behind Feature

Feature Description

Alternatives or Workarounds

Doesn't work for web

Bug Report

Problem

getPreferredLanguage does not behave the way it has to

What is expected to happen?

I expected to get locale

What does actually happen?

Catch handler is fired, since "cordova_not_available"

Information

Just provide and inject Globalization, then
this._globalization.getPreferredLanguage()
.then(...)
.catch(...);

Command or Code

ionic serve

Environment, Platform, Device

Mac OS Mojave 10.14.6

Version information

Ionic:

Ionic CLI : 5.3.0 (/usr/local/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 4.11.5
@angular-devkit/build-angular : 0.803.4
@angular-devkit/schematics : 8.3.4
@angular/cli : 8.3.4
@ionic/angular-toolkit : 2.0.0

Capacitor:

Capacitor CLI : not installed
@capacitor/core : not installed

Cordova:

Cordova CLI : 8.1.2 ([email protected])
Cordova Platforms : browser 5.0.4, ios 5.0.1
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.1, (and 25 other plugins)

Checklist

  • I searched for existing GitHub issues
  • I updated all Cordova tooling to most recent version
  • I included all the necessary information above

Android app 64 bit requirement

I use the cordova-plugin-globalization plugin in one of my apps.

Google came out with their 64 bit requirement.

https://9to5google.com/2019/01/15/android-app-64-bit-requirement/

When I searched for .so libraries in my project I saw the following:

/plugins/cordova-plugin-globalization/src/blackberry10/native/simulator/libGlobalization.so
/plugins/cordova-plugin-globalization/src/blackberry10/native/device/libGlobalization.so
/node_modules/cordova-plugin-globalization/src/blackberry10/native/simulator/libGlobalization.so
/node_modules/cordova-plugin-globalization/src/blackberry10/native/device/libGlobalization.so

I understand that these are blackberry related and not android. I just wanted to follow up to see if these should be removed to be compliant with Google.

Support for cordova-android >= v7

Hi, thanks for this plugin!

It looks like the plugin isn't compatible with cordova-android 7.x
During the installation, the following error throws:

Failed to install 'cordova-plugin-globalization': Error: ENOENT: no such file or directory, open '<path_project>/platforms/android/AndroidManifest.xml'
....

What are the possible values of timezone?

I would like to know the user's timezone information. In my test environment, I got 'GMT+8', but I wonder if GMT is the only possible result.
Is it possible to know the offset in hours?

iOS - getNumberPattern for en-BG locale

Using getNumberPattern for en-BG locale return the following result:
{"symbol": "", "positive": "+", "rounding": 0, "grouping": "ย ", "pattern": "#,##0.###", "fraction": 0, "decimal": "," ,"negative": "-"}

grouping and decimal are different from pattern

Just the language

Is it possible to get just the language and not language+region?

I always get the result "de-DE" for example but I just want to get the language "de".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.