diff --git a/src/main/java/run/halo/app/handler/file/LocalFileHandler.java b/src/main/java/run/halo/app/handler/file/LocalFileHandler.java index 28733e7b9..64acef93b 100644 --- a/src/main/java/run/halo/app/handler/file/LocalFileHandler.java +++ b/src/main/java/run/halo/app/handler/file/LocalFileHandler.java @@ -91,7 +91,7 @@ public class LocalFileHandler implements FileHandler { Assert.notNull(file, "Multipart file must not be null"); // Get current time - Calendar current = Calendar.getInstance(Locale.CHINESE); + Calendar current = Calendar.getInstance(optionService.getLocale()); // Get month and day of month int year = current.get(Calendar.YEAR); int month = current.get(Calendar.MONTH) + 1; diff --git a/src/main/java/run/halo/app/model/properties/BlogProperties.java b/src/main/java/run/halo/app/model/properties/BlogProperties.java index 94a7a5633..c9098cef3 100644 --- a/src/main/java/run/halo/app/model/properties/BlogProperties.java +++ b/src/main/java/run/halo/app/model/properties/BlogProperties.java @@ -6,6 +6,11 @@ package run.halo.app.model.properties; */ public enum BlogProperties implements PropertyEnum { + /** + * Blog locale. + */ + BLOG_LOCALE("blog_locale", String.class), + /** * Blog title. */ diff --git a/src/main/java/run/halo/app/service/OptionService.java b/src/main/java/run/halo/app/service/OptionService.java index a1c8af409..3779d13a5 100755 --- a/src/main/java/run/halo/app/service/OptionService.java +++ b/src/main/java/run/halo/app/service/OptionService.java @@ -268,4 +268,12 @@ public interface OptionService extends CrudService { */ @NonNull Zone getQnYunZone(); + + /** + * Gets locale. + * + * @return locale user set or default locale + */ + @NonNull + Locale getLocale(); } diff --git a/src/main/java/run/halo/app/service/impl/OptionServiceImpl.java b/src/main/java/run/halo/app/service/impl/OptionServiceImpl.java index 0c69280c5..1ed2db6ac 100644 --- a/src/main/java/run/halo/app/service/impl/OptionServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/OptionServiceImpl.java @@ -269,4 +269,15 @@ public class OptionServiceImpl extends AbstractCrudService impl }).orElseGet(Zone::autoZone); } + + @Override + public Locale getLocale() { + return getByProperty(BlogProperties.BLOG_LOCALE).map(localeStr -> { + try { + return Locale.forLanguageTag(localeStr); + } catch (Exception e) { + return Locale.getDefault(); + } + }).orElseGet(Locale::getDefault); + } } diff --git a/src/main/java/run/halo/app/web/controller/core/InstallController.java b/src/main/java/run/halo/app/web/controller/core/InstallController.java index 6b2b58cdc..2122f8f06 100644 --- a/src/main/java/run/halo/app/web/controller/core/InstallController.java +++ b/src/main/java/run/halo/app/web/controller/core/InstallController.java @@ -164,6 +164,7 @@ public class InstallController { // Init default properties Map properties = new HashMap<>(11); properties.put(PrimaryProperties.IS_INSTALLED, Boolean.TRUE.toString()); + properties.put(BlogProperties.BLOG_LOCALE, installParam.getLocale()); properties.put(BlogProperties.BLOG_TITLE, installParam.getTitle()); properties.put(BlogProperties.BLOG_URL, installParam.getUrl()); properties.put(PrimaryProperties.THEME, DEFAULT_THEME_NAME);