This reads in the first requested locale and uses that forever.  Instead, you need to read in all locales on startup and then each t call needs to lookup by get_locale and msg both.