From eae5d24d9e79e59a19d4721caaeaa0ca650ecb33 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 1 Mar 2026 16:20:51 -0800 Subject: chore(biome): drop formatter style overrides --- src/lib/Locale/english.ts | 639 ++++++++++++++++++++++---------------------- src/lib/Locale/japanese.ts | 647 +++++++++++++++++++++++---------------------- src/lib/Locale/layout.ts | 578 ++++++++++++++++++++-------------------- 3 files changed, 938 insertions(+), 926 deletions(-) (limited to 'src/lib/Locale') diff --git a/src/lib/Locale/english.ts b/src/lib/Locale/english.ts index c9c2e253..03cb54e5 100644 --- a/src/lib/Locale/english.ts +++ b/src/lib/Locale/english.ts @@ -1,322 +1,327 @@ -import settings from '$stores/settings'; -import { get } from 'svelte/store'; -import type { Locale } from './layout'; +import settings from "$stores/settings"; +import { get } from "svelte/store"; +import type { Locale } from "./layout"; const English: Locale = { - navigation: { - home: 'Home', - completed: 'Completed', - subtitleSchedule: 'Subtitle Schedule', - newReleases: 'New Releases', - tools: 'Tools', - settings: 'Settings', - profile: 'Profile', - logIn: 'Log in with AniList', - logOut: 'Log out', - schedule: 'Schedule', - hololive: 'hololive Schedule', - myProfile: 'My Profile', - myBadgeWall: 'My Badge Wall' - }, - settings: { - fields: { - notice: 'Notice:' - }, - tooltips: { - author: 'Author of due.moe' - }, - rssFeeds: { - title: 'RSS Feeds', - buttons: { - copyToClipboard: 'Copy to clipboard' - }, - tooltips: { - rss: 'Web feed data format' - } - }, - display: { - title: 'Display', - categories: { - media: { - title: 'Media', - fields: { - outboundLinks: { - title: 'Outbound links', - hint: 'If LiveChart.me or AnimeSchedule is chosen, manga links will default to AniList.' - }, - mediaTitleFormat: { - title: 'Media title format', - options: { - english: 'English', - romaji: 'Romaji', - native: 'Native' - }, - fields: { - showFurigana: 'Show furigana' - } - }, - sortBy: { - title: 'Sort anime by difference between last watched and next episode', - hint: 'By default, anime are sorted by the number of days left until the next episode airs.' - } - } - }, - dateAndTime: { - title: 'Date & Time', - fields: { - disableLastActivityWarning: 'Disable last activity warning', - rightAlignCountdown: 'Align anime episode countdown to the right', - use24HourTime: 'Use 24-hour time format for episode countdown', - nativeEpisodeCountdown: 'Show episode countdown in native release date & time', - abbreviateCountdown: 'Abbreviate episode countdown date & time units' - } - }, - motionAndAccessibility: { - title: 'Motion & Accessibility', - fields: { - disablePageTransitionAnimations: 'Disable page transition animations', - disableNotifications: 'Disable verbose site notifications', - enableAniListNotifications: 'Enable AniList notifications', - limitPanelAreaToScreenHeight: 'Limit panel area to screen height', - interfaceLanguage: 'Interface language' - } - }, - dataSaver: 'Data Saver', - collapsePanelsByDefault: 'Collapse panels by default', - hidePanels: 'Hide panels', - includeAdditionalMedia: 'Include additional media', - helper: { - title: 'Helper', - options: { - kaede: 'Kaede', - mai: 'Mai', - nodoka: 'Nodoka', - rio: 'Rio', - sakuta: 'Sakuta', - shouko: 'Shouko', - tomoe: 'Tomoe', - random: 'Random', - none: 'None' - }, - hint: "Let them remind you. It's for your own benefit." - }, - filtersIncludeCompleted: 'Affect Completed' - }, - tooltips: { - beta: 'Beta' - } - }, - debug: { - title: 'Debug', - tooltips: { - version: 'Current due.moe version hash' - } - }, - calculation: { - title: 'Calculation', - fields: { - roundDownChapters: { - title: 'Round down chapters (recommended)', - hint: 'Round chapters down to the nearest whole number (e.g., 50/50.6 would not be due)' - }, - showMediaWithZeroProgress: { - title: 'Show media with zero progress', - hint: 'May potentially cause rate-limiting if you have over ~80 unresolved manga on your lists' - }, - hideOutOfDateVolumeWarning: { - title: 'Hide out-of-date volume warning' - }, - smartChapterCountEstimation: { - title: 'Enable smart chapter count calculation' - }, - preferNativeChapterCount: { - title: 'Prefer native chapter count', - hint: "Prefer comparing against a manga's native chapter count opposed to the translated chapter count" - } - } - }, - cache: { - title: 'Cache' - }, - attributions: { - title: 'Attributions' - }, - media: { - anime: 'Anime', - manga: 'Manga', - upcomingAnime: 'Upcoming anime', - pausedMedia: 'Paused media', - unresolvedMedia: 'Unresolved media', - plannedAnime: 'Planned anime' - }, - languages: { - english: 'English', - japanese: 'Japanese' - }, - settingsSync: { - title: 'Settings Sync', - buttons: { - pull: { - title: 'Pull Remote Configuration', - hint: 'Enable settings sync and overwrite any local settings with your remote configuration' - }, - push: { - title: 'Push Local Configuration', - hint: 'Enable settings sync and overwrite any remote configuration with your local settings' - }, - disable: 'Disable & Keep Local Configuration', - delete: 'Delete Remote Configuration' - } - } - }, - user: { - badges: { - backToProfile: 'Back to Profile', - editMode: { - disable: 'Disable Edit Mode', - enable: 'Enable Edit Mode', - imageURL: 'Image URL', - activityURL: 'Activity URL', - description: 'Description (Optional)', - category: 'Category (Optional)', - add: 'Add', - update: 'Update', - or: 'or', - delete: 'Delete (Click Twice)', - source: 'Source (Recommended)', - designer: 'Designer (Recommended)' - }, - importMode: { - enable: 'Import from AniList', - disable: 'Disable Import Mode', - cancel: 'Cancel', - import: 'Import', - fetch: 'Fetch', - deleteAll: { - title: 'Delete All Badges (Click {times} Times)', - hint: 'This will delete all of your badges from Badge Wall. This action cannot be undone.' - }, - dangerous: 'Dangerous', - importLinks: { - title: 'Import Links', - hint: 'If your badges are nested in links, enable this option to attach the links to the badges.' - }, - importReplies: 'Import Replies', - title: 'Import badges from an activity post', - importWait: - 'Please wait until import mode automatically closes, otherwise you risk skipping or duplicating badges.', - importConfirm: 'Import {count} badges?' - } - }, - profile: { - statistics: '{username} has watched {anime} days of anime and read {manga} days of manga.', - badges: '{username} has collected {badges} badges using Badge Wall.' - }, - preferences: { - title: 'User Preferences', - hideMissingBadges: { - title: 'Hide missing badges from Badge Wall', - hint: "Hide any 404'd badges from appearing on your Badge Wall, excluding during edit mode" - }, - hideAWCBadges: { - title: 'Hide AWC badges from Badge Wall' - } - } - }, - lists: { - upcoming: { - episodes: { - title: 'Upcoming Episodes', - hint: 'Anime that you have seen all aired episodes of and have at least one scheduled episode left to air' - }, - notYetReleased: { - title: 'Not Yet Released', - hint: 'Anime that have not yet aired any episodes' - } - }, - due: { - episodes: { - title: 'Due Episodes', - hint: 'Airing anime that you have not seen all aired episodes of' - }, - mangaAndLightNovels: { - title: 'Manga & Light Novels', - hint: 'Releasing manga and light novels that you have not read all available chapters of' - } - }, - completed: { - anime: { - title: 'Anime', - hint: 'Concluded anime that you not have seen all aired episodes of' - }, - mangaAndLightNovels: { - title: 'Manga & Light Novels', - hint: 'Concluded manga and light novels that you have not read all available chapters of' - } - } - }, - tools: { - tool: { - characterBirthdays: { - short: 'Character Birthdays', - long: "Today's Character Birthdays" - } - } - }, - debug: { - clearCaches: 'Clear anime and manga list caches', - resetAllSettings: { - title: 'Reset ALL settings', - hint: 'Resets all settings present on this page to their default values' - }, - clearLocalStorage: { - title: 'Clear', - hint1: - 'Resets all of your settings to their default values and clears both AniList media list and manga data caches', - hint2: - 'If you are having issues with data loading or logging out, it is recommended to clear your site data.' - }, - dummyLists: 'Use dummy media lists' - }, - hololive: { - live: 'LIVE', - upcoming: 'Upcoming', - with: 'with ', - comma: ', ', - commaNoSpace: ',', - ampersand: '& ', - ended: 'Ended', - dateFormatter: new Intl.DateTimeFormat('en-US', { - // year: 'numeric', - month: 'long', - day: 'numeric', - // weekday: 'long', - hour: 'numeric', - hour12: !get(settings).display24HourTime, - minute: 'numeric' - // second: 'numeric' - // timeZoneName: 'short' - }).format, - loadError: 'Could not load schedule.', - parseError: 'hololive timed out.' - }, - dateFormatter: new Intl.DateTimeFormat('en-US', { - year: 'numeric', - month: 'long', - day: 'numeric', - weekday: 'long', - hour: 'numeric', - hour12: !get(settings).display24HourTime, - minute: 'numeric' - // second: 'numeric' - // timeZoneName: 'short' - }).format, - dayFormatter: new Intl.DateTimeFormat('en-US', { - year: 'numeric', - month: 'long', - day: 'numeric', - weekday: 'long' - }).format + navigation: { + home: "Home", + completed: "Completed", + subtitleSchedule: "Subtitle Schedule", + newReleases: "New Releases", + tools: "Tools", + settings: "Settings", + profile: "Profile", + logIn: "Log in with AniList", + logOut: "Log out", + schedule: "Schedule", + hololive: "hololive Schedule", + myProfile: "My Profile", + myBadgeWall: "My Badge Wall", + }, + settings: { + fields: { + notice: "Notice:", + }, + tooltips: { + author: "Author of due.moe", + }, + rssFeeds: { + title: "RSS Feeds", + buttons: { + copyToClipboard: "Copy to clipboard", + }, + tooltips: { + rss: "Web feed data format", + }, + }, + display: { + title: "Display", + categories: { + media: { + title: "Media", + fields: { + outboundLinks: { + title: "Outbound links", + hint: "If LiveChart.me or AnimeSchedule is chosen, manga links will default to AniList.", + }, + mediaTitleFormat: { + title: "Media title format", + options: { + english: "English", + romaji: "Romaji", + native: "Native", + }, + fields: { + showFurigana: "Show furigana", + }, + }, + sortBy: { + title: + "Sort anime by difference between last watched and next episode", + hint: "By default, anime are sorted by the number of days left until the next episode airs.", + }, + }, + }, + dateAndTime: { + title: "Date & Time", + fields: { + disableLastActivityWarning: "Disable last activity warning", + rightAlignCountdown: "Align anime episode countdown to the right", + use24HourTime: "Use 24-hour time format for episode countdown", + nativeEpisodeCountdown: + "Show episode countdown in native release date & time", + abbreviateCountdown: + "Abbreviate episode countdown date & time units", + }, + }, + motionAndAccessibility: { + title: "Motion & Accessibility", + fields: { + disablePageTransitionAnimations: + "Disable page transition animations", + disableNotifications: "Disable verbose site notifications", + enableAniListNotifications: "Enable AniList notifications", + limitPanelAreaToScreenHeight: "Limit panel area to screen height", + interfaceLanguage: "Interface language", + }, + }, + dataSaver: "Data Saver", + collapsePanelsByDefault: "Collapse panels by default", + hidePanels: "Hide panels", + includeAdditionalMedia: "Include additional media", + helper: { + title: "Helper", + options: { + kaede: "Kaede", + mai: "Mai", + nodoka: "Nodoka", + rio: "Rio", + sakuta: "Sakuta", + shouko: "Shouko", + tomoe: "Tomoe", + random: "Random", + none: "None", + }, + hint: "Let them remind you. It's for your own benefit.", + }, + filtersIncludeCompleted: "Affect Completed", + }, + tooltips: { + beta: "Beta", + }, + }, + debug: { + title: "Debug", + tooltips: { + version: "Current due.moe version hash", + }, + }, + calculation: { + title: "Calculation", + fields: { + roundDownChapters: { + title: "Round down chapters (recommended)", + hint: "Round chapters down to the nearest whole number (e.g., 50/50.6 would not be due)", + }, + showMediaWithZeroProgress: { + title: "Show media with zero progress", + hint: "May potentially cause rate-limiting if you have over ~80 unresolved manga on your lists", + }, + hideOutOfDateVolumeWarning: { + title: "Hide out-of-date volume warning", + }, + smartChapterCountEstimation: { + title: "Enable smart chapter count calculation", + }, + preferNativeChapterCount: { + title: "Prefer native chapter count", + hint: "Prefer comparing against a manga's native chapter count opposed to the translated chapter count", + }, + }, + }, + cache: { + title: "Cache", + }, + attributions: { + title: "Attributions", + }, + media: { + anime: "Anime", + manga: "Manga", + upcomingAnime: "Upcoming anime", + pausedMedia: "Paused media", + unresolvedMedia: "Unresolved media", + plannedAnime: "Planned anime", + }, + languages: { + english: "English", + japanese: "Japanese", + }, + settingsSync: { + title: "Settings Sync", + buttons: { + pull: { + title: "Pull Remote Configuration", + hint: "Enable settings sync and overwrite any local settings with your remote configuration", + }, + push: { + title: "Push Local Configuration", + hint: "Enable settings sync and overwrite any remote configuration with your local settings", + }, + disable: "Disable & Keep Local Configuration", + delete: "Delete Remote Configuration", + }, + }, + }, + user: { + badges: { + backToProfile: "Back to Profile", + editMode: { + disable: "Disable Edit Mode", + enable: "Enable Edit Mode", + imageURL: "Image URL", + activityURL: "Activity URL", + description: "Description (Optional)", + category: "Category (Optional)", + add: "Add", + update: "Update", + or: "or", + delete: "Delete (Click Twice)", + source: "Source (Recommended)", + designer: "Designer (Recommended)", + }, + importMode: { + enable: "Import from AniList", + disable: "Disable Import Mode", + cancel: "Cancel", + import: "Import", + fetch: "Fetch", + deleteAll: { + title: "Delete All Badges (Click {times} Times)", + hint: "This will delete all of your badges from Badge Wall. This action cannot be undone.", + }, + dangerous: "Dangerous", + importLinks: { + title: "Import Links", + hint: "If your badges are nested in links, enable this option to attach the links to the badges.", + }, + importReplies: "Import Replies", + title: "Import badges from an activity post", + importWait: + "Please wait until import mode automatically closes, otherwise you risk skipping or duplicating badges.", + importConfirm: "Import {count} badges?", + }, + }, + profile: { + statistics: + "{username} has watched {anime} days of anime and read {manga} days of manga.", + badges: "{username} has collected {badges} badges using Badge Wall.", + }, + preferences: { + title: "User Preferences", + hideMissingBadges: { + title: "Hide missing badges from Badge Wall", + hint: "Hide any 404'd badges from appearing on your Badge Wall, excluding during edit mode", + }, + hideAWCBadges: { + title: "Hide AWC badges from Badge Wall", + }, + }, + }, + lists: { + upcoming: { + episodes: { + title: "Upcoming Episodes", + hint: "Anime that you have seen all aired episodes of and have at least one scheduled episode left to air", + }, + notYetReleased: { + title: "Not Yet Released", + hint: "Anime that have not yet aired any episodes", + }, + }, + due: { + episodes: { + title: "Due Episodes", + hint: "Airing anime that you have not seen all aired episodes of", + }, + mangaAndLightNovels: { + title: "Manga & Light Novels", + hint: "Releasing manga and light novels that you have not read all available chapters of", + }, + }, + completed: { + anime: { + title: "Anime", + hint: "Concluded anime that you not have seen all aired episodes of", + }, + mangaAndLightNovels: { + title: "Manga & Light Novels", + hint: "Concluded manga and light novels that you have not read all available chapters of", + }, + }, + }, + tools: { + tool: { + characterBirthdays: { + short: "Character Birthdays", + long: "Today's Character Birthdays", + }, + }, + }, + debug: { + clearCaches: "Clear anime and manga list caches", + resetAllSettings: { + title: "Reset ALL settings", + hint: "Resets all settings present on this page to their default values", + }, + clearLocalStorage: { + title: "Clear", + hint1: + "Resets all of your settings to their default values and clears both AniList media list and manga data caches", + hint2: + "If you are having issues with data loading or logging out, it is recommended to clear your site data.", + }, + dummyLists: "Use dummy media lists", + }, + hololive: { + live: "LIVE", + upcoming: "Upcoming", + with: "with ", + comma: ", ", + commaNoSpace: ",", + ampersand: "& ", + ended: "Ended", + dateFormatter: new Intl.DateTimeFormat("en-US", { + // year: 'numeric', + month: "long", + day: "numeric", + // weekday: 'long', + hour: "numeric", + hour12: !get(settings).display24HourTime, + minute: "numeric", + // second: 'numeric' + // timeZoneName: 'short' + }).format, + loadError: "Could not load schedule.", + parseError: "hololive timed out.", + }, + dateFormatter: new Intl.DateTimeFormat("en-US", { + year: "numeric", + month: "long", + day: "numeric", + weekday: "long", + hour: "numeric", + hour12: !get(settings).display24HourTime, + minute: "numeric", + // second: 'numeric' + // timeZoneName: 'short' + }).format, + dayFormatter: new Intl.DateTimeFormat("en-US", { + year: "numeric", + month: "long", + day: "numeric", + weekday: "long", + }).format, }; export default English; diff --git a/src/lib/Locale/japanese.ts b/src/lib/Locale/japanese.ts index c4ebabc8..0cf96c2e 100644 --- a/src/lib/Locale/japanese.ts +++ b/src/lib/Locale/japanese.ts @@ -1,327 +1,330 @@ -import { get } from 'svelte/store'; -import type { Locale } from './layout'; -import settings from '$stores/settings'; +import { get } from "svelte/store"; +import type { Locale } from "./layout"; +import settings from "$stores/settings"; const Japanese: Locale = { - navigation: { - home: 'ホーム', - completed: '完結メディア', - subtitleSchedule: '字幕放送スケジュール', - newReleases: '新着リリース', - tools: 'ツール', - settings: '設定', - profile: 'プロフィール', - logIn: 'AniListでログインする', - logOut: 'ログアウト', - schedule: 'スケジュール', - hololive: 'ホロライブスケジュール', - myProfile: 'プロフィール', - myBadgeWall: 'バッジウォール' - }, - settings: { - fields: { - notice: 'お知らせ:' - }, - tooltips: { - author: 'due.moeの作者' - }, - rssFeeds: { - title: 'RSSフィード', - buttons: { - copyToClipboard: 'クリップボードにコピー' - }, - tooltips: { - rss: 'ウェブフィードデータフォーマット' - } - }, - display: { - title: '表示', - categories: { - dateAndTime: { - title: '日付と時刻', - fields: { - disableLastActivityWarning: '最後のアクティビティ警告を無効にする', - rightAlignCountdown: 'エピソードカウントダウンを右に揃える', - use24HourTime: 'エピソードカウントダウンに24時間形式を使用する', - nativeEpisodeCountdown: - 'ネイティブのリリース日時でエピソードのカウントダウンを表示する', - abbreviateCountdown: 'エピソードカウントダウンの日時単位を省略する' - } - }, - media: { - title: 'メディア', - fields: { - outboundLinks: { - title: '外部リンク', - hint: 'LiveChart.meまたはAnimeScheduleが選択された場合、漫画リンクはデフォルトでAniListになります。' - }, - mediaTitleFormat: { - title: 'メディアタイトル形式', - options: { - english: '英語', - romaji: 'ローマ字', - native: 'ネイティブ' - }, - fields: { - showFurigana: 'フリガナを表示する' - } - }, - sortBy: { - title: '最後に視聴したエピソードと次話の差でアニメをソート', - hint: 'デフォルトでは、アニメは次のエピソードが放送されるまでの日数でソートされます。' - } - } - }, - motionAndAccessibility: { - title: 'モーションとアクセシビリティ', - fields: { - disablePageTransitionAnimations: 'ページ遷移アニメーションを無効にする', - disableNotifications: '詳細なサイト通知を無効にする', - enableAniListNotifications: 'AniListの通知を有効にする', - limitPanelAreaToScreenHeight: 'メディアパネルの面積をスクリーンの高さに制限する', - interfaceLanguage: 'インターフェース言語' - } - }, - dataSaver: 'データセーバー', - collapsePanelsByDefault: 'メディアパネルをデフォルトで折りたたむ', - hidePanels: 'メディアパネルを隠す', - includeAdditionalMedia: '追加メディアを含む', - helper: { - title: 'ヘルパー', - options: { - kaede: 'かえで', - mai: '麻衣', - nodoka: 'のどか', - rio: '理央', - sakuta: '咲太', - shouko: '翔子', - tomoe: '朋絵', - random: 'ランダム', - none: 'なし' - }, - hint: '自分のためになる。' - }, - filtersIncludeCompleted: '「完結メディア」にフィルタを適用' - }, - tooltips: { - beta: 'ベータ' - } - }, - debug: { - title: 'デバッグ', - tooltips: { - version: '現在のdue.moeのバージョンハッシュ' - } - }, - calculation: { - title: 'メディア計算', - fields: { - roundDownChapters: { - title: 'チャプターを切り捨てる(推奨)', - hint: '直近のチャプター番号を小数点以下に切り捨てる(例:50/50.6は期限にならない)' - }, - showMediaWithZeroProgress: { - title: '進捗ゼロのメディアを表示', - hint: 'このオプションを有効にすると、リストに未解決の漫画が80冊以上ある場合、レート制限がかかる可能性があります。' - }, - hideOutOfDateVolumeWarning: { - title: '古い巻数警告を非表示にする' - }, - smartChapterCountEstimation: { - title: 'スマート章数推定を有効' - }, - preferNativeChapterCount: { - title: '原作の章数を優先', - hint: '原作の章数を英語の章数より優先する' - } - } - }, - cache: { - title: 'キャッシュ' - }, - attributions: { - title: '帰属' - }, - media: { - anime: 'アニメ', - manga: '漫画', - upcomingAnime: '近日放送予定のアニメ', - pausedMedia: '視聴を一時停止したメディア', - unresolvedMedia: '未解決のメディア', - plannedAnime: '視聴予定アニメ' - }, - languages: { - english: '英語', - japanese: '日本語' - }, - settingsSync: { - title: '設定の同期', - buttons: { - pull: { - title: 'リモート設定をプル', - hint: '設定同期を有効にして、ローカル設定をリモート設定で上書きします' - }, - push: { - title: 'ローカル設定をプッシュ', - hint: '設定同期を有効にして、リモート設定をローカル設定で上書きします' - }, - disable: '設定の同期を無効にし、ローカル設定を保持する', - delete: 'リモート設定を削除' - } - } - }, - user: { - badges: { - backToProfile: 'プロフィールに戻る', - editMode: { - enable: '編集モードを有効にする', - disable: '編集モードを無効にする', - imageURL: '画像URL', - activityURL: 'アクティビティURL', - description: '説明(オプション)', - category: 'カテゴリー(オプション)', - add: '追加', - update: '更新', - or: 'または', - delete: '削除(2回クリック)', - source: 'ソース(推奨)', - designer: 'デザイナー(推奨)' - }, - importMode: { - enable: 'AniListからインポートする', - disable: 'インポートモードを無効にする', - cancel: 'キャンセル', - import: 'インポート', - fetch: 'フェッチ', - deleteAll: { - title: 'すべてのバッジを削除する({times}回クリック)', - hint: 'これにより、Badge Wallからすべてのバッジが削除されます。この操作は元に戻すことができません。' - }, - dangerous: '危険', - importLinks: { - title: 'リンクをインポートする', - hint: 'バッジがリンク内に入れ子になっている場合、このオプションを有効にしてバッジにリンクを添付してください。' - }, - importReplies: 'コメントをインポート', - title: 'AniListのアクティビティからバッジをインポートする', - importWait: - 'インポートモードウィンドウが自動的に閉じるまでお待ちください。そうしないと、インポート処理中にバッジがスキップされたり、重複したりする危険性があります。', - importConfirm: '{count}個のバッジをインポートしますか?' - } - }, - profile: { - statistics: - '{username}はAniListで{anime}日間のアニメ視聴と{manga}日間の漫画読書を記録している。', - badges: '{username}はBadge Wallを使って{badges}個のバッジを収集しました。' - }, - preferences: { - title: 'ユーザー設定', - hideMissingBadges: { - title: 'Badge Wallから不足しているバッジを隠す', - hint: '画像がエラー404を返すバッジをBadge Wallに表示しないようにします。編集モード中を除く' - }, - hideAWCBadges: { - title: 'Badge WallからAWCバッジを隠す' - } - } - }, - lists: { - upcoming: { - episodes: { - title: '今後のエピソード', - hint: '放送中のアニメで全話視聴済み、近日放送のエピソードがあるもの' - }, - notYetReleased: { - title: '未公開', - hint: 'まだ一話も放送されていない' - } - }, - due: { - episodes: { - title: '追いつくべきエピソード', - hint: '放送中のアニメで未視聴のエピソードがあるもの' - }, - mangaAndLightNovels: { - title: '漫画&ライトノベル', - hint: '未読の章がある漫画&ライトノベル' - } - }, - completed: { - anime: { - title: 'アニメ', - hint: '放送が終了したアニメで全話見ていないもの' - }, - mangaAndLightNovels: { - title: '漫画&ライトノベル', - hint: '完結した漫画&ライトノベルで、全章を読んでいないもの' - } - } - }, - tools: { - tool: { - characterBirthdays: { - short: 'キャラクターの誕生日', - long: '今日のキャラクターの誕生日' - } - } - }, - debug: { - clearCaches: 'ブラウザのAniListアニメと漫画リストのキャッシュを消去する', - resetAllSettings: { - title: 'すべての設定をリセット', - hint: 'このページにあるすべての設定をデフォルト値にリセットします' - }, - clearLocalStorage: { - title: 'クリア', - hint1: - 'すべての設定をデフォルト値にリセットし、AniListメディアリストと漫画データキャッシュをクリアします', - hint2: - 'データの読み込みやログアウトに問題がある場合、サイトデータをクリアすることをお勧めします。' - }, - dummyLists: 'ダミーメディアリストを使用する' - }, - hololive: { - live: 'ライブ', - upcoming: '近日公開予定', - with: '&', - comma: '、', - commaNoSpace: '、', - ampersand: '&', - ended: '終了', - dateFormatter: new Intl.DateTimeFormat('ja-JP', { - // era: 'long', - // year: 'numeric', - month: 'long', - day: 'numeric', - // weekday: 'long', - hour: 'numeric', - hour12: !get(settings).display24HourTime, - minute: 'numeric' - // second: 'numeric' - // timeZoneName: 'short' - }).format, - loadError: 'スケジュールを読み込めませんでした。', - parseError: 'hololiveのタイムアウト。' - }, - dateFormatter: new Intl.DateTimeFormat('ja-JP', { - // era: 'long', - year: 'numeric', - month: 'long', - day: 'numeric', - weekday: 'long', - hour: 'numeric', - hour12: !get(settings).display24HourTime, - minute: 'numeric' - // second: 'numeric' - // timeZoneName: 'short' - }).format, - dayFormatter: new Intl.DateTimeFormat('ja-JP', { - // era: 'long', - year: 'numeric', - month: 'long', - day: 'numeric', - weekday: 'long' - }).format + navigation: { + home: "ホーム", + completed: "完結メディア", + subtitleSchedule: "字幕放送スケジュール", + newReleases: "新着リリース", + tools: "ツール", + settings: "設定", + profile: "プロフィール", + logIn: "AniListでログインする", + logOut: "ログアウト", + schedule: "スケジュール", + hololive: "ホロライブスケジュール", + myProfile: "プロフィール", + myBadgeWall: "バッジウォール", + }, + settings: { + fields: { + notice: "お知らせ:", + }, + tooltips: { + author: "due.moeの作者", + }, + rssFeeds: { + title: "RSSフィード", + buttons: { + copyToClipboard: "クリップボードにコピー", + }, + tooltips: { + rss: "ウェブフィードデータフォーマット", + }, + }, + display: { + title: "表示", + categories: { + dateAndTime: { + title: "日付と時刻", + fields: { + disableLastActivityWarning: "最後のアクティビティ警告を無効にする", + rightAlignCountdown: "エピソードカウントダウンを右に揃える", + use24HourTime: "エピソードカウントダウンに24時間形式を使用する", + nativeEpisodeCountdown: + "ネイティブのリリース日時でエピソードのカウントダウンを表示する", + abbreviateCountdown: "エピソードカウントダウンの日時単位を省略する", + }, + }, + media: { + title: "メディア", + fields: { + outboundLinks: { + title: "外部リンク", + hint: "LiveChart.meまたはAnimeScheduleが選択された場合、漫画リンクはデフォルトでAniListになります。", + }, + mediaTitleFormat: { + title: "メディアタイトル形式", + options: { + english: "英語", + romaji: "ローマ字", + native: "ネイティブ", + }, + fields: { + showFurigana: "フリガナを表示する", + }, + }, + sortBy: { + title: "最後に視聴したエピソードと次話の差でアニメをソート", + hint: "デフォルトでは、アニメは次のエピソードが放送されるまでの日数でソートされます。", + }, + }, + }, + motionAndAccessibility: { + title: "モーションとアクセシビリティ", + fields: { + disablePageTransitionAnimations: + "ページ遷移アニメーションを無効にする", + disableNotifications: "詳細なサイト通知を無効にする", + enableAniListNotifications: "AniListの通知を有効にする", + limitPanelAreaToScreenHeight: + "メディアパネルの面積をスクリーンの高さに制限する", + interfaceLanguage: "インターフェース言語", + }, + }, + dataSaver: "データセーバー", + collapsePanelsByDefault: "メディアパネルをデフォルトで折りたたむ", + hidePanels: "メディアパネルを隠す", + includeAdditionalMedia: "追加メディアを含む", + helper: { + title: "ヘルパー", + options: { + kaede: "かえで", + mai: "麻衣", + nodoka: "のどか", + rio: "理央", + sakuta: "咲太", + shouko: "翔子", + tomoe: "朋絵", + random: "ランダム", + none: "なし", + }, + hint: "自分のためになる。", + }, + filtersIncludeCompleted: "「完結メディア」にフィルタを適用", + }, + tooltips: { + beta: "ベータ", + }, + }, + debug: { + title: "デバッグ", + tooltips: { + version: "現在のdue.moeのバージョンハッシュ", + }, + }, + calculation: { + title: "メディア計算", + fields: { + roundDownChapters: { + title: "チャプターを切り捨てる(推奨)", + hint: "直近のチャプター番号を小数点以下に切り捨てる(例:50/50.6は期限にならない)", + }, + showMediaWithZeroProgress: { + title: "進捗ゼロのメディアを表示", + hint: "このオプションを有効にすると、リストに未解決の漫画が80冊以上ある場合、レート制限がかかる可能性があります。", + }, + hideOutOfDateVolumeWarning: { + title: "古い巻数警告を非表示にする", + }, + smartChapterCountEstimation: { + title: "スマート章数推定を有効", + }, + preferNativeChapterCount: { + title: "原作の章数を優先", + hint: "原作の章数を英語の章数より優先する", + }, + }, + }, + cache: { + title: "キャッシュ", + }, + attributions: { + title: "帰属", + }, + media: { + anime: "アニメ", + manga: "漫画", + upcomingAnime: "近日放送予定のアニメ", + pausedMedia: "視聴を一時停止したメディア", + unresolvedMedia: "未解決のメディア", + plannedAnime: "視聴予定アニメ", + }, + languages: { + english: "英語", + japanese: "日本語", + }, + settingsSync: { + title: "設定の同期", + buttons: { + pull: { + title: "リモート設定をプル", + hint: "設定同期を有効にして、ローカル設定をリモート設定で上書きします", + }, + push: { + title: "ローカル設定をプッシュ", + hint: "設定同期を有効にして、リモート設定をローカル設定で上書きします", + }, + disable: "設定の同期を無効にし、ローカル設定を保持する", + delete: "リモート設定を削除", + }, + }, + }, + user: { + badges: { + backToProfile: "プロフィールに戻る", + editMode: { + enable: "編集モードを有効にする", + disable: "編集モードを無効にする", + imageURL: "画像URL", + activityURL: "アクティビティURL", + description: "説明(オプション)", + category: "カテゴリー(オプション)", + add: "追加", + update: "更新", + or: "または", + delete: "削除(2回クリック)", + source: "ソース(推奨)", + designer: "デザイナー(推奨)", + }, + importMode: { + enable: "AniListからインポートする", + disable: "インポートモードを無効にする", + cancel: "キャンセル", + import: "インポート", + fetch: "フェッチ", + deleteAll: { + title: "すべてのバッジを削除する({times}回クリック)", + hint: "これにより、Badge Wallからすべてのバッジが削除されます。この操作は元に戻すことができません。", + }, + dangerous: "危険", + importLinks: { + title: "リンクをインポートする", + hint: "バッジがリンク内に入れ子になっている場合、このオプションを有効にしてバッジにリンクを添付してください。", + }, + importReplies: "コメントをインポート", + title: "AniListのアクティビティからバッジをインポートする", + importWait: + "インポートモードウィンドウが自動的に閉じるまでお待ちください。そうしないと、インポート処理中にバッジがスキップされたり、重複したりする危険性があります。", + importConfirm: "{count}個のバッジをインポートしますか?", + }, + }, + profile: { + statistics: + "{username}はAniListで{anime}日間のアニメ視聴と{manga}日間の漫画読書を記録している。", + badges: + "{username}はBadge Wallを使って{badges}個のバッジを収集しました。", + }, + preferences: { + title: "ユーザー設定", + hideMissingBadges: { + title: "Badge Wallから不足しているバッジを隠す", + hint: "画像がエラー404を返すバッジをBadge Wallに表示しないようにします。編集モード中を除く", + }, + hideAWCBadges: { + title: "Badge WallからAWCバッジを隠す", + }, + }, + }, + lists: { + upcoming: { + episodes: { + title: "今後のエピソード", + hint: "放送中のアニメで全話視聴済み、近日放送のエピソードがあるもの", + }, + notYetReleased: { + title: "未公開", + hint: "まだ一話も放送されていない", + }, + }, + due: { + episodes: { + title: "追いつくべきエピソード", + hint: "放送中のアニメで未視聴のエピソードがあるもの", + }, + mangaAndLightNovels: { + title: "漫画&ライトノベル", + hint: "未読の章がある漫画&ライトノベル", + }, + }, + completed: { + anime: { + title: "アニメ", + hint: "放送が終了したアニメで全話見ていないもの", + }, + mangaAndLightNovels: { + title: "漫画&ライトノベル", + hint: "完結した漫画&ライトノベルで、全章を読んでいないもの", + }, + }, + }, + tools: { + tool: { + characterBirthdays: { + short: "キャラクターの誕生日", + long: "今日のキャラクターの誕生日", + }, + }, + }, + debug: { + clearCaches: "ブラウザのAniListアニメと漫画リストのキャッシュを消去する", + resetAllSettings: { + title: "すべての設定をリセット", + hint: "このページにあるすべての設定をデフォルト値にリセットします", + }, + clearLocalStorage: { + title: "クリア", + hint1: + "すべての設定をデフォルト値にリセットし、AniListメディアリストと漫画データキャッシュをクリアします", + hint2: + "データの読み込みやログアウトに問題がある場合、サイトデータをクリアすることをお勧めします。", + }, + dummyLists: "ダミーメディアリストを使用する", + }, + hololive: { + live: "ライブ", + upcoming: "近日公開予定", + with: "&", + comma: "、", + commaNoSpace: "、", + ampersand: "&", + ended: "終了", + dateFormatter: new Intl.DateTimeFormat("ja-JP", { + // era: 'long', + // year: 'numeric', + month: "long", + day: "numeric", + // weekday: 'long', + hour: "numeric", + hour12: !get(settings).display24HourTime, + minute: "numeric", + // second: 'numeric' + // timeZoneName: 'short' + }).format, + loadError: "スケジュールを読み込めませんでした。", + parseError: "hololiveのタイムアウト。", + }, + dateFormatter: new Intl.DateTimeFormat("ja-JP", { + // era: 'long', + year: "numeric", + month: "long", + day: "numeric", + weekday: "long", + hour: "numeric", + hour12: !get(settings).display24HourTime, + minute: "numeric", + // second: 'numeric' + // timeZoneName: 'short' + }).format, + dayFormatter: new Intl.DateTimeFormat("ja-JP", { + // era: 'long', + year: "numeric", + month: "long", + day: "numeric", + weekday: "long", + }).format, }; export default Japanese; diff --git a/src/lib/Locale/layout.ts b/src/lib/Locale/layout.ts index 9f22e763..38999507 100644 --- a/src/lib/Locale/layout.ts +++ b/src/lib/Locale/layout.ts @@ -1,294 +1,298 @@ type LocaleValue = string; // | LocaleValue[] | { [key: string]: LocaleValue }; export interface LocaleDictionary { - [key: string]: LocaleDictionary | string | Array | null; + [key: string]: + | LocaleDictionary + | string + | Array + | null; } export interface Locale { - navigation: { - home: LocaleValue; - completed: LocaleValue; - subtitleSchedule: LocaleValue; - newReleases: LocaleValue; - tools: LocaleValue; - settings: LocaleValue; - profile: LocaleValue; - logIn: LocaleValue; - logOut: LocaleValue; - schedule: LocaleValue; - hololive: LocaleValue; - myProfile: LocaleValue; - myBadgeWall: LocaleValue; - }; - settings: { - fields: { - notice: LocaleValue; - }; - tooltips: { - author: LocaleValue; - }; - rssFeeds: { - title: LocaleValue; - buttons: { - copyToClipboard: LocaleValue; - }; - tooltips: { - rss: LocaleValue; - }; - }; - display: { - title: LocaleValue; - categories: { - media: { - title: LocaleValue; - fields: { - outboundLinks: { - title: LocaleValue; - hint: LocaleValue; - }; - mediaTitleFormat: { - title: LocaleValue; - options: { - english: LocaleValue; - romaji: LocaleValue; - native: LocaleValue; - }; - fields: { - showFurigana: LocaleValue; - }; - }; - sortBy: { - title: LocaleValue; - hint: LocaleValue; - }; - }; - }; - dateAndTime: { - title: LocaleValue; - fields: { - disableLastActivityWarning: LocaleValue; - rightAlignCountdown: LocaleValue; - use24HourTime: LocaleValue; - nativeEpisodeCountdown: LocaleValue; - abbreviateCountdown: LocaleValue; - }; - }; - motionAndAccessibility: { - title: LocaleValue; - fields: { - disablePageTransitionAnimations: LocaleValue; - disableNotifications: LocaleValue; - enableAniListNotifications: LocaleValue; - limitPanelAreaToScreenHeight: LocaleValue; - interfaceLanguage: LocaleValue; - }; - }; - dataSaver: LocaleValue; - collapsePanelsByDefault: LocaleValue; - hidePanels: LocaleValue; - includeAdditionalMedia: LocaleValue; - helper: { - title: LocaleValue; - options: { - kaede: LocaleValue; - mai: LocaleValue; - nodoka: LocaleValue; - rio: LocaleValue; - sakuta: LocaleValue; - shouko: LocaleValue; - tomoe: LocaleValue; - random: LocaleValue; - none: LocaleValue; - }; - hint: LocaleValue; - }; - filtersIncludeCompleted: LocaleValue; - }; - tooltips: { - beta: LocaleValue; - }; - }; - debug: { - title: LocaleValue; - tooltips: { - version: LocaleValue; - }; - }; - calculation: { - title: LocaleValue; - fields: { - roundDownChapters: { - title: LocaleValue; - hint: LocaleValue; - }; - showMediaWithZeroProgress: { - title: LocaleValue; - hint: LocaleValue; - }; - hideOutOfDateVolumeWarning: { - title: LocaleValue; - }; - smartChapterCountEstimation: { - title: LocaleValue; - }; - preferNativeChapterCount: { - title: LocaleValue; - hint: LocaleValue; - }; - }; - }; - cache: { - title: LocaleValue; - }; - attributions: { - title: LocaleValue; - }; - media: { - anime: LocaleValue; - manga: LocaleValue; - upcomingAnime: LocaleValue; - pausedMedia: LocaleValue; - unresolvedMedia: LocaleValue; - plannedAnime: LocaleValue; - }; - languages: { - english: LocaleValue; - japanese: LocaleValue; - }; - settingsSync: { - title: LocaleValue; - buttons: { - pull: { - title: LocaleValue; - hint: LocaleValue; - }; - push: { - title: LocaleValue; - hint: LocaleValue; - }; - disable: LocaleValue; - delete: LocaleValue; - }; - }; - }; - user: { - badges: { - backToProfile: LocaleValue; - editMode: { - enable: LocaleValue; - disable: LocaleValue; - imageURL: LocaleValue; - activityURL: LocaleValue; - description: LocaleValue; - category: LocaleValue; - add: LocaleValue; - update: LocaleValue; - or: LocaleValue; - delete: LocaleValue; - source: LocaleValue; - designer: LocaleValue; - }; - importMode: { - enable: LocaleValue; - disable: LocaleValue; - cancel: LocaleValue; - import: LocaleValue; - fetch: LocaleValue; - deleteAll: { - title: LocaleValue; - hint: LocaleValue; - }; - dangerous: LocaleValue; - importLinks: { - title: LocaleValue; - hint: LocaleValue; - }; - importReplies: LocaleValue; - title: LocaleValue; - importWait: LocaleValue; - importConfirm: LocaleValue; - }; - }; - profile: { - statistics: LocaleValue; - badges: LocaleValue; - }; - preferences: { - title: LocaleValue; - hideMissingBadges: { - title: LocaleValue; - hint: LocaleValue; - }; - hideAWCBadges: { - title: LocaleValue; - }; - }; - }; - lists: { - upcoming: { - episodes: { - title: LocaleValue; - hint: LocaleValue; - }; - notYetReleased: { - title: LocaleValue; - hint: LocaleValue; - }; - }; - due: { - episodes: { - title: LocaleValue; - hint: LocaleValue; - }; - mangaAndLightNovels: { - title: LocaleValue; - hint: LocaleValue; - }; - }; - completed: { - anime: { - title: LocaleValue; - hint: LocaleValue; - }; - mangaAndLightNovels: { - title: LocaleValue; - hint: LocaleValue; - }; - }; - }; - tools: { - tool: { - characterBirthdays: { - short: LocaleValue; - long: LocaleValue; - }; - }; - }; - debug: { - clearCaches: LocaleValue; - resetAllSettings: { - title: LocaleValue; - hint: LocaleValue; - }; - clearLocalStorage: { - title: LocaleValue; - hint1: LocaleValue; - hint2: LocaleValue; - }; - dummyLists: LocaleValue; - }; - hololive: { - live: LocaleValue; - upcoming: LocaleValue; - with: LocaleValue; - comma: LocaleValue; - commaNoSpace: LocaleValue; - ampersand: LocaleValue; - ended: LocaleValue; - dateFormatter: (date?: number | Date | undefined) => string; - loadError: LocaleValue; - parseError: LocaleValue; - }; - dateFormatter: (date?: number | Date | undefined) => string; - dayFormatter: (date?: number | Date | undefined) => string; + navigation: { + home: LocaleValue; + completed: LocaleValue; + subtitleSchedule: LocaleValue; + newReleases: LocaleValue; + tools: LocaleValue; + settings: LocaleValue; + profile: LocaleValue; + logIn: LocaleValue; + logOut: LocaleValue; + schedule: LocaleValue; + hololive: LocaleValue; + myProfile: LocaleValue; + myBadgeWall: LocaleValue; + }; + settings: { + fields: { + notice: LocaleValue; + }; + tooltips: { + author: LocaleValue; + }; + rssFeeds: { + title: LocaleValue; + buttons: { + copyToClipboard: LocaleValue; + }; + tooltips: { + rss: LocaleValue; + }; + }; + display: { + title: LocaleValue; + categories: { + media: { + title: LocaleValue; + fields: { + outboundLinks: { + title: LocaleValue; + hint: LocaleValue; + }; + mediaTitleFormat: { + title: LocaleValue; + options: { + english: LocaleValue; + romaji: LocaleValue; + native: LocaleValue; + }; + fields: { + showFurigana: LocaleValue; + }; + }; + sortBy: { + title: LocaleValue; + hint: LocaleValue; + }; + }; + }; + dateAndTime: { + title: LocaleValue; + fields: { + disableLastActivityWarning: LocaleValue; + rightAlignCountdown: LocaleValue; + use24HourTime: LocaleValue; + nativeEpisodeCountdown: LocaleValue; + abbreviateCountdown: LocaleValue; + }; + }; + motionAndAccessibility: { + title: LocaleValue; + fields: { + disablePageTransitionAnimations: LocaleValue; + disableNotifications: LocaleValue; + enableAniListNotifications: LocaleValue; + limitPanelAreaToScreenHeight: LocaleValue; + interfaceLanguage: LocaleValue; + }; + }; + dataSaver: LocaleValue; + collapsePanelsByDefault: LocaleValue; + hidePanels: LocaleValue; + includeAdditionalMedia: LocaleValue; + helper: { + title: LocaleValue; + options: { + kaede: LocaleValue; + mai: LocaleValue; + nodoka: LocaleValue; + rio: LocaleValue; + sakuta: LocaleValue; + shouko: LocaleValue; + tomoe: LocaleValue; + random: LocaleValue; + none: LocaleValue; + }; + hint: LocaleValue; + }; + filtersIncludeCompleted: LocaleValue; + }; + tooltips: { + beta: LocaleValue; + }; + }; + debug: { + title: LocaleValue; + tooltips: { + version: LocaleValue; + }; + }; + calculation: { + title: LocaleValue; + fields: { + roundDownChapters: { + title: LocaleValue; + hint: LocaleValue; + }; + showMediaWithZeroProgress: { + title: LocaleValue; + hint: LocaleValue; + }; + hideOutOfDateVolumeWarning: { + title: LocaleValue; + }; + smartChapterCountEstimation: { + title: LocaleValue; + }; + preferNativeChapterCount: { + title: LocaleValue; + hint: LocaleValue; + }; + }; + }; + cache: { + title: LocaleValue; + }; + attributions: { + title: LocaleValue; + }; + media: { + anime: LocaleValue; + manga: LocaleValue; + upcomingAnime: LocaleValue; + pausedMedia: LocaleValue; + unresolvedMedia: LocaleValue; + plannedAnime: LocaleValue; + }; + languages: { + english: LocaleValue; + japanese: LocaleValue; + }; + settingsSync: { + title: LocaleValue; + buttons: { + pull: { + title: LocaleValue; + hint: LocaleValue; + }; + push: { + title: LocaleValue; + hint: LocaleValue; + }; + disable: LocaleValue; + delete: LocaleValue; + }; + }; + }; + user: { + badges: { + backToProfile: LocaleValue; + editMode: { + enable: LocaleValue; + disable: LocaleValue; + imageURL: LocaleValue; + activityURL: LocaleValue; + description: LocaleValue; + category: LocaleValue; + add: LocaleValue; + update: LocaleValue; + or: LocaleValue; + delete: LocaleValue; + source: LocaleValue; + designer: LocaleValue; + }; + importMode: { + enable: LocaleValue; + disable: LocaleValue; + cancel: LocaleValue; + import: LocaleValue; + fetch: LocaleValue; + deleteAll: { + title: LocaleValue; + hint: LocaleValue; + }; + dangerous: LocaleValue; + importLinks: { + title: LocaleValue; + hint: LocaleValue; + }; + importReplies: LocaleValue; + title: LocaleValue; + importWait: LocaleValue; + importConfirm: LocaleValue; + }; + }; + profile: { + statistics: LocaleValue; + badges: LocaleValue; + }; + preferences: { + title: LocaleValue; + hideMissingBadges: { + title: LocaleValue; + hint: LocaleValue; + }; + hideAWCBadges: { + title: LocaleValue; + }; + }; + }; + lists: { + upcoming: { + episodes: { + title: LocaleValue; + hint: LocaleValue; + }; + notYetReleased: { + title: LocaleValue; + hint: LocaleValue; + }; + }; + due: { + episodes: { + title: LocaleValue; + hint: LocaleValue; + }; + mangaAndLightNovels: { + title: LocaleValue; + hint: LocaleValue; + }; + }; + completed: { + anime: { + title: LocaleValue; + hint: LocaleValue; + }; + mangaAndLightNovels: { + title: LocaleValue; + hint: LocaleValue; + }; + }; + }; + tools: { + tool: { + characterBirthdays: { + short: LocaleValue; + long: LocaleValue; + }; + }; + }; + debug: { + clearCaches: LocaleValue; + resetAllSettings: { + title: LocaleValue; + hint: LocaleValue; + }; + clearLocalStorage: { + title: LocaleValue; + hint1: LocaleValue; + hint2: LocaleValue; + }; + dummyLists: LocaleValue; + }; + hololive: { + live: LocaleValue; + upcoming: LocaleValue; + with: LocaleValue; + comma: LocaleValue; + commaNoSpace: LocaleValue; + ampersand: LocaleValue; + ended: LocaleValue; + dateFormatter: (date?: number | Date | undefined) => string; + loadError: LocaleValue; + parseError: LocaleValue; + }; + dateFormatter: (date?: number | Date | undefined) => string; + dayFormatter: (date?: number | Date | undefined) => string; } -- cgit v1.2.3