@Override protected void createUserI18nLayout(Path directory, I18nLanguageProvider delegateLanguageProvider) throws Exception { if (config.getI18nDefinitionFile().exists()) { return; } super.createUserI18nLayout(directory,delegateLanguageProvider); // add also a archive with all i18n stuff (says i18n bundle + templates) URL resource = resourceManager.getResourceUrl(I18N_ARCHIVE); File archive = new File(directory.getParent().toFile(), resourceManager.getResourceFilename(I18N_ARCHIVE)); try { getResourceManager().copyResource(resource, archive, String.format("%s Copy i18n archive", ApplicationBoot.BOOT_LOG_PREFIX)); Zips.uncompressFiltred(archive, directory.toFile().getParentFile()); } finally { if (Files.exists(archive.toPath())) { try { Files.delete(archive.toPath()); } catch (IOException e) { log.error(String.format("Could not delete i18n archive %s", archive)); } } } } };