
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
react-native-native-language
Advanced tools
React Native module for detecting and setting app's default language
React Native module for detecting and setting the app's default language.
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 ..
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()
}
}
}
Platforms | |
---|---|
IOS | ✓ |
Android* | ✓ |
*On versions older than API level 33 (Android 13), the library uses SharedPreferences to store the language.
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.
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.
MIT
FAQs
React Native module for detecting and setting app's default language
The npm package react-native-native-language receives a total of 17 weekly downloads. As such, react-native-native-language popularity was classified as not popular.
We found that react-native-native-language demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.