---
description: Capacitor plugin to read the user's localization preferences, including preferred locales, time zone, and regional formatting. Supports Android, iOS, and the web.
title: Capacitor Localization Plugin - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/localization.png
---

<!doctype html> 

[Skip to content ](#capacitor-localization-plugin) 

[📲 Introducing **Build Sharing** — get your builds onto testers' devices with a link & QR code. No account required. ](/blog/share-mobile-app-builds-with-testers/) 

* [ SDKs ](/docs/sdks/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ Home Indicator ](/docs/sdks/capacitor/home-indicator/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Intercom ](/docs/sdks/capacitor/intercom/)
* [ Intune ](/docs/sdks/capacitor/intune/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Light Sensor ](/docs/sdks/capacitor/light-sensor/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* Localization [ Localization ](/docs/sdks/capacitor/localization/)
* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ Platform Support ](#platform-support)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ Network ](/docs/sdks/capacitor/network/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Permissions ](/docs/sdks/capacitor/permissions/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ Photo Manipulator ](/docs/sdks/capacitor/photo-manipulator/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Proximity Sensor ](/docs/sdks/capacitor/proximity-sensor/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ System WebView ](/docs/sdks/capacitor/system-webview/)
* [ Tauri ](/docs/sdks/capacitor/tauri/)
* [ Text Interaction ](/docs/sdks/capacitor/text-interaction/)
* [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ YouTube Player ](/docs/sdks/capacitor/youtube-player/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Notifications
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ Platform Support ](#platform-support)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)

# Capacitor Localization Plugin[¶](#capacitor-localization-plugin "Permanent link")

Capacitor plugin to read the user's localization preferences, such as preferred locales, time zone, and regional formatting settings.

[ ![Deliver Live Updates to your Capacitor app with Capawesome Cloud](../../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](https://cloud.capawesome.io/) 

## Features[¶](#features "Permanent link")

* 🌍 **Preferred locales**: Read the user's preferred locales, ordered by preference.
* 💱 **Regional formatting**: Read currency, decimal, and grouping separators per locale.
* ↔️ **Text direction**: Detect whether a locale is written left-to-right or right-to-left.
* 📏 **Measurement system**: Detect the metric, US, or UK measurement system.
* 🕐 **Settings**: Read the time zone, clock format, and first day of the week.
* 🖥️ **Cross-platform**: Full support for Android, iOS, and Web.
* 🤝 **Compatibility**: Works alongside the [App Language](https://capawesome.io/docs/sdks/capacitor/app-language/), [Datetime Picker](https://capawesome.io/docs/sdks/capacitor/datetime-picker/) and [Device Info](https://capawesome.io/docs/sdks/capacitor/device-info/) plugins.
* 📦 **CocoaPods & SPM**: Supports CocoaPods and Swift Package Manager for iOS.
* 🔁 **Up-to-date**: Always supports the latest Capacitor version.

Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!

## Use Cases[¶](#use-cases "Permanent link")

The Localization plugin is typically used to adapt an app to the user's language and regional preferences, for example:

* **Localized formatting**: Format numbers and prices with the correct decimal separator, grouping separator, and currency symbol for the user's locale.
* **Right-to-left layouts**: Switch the layout direction of your app based on the text direction of the user's preferred language.
* **Unit display**: Show distances and weights in metric or imperial units depending on the user's measurement system.
* **Date and time display**: Render times in the user's time zone and clock format, and start calendar views on the correct first day of the week.
* **Language selection**: Preselect the best matching app language from the user's preferred locales.

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 0.x.x          | \>=8.x.x          | Active support |

## Installation[¶](#installation "Permanent link")

You can use our **AI-Assisted Setup** to install the plugin. Add the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:

`[](#%5F%5Fcodelineno-0-1)npx skills add capawesome-team/skills --skill capacitor-plugins
`

Then use the following prompt:

`` [](#%5F%5Fcodelineno-1-1) Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-localization` plugin in my project.
 ``

If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:

`[](#%5F%5Fcodelineno-2-1)npm install @capawesome/capacitor-localization
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

No additional permissions or configuration are required on any platform.

## Configuration[¶](#configuration "Permanent link")

No configuration required for this plugin.

## Usage[¶](#usage "Permanent link")

The following examples show how to read the user's preferred locales and their regional formatting settings.

### Get the user's preferred locales[¶](#get-the-users-preferred-locales "Permanent link")

Read the user's preferred locales, ordered by preference. The first entry is the most preferred locale. Each locale contains the language tag, region code, currency, number separators, text direction, and measurement system:

`[](#%5F%5Fcodelineno-3-1)import { Localization } from '@capawesome/capacitor-localization';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const getLocales = async () => {
[](#%5F%5Fcodelineno-3-4)  const { locales } = await Localization.getLocales();
[](#%5F%5Fcodelineno-3-5)  return locales;
[](#%5F%5Fcodelineno-3-6)};
`

### Read the user's regional settings[¶](#read-the-users-regional-settings "Permanent link")

Read the user's regional formatting settings, such as the time zone, whether a 24-hour clock is preferred, and the first day of the week:

`[](#%5F%5Fcodelineno-4-1)import { Localization } from '@capawesome/capacitor-localization';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const getSettings = async () => {
[](#%5F%5Fcodelineno-4-4)  const settings = await Localization.getSettings();
[](#%5F%5Fcodelineno-4-5)  return settings;
[](#%5F%5Fcodelineno-4-6)};
`

## API[¶](#api "Permanent link")

* [getLocales()](#getlocales)
* [getSettings()](#getsettings)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)

### getLocales()[¶](#getlocales "Permanent link")

`[](#%5F%5Fcodelineno-5-1)getLocales() => Promise<GetLocalesResult>
`

Get the user's preferred locales, ordered by preference.

The first entry is the most preferred locale.

**Returns:** `Promise<[GetLocalesResult](#getlocalesresult)>`

**Since:** 0.1.0

---

### getSettings()[¶](#getsettings "Permanent link")

`[](#%5F%5Fcodelineno-6-1)getSettings() => Promise<GetSettingsResult>
`

Get the user's regional formatting settings.

**Returns:** `Promise<[GetSettingsResult](#getsettingsresult)>`

**Since:** 0.1.0

---

### Interfaces[¶](#interfaces "Permanent link")

#### GetLocalesResult[¶](#getlocalesresult "Permanent link")

| Prop        | Type       | Description                                                                                        | Since |
| ----------- | ---------- | -------------------------------------------------------------------------------------------------- | ----- |
| **locales** | Locale\[\] | The user's preferred locales, ordered by preference. The first entry is the most preferred locale. | 0.1.0 |

#### Locale[¶](#locale "Permanent link")

| Prop                  | Type                                            | Description                                                                                                                               | Since |
| --------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **currencyCode**      | string \| null                                  | The ISO 4217 currency code of the locale. Returns null if the currency cannot be determined.                                              | 0.1.0 |
| **currencySymbol**    | string \| null                                  | The currency symbol of the locale. Returns null if the currency symbol cannot be determined.                                              | 0.1.0 |
| **decimalSeparator**  | string \| null                                  | The character used to separate the integer part from the fractional part of a number. Returns null if the separator cannot be determined. | 0.1.0 |
| **groupingSeparator** | string \| null                                  | The character used to group digits of the integer part of a number. Returns null if the separator cannot be determined.                   | 0.1.0 |
| **languageCode**      | string                                          | The ISO 639 language code of the locale.                                                                                                  | 0.1.0 |
| **languageTag**       | string                                          | The BCP 47 language tag of the locale.                                                                                                    | 0.1.0 |
| **measurementSystem** | [MeasurementSystem](#measurementsystem) \| null | The measurement system used by the locale. Returns null if the measurement system cannot be determined.                                   | 0.1.0 |
| **regionCode**        | string \| null                                  | The ISO 3166 region code of the locale. Returns null if the region cannot be determined.                                                  | 0.1.0 |
| **textDirection**     | [TextDirection](#textdirection)                 | The writing direction of the locale's language.                                                                                           | 0.1.0 |

#### GetSettingsResult[¶](#getsettingsresult "Permanent link")

| Prop                | Type    | Description                                                                                                                       | Since |
| ------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **firstDayOfWeek**  | number  | The first day of the week as configured by the user. The value follows the ISO 8601 convention where 1 is Monday and 7 is Sunday. | 0.1.0 |
| **timeZone**        | string  | The identifier of the user's current time zone.                                                                                   | 0.1.0 |
| **uses24HourClock** | boolean | Whether the user prefers a 24-hour clock over a 12-hour clock.                                                                    | 0.1.0 |

### Type Aliases[¶](#type-aliases "Permanent link")

#### MeasurementSystem[¶](#measurementsystem "Permanent link")

The measurement system used by a locale.

* `metric`: The metric system (e.g. meters, kilograms).
* `us`: The United States customary system (e.g. feet, pounds).
* `uk`: The United Kingdom imperial system.

`'metric' | 'us' | 'uk'`

#### TextDirection[¶](#textdirection "Permanent link")

The writing direction of a language.

* `ltr`: Left-to-right (e.g. English, German).
* `rtl`: Right-to-left (e.g. Arabic, Hebrew).

`'ltr' | 'rtl'`

## Platform Support[¶](#platform-support "Permanent link")

The plugin returns `null` for any field that a platform cannot determine. On the **Web** platform, `currencyCode`, `currencySymbol`, and `measurementSystem` are always `null`, because the browser does not expose this information.

## FAQ[¶](#faq "Permanent link")

### How is this plugin different from other similar plugins?[¶](#how-is-this-plugin-different-from-other-similar-plugins "Permanent link")

It reads the user's complete localization picture in one fully typed API — ordered preferred locales, currency and number separators, text direction, measurement system, time zone, clock format, and first day of the week — across Android, iOS, and the Web. It's honest about platform limits, returning `null` for fields a platform can't determine. If you only need the current language, a minimal lookup is enough; if you want to format numbers, currencies, dates, and layouts to match each user's region, this plugin is designed for exactly that.

### Why are some locale fields `null` on the Web?[¶](#why-are-some-locale-fields-null-on-the-web "Permanent link")

The plugin returns `null` for any field that a platform cannot determine. On the Web, `currencyCode`, `currencySymbol`, and `measurementSystem` are always `null` because the browser does not expose this information. On Android and iOS, the plugin has full access to the system's localization settings.

### Do I need any permissions to use this plugin?[¶](#do-i-need-any-permissions-to-use-this-plugin "Permanent link")

No, reading the user's localization preferences does not require any permissions. No additional configuration is required on any platform either, so the plugin works right after [installation](#installation).

### How do I detect right-to-left languages?[¶](#how-do-i-detect-right-to-left-languages "Permanent link")

Every locale returned by `getLocales()` contains a `textDirection` property that is either `ltr` (left-to-right, e.g. English or German) or `rtl` (right-to-left, e.g. Arabic or Hebrew). You can use this value to switch the layout direction of your app.

### How is this plugin different from the App Language plugin?[¶](#how-is-this-plugin-different-from-the-app-language-plugin "Permanent link")

The Localization plugin reads the user's system-level preferences, such as preferred locales, time zone, and regional formatting settings. The [App Language](https://capawesome.io/docs/sdks/capacitor/app-language/) plugin, on the other hand, manages the app's own language override, independent of the device language.

### Can I use this plugin with Ionic, React, Vue or Angular?[¶](#can-i-use-this-plugin-with-ionic-react-vue-or-angular "Permanent link")

Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.

## Related Plugins[¶](#related-plugins "Permanent link")

* [App Language](https://capawesome.io/docs/sdks/capacitor/app-language/): Manage the app's own language override, independent of the device language.
* [Datetime Picker](https://capawesome.io/docs/sdks/capacitor/datetime-picker/): Native date and time selection with localization and theming support.
* [Device Info](https://capawesome.io/docs/sdks/capacitor/device-info/): Read device information, such as the model, manufacturer, and operating system.

## Newsletter[¶](#newsletter "Permanent link")

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).

## Changelog[¶](#changelog "Permanent link")

See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/localization/CHANGELOG.md).

## License[¶](#license "Permanent link")

See [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/localization/LICENSE).

July 8, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/localization/#article", "headline": "Capacitor Localization Plugin", "name": "Capacitor Localization Plugin", "description": "Capacitor plugin to read the user's localization preferences, including preferred locales, time zone, and regional formatting. Supports Android, iOS, and the web.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/localization/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/localization/", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "about": {"@id": "https://capawesome.io/docs/sdks/capacitor/localization/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/localization/#software", "name": "Capacitor Localization Plugin", "description": "Capacitor plugin to read the user's localization preferences, including preferred locales, time zone, and regional formatting. Supports Android, iOS, and the web.", "url": "https://capawesome.io/docs/sdks/capacitor/localization/", "programmingLanguage": "TypeScript", "runtimePlatform": "Capacitor", "codeRepository": "https://github.com/capawesome-team", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}}]}
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "How is this plugin different from other similar plugins?", "acceptedAnswer": {"@type": "Answer", "text": "It reads the user's complete localization picture in one fully typed API — ordered preferred locales, currency and number separators, text direction, measurement system, time zone, clock format, and first day of the week — across Android, iOS, and the Web. It's honest about platform limits, returning null for fields a platform can't determine. If you only need the current language, a minimal lookup is enough; if you want to format numbers, currencies, dates, and layouts to match each user's region, this plugin is designed for exactly that."}}, {"@type": "Question", "name": "Why are some locale fields null on the Web?", "acceptedAnswer": {"@type": "Answer", "text": "The plugin returns null for any field that a platform cannot determine. On the Web, currencyCode, currencySymbol, and measurementSystem are always null because the browser does not expose this information. On Android and iOS, the plugin has full access to the system's localization settings."}}, {"@type": "Question", "name": "Do I need any permissions to use this plugin?", "acceptedAnswer": {"@type": "Answer", "text": "No, reading the user's localization preferences does not require any permissions. No additional configuration is required on any platform either, so the plugin works right after installation."}}, {"@type": "Question", "name": "How do I detect right-to-left languages?", "acceptedAnswer": {"@type": "Answer", "text": "Every locale returned by getLocales() contains a textDirection property that is either ltr (left-to-right, e.g. English or German) or rtl (right-to-left, e.g. Arabic or Hebrew). You can use this value to switch the layout direction of your app."}}, {"@type": "Question", "name": "How is this plugin different from the App Language plugin?", "acceptedAnswer": {"@type": "Answer", "text": "The Localization plugin reads the user's system-level preferences, such as preferred locales, time zone, and regional formatting settings. The App Language plugin, on the other hand, manages the app's own language override, independent of the device language."}}, {"@type": "Question", "name": "Can I use this plugin with Ionic, React, Vue or Angular?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects."}}], "url": "https://capawesome.io/docs/sdks/capacitor/localization/"}
```
