I vote for a single spreadsheet with locales, let me call it locales.csv for now, for every module. I.e. Community Patch/CoreText_locales.csv, CBP/CoreText_locales.csv, ...
First row is: LABEL; en_US; pl_PL; es_ES; fr_FR; ...
Following rows are: MYLABEL_FOR_THIS; This is text in english; (insert text in polish); Esto es texto en español; Celui ci est text en français; ...
You modders have to use it too. Every single version, provide that file so we can translate only the current changes, not the whole file every version. Whenever you change, add or remove a text, do it in the csv file. If a text is removed, remove the whole row. If a text is changed, remove all translated texts so we know it needs to be translated again. If a text is added, leave its translations blank.
Make a generator script that converts the CoreText_locales.csv into its corresponding CoreText_en_US.xml, CoreText_pl_PL.xml, CoreText_es_ES, ... and use it to generate them, even for english. If a text in any language is missing, the generator will take the original text in english.
We will download only the locale csv file, translate it fully or partially, and upload it again. The git is only needed when there is more than one translator for every language. Any uploading service will do as it seems that there's going to be just one translator for every language at any moment.
Your development rate is so fast, that we may send translated files from 3-4 versions old. And your aren't going to wait a couple of days before release, so maybe betas shouldn't be translated. Alternatively, we could work on a file that has only recent changes: you remove the texts that needs removing in the base file, and let us a file only with the texts that need translation, easy and fast.
EDIT: I am really concerned that if we don't use a protocol like this or a similar one, we might be translating the same texts over and over.
EDIT2: With this proposed method, we could install CPP for CIV 5 in any language, even if it isn't translated, it just will show texts in english. Currently, if we install CPP in other than english, it just doesn't show correct texts to the extent that it's unplayable.