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

i18next-resources-for-ts

Package Overview
Dependencies
Maintainers
2
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

i18next-resources-for-ts

This package helps to transform resources to be used in a typesafe i18next project.

  • 1.5.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
43K
increased by13.64%
Maintainers
2
Weekly downloads
 
Created
Source

Introduction

Actions npm version

This package helps to transform resources to be used in a typesafe i18next project.

Getting started

Source can be loaded via npm.

# npm package
$ npm install i18next-resources-for-ts

Usage via code (toc):

import { tocForResources } from 'i18next-resources-for-ts'

const nsA = {
  name: 'nsA',
  path: '/some/path/locales/en/nsA.json'
}
const nsB = {
  name: 'nsB',
  path: '/some/path/locales/en/nsB.json'
}

const toc = tocForResources([nsA, nsB], '/some/path')
// import nsA from './locales/en/nsA.json';
// import nsB from './locales/en/nsB.json';
// 
// const resources = {
//   nsA,
//   nsB
// };
// 
// export default resources;

Usage via code (merge):

import { mergeResources } from 'i18next-resources-for-ts'

const nsA = {
  name: 'nsA',
  resources: {
    k1: 'v1',
    k2: 'v2',
    k3: {
      d3: 'v3'
    }
  }
}
const nsB = {
  name: 'nsB',
  resources: {
    k21: 'v21',
    k22: 'v22',
    k23: {
      d23: 'v23'
    }
  }
}

const merged = mergeResources([nsA, nsB])
// {
//   nsA: {
//     k1: 'v1',
//     k2: 'v2',
//     k3: {
//       d3: 'v3'
//     }
//   },
//   nsB: {
//     k21: 'v21',
//     k22: 'v22',
//     k23: {
//       d23: 'v23'
//     }
//   }
// }

Usage via code (interface):

import { mergeResourcesAsInterface } from 'i18next-resources-for-ts'

const nsA = {
  name: 'nsA',
  resources: {
    k1: 'v1',
    k2: 'v2',
    k3: {
      d3: 'v3'
    }
  }
}
const nsB = {
  name: 'nsB',
  resources: {
    k21: 'v21',
    k22: 'v22',
    k23: {
      d23: 'v23'
    }
  }
}

const definition = mergeResourcesAsInterface([nsA, nsB])
// interface Resources {
//   nsA: {
//     k1: 'v1',
//     k2: 'v2',
//     k3: {
//       d3: 'v3'
//     }
//   },
//   nsB: {
//     k21: 'v21',
//     k22: 'v22',
//     k23: {
//       d23: 'v23'
//     }
//   }
// }

// export default Resources;

Usage via CLI:

# use it with npx
npx i18next-resources-for-ts subcommand -i /Users/user/my/input -o /Users/user/my/output

# or install it globally
npm install i18next-resources-for-ts -g

# subcommand is either toc or merge
# -i is the input path
# -o is the output path
# if the output path is not provided, it will use the input path as base path for the result file

i18next-resources-for-ts toc -i /Users/user/my/input -o /Users/user/my/output.ts
i18next-resources-for-ts interface -i /Users/user/my/input -o /Users/user/my/output.d.ts
i18next-resources-for-ts merge -i /Users/user/my/input -o /Users/user/my/output.json
# i18next-resources-for-ts toc /Users/user/my/input -o /Users/user/my/output
# i18next-resources-for-ts toc -o /Users/user/my/output
# i18next-resources-for-ts toc -i /Users/user/my/input
# i18next-resources-for-ts toc
# 
# toc accepts also the optional -cts argument that will automatically convert json to ts files and the optional -d argument that will delete the original json files
# toc and interface accepts also the optional -c argument, that will add a file-level comment on the output file (i.e. -c "This file is generated by i18next-resources-for-ts")

Make sure your folder structure contains all relevant namespaces (in your source/reference language):

└── namespace.json

or

└── namespace.yml

or

└── namespace.yaml

i.e.

├── translation.json
└── common.json

or

├── translation.yml
└── common.yml

or

├── translation.yaml
└── common.yaml

Check these examples to see how to use it:


Gold Sponsors


From the creators of i18next: localization as a service - locize.com

A translation management system built around the i18next ecosystem - locize.com.

locize

With using locize you directly support the future of i18next.


Keywords

FAQs

Package last updated on 08 Jan 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