@liuli-util/i18next-dts-gen
    TypeScript icon, indicating that this package has built-in type declarations

    0.3.3 • Public • Published

    @liuli-util/i18next-dts-gen

    English, 简体中文

    Introduction

    i18next's typescript type definition generator can generate type definitions from multiple language translation json files, supporting nested objects and parameters.

    Use

    The type definition generation of the international configuration of cli itself is also done by cli (bootstrapping)

    i18next-dts-gen --dirs src/i18n # Scan this directory for json files and generate index.d.ts type definitions

    Detail

    $ i18next-dts-gen -h
    Usage: bin [options]
    
    Generate .d.ts type definitions from json
    
    Options:
      -i, --dirs <dirs...>  Directory containing one or more translation files
      -w, --watch             Whether to use watch mode
      -h, --help              display help for command

    Skills

    Prompt

    prompt

    Navigation

    navigation

    Search and replace

    searchAndReplace

    Motivation

    Why should I write this when there are already many third-party type definition generators, and even the latest version of i18next has an official typescript solution?

    In short, they are not perfect.

    Let's start with the official i18next solution, which replaces json files with ts files, but does not support parameters and nested objects.

    Note: The latest version seems to take advantage of typescript 4.2's recursive types and template string types for type safety, but this doesn't actually work very well. Also only react-i18next is available.

    Then i18next-typescript, a third-party library, almost meets my needs, except for one thing: support for object parameters. There is also something like Jack Chicory's i18n-codegen, which is very elegant in code design, but again, does not support ecologies other than react.

    Also, as far as I'm concerned, I think it's easier and more reasonable to use generators to generate simple types than to support such features from the type system.

    Design

    schema

    flowchart

    FAQ

    Are all features of i18next supported?

    No, only a subset of i18next is supported here.

    • [x] Generate type definitions for multiple localized json profiles
    • [x] Include parameters are supported
      • [ ] Object parameters are not supported
    • [ ] Does not support nested keys - we think that using. Segmentation is sufficient, and it is easier to find and replace globally
    • [ ] does not support configuration namespaces, nested split strings, and we consider conventions over configuration
    • [ ] Configuration files other than json are not supported, we believe json files are more friendly to non-developers and easier for developers to handle when needed
    • [ ] i18next namespaces are not supported, i.e. translation file splitting

    Keywords

    none

    Install

    npm i @liuli-util/i18next-dts-gen

    DownloadsWeekly Downloads

    6

    Version

    0.3.3

    License

    MIT

    Unpacked Size

    2.49 MB

    Total Files

    77

    Last publish

    Collaborators

    • rxliuli