/keys-translations-manager

[MERN Stack] KTM, a locale management web app, lets you manage and control locales in one place. Useful for multiple i18n/l10n projects.

Primary LanguageJavaScriptMIT LicenseMIT

MIT Licensed Build Status (Windows) Build Status (Linux) Coverage Status

Keys-Translations Manager

Demo | Key Features | Getting Started | Custom | Technologies | License | Questions?

Keys-Translations Manager, a web application scaffolded with MERN stack, aims to facilitate locale management. With this application, you can:

  • control and manage locales in one place,
  • import locales from nested/flat JSON or Properties files,
  • export locales to nested/flat JSON or Properties files,
  • view revision history of every single key,
  • get data validation for input/import, and
  • get real-time notifications if data has been changed by the other users.

Demo

demo

Key Features

Import locales

Transfer your locales from separate files to Keys-Translations Manager to make them easy to read, convenient to collaborate, and maintainable. (See instructions)

Export locales

Not only can you download locales directly from the web, but you can also get them via CLI or REST API.

Merge translations

Keys-Translations Manager can help you to merge the same keys that have the same translations for each locale but sit in different projects. (See instructions)

View revision history

See the demo

Visualization

See the demo

Getting Started

Method 1:

  • Download Node.js (v10.13+ is required) and MongoDB, and then get them installed.
  • Start mongod process and make sure it's running normally.
  • Checkout this repo (or directly download the stable releases from here), install dependencies, then start the web server:
$ git clone https://github.com/chejen/keys-translations-manager
$ cd keys-translations-manager
$ npm install (or yarn install)
$ npm run build (or yarn build)
$ npm start (or yarn start)

Open http://localhost:3000/ and enjoy it.

Method 2:

Alternatively, if you have Docker and docker-compose installed:

$ git clone https://github.com/chejen/keys-translations-manager
$ cd keys-translations-manager
$ docker-compose up -d

Open http://localhost:3000/ and enjoy it.

Custom

There are several environment variables you can configure:

Variable Description Default
PORT Web server's port 3000
DB MongoDB connection URI mongodb://localhost:27017/translationdb

There are some other settings (in ktm.config.js) you can configure. The table below lists the available ones:

Setting Description Default
locales The locales need to be managed. (You can add or remove locales arbitrarily.) ['en-US', 'zh-TW']
projects The projects need to be localized. (You can add or remove projects arbitrarily.) [ {id:'p1', name:'project A'}, {id:'p2', name:'project B'} ]
enableNotifications Push real-time notifications to users true

Note: Rebuild the code (npm run build or yarn build) and restart the server if you change any of these configurations. Or, if you run the app in containers, run docker-compose build and then docker-compose up -d.

Technologies

License

This source code is licensed under the MIT License.

Questions?

Please don't hesitate to open an issue or contact me.