This deployment (already on prod) improves how end users can translate their experience products as well as other entities (extras, photos, Ts&Cs, product lists etc)
This project had started as a bugfix where it was impossible to add product translations if other product elements have already been translated (sic!) and the combined length of these translations exceeded a certain number of bytes.As the fix required some fundamental rewrite starting from the bottom (due to poor database design choices) it became evident it could benefit from some UI improvements as well.
What has changed?
- translation management is now one stop shop at https://extranet.bokun.io/i18n. Users can add, remove translation languages as well as translations using this single page. Before it was scattered among multiple pages. The UI has now hints of visual placeholders over what happens if you don't translate (fallbacks to original text)
- related entities (such as experiences and experience rates) are now bound together -- no need to search around to find out what belongs where
- translations can now accept UTF-8 code points aka symbols requiring up to 4 bytes/character, such as emojis. Even original product text doesn't support these!
- "last translated" and "previous translation" concepts have now been removed
- all translation activities are now audit trailed
This project was not meant to address missing translations in all sorts of places we have gaps at the moment, although a few related bugs have been fixed. If you're reading this and happen to be a frontend engineer, please consider fixing your components or at least design them in such a way that they could be fully translated. This is more important than you think as customers such as JTB are reporting tons of cases for these gaps.There's a bug of freezing scrollbar when you remove the last translated language and re-add another one (corner case in user journey). The workaround is to reload the page which fixes the issue.