New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-simple-i18n

Package Overview
Dependencies
Maintainers
0
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-simple-i18n

React i18n solution with context API

  • 2.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
97
decreased by-34.01%
Maintainers
0
Weekly downloads
 
Created
Source

React Simple I18n

MIT License Monthly download Latest version
  • React i18n solution with context API, support React 16.3.0+ (16.8.0+ if use hooks)
  • Written in TypeScript
  • Lightweight, simple usage, easy to configure
  • 100% test coverage, reliable

Usage

Define languages data first

const langData = {
  enUS: {
    projects: 'Projects',
    cars: 'This car is %s%, that car is %s%',
    nav: {
      home: 'Home',
    },
  },
  zhCN: {
    projects: '项目',
    cars: '这辆车是%s%,那辆车是%s%',
    nav: {
      home: '首页',
    },
  },
}

Use React hook

import React, { Component } from 'react'
import { createI18n, I18nProvider, useI18n } from 'react-simple-i18n'

const Demo = () => {
  const { t, i18n } = useI18n()

  return (
    <div>
      <p>{t('projects')}</p>
      <p>{t('cars', 'BMW', 'TOYOTA')}</p>
      <p>{t('nav.home')}</p>
      <button onClick={() => i18n.setLang('enUS')}>English</button>
      <button onClick={() => i18n.setLang('zhCN')}>中文</button>
    </div>
  )
}

const App = () => (
  <I18nProvider i18n={createI18n(langData, { lang: 'enUS' })}>
    <Demo />
  </I18nProvider>
)

Top Level API

createI18n(data, options)

Creates an i18n object for I18nProvider

Arguments
  • data Language data object, see usage above
  • options
    • lang Initial language to use
    • defaultText Function that returns default text if i18n doesn't exist. It takes a single argument which is the i18n key string.
Return
  • i18n
    • t(key, ...args) Get translation by language name
      • @param key {string} key of a translation field
      • @param args {[string]} strings to replace %s% in the field
    • getLang() Get current language
      • @return {string} current language name, such as enUS
    • setLang(lang) Set language by language name
      • @param lang {string} language name, such as enUS
    • addLangData(langData) Async add language data, allow adding multiple languages once
      • @param langData {object} Language object { enUS: { key: 'value' } }
    • listen(handler) Add listener to language change
      • @param handler {func()} function which will be called when language change
    • unlisten(handler) Unbind a listener of language change
      • @param handler {func()} function which will be called when language change

<I18nProvider i18n>

Makes i18n available to withI18n HOC and useI18n hook

Props
  • i18n I18n object created by createI18n

useI18n()

A React hook that returns an object with t and i18n.

License

MIT

Keywords

FAQs

Package last updated on 22 Dec 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