See conversation on the upstream bug report. It turns out calling set_up_session_language() earlier (e.g. in on_setup_complete_cb) doesn't fix the problem: gdm_session_start_session() calls send_environment(), which overrides the environment set up by pam with the values from /etc/default/locale again.
I guess not calling set_up_session_language() at all is the correct fix in our case.
See conversation on the upstream bug report. It turns out calling set_up_ session_ language( ) earlier (e.g. in on_setup_ complete_ cb) doesn't fix the problem: gdm_session_ start_session( ) calls send_environment(), which overrides the environment set up by pam with the values from /etc/default/locale again.
I guess not calling set_up_ session_ language( ) at all is the correct fix in our case.