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

notion-translations

v1.7.0

Published

A tool that allows you to use notion databases as the backend for i18n dictionaries.

Downloads

437

Readme

notion-translations

A tool that allows you to use notion databases as the backend for i18n dictionaries.

Supported formats

  • I18next
  • Android string xml resource
  • C# compatible .resx

Installation

It can either be installed globally with npm i -g, run with npx, or installed in a npm project using the package manager of your choice.

Using npm (recommended as a dev dependency):

npm i -d notion-translations

How to use

Get a notion api key by navigating to my integrations and create a new integration.

Then navigate to capabilities and adjust the permissions given to the extension. The following permissions are required to use specific commands of this tool (if a command is not listed, it does not talk with the notion api):

action | Read | Write | Insert | - | - | - | - | | local add | [x] | [ ] | [ ] | | local sync | [x] | [ ] | [ ] | | remote new | [x] | [ ] | [x] | | remote normalize | [x] | [x] | [x] | | remote import | [x] | [x] | [x] | | gen | [x] | [ ] | [ ] |

Copy the integration API key and pass it into the tool as the environment variable NOTION_TOKEN (supports dotenv, so you can save the api key in a .env file).

Setup

Run the translations init to create a new notion-translate.json (change the output directory with --out <directory>).

Add the desired databases with translations local add.

Import (optional)

You can import existing translation files into your notion databases using translations remote import [options]

Generate translation files

After you have added the desired databases to the local config, and created the desired translations in notion, you can fetch the databases and generate files of the desired format, run translations gen [options]

Database layout

This script makes a few assumptions about the layout of the notion databases.

  • The title column is expected to be called key, but this is not required.
  • All non-text columns will be ignored by the script (though I would like to make it possible to add filters in the future).
  • There will be generated a language file for each text column in the databases (the databases will be merged into one file per unique column), where the name of the column will be used as the generated "language".
    • Would like to be able to exclude specific columns in the future.

Roadmap

A few things I would like to add

  • Handle duplicate keys when generating.
    • Currently throws a notImplementedYet error if a duplicate key is found
  • Configure the output file name (it's currently only possible to set the output directory).
  • Set a filter based on columns of each database.
    • This could fx. be used to ignore specific text columns or ignore rows with a checkbox set.
  • Add a new language to all databases associated with script.