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.
Transfer your locales from separate files to Keys-Translations Manager to make them easy to read, convenient to collaborate, and maintainable. (See instructions)
Not only can you download locales directly from the web, but you can also get them via CLI or REST API.
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)
See the demo
See the demo
- 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.
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.
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
oryarn build
) and restart the server if you change any of these configurations. Or, if you run the app in containers, rundocker-compose build
and thendocker-compose up -d
.
- Scaffolded with MongoDB, Express, React, and Node.js
- Styled with Bootstrap (theme: SB Admin 2) and Less
- Visualization: D3
- Real-Time Notifications: Socket.IO
- Virtualization: Docker
- Module Bundler: webpack
- Unit Testing: Mocha, Chai and Enzyme
- Miscellaneous: Babel, ESLint
This source code is licensed under the MIT License.
Please don't hesitate to open an issue or contact me.