pogen readme
This commit is contained in:
parent
51f2ad9b6d
commit
43fabc0d1d
77
packages/pogen/README.md
Normal file
77
packages/pogen/README.md
Normal file
@ -0,0 +1,77 @@
|
||||
# pogen - string extraction for internationalizing TypeScript programs
|
||||
|
||||
The ``pogen`` tool extracts internationalizable strings from TypeScript programs.
|
||||
|
||||
|
||||
## Invocation and Configuration
|
||||
|
||||
The ``pogen`` tool must be called from the root of an NPM package.
|
||||
|
||||
The input files are determined from the ``tsconfig.json`` file. All input files inside the package that
|
||||
the compiler would use are automatically processed.
|
||||
|
||||
Inside ``package.json``, the following configuration options are supported:
|
||||
|
||||
```
|
||||
{
|
||||
|
||||
// [ ... ]
|
||||
|
||||
"pogen": {
|
||||
// Output location of the pofile (mandatory)
|
||||
"pofile": "...",
|
||||
|
||||
// Calls to plain i18n functions are extracted if they
|
||||
// are imported from this package.
|
||||
"plainI18nPackage": "@gnu-taler/taler-util",
|
||||
|
||||
// Calls to react-style i18n functions are extracted if they
|
||||
// are imported from this package.
|
||||
"reactI18nPackage": "@gnu-taler/preact-i18n",
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Syntax
|
||||
|
||||
Two flavors of syntax are supported:
|
||||
|
||||
Template strings:
|
||||
|
||||
```
|
||||
import { i18n } from "@gnu-taler/taler-util";
|
||||
|
||||
console.log(i18n.str`Hello World`);
|
||||
console.log(i18n.str`Hello ${user}`);
|
||||
|
||||
console.log(i18n.plural(n, i18n.lazy`I have ${n} apple`, i18n.lazy`I have ${n} apples`));
|
||||
```
|
||||
|
||||
React components:
|
||||
|
||||
```
|
||||
|
||||
import {
|
||||
Translate,
|
||||
TranslateSwitch,
|
||||
TranslateSingular,
|
||||
TranslatePlural
|
||||
} from "@gnu-taler/preact-i18n";
|
||||
|
||||
<Translate>Hello, World</Translate>
|
||||
|
||||
// Placeholders are other React elements
|
||||
<Translate>Hello, <span className="highlight">{userName}<span></Translate>
|
||||
|
||||
// Plain placeholders are not supported, they must be surrounded
|
||||
// by an element:
|
||||
// WRONG: <Translate>Hello, {userName}</Translate>
|
||||
|
||||
<TranslateSwitch n={numApples}>
|
||||
<TranslateSingular>I have <span>{n}</span> apple</TranslateSingular>
|
||||
<TranslatePlural>I have <span>{n}</span> apple</TranslatePlural>
|
||||
</TranslateSwitch>
|
||||
|
||||
```
|
Loading…
Reference in New Issue
Block a user