Keys used for get - set the translation_cache are different
The key used to get the translated values in the cache is :
(lang, ttype, name, source)
When setting the value, the key becomes :
(name, ttype, lang, source)
So the cache is actually never used.