I don't understand why this wouldn't work.  What happens when the user selects a new language in the Language panel?  I'm not sure how it triggers a new localized event, but I'd assume that it also sets the language.current setting, doesn't it?  It seems to me that you ought to be able to listen for changes to that setting (in the same way that the keyboard app does) and trigger your code from there.

I agree that there is no harm in doing it the way you suggest, but it just doesn't seem the cleanest to me.  This is probably a decision for @evelynhung to make, since she's much more familiar with the app.