Currently, I see not another way to cache the output for each language, but do not cache some tags, which should be uncached, because pdoTools does process all tags, cached and uncached.
mmlCache does cache the whole generated output, which was generated by pdoResources.
See also this one:
https://github.com/bezumkin/pdoTools/issues/33
Tags like [![!....]] are not processed inside pdoTools.
mmlCache does replace them with [[!....]] and MODX can do its parsing as usual with them.
The other way may be, not caching the mmlCache-output at all with &cache=`0` or/and do some custom partial caching for each language.