Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Extracts messages for localization from ReScript source files.

License

NotificationsYou must be signed in to change notification settings

cca-io/rescript-react-intl-extractor

Repository files navigation

Extracts messages for localization fromReScript source files.

This assumes that you are using therescript-react-intl bindings forreact-intl.

NPM
Build Status

Installation

Binaries for macOS, Linux and Windows can be installed via npm or yarn. For global installation, run

npm install -g rescript-react-intl-extractor-bin

Alternatively, the binaries are also available for download on thereleases page.

Usage

rescript-react-intl-extractor [--allow-duplicates] [path...]

wherepath is a ReScript (*.res) source file or a directory containing such source files. Multiple files/directories may be specified.

The--allow-duplicates option allows messages with identicalid props if thedefaultMessage props are identical as well.

Output

The output (a JSON array of all extracted messages sorted by id) is written to stdout. It will look like this:

[  {"id":"message.hello","defaultMessage":"Hello"  },  {"id":"message.world","defaultMessage":"World"  },  {"id":"some.message.id","defaultMessage":"Some message"  }]

Message Definition (ReScript Syntax)

Formatted messages may be defined in your source files in one of the following ways:

  1. inline inFormattedMessage:
<ReactIntl.FormattedMessageid="some.message.id"defaultMessage="Some message" />

or

openReactIntl...<FormattedMessageid="some.message.id"defaultMessage="Some message" />
  1. within a module with the[@intl.messages] attribute:
openReactIntlmoduleMsg= {  @@intl.messageslethello= {id:"message.hello",defaultMessage:"Hello"}letworld= {id:"message.world",defaultMessage:"World"}}

You also can pass descriptions to the records with:

letfoo= @intl.description("Hello description") {id:"message.hello",defaultMessage:"Hello"}

Building and Testing

The ReScript parser is included as a git submodule. Therefore, after checking out the sources, first run

git submodule update --init --recursive

Install OCaml and OPAM, and create an OPAM switch with OCaml version 4.14.1.

Then run

opam pin add rescript-react-intl-extractor.dev . --no-actionopam install . --deps-only --with-doc --with-test

To build the project, run

opam exec -- dune build

To run the tests, do

opam exec -- dune runtest

About

Extracts messages for localization from ReScript source files.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors7


[8]ページ先頭

©2009-2025 Movatter.jp