type LocaleValue = string; // | LocaleValue[] | { [key: string]: LocaleValue }; export interface LocaleDictionary { [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; }