protected StaticMessageSource loadMessageSourceFromPath(final String path) throws Exception {
        val source = new StaticMessageSource();
        if (ResourceUtils.doesResourceExist(path)) {
            try (val is = ResourceUtils.getRawResourceFrom(path).getInputStream()) {
                val properties = new Properties();
                properties.load(is);
                properties.forEach((key, value) ->
                    List.of(Locale.US, Locale.CANADA, Locale.ENGLISH).forEach(locale -> {
                        LOGGER.trace("Adding theme property [{}] with value [{}] from [{}] for locale [{}]", key, value, path, locale);
                        source.addMessage(key.toString(), locale, value.toString());
                    }));
            }
        }
        return source;
    }
This is {@link DefaultCasThemeSource}.

@author Misagh Moayyed
@since 6.6.0
support/cas-server-support-themes-core/src/main/java/org/apereo/cas/services/web/DefaultCasThemeSource.java