5.6 KiB
Fab-manager translation documentation
This document will explain you what you need to know to contribute to the translation process of Fab-manager.
Table of contents
- Translation
1.1. Using a TMS
1.2. Using In-Context translation
1.3. From the files
1.3.1 Front-end translations
1.3.2 Back-end translations - Configuration
2.1. Settings
2.2. Applying changes
Translation
Using a TMS
We use Crowdin, a translation management system (TMS) to simplify translator's job in Fab-manager. You can access it at translate.fab-manager.com and start translating to one of the already configured languages. If you want to translate Fab-manager to a new language, just send us an email to contact@fab-manager.com and we'll add this new language to the TMS.
Using In-Context translation
To translate the front-end application (angularJS client), and the notifications, you can use Crowdin In-Context. This allows you to use Fab-manager as normally, but with the addition of small "edit" icons on the top-left corner of each text blocs. Clicking on this "edit" icon will open the Crowdin translation interface and you'll be able to translate or modify existing translations directly. You can access it at in-context.translate.fab-manager.com.
From the files
You should not translate Fab-manager from the source files, because it will conflict with the TMS. Please refer to the TMS method for more details.
Anyway, if you add a new feature that requires some new translations, just add them to the english files. You'll be able to provide translations for other languages later, using our TMS.
To add the english translations, check the files located in config/locales
:
- Front app translations (angular.js) are located in
config/locales/app.SCOPE.en.yml
. Where SCOPE has one the following meaning :- admin: translations of the administrator views (manage and configure the FabLab).
- logged: translations of the end-user's views accessible only to connected users.
- public: translation of end-user's views publicly accessible to anyone.
- shared: translations shared by many views (like forms or buttons).
- Back app translations (Ruby on Rails) are located in
config/locales/en.yml
. - Emails translations are located in
config/locales/mails.en.yml
. - Messages related to the authentication system are located in
config/locales/devise.en.yml
.
To prevent syntax mistakes while translating locale files, we STRONGLY advise you to use a text editor which support syntax coloration for YML and Ruby. As an example, Visual Studio Code, with the Ruby extension and the YAML extension will do the job.
Front-end translations
Front-end translations uses angular-translate with interpolations interpreted by MessageFormat. Please read the documentation about the ICU MessageFormat syntax before writing new strings.
To translate existing strings, you should use our translation management system.
Back-end translations
Back-end translations uses the Ruby on Rails syntax but some complex interpolations are interpreted by MessageFormat and are marked as it in comments. DO NOT confuse the syntaxes.
In each cases, some inline comments are included in the localisation files. They can be recognized as they start with the sharp character (#). These comments are not required to be translated, they are intended to help the translator to have some context information about the sentence to translate.
You will also need to translate the invoice watermark, located in app/pdfs/data/
.
You'll find there the GIMP source of the image, which is using Rubik Mono One as font.
Use it to generate a similar localised PNG image which keep the default image size, as PDF are not responsive.
Configuration
In development, locales configurations are made in config/application.yml. In production, locales configuration are made in the config/env file. If you are in a development environment, your can keep the default values, otherwise, in production, values must be configured carefully.
Settings
Please refer to the environment configuration documentation
Applying changes
After modifying any values concerning the localisation, restart the application (ie. web server) to apply these changes in the i18n configuration.