ArcGIS for Developers

LocaleInfo QML Type

Provides locale properties for translation purposes. More...

Import Statement: import ArcGIS.AppFramework 1.0

Properties

Signals

Detailed Description

The LocaleInfo component provides access to additional locale properties. It also provides a way to map the system locale name to the Esri standard locale name, useful in contexts such as OAuth signin dialogs.

This sample provides a text box to declare a locale code, which will then populate a table with a number of LocaleInfo properties. It also demonstrates a potential usage of the component with OAuth signin.

Item {
    property string localeName
    property var locale
    property string oauthUrlFormat: "https://www.arcgis.com/sharing/rest/oauth2/authorize?client_id=arcgisonline&redirect_uri=http://www.arcgis.com&response_type=token&locale=%1"
    property url oauthUrl

    Component.onCompleted: {
        localeName = Qt.locale().name;
    }

        onLocaleNameChanged: {
        locale = Qt.locale(localeName);
        updateTimer.start();
    }

        LocaleInfo {
        id: localeInfo
        name: localeName
        onLocaleChanged: {
            localeInfoModel.update(localeInfo);
            oauthUrl = oauthUrlFormat.arg(esriName);
            if (oauthTab.item) {
                oauthTab.item.url = oauthUrl;
            }
        }
    }

        Timer {
        id: updateTimer
        interval: 10
        repeat: false
        onTriggered: {
            if (localeInfoTab.item) {
                localeInfoTab.item.resizeColumnsToContents();
            }
        }
    }

        ListModel {
        id: localeInfoModel
        function update(localeInfo) {
            clear();
            add("name",                 localeInfo.name);
            add("ietfName",             localeInfo.ietfName);
            add("esriName",             localeInfo.esriName);
            add("languageName",         localeInfo.languageName);
            add("languageCode",         localeInfo.languageCode);
            add("countryName",          localeInfo.countryName);
            add("countryCode",          localeInfo.countryCode);
            add("scriptName",           localeInfo.scriptName);
            add("scriptCode",           localeInfo.scriptCode);
        }
        function add(name, value) {
            append({
                       name: name,
                       value: value.toString()
                   });
        }
    }

    ColumnLayout {
        anchors {
            fill: parent
            margins: 5 * AppFramework.displayScaleFactor
        }
        spacing: 5 * AppFramework.displayScaleFactor
        RowLayout {
            Layout.fillWidth: true
            Text {
                text: "Locale search"
            }
            TextField {
                id: localeField
                Layout.fillWidth: true
                text: localeName
                placeholderText: "Locale"
                onEditingFinished: {
                    localeName = text;
                }
                function update(name) {
                    text = name;
                    editingFinished();
                }
            }
        }
        TabView {
            Layout.fillWidth: true
            Layout.fillHeight: true
            Tab {
                id: localeInfoTab
                title: "LocaleInfo"
                TableView {
                    model: localeInfoModel
                    Component.onCompleted: {
                        updateTimer.start();
                    }
                    TableViewColumn {
                        role: "name"
                        title: "Property"
                    }
                    TableViewColumn {
                        role: "value"
                        title: "Value"
                    }
                }
            }
            Tab {
                id: oauthTab
                title: "Sign In Page"
                WebView {
                    Component.onCompleted: {
                        url = oauthUrl;
                    }
                }
            }
        }
    }
}

Property Documentation

[read-only] countryCode : string

Returns the locale's two-character country code.


[read-only] countryName : string

Returns the name of the locale's country.


[read-only] esriName : string

Returns the standard two-character code used by Esri for this language.

If the language being used is not Esri-supported, returns 'en'. These unsupported languages can still be used within in your app, but are not supported by ArcGIS Online.


[read-only] ietfName : string

Returns the IETF standard language and region code for this language.


[read-only] languageCode : string

Returns the two to three-character code denoting the language being used.


[read-only] languageName : string

Returns the name of the language being used.


name : string

Returns an underscore-separated short name for the given locale. This will usually closely resemble the value returned by the IetfName property.


[read-only] scriptCode : string

Returns the four-character code denoting the script used for this language. For example, English would return 'Latn' (Latin), while Japanese would return 'Japn'.


[read-only] scriptName : string

Returns the name of the script used for this language.


Signal Documentation

localeChanged()

Signal emitted when the locale being used by the app has changed.