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; }; settings: { tooltips: { author: LocaleValue; }; rssFeeds: { title: LocaleValue; buttons: { copyToClipboard: LocaleValue; }; tooltips: { rss: LocaleValue; }; }; display: { title: LocaleValue; categories: { media: { title: LocaleValue; fields: { outboundLinks: LocaleValue; mediaTitleFormat: { title: LocaleValue; options: { english: LocaleValue; romaji: LocaleValue; native: LocaleValue; }; fields: { showFurigana: LocaleValue; }; }; }; }; dateAndTime: { title: LocaleValue; fields: { disableLastActivityWarning: LocaleValue; rightAlignCountdown: LocaleValue; use24HourTime: LocaleValue; nativeEpisodeCountdown: LocaleValue; abbreviateCountdown: LocaleValue; }; }; motionAndAccessibility: { title: LocaleValue; fields: { disablePageTransitionAnimations: LocaleValue; disableNotifications: LocaleValue; limitPanelAreaToScreenHeight: LocaleValue; interfaceLanguage: LocaleValue; }; }; collapsePanelsByDefault: LocaleValue; hidePanels: LocaleValue; includeAdditionalMedia: LocaleValue; helper: { title: LocaleValue; options: { mai: LocaleValue; nodoka: LocaleValue; kaede: LocaleValue; none: LocaleValue; }; hint: 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; }; }; }; cache: { title: LocaleValue; }; attributions: { title: LocaleValue; }; media: { anime: LocaleValue; manga: LocaleValue; upcomingAnime: LocaleValue; pausedMedia: LocaleValue; unresolvedMedia: LocaleValue; plannedAnime: LocaleValue; }; languages: { english: LocaleValue; japanese: 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; }; }; }; }