We are currently working with a client that has a lot of custom translations in their fork. Some of these are for strings that are not in the regular upstream version, but there are also a lot of translated strings that are untranslated in the upstream version of edx-platform.
What would be the best way to submit the translations that are missing in edx-platform in bulk?
Also, what is the best way to handle translations for custom strings that aren’t in the upstream version of the code? For instance custom strings in the theme.
I did, and got some error probably related to permissions. I think I would need to be added to the correct team I guess. I will look into this again, and update.
I don’t think that $ tx push work for both the edX team and the community. Transifex is not that smart and basically every $ tx push is more like doing a $ git push --force to the entire translation sources.
Upstream is definitely better than forking.
If all the changes are upstream and merged into the edx/edx-platform:master then the strings will end up on the edX Transifex without requiring you to have permissions to Transifex.
I suppose you’d like a mix of both:
Using the master edX platform.
Adding your code through some sort of plugin system.
Without having the complete picture I cannot provide a detailed solution, but here’s the alternative to a full fork – it’s partial forking:
Create a Transifex resource that you own e.g. transifex.com/xitij2000/my-own-translations.po
Push only the strings that you own to that resource.
When you pull, mix all the po files to create your own mo file that contains both of the fork and the upstream translations.
It’s easier said than done, and I used to do it before I opted for a full fork. Checkout this paverlib/edraak.py file that shows one way to do it.
If it’s not doable via a plugin or without requiring custom code this might be worth investigating as place where the platform can be enhanced to support this use case, since maybe it isn’t that isolated.
Yes, apparently it’s not isolated use case. I think every large non-English Open edX installation will benefit from such having such built-in mechanism.
I would love it if the i18n-tools became the tool of choice to add such support so it’s not just the edx-platform repository, but all of the Open edX services, XBlocks and Independently Deployable Apps (such as eCommerce) can benefit from.
Let me know if there’s a way I could help to make that happen. I’d appreciate it if you tag me for review whenever there’s a code you’d like to contribute to make such feature available.