This has been posted in the past by another user, with the exact same issue I am currently encountering with, I suppose, which hasn't been solved, as far as I understand.
Link 1: https://community.dynamics.com/ax/f/33/t/250714
Link 2: https://community.dynamics.com/ax/f/33/t/250549 (Same user as the above link)
I will try to explain with pictures.
Currently, I am trying to run a batch job, under a user with Japanese language in User option setting.
The job executed, with messages and error messages displayed as label IDs, not the messages. Have a look below. It is a screenshot from from the batch job:

The next screenshot shows the user's language is indeed Japanese inside the User option:

***Now, I would like to mention that under System Administration >> Batch Job >> Batch Detail >> Log, I could see the messages, without the label ID. However, the strFmt %1, %2, etc did not get replaced by the correct variables. (I did use pack and unpack, if that makes any differences)
Such a problem did not exist when I execute the program without running the batch.

Can anyone point me in the right direction by telling me what and where did I do wrongly?
Thanks in advance.