public static void switchLocale(final Locale locale) {
        Locale.setDefault(locale);
        JComponent.setDefaultLocale(locale);
        UIManager.getDefaults().setDefaultLocale(locale);
        UIManager.getLookAndFeelDefaults().setDefaultLocale(locale);
        final ComponentOrientation o = ComponentOrientation.getOrientation(locale);
        for (Window w : Window.getWindows()) {
            updateComponentTree(w, new ComponentUpdater() {
                @Override
                public void update(Component component) {
                    component.setLocale(locale);
                    component.setComponentOrientation(o);
                }
            });
        }
        localeMonitored = true;
        monitorContainers();
    }