Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-native-native-language

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-native-language

React Native module for detecting and setting app's default language

  • 1.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-66.67%
Maintainers
1
Weekly downloads
 
Created
Source

react-native-native-language

React Native module for detecting and setting the app's default language.

APP (IOS/Android)

Installation

npm install react-native-native-language
# or if you use Yarn
yarn add react-native-native-language

After installation, you need to link the library to your project. If you're using React Native 0.60 or higher, autolinking will just do the job. For iOS, make sure you have Cocoapods installed. Then run:

cd ios && pod install && cd ..

Additionals

If you want your Android App to restart for language updates when you change the app language and return to the application, please add the following:

In ./android/app/src/main/AndroidManifest.xml

<!-- Add "layoutDirection" and "locale" -->
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|layoutDirection|locale"

In ./android/app/src/main/java/com/a2bapp/MainActivity.kt

package com.exampleproject

import android.content.res.Configuration // <- Add this line
import android.os.Bundle
import com.facebook.react.ReactActivity
import com.facebook.react.ReactActivityDelegate
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
import com.facebook.react.defaults.DefaultReactActivityDelegate
import java.util.*

class MainActivity : ReactActivity() {

    // Add this object
    companion object {
        @JvmStatic
        var currentLocale: String? = null
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        currentLocale = resources.configuration.locales[0].toLanguageTag() // <- Add this line
    }

    // Add this function
    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)

        val locale = newConfig.locales[0].toLanguageTag()
        if (currentLocale != locale) {
            currentLocale = locale
            val instanceManager = reactInstanceManager
            instanceManager.recreateReactContextInBackground()
        }
    }
}

Supported platforms

Platforms
IOS
Android*

*On versions older than API level 33 (Android 13), the library uses SharedPreferences to store the language.

Usage

Here is a simple example of how to use the module:

import { getAppLanguage, setAppLanguage } from 'react-native-native-language;

// Get app language
getAppLanguage().then(appLanguage => console.log(appLanguage));

// Set app language
setAppLanguage('tr');

For a more detailed example, please refer to the example directory in the repository.

API

getAppLanguage()

Returns a promise that resolves to the app's default language.

setAppLanguage(language: string)

Sets the app's language to the specified language. Returns a promise that resolves when the language has been set.

License

MIT

Keywords

FAQs

Package last updated on 14 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc