This is a little code snippet from php manual:
putenv(\'LC_ALL=zh_CN\'); setlocale(LC_ALL, \'zh_CN\'); bindtextdomain(\'domain\', \'./locale\'); textdomain(
There is IMHO no direct way to do that (besides domain workaround you've mentioned), that's reason why we're using php-gettext.
Update: Which we've started to maintain as motranslator, installable by Composer and compatible with all PHP versions.