const enUS = {
  common: {
    loading: "Loading...",
    back: "Back",
    save: "Save",
    saving: "Saving...",
    retry: "Retry",
    dismiss: "Dismiss",
    cancel: "Cancel",
    delete: "Delete",
    deleting: "Deleting...",
    edit: "Edit",
    unknownError: "Something went wrong",
    unknownAuthor: "Unknown Author",
    appName: "Cloud Reader",
  },
  auth: {
    signIn: "Sign In",
    createAccount: "Create Account",
    email: "Email",
    password: "Password",
    confirmPassword: "Confirm Password",
    emailPlaceholder: "you@example.com",
    passwordPlaceholder: "At least 8 characters",
    confirmPasswordPlaceholder: "Repeat your password",
    signingIn: "Signing in...",
    creatingAccount: "Creating account...",
    noAccount: "Don't have an account?",
    hasAccount: "Already have an account?",
    register: "Register",
    passwordsMismatch: "Passwords do not match.",
    loginFailed: "Login failed",
    registrationFailed: "Registration failed",
  },
  library: {
    title: "Library",
    bookCountOne: "{{count}} book",
    bookCountMany: "{{count}} books",
    addBook: "Add Book",
    bookmarks: "Bookmarks",
    settings: "Settings",
    logout: "Logout",
    searchPlaceholder: "Search by title, author, or genre...",
    voiceSearchTitle: "Search with voice",
    voiceSearchStopTitle: "Stop listening",
    filtersShow: "Filters",
    filtersHide: "Filters",
    filtersLabel: "Filters",
    genre: "Genre",
    author: "Author",
    status: "Status",
    allGenres: "All Genres",
    allAuthors: "All Authors",
    allStatuses: "All Statuses",
    clearFilters: "Clear",
    loadFailed: "Failed to load books",
    listening: "Listening... speak now",
    stop: "Stop",
    voiceNoSpeech: "No speech detected. Try again.",
    voiceError: "Voice search: {{message}}",
    pdfNotice: "PDF reading is not supported in the web reader. Upload an EPUB to read here.",
    emptyTitle: "Your library is empty",
    emptyFilteredTitle: "No books found",
    emptyDescription: "Add a book to get started building your collection.",
    emptyFilteredDescription: "Try adjusting your search query or filters to discover more books.",
    clearAllFilters: "Clear All Filters",
    addFirstBook: "Add Your First Book",
    readingStatus: {
      wantToRead: "Want to Read",
      reading: "Reading",
      readingWithProgress: "Reading · {{percent}}%",
      finished: "Finished",
      dnf: "Did Not Finish",
      uploaded: "Uploaded",
    },
    finishedSection: "Finished",
    finishedCount: "{{count}} finished",
    finishedCountShort: "{{count}} finished",
    allInFinishedShelf: "Your finished books are in the panel below. Tap to expand.",
  },
  contextMenu: {
    syncMetadata: "Sync metadata",
    syncingMetadata: "Syncing metadata…",
    remove: "Remove",
    removing: "Removing…",
    confirmRemove: 'Remove "{{title}}" from your library?',
  },
  toast: {
    metadataSynced: 'Metadata synced for "{{title}}"',
    noMatch: "No Open Library match found",
    refreshDone: "Metadata refresh completed",
    removed: '"{{title}}" removed from your library',
  },
  settings: {
    title: "Reading Settings",
    loading: "Loading settings...",
    loadFailed: "Failed to load settings",
    saveFailed: "Failed to save settings",
    saved: "Settings saved!",
    uiLanguage: "UI Language",
    uiLanguageEn: "English",
    uiLanguageEs: "Español",
    fontSize: "Font Size ({{size}}px)",
    fontStyle: "Font Style",
    backgroundColor: "Background Color",
    fontSans: "Sans Serif",
    fontSerif: "Serif",
    fontMonospace: "Monospace",
    bgWhite: "White",
    bgSepia: "Sepia",
    bgDark: "Dark",
    bgGreen: "Green",
    saveSettings: "Save Settings",
  },
  reader: {
    loading: "Loading reader...",
    reading: "Reading",
    loadBookFailed: "Failed to load book details",
    epubOnly: "PDF reading is not supported in the web reader. EPUB only.",
    unableToOpen: "Unable to open this book.",
    backToLibrary: "Back to library",
    prevPage: "Previous page",
    nextPage: "Next page",
    resumeReading: "Back to reading",
    resumeReadingAria: "Return to where you were reading",
    backToLibraryAria: "Back to library",
    tocAria: "Table of contents",
    settingsAria: "Reading settings",
    settingsTitle: "Reading Settings",
    closeSettingsAria: "Close settings",
    theme: "Theme",
    font: "Font",
    fontSize: "Font Size: {{size}}px",
    lineHeight: "Line Height: {{value}}",
    margins: "Margins: {{value}}px",
    brightness: "Brightness: {{value}}%",
    orientation: "Orientation",
    themeSepia: "Sepia",
    themeDark: "Dark",
    themeLight: "Light",
    themePaper: "Paper",
    fontSans: "Sans-serif",
    fontSerif: "Serif",
    fontMonospace: "Monospace",
    orientationAuto: "Auto",
    orientationPortrait: "Portrait",
    orientationLandscape: "Landscape",
    fontSizeAria: "Font size",
    lineHeightAria: "Line height",
    marginWidthAria: "Margin width",
    brightnessAria: "Brightness",
    tocTitle: "Contents",
    closeTocAria: "Close table of contents",
    tocEmpty: "No chapters available.",
  },
  addBook: {
    title: "Add Book",
    fileLabel: "File (EPUB or PDF) *",
    selected: "Selected: {{name}}",
    titleLabel: "Title *",
    titlePlaceholder: "Book title",
    authorLabel: "Author",
    authorPlaceholder: "Author name",
    uploading: "Uploading...",
    upload: "Upload Book",
    fileTypeError: "Only EPUB and PDF files are supported.",
    requiredError: "Title and file are required.",
    uploadFailed: "Upload failed.",
  },
  bookDetail: {
    backToLibrary: "Back to Library",
    back: "Back",
    notFound: "Book not found",
    notFoundDescription: "The book you're looking for doesn't exist or has been removed.",
    invalidId: "Invalid book ID",
    loadFailed: "Failed to load book details",
    byAuthor: "by {{author}}",
    pages: "{{count}} pages",
    description: "Description",
    added: "Added {{date}}",
    updated: "Updated {{date}}",
  },
  search: {
    searching: "Searching...",
    noSuggestions: "No quick suggestions",
  },
  annotations: {
    title: "Bookmarks & Notes",
    loading: "Loading markers...",
    empty: "No bookmarks or notes yet.",
    bookmarkCount: "{{count}} bookmarks",
    noteCount: "{{count}} notes",
    markerCount: "{{count}} markers",
    bookmark: "Bookmark",
    note: "Note",
    bookmarkOnly: "Bookmark",
    saveMarker: "Save",
    markerSaved: "Bookmark saved",
    markerSavedWithNote: "Note saved",
    thoughtPlaceholder: "Your thought about this passage (optional)",
    highlightColor: "Highlight color",
    highlightCustom: "Custom color",
    highlightYellow: "Yellow",
    highlightGreen: "Green",
    highlightPink: "Pink",
    highlightBlue: "Blue",
    highlightPurple: "Purple",
    selectTextHint: "Select text in the reader to add a bookmark or note.",
    showMore: "Show more",
    showLess: "Show less",
    goToPassage: "Go to passage",
    goToPage: "Go to page",
    inBookPanel: "Bookmarks in this book",
    chapterIndex: "Chapter {{index}}",
    page: "Page {{page}}",
    pageShort: "p.{{page}}",
    loadingBookmarks: "Loading bookmarks...",
    bookmarksEmpty: "No bookmarks yet. Select a passage and add a bookmark while reading.",
    loadingNotes: "Loading notes...",
    notesEmpty: "No notes yet. Select a passage and add a note while reading.",
    addToPage: "Add to Page {{page}}",
    addBookmark: "Add Bookmark",
    addNote: "Add Note",
    noteLabel: "Note:",
    notePlaceholder: "Write your note here...",
    noteEmpty: "Note content cannot be empty.",
    saveFailed: "Failed to save annotation.",
    close: "Close",
    home: "Home",
    bookmarksNotes: "Bookmarks & Notes",
  },
} as const;

export default enUS;

type LocaleStrings<T> = {
  [K in keyof T]: T[K] extends string ? string : LocaleStrings<T[K]>;
};

export type Locale = LocaleStrings<typeof enUS>;
