Fetch translations from crowdin #18453
Part of #17878
Follow up to #18270
Summary of the issue:
Currently, fetching the latest translations from Crowdin is a manual process.
Description of developer facing changes:
A GitHub action to update translations is added. This will run at weekly interval, just before we do a regular release. Translation freezes should be designed to line up with this time. This can be run manually. This will only update tracked translations for existing languages.
A GitHub action to add new languages is added. This is because we have languages which are started in Crowdin, but not ready for sync/release. This will allow us to track new languages.
Description of development approach:
The Crowdin GitHub actions caused problems when running in a windows environment. Using the API directly with l10nUtil seemed cleaner.
To download all translations you must create a project export bundle and download it directly. Adding this to l10nUtil makes it easier for devs to pull all translations from crowdin manually when required.