It could be nice for the core_lang part to return objects with a toString method instead of strings directly, so that the translation can be computed at the last moment, instead of being returned directly (since some translations are made BEFORE we know the user language).