Q1. What is the problem that you are trying to solve?
Passbolt is currently only available in english.
Q2 - Who is impacted?
Everybody that does not speak english.
Q3 - Why is it important and/or urgent?
It will increase adoption.
Q4 - What is your proposed solution? (optional)
This one is the easiest, since it’s native to cakephp. You can use the i18n console extract command to gather the string to translate.
On the JS side of the API code (e.g. the js code not in the extension) it works using the same dictionnary than cakephp. Indeed in our library the JS __() use a dictionnary file loaded from the DictionnaryController endpoint. So the baseline is already there, we need some process however to add these strings to the same .po file generated on step 1.
Ship the translations with the plugin (as it’s the easiest, otherwise you need to have a more complex dictionaries versionning, as server and plugin version are not necessarily matching all the time).
We also have __() placeholders here but we hit a roadblock with the limitations of Firefox, that was not supporting internationalization in the content code (it was supporting it only in the addon code). This have changed with webextension, but we’re not using webextension with Firefox yet. Long story short, it was not exactly a quicky one to make it cross browser compatible on the extension side, so we posponed it, we should have a look at it again.
Q5. Community support
People can vote for this idea to show traction:
- Must have: this is critical for me to have this
- Should have: this is important for me to have this
- Could have: this could be nice to have
- Won’t have: we should not schedule this (explain why)