npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ts-gettext-extractor

v0.2.0

Published

![NPM Version](https://img.shields.io/npm/v/ts-gettext-extractor?style=for-the-badge) ![Crates.io Version](https://img.shields.io/crates/v/ts-gettext-extractor?style=for-the-badge)

Downloads

334

Readme

TS Gettext Extractor

NPM Version Crates.io Version

A command line utility to generate Gettext template files (.pot) from Javascript/Typescript code.

Uses SWC to parse JS files.

Usage

See help for more details

$ ts-gettext-extractor --help
Generate Gettext template files from Javascript/Typescript code

Usage: ts-gettext-extractor [OPTIONS] --output-folder <OUTPUT_FOLDER>

Options:
      --exclude [<EXCLUDE>...]
          A list of patterns to exclude [default: /.git/ /node_modules/ /__tests__/ .test. /__mocks__/ .mock. .story. .cy.]
      --path <PATH>
          The path to the file to read. Defaults to current folder
      --output-folder <OUTPUT_FOLDER>
          The folder where pot files will be written. Each domain will have its own file
      --references-relative-to <REFERENCES_RELATIVE_TO>
          Which folder the references are relative to. Defaults to the output folder
      --default-domain <DEFAULT_DOMAIN>
          The default domain to use for strings that don't have a domain specified [default: default]
  -h, --help
          Print help

Supported functions

  • gettext or __ — e.g. __('String')
  • ngettext or __n — e.g. __n('1 item', '%n items', count)
  • pgettext or __p — e.g. __p('context', 'String')
  • npgettext or __np — e.g. __np('context', '1 item', '%n items', count)
  • dgettext or __d — e.g. __d('domain', 'String')
  • dngettext or __dn — e.g. __dn('domain', '1 item', '%n items', count)
  • dpgettext or __dp — e.g. __dp('domain', 'context', 'String')
  • dnpgettext or __dnp — e.g. __dnp('domain', 'context', '1 item', '%n items', count)

One tagged template literal is supported, which is __ with no variables. E.g. __`My string`

Metadata

This library produces a few metadata in the POT files as below.

References

References to the code is produced in accordance with the po file spec. Each reference mentioned the source file name and line number. References are relative to the --references-relative-to argument (or --output-folder).

Comments

Comments before or after a gettext function call are also extracted. This only applies to comments directly before the function call, not comments on the previous line.

For example, this WILL be extracted:

const myText = /* ✅ A comment that will be extracted */ __('My text');

This WILL NOT be extracted:

/* ❌ A comment that won't be extracted */
const myText = __('My text');