diff --git a/src/renderer/assets/styles/components/settings.scss b/src/renderer/assets/styles/components/settings.scss index dd0e4b7d9..d0db6aa02 100644 --- a/src/renderer/assets/styles/components/settings.scss +++ b/src/renderer/assets/styles/components/settings.scss @@ -891,13 +891,38 @@ div[data-radix-popper-content-wrapper] { position: absolute; bottom: 0; - @media screen and (height <= 600px) { - position: relative; - } + // @media screen and (height <= 600px) { + // position: relative; + // } } } } +.notification_preset { + position: absolute; + top: 8px; + right: 20px; + width: 10px; + height: 10px; + border-radius: 50%; + background-color: var(--color-blue); + animation: blink 3s ease-in-out infinite; + + @keyframes blink { + 0% { + opacity: 1; + } + + 50% { + opacity: 0.1; + } + + 100% { + opacity: 1; + } + } +} + .CSS_END_components_settings { display: none; } diff --git a/src/renderer/assets/styles/components/settings.scss.d.ts b/src/renderer/assets/styles/components/settings.scss.d.ts index e13b029b2..ade043b1f 100644 --- a/src/renderer/assets/styles/components/settings.scss.d.ts +++ b/src/renderer/assets/styles/components/settings.scss.d.ts @@ -1,5 +1,6 @@ export declare const advanced_trigger: string; export declare const allowCustom: string; +export declare const blink: string; export declare const btn_primary: string; export declare const button_transparency_icon: string; export declare const close_button_div: string; @@ -16,6 +17,7 @@ export declare const label_fontFamily: string; export declare const label_fontSize: string; export declare const maths_options: string; export declare const modal_dialog_reader: string; +export declare const notification_preset: string; export declare const off: string; export declare const on: string; export declare const popover_dialog_reader: string; diff --git a/src/renderer/common/hooks/useReaderConfig.ts b/src/renderer/common/hooks/useReaderConfig.ts index 9ab985327..e64e2260d 100644 --- a/src/renderer/common/hooks/useReaderConfig.ts +++ b/src/renderer/common/hooks/useReaderConfig.ts @@ -12,6 +12,8 @@ import { useDispatch } from "./useDispatch"; import * as React from "react"; import { readerLocalActionSetConfig, readerLocalActionSetTransientConfig } from "readium-desktop/renderer/reader/redux/actions"; import debounce from "debounce"; +import { equals } from "ramda"; +import { ObjectKeys } from "readium-desktop/utils/object-keys-values"; export const useReaderConfigAll = () => { const config = useSelector((state: IReaderRootState) => state.reader.config); @@ -74,3 +76,20 @@ export const useSavePublisherReaderConfigDebounced = () => { const debounceCB = React.useMemo(() => debounce(cb, 400), [cb]); return debounceCB; }; + +export const useDiffBoolBetweenReaderConfigAndDefaultConfig = () => { + const config = useSelector((state: IReaderRootState) => state.reader.config); + const defaultConfig = useSelector((state: IReaderRootState) => state.reader.defaultConfig); + + const diff = React.useMemo(() => { + + for (const v of ObjectKeys(config)) { + if (!equals(config[v], defaultConfig[v])) { + return true; + } + } + return false; + }, [config, defaultConfig]); + + return diff; +}; diff --git a/src/renderer/reader/components/ReaderHeader.tsx b/src/renderer/reader/components/ReaderHeader.tsx index 8cefdca25..003d625a8 100644 --- a/src/renderer/reader/components/ReaderHeader.tsx +++ b/src/renderer/reader/components/ReaderHeader.tsx @@ -16,6 +16,7 @@ import * as debug_ from "debug"; import * as React from "react"; import * as Popover from "@radix-ui/react-popover"; import * as Dialog from "@radix-ui/react-dialog"; +import * as VisuallyHidden from "@radix-ui/react-visually-hidden"; // import * as ReactDOM from "react-dom"; import { ReaderMode } from "readium-desktop/common/models/reader"; @@ -1075,7 +1076,11 @@ export class ReaderHeader extends React.Component { height: /*(isDockedMode && isOnSearch) ? "calc(100dvh - 159px)" :*/ "", marginTop: /*(isDockedMode && !isOnSearch) ? "70px" :*/ "20px", }} + aria-describedby={undefined} > + + {__("reader.navigation.openTableOfContentsTitle")} + { @@ -1161,7 +1166,11 @@ export class ReaderHeader extends React.Component { height: /*isDockedMode && isOnSearch ? "calc(100dvh - 159px)" :*/ "", marginTop: /*isDockedMode && !isOnSearch ? "70px" :*/ "20px", }} + aria-describedby={undefined} > + + {__("reader.navigation.settingsTitle")} + {/* TODO remove readerSettingsHeaderProps */} { const readerDefaultConfig = useSelector((state: IReaderRootState) => state.reader.defaultConfig); const allowCustomCheckboxChecked = useSelector((state: IReaderRootState) => state.reader.allowCustomConfig.state); const publisherConfigOverrided = !comparePublisherReaderConfig(readerDefaultConfig, readerConfigInitialState); + const diffBetweenDefaultConfigAndConfig = useDiffBoolBetweenReaderConfigAndDefaultConfig(); const dockingMode = useReaderConfig("readerDockingMode"); const dockedMode = dockingMode !== "full"; @@ -1076,7 +1077,7 @@ const SaveResetApplyPreset = () => {

{__("reader.settings.preset.saveDetails")}

@@ -1120,6 +1121,8 @@ export const ReaderSettings: React.FC = (props) => { setReaderConfig({ readerDockingMode: value }); }, [setReaderConfig]); + const diffBetweenDefaultConfigAndConfig = useDiffBoolBetweenReaderConfigAndDefaultConfig(); + const [__] = useTranslator(); // const [ @@ -1297,10 +1300,15 @@ export const ReaderSettings: React.FC = (props) => { const optionPdfZoomItem = { id: 5, value: "tab-pdfzoom", name: __("reader.settings.pdfZoom.title"), disabled: false, svg: VolumeUpIcon }; const PresetTrigger = - - -

{__("reader.settings.preset.title")}

-
; + + + + +

{__("reader.settings.preset.title")}

+ {diffBetweenDefaultConfigAndConfig ? : <>} +
+

{__("reader.settings.preset.detail")}

+ ; const optionPresetItem = { id: 6, value: "tab-preset", name: __("reader.settings.preset.title"), disabled: false, svg: GuearIcon }; const AllowCustomContainer = () => diff --git a/src/resources/locales/ar.json b/src/resources/locales/ar.json index c3684ceeb..bf1c77a2d 100644 --- a/src/resources/locales/ar.json +++ b/src/resources/locales/ar.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/bg.json b/src/resources/locales/bg.json index 31226832b..0d1a57104 100644 --- a/src/resources/locales/bg.json +++ b/src/resources/locales/bg.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/ca.json b/src/resources/locales/ca.json index 436e415e0..70d23c429 100644 --- a/src/resources/locales/ca.json +++ b/src/resources/locales/ca.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/da.json b/src/resources/locales/da.json index 2fa6032b0..30296bebc 100644 --- a/src/resources/locales/da.json +++ b/src/resources/locales/da.json @@ -479,6 +479,7 @@ "preset": { "apply": "Anvend mit foretrukne læsetema som nuværende læse-indstillinger", "applyDetails": "", + "detail": "", "reset": "Nulstil mit foretrukne læsetema til standard indstillingerne", "resetDetails": "", "save": "Gem de nuværende læse-indstillinger som mit foretrukne læsetema", diff --git a/src/resources/locales/de.json b/src/resources/locales/de.json index 665bb51d8..d5e2e4222 100644 --- a/src/resources/locales/de.json +++ b/src/resources/locales/de.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/el.json b/src/resources/locales/el.json index 65e24e0e1..94306604b 100644 --- a/src/resources/locales/el.json +++ b/src/resources/locales/el.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/en.json b/src/resources/locales/en.json index 25f013ea5..66799b30f 100644 --- a/src/resources/locales/en.json +++ b/src/resources/locales/en.json @@ -479,6 +479,7 @@ "preset": { "apply": "Apply the preferred reading parameters", "applyDetails": "Apply the preferred reading settings preset to the current book.", + "detail": "Save/Apply your reading presets", "reset": "Reset preferred reading settings", "resetDetails": "Reset the preferred reading parameters and apply these default paremeters to the current book.", "save": "Save the preferred reading parameters", diff --git a/src/resources/locales/es.json b/src/resources/locales/es.json index 88ebb39c4..38e03fb5f 100644 --- a/src/resources/locales/es.json +++ b/src/resources/locales/es.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/eu.json b/src/resources/locales/eu.json index cc63e47df..09e0c1e37 100644 --- a/src/resources/locales/eu.json +++ b/src/resources/locales/eu.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/fi.json b/src/resources/locales/fi.json index 50b05d884..3bed62612 100644 --- a/src/resources/locales/fi.json +++ b/src/resources/locales/fi.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/fr.json b/src/resources/locales/fr.json index bc10a91bd..4fb5878e2 100644 --- a/src/resources/locales/fr.json +++ b/src/resources/locales/fr.json @@ -479,6 +479,7 @@ "preset": { "apply": "Appliquer les paramètres de lecture préférés", "applyDetails": "Appliquer au livre courant les paramètres de lecture précédemment enregistrés.", + "detail": "Sauvegarder/Appliquer vos paramètres de lecture", "reset": "Réinitialiser les paramètres de lecture préférés", "resetDetails": "Effacer les paramètres de lecture précédemment appliqués, et revenir à la mise en forme et aux choix d'affichage par défaut", "save": "Enregistrer les paramètres de lecture préférés", diff --git a/src/resources/locales/gl.json b/src/resources/locales/gl.json index a611047b1..39532a576 100644 --- a/src/resources/locales/gl.json +++ b/src/resources/locales/gl.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/hr.json b/src/resources/locales/hr.json index 2de0b2131..7b97b1a07 100644 --- a/src/resources/locales/hr.json +++ b/src/resources/locales/hr.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/it.json b/src/resources/locales/it.json index b1241a67f..dd8143167 100644 --- a/src/resources/locales/it.json +++ b/src/resources/locales/it.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/ja.json b/src/resources/locales/ja.json index 693218049..f943e062a 100644 --- a/src/resources/locales/ja.json +++ b/src/resources/locales/ja.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/ka.json b/src/resources/locales/ka.json index 9095435a6..b11e7f59c 100644 --- a/src/resources/locales/ka.json +++ b/src/resources/locales/ka.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/ko.json b/src/resources/locales/ko.json index f420c29cd..c888e3362 100644 --- a/src/resources/locales/ko.json +++ b/src/resources/locales/ko.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/lt.json b/src/resources/locales/lt.json index 3d76681ac..66bc72e54 100644 --- a/src/resources/locales/lt.json +++ b/src/resources/locales/lt.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/nl.json b/src/resources/locales/nl.json index 50448141c..ca11cb59d 100644 --- a/src/resources/locales/nl.json +++ b/src/resources/locales/nl.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/pt-br.json b/src/resources/locales/pt-br.json index f4b117638..acc6795af 100644 --- a/src/resources/locales/pt-br.json +++ b/src/resources/locales/pt-br.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/pt-pt.json b/src/resources/locales/pt-pt.json index a26111276..cbfea4078 100644 --- a/src/resources/locales/pt-pt.json +++ b/src/resources/locales/pt-pt.json @@ -479,6 +479,7 @@ "preset": { "apply": "Aplicar a predefinição preferida de configurações de leitura às configurações de leitura atuais", "applyDetails": "Aplicar as predefinições favoritas de definições de leitura ao livro atual.", + "detail": "", "reset": "Redefinir a predefinição das configurações preferidas de leitura para o estado inicial", "resetDetails": "Repor os parâmetros preferenciais de leitura e aplicar os parâmetros padrão ao livro atual.", "save": "Guardar as configurações de leitura atuais na predefinição preferida de configurações de leitura", diff --git a/src/resources/locales/ru.json b/src/resources/locales/ru.json index a2a21c915..800ffbaa8 100644 --- a/src/resources/locales/ru.json +++ b/src/resources/locales/ru.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/sl.json b/src/resources/locales/sl.json index 4458a2c0e..f88c0726a 100644 --- a/src/resources/locales/sl.json +++ b/src/resources/locales/sl.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/sv.json b/src/resources/locales/sv.json index 92a644686..7ca973656 100644 --- a/src/resources/locales/sv.json +++ b/src/resources/locales/sv.json @@ -479,6 +479,7 @@ "preset": { "apply": "Tillämpa egna läsinställningar", "applyDetails": "Tillämpa dina sparade läsinställningar på den aktuella boken.", + "detail": "", "reset": "Återställ läsinställningar", "resetDetails": "Återställ dina läsinställningar till standard och tillämpa inställningarna på den aktuella boken.", "save": "Spara egna läsinställningar", diff --git a/src/resources/locales/zh-cn.json b/src/resources/locales/zh-cn.json index fdb6a20c3..a77cdaad4 100644 --- a/src/resources/locales/zh-cn.json +++ b/src/resources/locales/zh-cn.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/resources/locales/zh-tw.json b/src/resources/locales/zh-tw.json index 138758c04..c68a81d06 100644 --- a/src/resources/locales/zh-tw.json +++ b/src/resources/locales/zh-tw.json @@ -479,6 +479,7 @@ "preset": { "apply": "", "applyDetails": "", + "detail": "", "reset": "", "resetDetails": "", "save": "", diff --git a/src/typings/en.translation-keys.d.ts b/src/typings/en.translation-keys.d.ts index 82e0fcb95..ea6c082a4 100644 --- a/src/typings/en.translation-keys.d.ts +++ b/src/typings/en.translation-keys.d.ts @@ -1,4 +1,4 @@ declare namespace typed_i18n_keys { - type TTranslatorKeyParameter = "accessibility" | "accessibility.bookMenu" | "accessibility.closeDialog" | "accessibility.importFile" | "accessibility.leftSlideButton" | "accessibility.mainContent" | "accessibility.rightSlideButton" | "accessibility.skipLink" | "accessibility.toolbar" | "apiapp" | "apiapp.documentation" | "apiapp.howItWorks" | "apiapp.informations" | "apiapp.noLibraryFound" | "app" | "app.edit" | "app.edit.copy" | "app.edit.cut" | "app.edit.paste" | "app.edit.redo" | "app.edit.selectAll" | "app.edit.title" | "app.edit.undo" | "app.hide" | "app.quit" | "app.session" | "app.session.exit" | "app.session.exit.askBox" | "app.session.exit.askBox.button" | "app.session.exit.askBox.button.no" | "app.session.exit.askBox.button.yes" | "app.session.exit.askBox.message" | "app.session.exit.askBox.title" | "app.update" | "app.update.message" | "app.update.title" | "app.window" | "app.window.showLibrary" | "catalog" | "catalog.about" | "catalog.about.title" | "catalog.addBookToLib" | "catalog.addTags" | "catalog.addTagsButton" | "catalog.allBooks" | "catalog.bookInfo" | "catalog.column" | "catalog.column.ascending" | "catalog.column.descending" | "catalog.column.unsorted" | "catalog.delete" | "catalog.deleteBook" | "catalog.deleteTag" | "catalog.description" | "catalog.emptyTagList" | "catalog.entry" | "catalog.entry.continueReading" | "catalog.entry.continueReadingAudioBooks" | "catalog.entry.continueReadingDivina" | "catalog.entry.continueReadingPdf" | "catalog.entry.lastAdditions" | "catalog.export" | "catalog.exportAnnotation" | "catalog.format" | "catalog.importAnnotation" | "catalog.lang" | "catalog.lastRead" | "catalog.moreInfo" | "catalog.myBooks" | "catalog.noPublicationHelpL1" | "catalog.noPublicationHelpL2" | "catalog.noPublicationHelpL3" | "catalog.noPublicationHelpL4" | "catalog.numberOfPages" | "catalog.opds" | "catalog.opds.auth" | "catalog.opds.auth.cancel" | "catalog.opds.auth.login" | "catalog.opds.auth.password" | "catalog.opds.auth.register" | "catalog.opds.auth.username" | "catalog.opds.info" | "catalog.opds.info.availableSince" | "catalog.opds.info.availableState" | "catalog.opds.info.availableState.available" | "catalog.opds.info.availableState.ready" | "catalog.opds.info.availableState.reserved" | "catalog.opds.info.availableState.unavailable" | "catalog.opds.info.availableState.unknown" | "catalog.opds.info.availableUntil" | "catalog.opds.info.copyAvalaible" | "catalog.opds.info.copyTotal" | "catalog.opds.info.holdPosition" | "catalog.opds.info.holdTotal" | "catalog.opds.info.numberOfItems" | "catalog.opds.info.priveValue" | "catalog.opds.info.state" | "catalog.publisher" | "catalog.readBook" | "catalog.released" | "catalog.sort" | "catalog.tag" | "catalog.tags" | "catalog.update" | "dialog" | "dialog.annotations" | "dialog.annotations.descAuthor" | "dialog.annotations.descList" | "dialog.annotations.descNewer" | "dialog.annotations.descOlder" | "dialog.annotations.descTitle" | "dialog.annotations.importAll" | "dialog.annotations.importWithoutConflict" | "dialog.annotations.title" | "dialog.cancel" | "dialog.deleteAnnotations" | "dialog.deleteAnnotationsText" | "dialog.deleteFeed" | "dialog.deletePublication" | "dialog.import" | "dialog.importError" | "dialog.renew" | "dialog.return" | "dialog.yes" | "error" | "error.errorBox" | "error.errorBox.error" | "error.errorBox.message" | "error.errorBox.title" | "header" | "header.allBooks" | "header.catalogs" | "header.downloads" | "header.fitlerTagTitle" | "header.gridTitle" | "header.home" | "header.homeTitle" | "header.importTitle" | "header.listTitle" | "header.myCatalogs" | "header.refreshTitle" | "header.searchPlaceholder" | "header.searchTitle" | "header.settings" | "header.viewMode" | "library" | "library.lcp" | "library.lcp.hint" | "library.lcp.open" | "library.lcp.password" | "library.lcp.sentence" | "library.lcp.urlHint" | "library.lcp.whatIsLcp?" | "library.lcp.whatIsLcpInfoDetails" | "library.lcp.whatIsLcpInfoDetailsLink" | "message" | "message.annotations" | "message.annotations.alreadyImported" | "message.annotations.emptyFile" | "message.annotations.errorParsing" | "message.annotations.noBelongTo" | "message.annotations.nothing" | "message.annotations.success" | "message.download" | "message.download.error" | "message.import" | "message.import.alreadyImport" | "message.import.fail" | "message.import.success" | "message.open" | "message.open.error" | "opds" | "opds.addForm" | "opds.addForm.addButton" | "opds.addForm.name" | "opds.addForm.namePlaceholder" | "opds.addForm.url" | "opds.addForm.urlPlaceholder" | "opds.addFormApiapp" | "opds.addFormApiapp.title" | "opds.addMenu" | "opds.breadcrumbRoot" | "opds.documentation" | "opds.empty" | "opds.firstPage" | "opds.informations" | "opds.lastPage" | "opds.menu" | "opds.menu.aboutBook" | "opds.menu.addExtract" | "opds.menu.goBuyBook" | "opds.menu.goLoanBook" | "opds.menu.goRevokeLoanBook" | "opds.menu.goSubBook" | "opds.network" | "opds.network.error" | "opds.network.noInternet" | "opds.network.noInternetMessage" | "opds.network.reject" | "opds.network.timeout" | "opds.next" | "opds.previous" | "opds.shelf" | "opds.updateForm" | "opds.updateForm.name" | "opds.updateForm.title" | "opds.updateForm.updateButton" | "opds.updateForm.url" | "opds.whatIsOpds" | "publication" | "publication.accessibility" | "publication.accessibility.accessModeSufficient" | "publication.accessibility.accessModeSufficient.textual" | "publication.accessibility.accessibilityFeature" | "publication.accessibility.accessibilityFeature.alternativeText" | "publication.accessibility.accessibilityFeature.displayTransformability" | "publication.accessibility.accessibilityFeature.longDescription" | "publication.accessibility.accessibilityFeature.printPageNumbers" | "publication.accessibility.accessibilityFeature.readingOrder" | "publication.accessibility.accessibilityFeature.synchronizedAudioText" | "publication.accessibility.accessibilityFeature.tableOfContents" | "publication.accessibility.accessibilityHazard" | "publication.accessibility.accessibilityHazard.flashing" | "publication.accessibility.accessibilityHazard.motionSimulation" | "publication.accessibility.accessibilityHazard.name" | "publication.accessibility.accessibilityHazard.noFlashing" | "publication.accessibility.accessibilityHazard.noMotionSimulation" | "publication.accessibility.accessibilityHazard.noSound" | "publication.accessibility.accessibilityHazard.none" | "publication.accessibility.accessibilityHazard.sound" | "publication.accessibility.accessibilityHazard.unknown" | "publication.accessibility.certifierReport" | "publication.accessibility.conformsTo" | "publication.accessibility.moreInformation" | "publication.accessibility.name" | "publication.accessibility.noA11y" | "publication.actions" | "publication.audio" | "publication.audio.tracks" | "publication.author" | "publication.cancelledLcp" | "publication.certificateRevoked" | "publication.certificateSignatureInvalid" | "publication.cover" | "publication.cover.img" | "publication.day" | "publication.days" | "publication.duration" | "publication.duration.title" | "publication.encryptedNoLicense" | "publication.expired" | "publication.expiredLcp" | "publication.incorrectPassphrase" | "publication.lcpEnd" | "publication.lcpRightsCopy" | "publication.lcpRightsPrint" | "publication.lcpStart" | "publication.licenceLCP" | "publication.licenseOutOfDate" | "publication.licenseSignatureDateInvalid" | "publication.licenseSignatureInvalid" | "publication.licensed" | "publication.markAsRead" | "publication.notStarted" | "publication.onGoing" | "publication.progression" | "publication.progression.title" | "publication.read" | "publication.remainingTime" | "publication.renewButton" | "publication.returnButton" | "publication.returnedLcp" | "publication.revokedLcp" | "publication.seeLess" | "publication.seeMore" | "publication.timeLeft" | "publication.title" | "publication.userKeyCheckInvalid" | "reader" | "reader.annotations" | "reader.annotations.Color" | "reader.annotations.addNote" | "reader.annotations.advancedMode" | "reader.annotations.annotationsExport" | "reader.annotations.annotationsExport.description" | "reader.annotations.annotationsExport.title" | "reader.annotations.annotationsOptions" | "reader.annotations.colors" | "reader.annotations.colors.bluegreen" | "reader.annotations.colors.cyan" | "reader.annotations.colors.green" | "reader.annotations.colors.lightblue" | "reader.annotations.colors.orange" | "reader.annotations.colors.purple" | "reader.annotations.colors.red" | "reader.annotations.colors.yellow" | "reader.annotations.filter" | "reader.annotations.filter.all" | "reader.annotations.filter.filterByColor" | "reader.annotations.filter.filterByCreator" | "reader.annotations.filter.filterByDrawtype" | "reader.annotations.filter.filterByTag" | "reader.annotations.filter.filterOptions" | "reader.annotations.filter.none" | "reader.annotations.hide" | "reader.annotations.highlight" | "reader.annotations.noSelectionToast" | "reader.annotations.quickAnnotations" | "reader.annotations.saveNote" | "reader.annotations.sorting" | "reader.annotations.sorting.lastcreated" | "reader.annotations.sorting.lastmodified" | "reader.annotations.sorting.progression" | "reader.annotations.sorting.sortingOptions" | "reader.annotations.toggleMarginMarks" | "reader.annotations.type" | "reader.annotations.type.outline" | "reader.annotations.type.solid" | "reader.annotations.type.strikethrough" | "reader.annotations.type.underline" | "reader.divina" | "reader.divina.mute" | "reader.divina.unmute" | "reader.fxl" | "reader.fxl.fit" | "reader.marks" | "reader.marks.annotations" | "reader.marks.bookmarks" | "reader.marks.delete" | "reader.marks.edit" | "reader.marks.goTo" | "reader.marks.landmarks" | "reader.marks.saveMark" | "reader.marks.search" | "reader.marks.searchResult" | "reader.marks.toc" | "reader.media-overlays" | "reader.media-overlays.activate" | "reader.media-overlays.captions" | "reader.media-overlays.captionsDescription" | "reader.media-overlays.next" | "reader.media-overlays.pause" | "reader.media-overlays.play" | "reader.media-overlays.previous" | "reader.media-overlays.skip" | "reader.media-overlays.skipDescription" | "reader.media-overlays.speed" | "reader.media-overlays.stop" | "reader.media-overlays.title" | "reader.navigation" | "reader.navigation.annotationTitle" | "reader.navigation.backHomeTitle" | "reader.navigation.bookmarkTitle" | "reader.navigation.currentPage" | "reader.navigation.currentPageTotal" | "reader.navigation.detachWindowTitle" | "reader.navigation.fullscreenTitle" | "reader.navigation.goTo" | "reader.navigation.goToError" | "reader.navigation.goToPlaceHolder" | "reader.navigation.goToTitle" | "reader.navigation.historyNext" | "reader.navigation.historyPrevious" | "reader.navigation.infoTitle" | "reader.navigation.magnifyingGlassButton" | "reader.navigation.openTableOfContentsTitle" | "reader.navigation.page" | "reader.navigation.pdfscalemode" | "reader.navigation.settingsTitle" | "reader.picker" | "reader.picker.search" | "reader.picker.search.founds" | "reader.picker.search.input" | "reader.picker.search.next" | "reader.picker.search.notFound" | "reader.picker.search.previous" | "reader.picker.search.results" | "reader.picker.search.submit" | "reader.picker.searchTitle" | "reader.settings" | "reader.settings.column" | "reader.settings.column.auto" | "reader.settings.column.one" | "reader.settings.column.title" | "reader.settings.column.two" | "reader.settings.customFontSelected" | "reader.settings.customizeReader" | "reader.settings.disabled" | "reader.settings.display" | "reader.settings.disposition" | "reader.settings.disposition.title" | "reader.settings.font" | "reader.settings.fontSize" | "reader.settings.infoCustomFont" | "reader.settings.justification" | "reader.settings.justify" | "reader.settings.letterSpacing" | "reader.settings.lineSpacing" | "reader.settings.margin" | "reader.settings.noFootnotes" | "reader.settings.noRTLFlip" | "reader.settings.noRuby" | "reader.settings.paginated" | "reader.settings.paraSpacing" | "reader.settings.pdfZoom" | "reader.settings.pdfZoom.name" | "reader.settings.pdfZoom.name.100pct" | "reader.settings.pdfZoom.name.150pct" | "reader.settings.pdfZoom.name.200pct" | "reader.settings.pdfZoom.name.300pct" | "reader.settings.pdfZoom.name.500pct" | "reader.settings.pdfZoom.name.50pct" | "reader.settings.pdfZoom.name.fit" | "reader.settings.pdfZoom.name.width" | "reader.settings.pdfZoom.title" | "reader.settings.preset" | "reader.settings.preset.apply" | "reader.settings.preset.applyDetails" | "reader.settings.preset.reset" | "reader.settings.preset.resetDetails" | "reader.settings.preset.save" | "reader.settings.preset.saveDetails" | "reader.settings.preset.title" | "reader.settings.preview" | "reader.settings.reduceMotion" | "reader.settings.scrolled" | "reader.settings.spacing" | "reader.settings.text" | "reader.settings.theme" | "reader.settings.theme.name" | "reader.settings.theme.name.Contrast1" | "reader.settings.theme.name.Contrast2" | "reader.settings.theme.name.Contrast3" | "reader.settings.theme.name.Contrast4" | "reader.settings.theme.name.Neutral" | "reader.settings.theme.name.Night" | "reader.settings.theme.name.Paper" | "reader.settings.theme.name.Sepia" | "reader.settings.theme.title" | "reader.settings.wordSpacing" | "reader.svg" | "reader.svg.left" | "reader.svg.right" | "reader.toc" | "reader.toc.publicationNoToc" | "reader.tts" | "reader.tts.activate" | "reader.tts.default" | "reader.tts.next" | "reader.tts.pause" | "reader.tts.play" | "reader.tts.previous" | "reader.tts.sentenceDetect" | "reader.tts.sentenceDetectDescription" | "reader.tts.speed" | "reader.tts.stop" | "reader.tts.voice" | "settings" | "settings.annotationCreator" | "settings.annotationCreator.creator" | "settings.annotationCreator.name" | "settings.annotationCreator.organization" | "settings.annotationCreator.person" | "settings.annotationCreator.type" | "settings.auth" | "settings.auth.title" | "settings.auth.wipeData" | "settings.keyboard" | "settings.keyboard.advancedMenu" | "settings.keyboard.cancel" | "settings.keyboard.disclaimer" | "settings.keyboard.editUserJson" | "settings.keyboard.keyboardShortcuts" | "settings.keyboard.loadUserJson" | "settings.keyboard.resetDefaults" | "settings.keyboard.save" | "settings.language" | "settings.language.languageChoice" | "settings.library" | "settings.library.enableAPIAPP" | "settings.library.title" | "settings.session" | "settings.session.title" | "settings.tabs" | "settings.tabs.appearance" | "settings.tabs.general" | "settings.tabs.keyboardShortcuts" | "settings.theme" | "settings.theme.auto" | "settings.theme.dark" | "settings.theme.description" | "settings.theme.light" | "settings.theme.title" | "wizard" | "wizard.buttons" | "wizard.buttons.discover" | "wizard.buttons.goToBooks" | "wizard.buttons.next" | "wizard.description" | "wizard.description.annotations" | "wizard.description.catalogs" | "wizard.description.home" | "wizard.description.readingView1" | "wizard.description.readingView2" | "wizard.description.yourBooks" | "wizard.dontShow" | "wizard.tab" | "wizard.tab.annotations" | "wizard.tab.catalogs" | "wizard.tab.home" | "wizard.tab.readingView" | "wizard.tab.yourBooks" | "wizard.title" | "wizard.title.allBooks" | "wizard.title.newFeature" | "wizard.title.welcome"; + type TTranslatorKeyParameter = "accessibility" | "accessibility.bookMenu" | "accessibility.closeDialog" | "accessibility.importFile" | "accessibility.leftSlideButton" | "accessibility.mainContent" | "accessibility.rightSlideButton" | "accessibility.skipLink" | "accessibility.toolbar" | "apiapp" | "apiapp.documentation" | "apiapp.howItWorks" | "apiapp.informations" | "apiapp.noLibraryFound" | "app" | "app.edit" | "app.edit.copy" | "app.edit.cut" | "app.edit.paste" | "app.edit.redo" | "app.edit.selectAll" | "app.edit.title" | "app.edit.undo" | "app.hide" | "app.quit" | "app.session" | "app.session.exit" | "app.session.exit.askBox" | "app.session.exit.askBox.button" | "app.session.exit.askBox.button.no" | "app.session.exit.askBox.button.yes" | "app.session.exit.askBox.message" | "app.session.exit.askBox.title" | "app.update" | "app.update.message" | "app.update.title" | "app.window" | "app.window.showLibrary" | "catalog" | "catalog.about" | "catalog.about.title" | "catalog.addBookToLib" | "catalog.addTags" | "catalog.addTagsButton" | "catalog.allBooks" | "catalog.bookInfo" | "catalog.column" | "catalog.column.ascending" | "catalog.column.descending" | "catalog.column.unsorted" | "catalog.delete" | "catalog.deleteBook" | "catalog.deleteTag" | "catalog.description" | "catalog.emptyTagList" | "catalog.entry" | "catalog.entry.continueReading" | "catalog.entry.continueReadingAudioBooks" | "catalog.entry.continueReadingDivina" | "catalog.entry.continueReadingPdf" | "catalog.entry.lastAdditions" | "catalog.export" | "catalog.exportAnnotation" | "catalog.format" | "catalog.importAnnotation" | "catalog.lang" | "catalog.lastRead" | "catalog.moreInfo" | "catalog.myBooks" | "catalog.noPublicationHelpL1" | "catalog.noPublicationHelpL2" | "catalog.noPublicationHelpL3" | "catalog.noPublicationHelpL4" | "catalog.numberOfPages" | "catalog.opds" | "catalog.opds.auth" | "catalog.opds.auth.cancel" | "catalog.opds.auth.login" | "catalog.opds.auth.password" | "catalog.opds.auth.register" | "catalog.opds.auth.username" | "catalog.opds.info" | "catalog.opds.info.availableSince" | "catalog.opds.info.availableState" | "catalog.opds.info.availableState.available" | "catalog.opds.info.availableState.ready" | "catalog.opds.info.availableState.reserved" | "catalog.opds.info.availableState.unavailable" | "catalog.opds.info.availableState.unknown" | "catalog.opds.info.availableUntil" | "catalog.opds.info.copyAvalaible" | "catalog.opds.info.copyTotal" | "catalog.opds.info.holdPosition" | "catalog.opds.info.holdTotal" | "catalog.opds.info.numberOfItems" | "catalog.opds.info.priveValue" | "catalog.opds.info.state" | "catalog.publisher" | "catalog.readBook" | "catalog.released" | "catalog.sort" | "catalog.tag" | "catalog.tags" | "catalog.update" | "dialog" | "dialog.annotations" | "dialog.annotations.descAuthor" | "dialog.annotations.descList" | "dialog.annotations.descNewer" | "dialog.annotations.descOlder" | "dialog.annotations.descTitle" | "dialog.annotations.importAll" | "dialog.annotations.importWithoutConflict" | "dialog.annotations.title" | "dialog.cancel" | "dialog.deleteAnnotations" | "dialog.deleteAnnotationsText" | "dialog.deleteFeed" | "dialog.deletePublication" | "dialog.import" | "dialog.importError" | "dialog.renew" | "dialog.return" | "dialog.yes" | "error" | "error.errorBox" | "error.errorBox.error" | "error.errorBox.message" | "error.errorBox.title" | "header" | "header.allBooks" | "header.catalogs" | "header.downloads" | "header.fitlerTagTitle" | "header.gridTitle" | "header.home" | "header.homeTitle" | "header.importTitle" | "header.listTitle" | "header.myCatalogs" | "header.refreshTitle" | "header.searchPlaceholder" | "header.searchTitle" | "header.settings" | "header.viewMode" | "library" | "library.lcp" | "library.lcp.hint" | "library.lcp.open" | "library.lcp.password" | "library.lcp.sentence" | "library.lcp.urlHint" | "library.lcp.whatIsLcp?" | "library.lcp.whatIsLcpInfoDetails" | "library.lcp.whatIsLcpInfoDetailsLink" | "message" | "message.annotations" | "message.annotations.alreadyImported" | "message.annotations.emptyFile" | "message.annotations.errorParsing" | "message.annotations.noBelongTo" | "message.annotations.nothing" | "message.annotations.success" | "message.download" | "message.download.error" | "message.import" | "message.import.alreadyImport" | "message.import.fail" | "message.import.success" | "message.open" | "message.open.error" | "opds" | "opds.addForm" | "opds.addForm.addButton" | "opds.addForm.name" | "opds.addForm.namePlaceholder" | "opds.addForm.url" | "opds.addForm.urlPlaceholder" | "opds.addFormApiapp" | "opds.addFormApiapp.title" | "opds.addMenu" | "opds.breadcrumbRoot" | "opds.documentation" | "opds.empty" | "opds.firstPage" | "opds.informations" | "opds.lastPage" | "opds.menu" | "opds.menu.aboutBook" | "opds.menu.addExtract" | "opds.menu.goBuyBook" | "opds.menu.goLoanBook" | "opds.menu.goRevokeLoanBook" | "opds.menu.goSubBook" | "opds.network" | "opds.network.error" | "opds.network.noInternet" | "opds.network.noInternetMessage" | "opds.network.reject" | "opds.network.timeout" | "opds.next" | "opds.previous" | "opds.shelf" | "opds.updateForm" | "opds.updateForm.name" | "opds.updateForm.title" | "opds.updateForm.updateButton" | "opds.updateForm.url" | "opds.whatIsOpds" | "publication" | "publication.accessibility" | "publication.accessibility.accessModeSufficient" | "publication.accessibility.accessModeSufficient.textual" | "publication.accessibility.accessibilityFeature" | "publication.accessibility.accessibilityFeature.alternativeText" | "publication.accessibility.accessibilityFeature.displayTransformability" | "publication.accessibility.accessibilityFeature.longDescription" | "publication.accessibility.accessibilityFeature.printPageNumbers" | "publication.accessibility.accessibilityFeature.readingOrder" | "publication.accessibility.accessibilityFeature.synchronizedAudioText" | "publication.accessibility.accessibilityFeature.tableOfContents" | "publication.accessibility.accessibilityHazard" | "publication.accessibility.accessibilityHazard.flashing" | "publication.accessibility.accessibilityHazard.motionSimulation" | "publication.accessibility.accessibilityHazard.name" | "publication.accessibility.accessibilityHazard.noFlashing" | "publication.accessibility.accessibilityHazard.noMotionSimulation" | "publication.accessibility.accessibilityHazard.noSound" | "publication.accessibility.accessibilityHazard.none" | "publication.accessibility.accessibilityHazard.sound" | "publication.accessibility.accessibilityHazard.unknown" | "publication.accessibility.certifierReport" | "publication.accessibility.conformsTo" | "publication.accessibility.moreInformation" | "publication.accessibility.name" | "publication.accessibility.noA11y" | "publication.actions" | "publication.audio" | "publication.audio.tracks" | "publication.author" | "publication.cancelledLcp" | "publication.certificateRevoked" | "publication.certificateSignatureInvalid" | "publication.cover" | "publication.cover.img" | "publication.day" | "publication.days" | "publication.duration" | "publication.duration.title" | "publication.encryptedNoLicense" | "publication.expired" | "publication.expiredLcp" | "publication.incorrectPassphrase" | "publication.lcpEnd" | "publication.lcpRightsCopy" | "publication.lcpRightsPrint" | "publication.lcpStart" | "publication.licenceLCP" | "publication.licenseOutOfDate" | "publication.licenseSignatureDateInvalid" | "publication.licenseSignatureInvalid" | "publication.licensed" | "publication.markAsRead" | "publication.notStarted" | "publication.onGoing" | "publication.progression" | "publication.progression.title" | "publication.read" | "publication.remainingTime" | "publication.renewButton" | "publication.returnButton" | "publication.returnedLcp" | "publication.revokedLcp" | "publication.seeLess" | "publication.seeMore" | "publication.timeLeft" | "publication.title" | "publication.userKeyCheckInvalid" | "reader" | "reader.annotations" | "reader.annotations.Color" | "reader.annotations.addNote" | "reader.annotations.advancedMode" | "reader.annotations.annotationsExport" | "reader.annotations.annotationsExport.description" | "reader.annotations.annotationsExport.title" | "reader.annotations.annotationsOptions" | "reader.annotations.colors" | "reader.annotations.colors.bluegreen" | "reader.annotations.colors.cyan" | "reader.annotations.colors.green" | "reader.annotations.colors.lightblue" | "reader.annotations.colors.orange" | "reader.annotations.colors.purple" | "reader.annotations.colors.red" | "reader.annotations.colors.yellow" | "reader.annotations.filter" | "reader.annotations.filter.all" | "reader.annotations.filter.filterByColor" | "reader.annotations.filter.filterByCreator" | "reader.annotations.filter.filterByDrawtype" | "reader.annotations.filter.filterByTag" | "reader.annotations.filter.filterOptions" | "reader.annotations.filter.none" | "reader.annotations.hide" | "reader.annotations.highlight" | "reader.annotations.noSelectionToast" | "reader.annotations.quickAnnotations" | "reader.annotations.saveNote" | "reader.annotations.sorting" | "reader.annotations.sorting.lastcreated" | "reader.annotations.sorting.lastmodified" | "reader.annotations.sorting.progression" | "reader.annotations.sorting.sortingOptions" | "reader.annotations.toggleMarginMarks" | "reader.annotations.type" | "reader.annotations.type.outline" | "reader.annotations.type.solid" | "reader.annotations.type.strikethrough" | "reader.annotations.type.underline" | "reader.divina" | "reader.divina.mute" | "reader.divina.unmute" | "reader.fxl" | "reader.fxl.fit" | "reader.marks" | "reader.marks.annotations" | "reader.marks.bookmarks" | "reader.marks.delete" | "reader.marks.edit" | "reader.marks.goTo" | "reader.marks.landmarks" | "reader.marks.saveMark" | "reader.marks.search" | "reader.marks.searchResult" | "reader.marks.toc" | "reader.media-overlays" | "reader.media-overlays.activate" | "reader.media-overlays.captions" | "reader.media-overlays.captionsDescription" | "reader.media-overlays.next" | "reader.media-overlays.pause" | "reader.media-overlays.play" | "reader.media-overlays.previous" | "reader.media-overlays.skip" | "reader.media-overlays.skipDescription" | "reader.media-overlays.speed" | "reader.media-overlays.stop" | "reader.media-overlays.title" | "reader.navigation" | "reader.navigation.annotationTitle" | "reader.navigation.backHomeTitle" | "reader.navigation.bookmarkTitle" | "reader.navigation.currentPage" | "reader.navigation.currentPageTotal" | "reader.navigation.detachWindowTitle" | "reader.navigation.fullscreenTitle" | "reader.navigation.goTo" | "reader.navigation.goToError" | "reader.navigation.goToPlaceHolder" | "reader.navigation.goToTitle" | "reader.navigation.historyNext" | "reader.navigation.historyPrevious" | "reader.navigation.infoTitle" | "reader.navigation.magnifyingGlassButton" | "reader.navigation.openTableOfContentsTitle" | "reader.navigation.page" | "reader.navigation.pdfscalemode" | "reader.navigation.settingsTitle" | "reader.picker" | "reader.picker.search" | "reader.picker.search.founds" | "reader.picker.search.input" | "reader.picker.search.next" | "reader.picker.search.notFound" | "reader.picker.search.previous" | "reader.picker.search.results" | "reader.picker.search.submit" | "reader.picker.searchTitle" | "reader.settings" | "reader.settings.column" | "reader.settings.column.auto" | "reader.settings.column.one" | "reader.settings.column.title" | "reader.settings.column.two" | "reader.settings.customFontSelected" | "reader.settings.customizeReader" | "reader.settings.disabled" | "reader.settings.display" | "reader.settings.disposition" | "reader.settings.disposition.title" | "reader.settings.font" | "reader.settings.fontSize" | "reader.settings.infoCustomFont" | "reader.settings.justification" | "reader.settings.justify" | "reader.settings.letterSpacing" | "reader.settings.lineSpacing" | "reader.settings.margin" | "reader.settings.noFootnotes" | "reader.settings.noRTLFlip" | "reader.settings.noRuby" | "reader.settings.paginated" | "reader.settings.paraSpacing" | "reader.settings.pdfZoom" | "reader.settings.pdfZoom.name" | "reader.settings.pdfZoom.name.100pct" | "reader.settings.pdfZoom.name.150pct" | "reader.settings.pdfZoom.name.200pct" | "reader.settings.pdfZoom.name.300pct" | "reader.settings.pdfZoom.name.500pct" | "reader.settings.pdfZoom.name.50pct" | "reader.settings.pdfZoom.name.fit" | "reader.settings.pdfZoom.name.width" | "reader.settings.pdfZoom.title" | "reader.settings.preset" | "reader.settings.preset.apply" | "reader.settings.preset.applyDetails" | "reader.settings.preset.reset" | "reader.settings.preset.resetDetails" | "reader.settings.preset.save" | "reader.settings.preset.saveDetails" | "reader.settings.preset.title" | "reader.settings.preset.detail" | "reader.settings.preview" | "reader.settings.reduceMotion" | "reader.settings.scrolled" | "reader.settings.spacing" | "reader.settings.text" | "reader.settings.theme" | "reader.settings.theme.name" | "reader.settings.theme.name.Contrast1" | "reader.settings.theme.name.Contrast2" | "reader.settings.theme.name.Contrast3" | "reader.settings.theme.name.Contrast4" | "reader.settings.theme.name.Neutral" | "reader.settings.theme.name.Night" | "reader.settings.theme.name.Paper" | "reader.settings.theme.name.Sepia" | "reader.settings.theme.title" | "reader.settings.wordSpacing" | "reader.svg" | "reader.svg.left" | "reader.svg.right" | "reader.toc" | "reader.toc.publicationNoToc" | "reader.tts" | "reader.tts.activate" | "reader.tts.default" | "reader.tts.next" | "reader.tts.pause" | "reader.tts.play" | "reader.tts.previous" | "reader.tts.sentenceDetect" | "reader.tts.sentenceDetectDescription" | "reader.tts.speed" | "reader.tts.stop" | "reader.tts.voice" | "settings" | "settings.annotationCreator" | "settings.annotationCreator.creator" | "settings.annotationCreator.name" | "settings.annotationCreator.organization" | "settings.annotationCreator.person" | "settings.annotationCreator.type" | "settings.auth" | "settings.auth.title" | "settings.auth.wipeData" | "settings.keyboard" | "settings.keyboard.advancedMenu" | "settings.keyboard.cancel" | "settings.keyboard.disclaimer" | "settings.keyboard.editUserJson" | "settings.keyboard.keyboardShortcuts" | "settings.keyboard.loadUserJson" | "settings.keyboard.resetDefaults" | "settings.keyboard.save" | "settings.language" | "settings.language.languageChoice" | "settings.library" | "settings.library.enableAPIAPP" | "settings.library.title" | "settings.session" | "settings.session.title" | "settings.tabs" | "settings.tabs.appearance" | "settings.tabs.general" | "settings.tabs.keyboardShortcuts" | "settings.theme" | "settings.theme.auto" | "settings.theme.dark" | "settings.theme.description" | "settings.theme.light" | "settings.theme.title" | "wizard" | "wizard.buttons" | "wizard.buttons.discover" | "wizard.buttons.goToBooks" | "wizard.buttons.next" | "wizard.description" | "wizard.description.annotations" | "wizard.description.catalogs" | "wizard.description.home" | "wizard.description.readingView1" | "wizard.description.readingView2" | "wizard.description.yourBooks" | "wizard.dontShow" | "wizard.tab" | "wizard.tab.annotations" | "wizard.tab.catalogs" | "wizard.tab.home" | "wizard.tab.readingView" | "wizard.tab.yourBooks" | "wizard.title" | "wizard.title.allBooks" | "wizard.title.newFeature" | "wizard.title.welcome"; } export = typed_i18n_keys; \ No newline at end of file diff --git a/src/typings/en.translation.d.ts b/src/typings/en.translation.d.ts index 59f5f0e10..a251c6e74 100644 --- a/src/typings/en.translation.d.ts +++ b/src/typings/en.translation.d.ts @@ -906,7 +906,8 @@ declare namespace typed_i18n { readonly "resetDetails": string, readonly "save": string, readonly "saveDetails": string, - readonly "title": string + readonly "title": string, + readonly "detail": string }, readonly "preview": string, readonly "reduceMotion": string, @@ -1225,7 +1226,8 @@ declare namespace typed_i18n { readonly "resetDetails": string, readonly "save": string, readonly "saveDetails": string, - readonly "title": string + readonly "title": string, + readonly "detail": string }, readonly "preview": string, readonly "reduceMotion": string, @@ -1315,7 +1317,8 @@ declare namespace typed_i18n { readonly "resetDetails": string, readonly "save": string, readonly "saveDetails": string, - readonly "title": string + readonly "title": string, + readonly "detail": string }; (_: "reader.settings.preset.apply", __?: {}): string; (_: "reader.settings.preset.applyDetails", __?: {}): string; @@ -1324,6 +1327,7 @@ declare namespace typed_i18n { (_: "reader.settings.preset.save", __?: {}): string; (_: "reader.settings.preset.saveDetails", __?: {}): string; (_: "reader.settings.preset.title", __?: {}): string; + (_: "reader.settings.preset.detail", __?: {}): string; (_: "reader.settings.preview", __?: {}): string; (_: "reader.settings.reduceMotion", __?: {}): string; (_: "reader.settings.scrolled", __?: {}): string;