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; }; 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: 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: { kaede: LocaleValue; mai: LocaleValue; nodoka: LocaleValue; rio: LocaleValue; sakuta: LocaleValue; shouko: LocaleValue; tomoe: LocaleValue; random: 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; }; }; profile: { statistics: LocaleValue; badges: 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; }; }; }; }