From 78473605881572f6828088c0d2ce3125ec565eec Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sun, 9 Feb 2025 20:32:30 +0100 Subject: [PATCH] cjk: set full justification by default for CJK even on mobile devices (#338) --- apps/readest-app/src/services/appService.ts | 5 ++++- apps/readest-app/src/services/constants.ts | 4 ++++ apps/readest-app/src/utils/misc.ts | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/readest-app/src/services/appService.ts b/apps/readest-app/src/services/appService.ts index 27318fcb..cac39351 100644 --- a/apps/readest-app/src/services/appService.ts +++ b/apps/readest-app/src/services/appService.ts @@ -29,9 +29,10 @@ import { CLOUD_BOOKS_SUBDIR, DEFAULT_MOBILE_VIEW_SETTINGS, DEFAULT_SYSTEM_SETTINGS, + DEFAULT_CJK_VIEW_SETTINGS, } from './constants'; import { isWebAppPlatform } from './environment'; -import { getOSPlatform, isValidURL } from '@/utils/misc'; +import { getOSPlatform, isCJKEnv, isValidURL } from '@/utils/misc'; import { deserializeConfig, serializeConfig } from '@/utils/serializer'; import { downloadFile, uploadFile, deleteFile, createProgressHandler } from '@/libs/storage'; import { ProgressHandler } from '@/utils/transfer'; @@ -83,6 +84,7 @@ export abstract class BaseAppService implements AppService { ...DEFAULT_BOOK_STYLE, ...DEFAULT_BOOK_FONT, ...(this.isMobile ? DEFAULT_MOBILE_VIEW_SETTINGS : {}), + ...(isCJKEnv() ? DEFAULT_CJK_VIEW_SETTINGS : {}), ...DEFAULT_VIEW_CONFIG, ...DEFAULT_TTS_CONFIG, ...settings.globalViewSettings, @@ -98,6 +100,7 @@ export abstract class BaseAppService implements AppService { ...DEFAULT_BOOK_STYLE, ...DEFAULT_BOOK_FONT, ...(this.isMobile ? DEFAULT_MOBILE_VIEW_SETTINGS : {}), + ...(isCJKEnv() ? DEFAULT_CJK_VIEW_SETTINGS : {}), ...DEFAULT_VIEW_CONFIG, ...DEFAULT_TTS_CONFIG, }, diff --git a/apps/readest-app/src/services/constants.ts b/apps/readest-app/src/services/constants.ts index e684647d..689f09a6 100644 --- a/apps/readest-app/src/services/constants.ts +++ b/apps/readest-app/src/services/constants.ts @@ -85,6 +85,10 @@ export const DEFAULT_MOBILE_VIEW_SETTINGS: Partial = { fullJustification: false, }; +export const DEFAULT_CJK_VIEW_SETTINGS: Partial = { + fullJustification: true, +}; + export const DEFAULT_VIEW_CONFIG: ViewConfig = { sideBarTab: 'toc', }; diff --git a/apps/readest-app/src/utils/misc.ts b/apps/readest-app/src/utils/misc.ts index 21865b65..04e8ed8d 100644 --- a/apps/readest-app/src/utils/misc.ts +++ b/apps/readest-app/src/utils/misc.ts @@ -32,6 +32,8 @@ export const makeSafeFilename = (filename: string, replacement = '_') => { export const getUserLang = () => navigator?.language.split('-')[0] || 'en'; +export const isCJKEnv = () => ['zh', 'ja', 'ko'].includes(getUserLang()); + export const getUserLocale = (lang: string): string | undefined => { const languages = navigator.languages && navigator.languages.length > 0