Provides locale properties for translation purposes. More...
Import Statement: | import ArcGIS.AppFramework 1.0 |
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;
}
}
}
}
}
}
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.
Returns the two to three-character code denoting the language being used.
Returns an underscore-separated short name for the given locale. This will usually closely resemble the value returned by the IetfName property.
Returns the four-character code denoting the script used for this language. For example, English would return 'Latn' (Latin), while Japanese would return 'Japn'.