From 43fabc0d1de4b3efe27233479bb4ed08429c4517 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 18 Mar 2021 13:56:20 +0100 Subject: pogen readme --- packages/pogen/README.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 packages/pogen/README.md (limited to 'packages/pogen') diff --git a/packages/pogen/README.md b/packages/pogen/README.md new file mode 100644 index 000000000..af1bab73f --- /dev/null +++ b/packages/pogen/README.md @@ -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"; + +Hello, World + +// Placeholders are other React elements +Hello, {userName} + +// Plain placeholders are not supported, they must be surrounded +// by an element: +// WRONG: Hello, {userName} + + + I have {n} apple + I have {n} apple + + +``` -- cgit v1.2.3