Command line tool for hi18n
See hi18n's README for general information.
hi18n sync
hi18n sync [...files] --ignore <glob>
Synchronizes unused and missing translations.
hi18n export
hi18n export
Exports hi18n's data into external files. You must configure connector
/ connectorOptions
before using it.
Configuration
Configuration is loaded via cosmiconfig. Cosmiconfig's documentation explains a lot, but in short, it reads:
hi18n
property in package.json
.hi18nrc
.hi18nrc.json
.hi18nrc.yaml
.hi18nrc.yml
.hi18nrc.js
.hi18nrc.cjs
hi18n.config.js
hi18n.config.cjs
include
and exclude
module.exports = {
include: ["src/**/*.ts", "src/**/*.tsx"],
exclude: ["**/*.d.ts"],
};
include
is a required field unless given as a command-line argument.
This is a list of JavaScript/TypeScript files that hi18n reads.
Make sure to include:
- All files that declare Catalog, Vocabulary, or Book, and
- all files that use translation.
exclude
is an optional field that hi18n should not read.
This is useful if hi18n fails to parse some files.
Both include
and exclude
are processed by glob.
parser
and parserOptions
module.exports = {
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: 2022,
sourceType: "module",
ecmaFeatures: {
jsx: true,
},
},
};
These configurations resemble those in ESLint. See ESLint's docs for details.
Default:
{
parser: "@babel/eslint-parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
}
extensions
module.exports = {
extensions: ["...", ".mjsx", ".cjsx"],
};
Configures extensions to resolve. ...
will be expanded to the default list.
Default: .js
, .cjs
, .mjs
, .ts
, .cts
, .mts
, .jsx
, .tsx
extensionsToRemove
module.exports = {
extensions: ["...", ".json"],
};
Configures extensions to remove before resolving paths. ...
will be expanded to the default list.
Default: .js
, .cjs
, .mjs
baseUrl
module.exports = {
baseUrl: ".",
};
Maps the specified directory to the virtual root of the package tree.
It resembles the behavior of tsconfig's baseUrl.
Default: undefined
, meaning paths such as jquery
will be only searched for in node_modules.
paths
module.exports = {
baseUrl: ".",
paths: {
"@/*": ["src/components/*"],
},
};
Configures path mapping. Requires baseUrl
to be set.
It resembles the behavior of tsconfig's paths.
connector
/ connectorOptions
module.exports = {
connector: "@hi18n/cli/json-mf-connector",
connectorOptions: {
path: "./export.json",
},
};
Configures export/import functionality.
- You can export data using
hi18n export
command. - You can import data using
hi18n sync
command (called passive importing).
It uses the imported data only when the new translation is requested and
the translation id matches one of the imported translations. - Active importing is not yet implemented.
connector
must be one of the following:
@hi18n/cli/json-mf-connector
is treated specially and refers to @hi18n/cli
's built-in connector.- A path to a module. See
@hi18n/tools-core
's API references for necessary APIs to implement connectors.
@hi18n/connector-i18n-js
is a connector for i18n-js.
The builtin connector @hi18n/cli/json-mf-connector
accepts the following options:
path
(required) ... a file path to the JSON file.