Javascript gettext translations replacement to use with gettext/gettext. Use gettext/json to generate the json data.
npm install gettext-translator
Use the Json generator gettext/json library to export the translations to json:
useGettext\Loader\PoLoader;
useGettext\Generator\JsonGenerator;
//Load the po file with the translations$translations = (newPoLoader())->loadFile('locales/gl.po');
//Export to a json file
(newJsonGenerator())->generateFile($translations, 'locales/gl.json');Load the json file in your browser
importTranslatorfrom'gettext-translator';asyncfunctiongetTranslator(){constresponse=awaitfetch('locales/gl.json');consttranslations=awaitresponse.json();returnnewTranslator(translations);}constt=awaitgetTranslator();t.gettext('hello world');//ola mundoYou can add variables to the translations. For example:
t.gettext('hello :who',{':who': 'world'});//ola worldThere's also a basic support o sprintf (only %s and %d)
t.gettext('hello %s','world');//ola worldTo customize the translator formatter, just override the format method:
t.format=function(text, ...args){//Your custom format here}Like in the php version, there are the __ functions that are alias of the long version:
//Both functions does the samet.gettext('Foo');t.__('Foo');| Long name | Short name | Description |
|---|---|---|
| gettext | __ | Returns a translation |
| ngettext | n__ | Returns a translation with singular/plural variations |
| dngettext | dn__ | Returns a translation with domain and singular/plural variations |
| npgettext | np__ | Returns a translation with context and singular/plural variations |
| pgettext | p__ | Returns a translation with a specific context |
| dgettext | d__ | Returns a translation with a specific domain |
| dpgettext | dp__ | Returns a translation with a specific domain and context |
| dnpgettext | dnp__ | Returns a translation with a specific domain, context and singular/plural variations |