feat(l10n): format sync date time with current locale, closes #3219 (#3230)

This commit is contained in:
Huang Xin
2026-02-09 10:09:52 +08:00
committed by GitHub
parent c6d4e2bdd6
commit 0be828fd66
3 changed files with 10 additions and 3 deletions
@@ -26,6 +26,7 @@ import { setMigrateDataDirDialogVisible } from '@/app/library/components/Migrate
import { requestStoragePermission } from '@/utils/permission';
import { saveSysSettings } from '@/helpers/settings';
import { selectDirectory } from '@/utils/bridge';
import { formatLocaleDateTime } from '@/utils/book';
import UserAvatar from '@/components/UserAvatar';
import MenuItem from '@/components/MenuItem';
import Quota from '@/components/Quota';
@@ -277,7 +278,7 @@ const SettingsMenu: React.FC<SettingsMenuProps> = ({ onPullLibrary, setIsDropdow
label={
settings.lastSyncedAtBooks
? _('Synced at {{time}}', {
time: new Date(settings.lastSyncedAtBooks).toLocaleString(),
time: formatLocaleDateTime(settings.lastSyncedAtBooks),
})
: _('Never synced')
}
@@ -22,6 +22,7 @@ import { getStyles } from '@/utils/style';
import { navigateToLogin } from '@/utils/nav';
import { eventDispatcher } from '@/utils/event';
import { getMaxInlineSize } from '@/utils/config';
import { formatLocaleDateTime } from '@/utils/book';
import { saveViewSettings } from '@/helpers/settings';
import { tauriHandleToggleFullScreen } from '@/utils/window';
import MenuItem from '@/components/MenuItem';
@@ -299,7 +300,7 @@ const ViewMenu: React.FC<ViewMenuProps> = ({ bookKey, setIsDropdownOpen }) => {
? _('Sign in to Sync')
: lastSyncTime
? _('Synced at {{time}}', {
time: new Date(lastSyncTime).toLocaleString(),
time: formatLocaleDateTime(lastSyncTime),
})
: _('Never synced')
}
+6 -1
View File
@@ -1,7 +1,7 @@
import { BookMetadata, EXTS } from '@/libs/document';
import { Book, BookConfig, BookProgress, WritingMode } from '@/types/book';
import { SUPPORTED_LANGS } from '@/services/constants';
import { getUserLang, makeSafeFilename } from './misc';
import { getLocale, getUserLang, makeSafeFilename } from './misc';
import { getStorageType } from './storage';
import { getDirFromLanguage } from './rtl';
import { code6392to6391, isValidLang, normalizedLangCode } from './lang';
@@ -181,6 +181,11 @@ export const formatDate = (date: string | number | Date | null | undefined, isUT
}
};
export const formatLocaleDateTime = (date: number | Date) => {
const userLang = getLocale();
return new Date(date).toLocaleString(userLang);
};
export const formatBytes = (bytes?: number | null, locale = 'en-US') => {
if (!bytes) return '';
const units = ['byte', 'kilobyte', 'megabyte', 'gigabyte', 'terabyte'];