Translate hard-coded strings with source language other than english
We also have a lot of sites with a primary language which is not english. 

After several different approaches we opted to write all user exposed string in our modules in english and translate them with the t() function. 

We then use a crawler like wget to crawl the whole site (to get all strings into the translation database).

We enable the module Translation template extractor (https://www.drupal.org/project/potx)  and export all strings from our module with this module in our languages.

The resulting language-files are edited and translations are added. 

This file is then put in a "translations" subfolder in our module file with a *.po extension.  

Uninstall and reinstall the module to activate the translations for your languages. 

It may sound like a lot of work, because it is, but this is the only method that actually worked for us.