typed-i18next
Type-safe translations generator for i18next.
Last updated 2 months ago by reactway-dev .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install typed-i18next 
SYNC missed versions from official npm registry.

typed-i18next

Type-safe translations generator for i18next.

NPM version NPM version

Build Status Code coverage

Dependencies Dev dependencies

Features

  • [x] Generates TypeScript declaration file.
  • [x] Check if generated declaration file is up-to-date (useful for CI).
  • [x] Support folder structure: [languageName]/**/[namespace].json.
  • [ ] Support file structure: [languageName].json.
  • [ ] Combine translations keys from different sources.
  • [x] Strictly typed const { t } = useTranslation() from react-i18next package. Example

Get started

Install typed-i18next package.

$ npm install typed-i18next

Latest dev build is published under canary tag.

$ npm install typed-i18next@canary

To start using the tool:

$ typed-i18next -h

Example

When generating TypeScript types:

$ typed-i18next -i ./src/i18next/translations -o ./src/i18next/translations.d.ts

During CI, declaration file can be checked if they are up-to-date with --check flag:

$ typed-i18next -i ./src/i18next/translations -o ./src/i18next/translations.d.ts --check

CLI Usage

$ typed-i18next -h

Configuration

CLI Flag Type Description Default
-i, --input <path> string Location where translations are located.
-o, --outputFile <file-path> string Location where to generate definitions file.
--check [boolean] boolean Check if generated file up to date (useful for CI). false
--logLevel <level> "silent", "error", "warning", "info", "debug", "trace" Console log level. "info"

Translation file structures

Folder structure

Example translations file structure:

.
└── translations/
    ├── en/
    │   ├── commons.json
    │   ├── validation.json
    │   ├── glosarry.json
    │   └── pages/
    │       ├── login.json
    │       └── register.json
    └── lt/
        ├── commons.json
        ├── validation.json
        ├── glosarry.json
        └── pages/
            ├── login.json
            └── register.json

Library specific types

react-i18next

import { useTranslation } from "react-i18next";
import { StrictTypedTranslations } from "typed-i18next/react";
// Declaration file "translations.d.ts" that we generated with `typed-i18next` tool.
import { Translations } from "./translations";

export const useStrictTranslation = useTranslation as StrictTypedTranslations<typeof useTranslation, Translations>;

License

Released under the MIT license.

Current Tags

  • 0.0.0-canary.c7bfd32                                ...           canary (2 months ago)
  • 0.1.2                                ...           latest (2 months ago)

11 Versions

  • 0.1.2                                ...           2 months ago
  • 0.0.0-canary.c7bfd32                                ...           2 months ago
  • 0.1.1                                ...           3 months ago
  • 0.0.0-canary.9e8158c                                ...           3 months ago
  • 0.1.0                                ...           8 months ago
  • 0.0.0-canary.72e3f51                                ...           8 months ago
  • 0.0.0-canary.5119865                                ...           8 months ago
  • 0.0.0-canary.b24bf35                                ...           8 months ago
  • 0.0.0-canary.2361fc7                                ...           9 months ago
  • 0.0.0-canary.72f6a2a                                ...           9 months ago
  • 0.0.0-canary.7829574                                ...           9 months ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 35
Dependencies (8)
Dev Dependencies (9)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |