Store locale.conf per user and set system locale.
Store user and system locale in separate directories. Store user locale based on uid instead of username since that is easier to handle in certain service files. Setting device owner locale sets system locale too.
Working with paths that may not exist is a little ugly in Qt and it doesn't seem to have a way to set directory permissions at all.
Also migrate old installations to the new paths and fortify setlocale a bit by requiring the user to be in users group. It doesn't make sense to set locale for other users anyway.