Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/babelfu/babelfu
Babelfu is a web service that manages translations for your projects.
https://github.com/babelfu/babelfu
github i18n rails translations
Last synced: about 1 month ago
JSON representation
Babelfu is a web service that manages translations for your projects.
- Host: GitHub
- URL: https://github.com/babelfu/babelfu
- Owner: babelfu
- License: mit
- Created: 2024-05-14T21:45:34.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-05-22T21:28:01.000Z (6 months ago)
- Last Synced: 2024-05-22T21:39:57.206Z (6 months ago)
- Topics: github, i18n, rails, translations
- Language: Ruby
- Homepage: https://babelfu.com
- Size: 192 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# README
## About Babelfu
[Babelfu](https://babelfu.com) is a web service that manages translations for your projects.
As with many other services, the idea is to provide a user-friendly interface to manage translations
for non-technical people like translators, product managers, etc, without the need to touch code and
other extra (but not less important) features.The critical difference of Babelfu is that it uses GitHub as the source of truth
for your translations. You can use the same git workflow transparently
because Babelfu changes will appear as a regular commit in your pull requests.Babelfu fetch the translations from your repository and allows you to edit them;
the same UI detects changes between the HEAD and BASE branches of your pull requests and display
the differences accordingly. Once you are happy with the changes, you can commit them to the pull request base branch.To set up a project, you only need to install the Babelfu GitHub App in your repository and invite
the users you want to give access to the translations. They don't need a Github account because
the app will commit them on their behalf.### Guide
You can [follow this guide](https://github.com/babelfu/babelfu-demo) with **a lot of screenshots** to see a happy path of the Babelfu main functionality.
### Work in progress
This project is a work in progress, but you can already use it to manage translations like the Rails I18n,
it supports YAML and JSON formats.A cloud version is available on [babelfu.com](https://babelfu.com), but you can host it yourself if you want.
At the moment, it only implements the key features that I think are important to validate the idea from
the point of view of a developer integrating its repository on Babelfu.There are a lot of details and optimizations pending and many features to implement, but everything
will depend on the feedback and the interest of the community.You can follow the progress [here](https://github.com/orgs/babelfu/projects/4/views/7).
### Feedback
You can provide feedback or ask any question by creating an issue or sending
an email to [email protected].## Running the project
### Configuration
The project can be configured via built-in Rails credentials (bin/rails credentials:edit) or
environment variables. The `dot-env` gem loads the environment variables from the `.env` files.The `Babel::Config` module handles the configuration.
#### Active Record Encryption
It is used to encrypt several fields in the database. You can generate them with `bin/rails db:encryption:init`.
Save them on the credentials file with `bin/rails credentials:edit` or in the environment variables.### Github App
Babelfu uses a GitHub App to interact with the GitHub API. You need to create and configure a GitHub App properly.
Create a [new app]([https://github.com/settings/apps]) on GitHub and set the following configuration:
- Callback URL: http://localhost:3000/connections/github/callback
- Enable: Expire user authorization tokens
- Enable: Request user authorization (OAuth) during installationOn post-installation:
- Enable: Redirect on update
On permissions:
- Commit statuses - Read & write
- Contents - Read & write
- Metadata - Read-only
- Pull requests - Read & writeOnce the GitHub App is created, you will need to expose on `Babel.config` the following data: `app_id`, `client_id`, `client_secret` and the `private_key`
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
## Code of Conduct
Everyone interacting in the Flatito project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/ceritium/flatito/blob/master/CODE_OF_CONDUCT.md).