chejen / Keys Translations Manager
Programming Languages
Projects that are alternatives of or similar to Keys Translations Manager
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
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
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
.
Technologies
- 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
License
This source code is licensed under the MIT License.
Questions?
Please don't hesitate to open an issue or contact me.