@edrlab/thorium-web 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/{chunk-D24O64OP.mjs → chunk-2JHEFF46.mjs} +123 -105
  2. package/dist/chunk-2JHEFF46.mjs.map +1 -0
  3. package/dist/chunk-B3WDMWCT.mjs +9 -0
  4. package/dist/chunk-B3WDMWCT.mjs.map +1 -0
  5. package/dist/chunk-EY4D4BZN.mjs +35 -0
  6. package/dist/chunk-EY4D4BZN.mjs.map +1 -0
  7. package/dist/{chunk-SPAC7T57.mjs → chunk-IRA4ZKAX.mjs} +10 -2
  8. package/dist/chunk-IRA4ZKAX.mjs.map +1 -0
  9. package/dist/chunk-IYAFKTPL.mjs +69 -0
  10. package/dist/chunk-IYAFKTPL.mjs.map +1 -0
  11. package/dist/{chunk-OWJCESNF.mjs → chunk-VETE7ULS.mjs} +16 -17
  12. package/dist/chunk-VETE7ULS.mjs.map +1 -0
  13. package/dist/components/Epub/index.mjs +11 -10
  14. package/dist/components/Epub/index.mjs.map +1 -1
  15. package/dist/components/Misc/index.mjs +2 -1
  16. package/dist/components/Misc/index.mjs.map +1 -1
  17. package/dist/components/WebPub/index.mjs +10 -9
  18. package/dist/components/WebPub/index.mjs.map +1 -1
  19. package/dist/core/Hooks/index.mjs +1 -1
  20. package/dist/i18n/index.d.mts +3 -3
  21. package/dist/i18n/index.mjs +4 -3
  22. package/dist/locales/ar/thorium-shared.json +10 -0
  23. package/dist/locales/ar/thorium-web.json +0 -10
  24. package/dist/locales/da/thorium-shared.json +138 -0
  25. package/dist/locales/da/thorium-web.json +16 -153
  26. package/dist/locales/el/thorium-web.json +12 -0
  27. package/dist/locales/en/thorium-shared.json +230 -0
  28. package/dist/locales/en/thorium-web.json +4 -141
  29. package/dist/locales/et/thorium-shared.json +38 -0
  30. package/dist/locales/et/thorium-web.json +95 -1
  31. package/dist/locales/fi/thorium-shared.json +189 -0
  32. package/dist/locales/fi/thorium-web.json +4 -141
  33. package/dist/locales/fr/thorium-shared.json +151 -0
  34. package/dist/locales/fr/thorium-web.json +2 -166
  35. package/dist/locales/it/thorium-shared.json +180 -0
  36. package/dist/locales/it/thorium-web.json +95 -1
  37. package/dist/locales/lt/thorium-shared.json +180 -0
  38. package/dist/locales/lt/thorium-web.json +13 -150
  39. package/dist/locales/pl/thorium-shared.json +122 -0
  40. package/dist/locales/pl/thorium-web.json +5 -169
  41. package/dist/locales/pt-BR/thorium-shared.json +180 -0
  42. package/dist/locales/pt-BR/thorium-web.json +2 -126
  43. package/dist/locales/pt-PT/thorium-shared.json +180 -0
  44. package/dist/locales/pt-PT/thorium-web.json +5 -142
  45. package/dist/locales/sv/thorium-shared.json +178 -0
  46. package/dist/locales/sv/thorium-web.json +18 -155
  47. package/dist/locales/ta/thorium-shared.json +120 -0
  48. package/dist/locales/ta/thorium-web.json +2 -126
  49. package/dist/locales/tr/thorium-shared.json +69 -0
  50. package/dist/preferences/index.mjs +2 -1
  51. package/package.json +7 -3
  52. package/dist/chunk-D24O64OP.mjs.map +0 -1
  53. package/dist/chunk-FG6BJGVE.mjs +0 -64
  54. package/dist/chunk-FG6BJGVE.mjs.map +0 -1
  55. package/dist/chunk-KKJA56IZ.mjs +0 -27
  56. package/dist/chunk-KKJA56IZ.mjs.map +0 -1
  57. package/dist/chunk-OWJCESNF.mjs.map +0 -1
  58. package/dist/chunk-SPAC7T57.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/WebPub/StatefulReader.tsx"],"names":["timeline"],"mappings":"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","file":"index.mjs","sourcesContent":["\"use client\";\n\nimport { useState, useEffect, useRef, useCallback } from \"react\";\n\nimport { defaultFontFamilyOptions, ThemeKeyType, useTheming } from \"../../preferences\";\n\nimport readerStyles from \"../assets/styles/thorium-web.reader.app.module.css\";\n\nimport { StatefulReaderProps } from \"../Epub/StatefulReader\";\n\nimport { \n ThActionsKeys, \n ThLayoutUI,\n ThDocumentTitleFormat,\n ThProgressionFormat, \n ThThemeKeys,\n ThLineHeightOptions,\n ThTextAlignOptions,\n ThSpacingSettingsKeys\n} from \"@/preferences/models/enums\";\n\nimport { ThPluginRegistry } from \"../Plugins/PluginRegistry\";\n\nimport { I18nProvider } from \"react-aria\";\nimport { ThPluginProvider } from \"../Plugins/PluginProvider\";\nimport { NavigatorProvider } from \"@/core/Navigator\";\n\nimport {\n BasicTextSelection,\n FrameClickEvent,\n} from \"@readium/navigator-html-injectables\";\nimport { IWebPubPreferences, TextAlignment, WebPubNavigatorListeners } from \"@readium/navigator\";\nimport { \n Locator, \n Manifest, \n Publication, \n Fetcher, \n HttpFetcher, \n ReadingProgression,\n Feature\n} from \"@readium/shared\";\n\nimport { StatefulDockingWrapper } from \"../Docking/StatefulDockingWrapper\";\nimport { StatefulReaderHeader } from \"../StatefulReaderHeader\";\nimport { StatefulReaderFooter } from \"../StatefulReaderFooter\";\n\nimport { usePreferences } from \"@/preferences/hooks/usePreferences\";\nimport { useWebPubNavigator } from \"@/core/Hooks/WebPub\";\nimport { useFullscreen } from \"@/core/Hooks/useFullscreen\";\nimport { useI18n } from \"@/i18n/useI18n\";\nimport { useTimeline } from \"@/core/Hooks/useTimeline\";\nimport { useLocalStorage } from \"@/core/Hooks/useLocalStorage\";\nimport { useDocumentTitle } from \"@/core/Hooks/useDocumentTitle\";\nimport { useSpacingPresets } from \"../Settings/Spacing/hooks/useSpacingPresets\";\nimport { useLineHeight } from \"../Settings/Spacing/hooks/useLineHeight\";\n\nimport { toggleActionOpen } from \"@/lib/actionsReducer\";\nimport { useAppSelector, useAppDispatch, useAppStore } from \"@/lib/hooks\";\nimport { \n setBreakpoint, \n setColorScheme, \n setContrast, \n setForcedColors, \n setMonochrome, \n setReducedMotion, \n setReducedTransparency \n} from \"@/lib/themeReducer\";\nimport { \n setLoading,\n setHovering, \n toggleImmersive, \n setPlatformModifier, \n setDirection, \n setFullscreen,\n setReaderProfile\n} from \"@/lib/readerReducer\";\nimport { \n setRTL, \n setTimeline,\n setPublicationStart,\n setPublicationEnd,\n setHasDisplayTransformability\n} from \"@/lib/publicationReducer\";\n\nimport classNames from \"classnames\";\nimport { createDefaultPlugin } from \"../Plugins/helpers/createDefaultPlugin\";\nimport Peripherals from \"../../helpers/peripherals\";\nimport { getPlatformModifier } from \"@/core/Helpers/keyboardUtilities\";\nimport { propsToCSSVars } from \"@/core/Helpers/propsToCSSVars\";\nimport { getReaderClassNames } from \"../Helpers/getReaderClassNames\";\nimport { prefixString } from \"@/core/Helpers/prefixString\";\n\nexport interface WebPubCSSSettings {\n fontFamily: keyof typeof defaultFontFamilyOptions | null;\n fontWeight: number;\n hyphens: boolean | null;\n letterSpacing: number | null;\n lineHeight: ThLineHeightOptions | null;\n paragraphIndent: number | null;\n paragraphSpacing: number | null;\n publisherStyles: boolean;\n textAlign: ThTextAlignOptions | null;\n textNormalization: boolean;\n wordSpacing: number | null;\n zoom: number;\n}\n\nexport interface WebPubStatelessCache {\n settings: WebPubCSSSettings;\n}\n\nexport const ExperimentalWebPubStatefulReader = ({\n rawManifest,\n selfHref,\n plugins\n}: StatefulReaderProps) => {\n const [pluginsRegistered, setPluginsRegistered] = useState(false);\n\n useEffect(() => {\n if (plugins && plugins.length > 0) {\n plugins.forEach(plugin => {\n ThPluginRegistry.register(plugin);\n });\n } else {\n ThPluginRegistry.register(createDefaultPlugin());\n }\n setPluginsRegistered(true);\n }, [plugins]);\n\n if (!pluginsRegistered) {\n return null;\n }\n\n return (\n <>\n <ThPluginProvider>\n <WebPubStatefulReaderInner rawManifest={ rawManifest } selfHref={ selfHref } />\n </ThPluginProvider>\n </>\n );\n};\n\nconst WebPubStatefulReaderInner = ({ rawManifest, selfHref }: { rawManifest: object; selfHref: string }) => {\n\n const { preferences } = usePreferences();\n const { t } = useI18n();\n const { getEffectiveSpacingValue } = useSpacingPresets();\n\n const [publication, setPublication] = useState<Publication | null>(null);\n\n const container = useRef<HTMLDivElement>(null);\n const localDataKey = useRef(`${selfHref}-current-location`);\n\n const textAlign = useAppSelector(state => state.webPubSettings.textAlign);\n const fontFamily = useAppSelector(state => state.webPubSettings.fontFamily);\n const fontWeight = useAppSelector(state => state.webPubSettings.fontWeight);\n const hyphens = useAppSelector(state => state.webPubSettings.hyphens);\n const letterSpacing = getEffectiveSpacingValue(ThSpacingSettingsKeys.letterSpacing);\n const lineHeight = getEffectiveSpacingValue(ThSpacingSettingsKeys.lineHeight);\n const paragraphIndent = getEffectiveSpacingValue(ThSpacingSettingsKeys.paragraphIndent);\n const paragraphSpacing = getEffectiveSpacingValue(ThSpacingSettingsKeys.paragraphSpacing);\n const publisherStyles = useAppSelector(state => state.webPubSettings.publisherStyles);\n const textNormalization = useAppSelector(state => state.webPubSettings.textNormalization);\n const wordSpacing = getEffectiveSpacingValue(ThSpacingSettingsKeys.wordSpacing);\n const theme = ThThemeKeys.light;\n const zoom = useAppSelector(state => state.webPubSettings.zoom);\n const isImmersive = useAppSelector(state => state.reader.isImmersive);\n const isHovering = useAppSelector(state => state.reader.isHovering);\n\n const layoutUI = preferences.theming.layout.ui?.webPub || ThLayoutUI.stacked;\n\n // Init theming (breakpoints, theme, media queries…)\n useTheming<ThemeKeyType>({ \n theme: theme,\n themeKeys: preferences.theming.themes.keys,\n systemKeys: preferences.theming.themes.systemThemes,\n breakpointsMap: preferences.theming.breakpoints,\n initProps: {\n ...propsToCSSVars(preferences.theming.arrow, { prefix: prefixString(\"arrow\") }), \n ...propsToCSSVars(preferences.theming.icon, { prefix: prefixString(\"icon\") }),\n ...propsToCSSVars(preferences.theming.layout, { \n prefix: prefixString(\"layout\"),\n exclude: [\"ui\"]\n })\n },\n onBreakpointChange: (breakpoint) => dispatch(setBreakpoint(breakpoint)),\n onColorSchemeChange: (colorScheme) => dispatch(setColorScheme(colorScheme)),\n onContrastChange: (contrast) => dispatch(setContrast(contrast)),\n onForcedColorsChange: (forcedColors) => dispatch(setForcedColors(forcedColors)),\n onMonochromeChange: (isMonochrome) => dispatch(setMonochrome(isMonochrome)),\n onReducedMotionChange: (reducedMotion) => dispatch(setReducedMotion(reducedMotion)),\n onReducedTransparencyChange: (reducedTransparency) => dispatch(setReducedTransparency(reducedTransparency))\n });\n\n const dispatch = useAppDispatch();\n\n const onFsChange = useCallback((isFullscreen: boolean) => {\n dispatch(setFullscreen(isFullscreen));\n }, [dispatch]);\n const fs = useFullscreen(onFsChange);\n\n const webPubNavigator = useWebPubNavigator();\n const { \n WebPubNavigatorLoad, \n WebPubNavigatorDestroy,\n currentPositions,\n canGoBackward,\n canGoForward,\n } = webPubNavigator;\n\n const { setLocalData, getLocalData, localData } = useLocalStorage(localDataKey.current);\n\n const timeline = useTimeline({\n publication: publication,\n currentLocation: localData,\n currentPositions: currentPositions() || [],\n positionsList: undefined,\n onChange: (timeline) => {\n dispatch(setTimeline(timeline));\n }\n });\n\n const lineHeightOptions = useLineHeight();\n\n const documentTitleFormat = preferences.metadata?.documentTitle?.format;\n\n let documentTitle: string | undefined;\n\n if (documentTitleFormat) {\n if (typeof documentTitleFormat === \"object\" && \"key\" in documentTitleFormat) {\n const translatedTitle = t(documentTitleFormat.key);\n documentTitle = translatedTitle !== documentTitleFormat.key \n ? translatedTitle \n : documentTitleFormat.fallback;\n } else {\n switch (documentTitleFormat) {\n case ThDocumentTitleFormat.title:\n documentTitle = timeline?.title;\n break;\n case ThDocumentTitleFormat.chapter:\n documentTitle = timeline?.progression?.currentChapter;\n break;\n case ThDocumentTitleFormat.titleAndChapter:\n if (timeline?.title && timeline?.progression?.currentChapter) {\n documentTitle = `${ timeline.title } – ${ timeline.progression.currentChapter }`;\n }\n break;\n case ThDocumentTitleFormat.none:\n documentTitle = undefined;\n break;\n default: \n documentTitle = documentTitleFormat;\n break;\n }\n }\n }\n\n useDocumentTitle(documentTitle);\n\n const cache = useRef<WebPubStatelessCache>({\n settings: {\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n hyphens: hyphens,\n letterSpacing: letterSpacing,\n lineHeight: lineHeight,\n paragraphIndent: paragraphIndent,\n paragraphSpacing: paragraphSpacing,\n publisherStyles: publisherStyles,\n textAlign: textAlign,\n textNormalization: textNormalization,\n wordSpacing: wordSpacing,\n zoom: zoom\n }\n });\n\n const toggleIsImmersive = useCallback(() => {\n // If tap/click in iframe, then header/footer no longer hoovering \n dispatch(setHovering(false));\n dispatch(toggleImmersive());\n }, [dispatch]);\n\n const p = new Peripherals(useAppStore(), preferences.actions, {\n moveTo: () => {},\n goProgression: () => {},\n toggleAction: (actionKey) => {\n switch (actionKey) {\n case ThActionsKeys.fullscreen:\n fs.handleFullscreen();\n break;\n case ThActionsKeys.settings:\n case ThActionsKeys.toc:\n dispatch(toggleActionOpen({\n key: actionKey\n }))\n break;\n default:\n break\n }\n }\n });\n\n const listeners: WebPubNavigatorListeners = {\n frameLoaded: async function (_wnd: Window): Promise<void> {\n p.observe(window);\n },\n positionChanged: async function (locator: Locator): Promise<void> {\n setLocalData(locator)\n\n if (canGoBackward()) {\n dispatch(setPublicationStart(false));\n } else {\n dispatch(setPublicationStart(true));\n }\n\n if (canGoForward()) {\n dispatch(setPublicationEnd(false));\n } else {\n dispatch(setPublicationEnd(true));\n }\n },\n tap: function (_e: FrameClickEvent): boolean {\n toggleIsImmersive();\n return true;\n },\n click: function (_e: FrameClickEvent): boolean {\n return false;\n },\n zoom: function (_scale: number): void { },\n scroll: function (_delta: number): void { },\n customEvent: function (_key: string, _data: unknown): void { },\n handleLocator: function (locator: Locator): boolean {\n const href = locator.href;\n\n if (\n href.startsWith(\"http://\") ||\n href.startsWith(\"https://\") ||\n href.startsWith(\"mailto:\") ||\n href.startsWith(\"tel:\")\n ) {\n if (confirm(`Open \"${href}\" ?`)) window.open(href, \"_blank\");\n } else {\n console.warn(\"Unhandled locator\", locator);\n }\n return false;\n },\n textSelected: function (_selection: BasicTextSelection): void {},\n };\n\n useEffect(() => {\n cache.current.settings.fontFamily = fontFamily;\n }, [fontFamily]);\n useEffect(() => {\n cache.current.settings.fontWeight = fontWeight;\n }, [fontWeight]);\n useEffect(() => {\n cache.current.settings.hyphens = hyphens;\n }, [hyphens]);\n useEffect(() => {\n cache.current.settings.letterSpacing = letterSpacing;\n }, [letterSpacing]);\n useEffect(() => {\n cache.current.settings.lineHeight = lineHeight;\n }, [lineHeight]);\n useEffect(() => {\n cache.current.settings.paragraphIndent = paragraphIndent;\n }, [paragraphIndent]);\n useEffect(() => {\n cache.current.settings.paragraphSpacing = paragraphSpacing;\n }, [paragraphSpacing]);\n useEffect(() => {\n cache.current.settings.textAlign = textAlign;\n }, [textAlign]);\n\n useEffect(() => {\n cache.current.settings.textNormalization = textNormalization;\n }, [textNormalization]);\n useEffect(() => {\n cache.current.settings.wordSpacing = wordSpacing;\n }, [wordSpacing]);\n useEffect(() => {\n cache.current.settings.zoom = zoom;\n }, [zoom]);\n\n useEffect(() => {\n preferences.direction && dispatch(setDirection(preferences.direction));\n dispatch(setPlatformModifier(getPlatformModifier()));\n }, [preferences.direction, dispatch]);\n\n useEffect(() => {\n const fetcher: Fetcher = new HttpFetcher(undefined, selfHref);\n const manifest = Manifest.deserialize(rawManifest)!;\n manifest.setSelfLink(selfHref);\n\n setPublication(new Publication({\n manifest: manifest,\n fetcher: fetcher\n }));\n\n dispatch(setReaderProfile(\"webPub\"));\n }, [rawManifest, selfHref, dispatch]);\n\n useEffect(() => {\n if (!publication) return;\n\n dispatch(setRTL(publication.metadata.effectiveReadingProgression === ReadingProgression.rtl));\n\n const displayTransformability = publication.metadata.accessibility?.feature?.some(feature => feature && feature.value === Feature.DISPLAY_TRANSFORMABILITY.value);\n dispatch(setHasDisplayTransformability(displayTransformability));\n\n const initialPosition: Locator | null = getLocalData();\n\n const webPubPreferences: IWebPubPreferences = {\n zoom: cache.current.settings.zoom\n };\n\n if (displayTransformability) {\n webPubPreferences.fontFamily = cache.current.settings.fontFamily && defaultFontFamilyOptions[cache.current.settings.fontFamily];\n webPubPreferences.fontWeight = cache.current.settings.fontWeight;\n webPubPreferences.hyphens = cache.current.settings.hyphens;\n webPubPreferences.letterSpacing = cache.current.settings.letterSpacing;\n webPubPreferences.lineHeight = cache.current.settings.lineHeight === null \n ? null \n : lineHeightOptions[cache.current.settings.lineHeight];\n webPubPreferences.paragraphIndent = cache.current.settings.paragraphIndent;\n webPubPreferences.paragraphSpacing = cache.current.settings.paragraphSpacing;\n webPubPreferences.textAlign = cache.current.settings.textAlign as TextAlignment | null | undefined;\n webPubPreferences.textNormalization = cache.current.settings.textNormalization;\n webPubPreferences.wordSpacing = cache.current.settings.wordSpacing;\n }\n\n WebPubNavigatorLoad({\n container: container.current,\n publication: publication,\n listeners: listeners,\n initialPosition: initialPosition ? new Locator(initialPosition) : undefined,\n preferences: webPubPreferences,\n defaults: {\n experiments: preferences.experiments?.webPub || null\n }\n }, () => {\n p.observe(window);\n });\n\n dispatch(setLoading(false));\n\n return () => {\n WebPubNavigatorDestroy(() => {\n p.destroy();\n });\n };\n }, [publication, preferences]);\n\n return (\n <>\n <I18nProvider locale={ preferences.locale }>\n <NavigatorProvider navigator={ webPubNavigator }>\n <main className={ readerStyles.main }>\n <StatefulDockingWrapper>\n <div \n className={ \n classNames(\n getReaderClassNames({\n isScroll: true,\n isImmersive,\n isHovering,\n layoutUI\n })\n )\n }\n >\n <StatefulReaderHeader \n actionKeys={ preferences.actions.webPubOrder }\n actionsOrder={ preferences.actions.webPubOrder }\n layout={ layoutUI } \n runningHeadFormatPref={ preferences.theming.header?.runningHead?.format?.webPub }\n />\n\n <article className={ readerStyles.wrapper } aria-label={ t(\"reader.app.publicationWrapper\") }>\n <div id=\"thorium-web-container\" className={ readerStyles.iframeContainer } ref={ container }></div>\n </article>\n\n <StatefulReaderFooter \n layout={ layoutUI } \n progressionFormatPref={ preferences.theming.progression?.format?.webPub }\n progressionFormatFallback={ ThProgressionFormat.readingOrderIndex }\n />\n </div>\n </StatefulDockingWrapper>\n </main>\n </NavigatorProvider>\n </I18nProvider>\n </>\n)};"]}
1
+ {"version":3,"sources":["../../../src/components/WebPub/StatefulReader.tsx"],"names":["timeline"],"mappings":"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","file":"index.mjs","sourcesContent":["\"use client\";\n\nimport { useState, useEffect, useRef, useCallback } from \"react\";\n\nimport { defaultFontFamilyOptions, ThemeKeyType, useTheming } from \"../../preferences\";\n\nimport readerStyles from \"../assets/styles/thorium-web.reader.app.module.css\";\n\nimport { StatefulReaderProps } from \"../Epub/StatefulReader\";\n\nimport { \n ThActionsKeys, \n ThLayoutUI,\n ThDocumentTitleFormat,\n ThProgressionFormat, \n ThThemeKeys,\n ThLineHeightOptions,\n ThTextAlignOptions,\n ThSpacingSettingsKeys\n} from \"@/preferences/models/enums\";\n\nimport { ThPluginRegistry } from \"../Plugins/PluginRegistry\";\n\nimport { I18nProvider } from \"react-aria\";\nimport { ThPluginProvider } from \"../Plugins/PluginProvider\";\nimport { NavigatorProvider } from \"@/core/Navigator\";\n\nimport {\n BasicTextSelection,\n FrameClickEvent,\n} from \"@readium/navigator-html-injectables\";\nimport { IWebPubPreferences, TextAlignment, WebPubNavigatorListeners } from \"@readium/navigator\";\nimport { \n Locator, \n Manifest, \n Publication, \n Fetcher, \n HttpFetcher, \n ReadingProgression,\n Feature\n} from \"@readium/shared\";\n\nimport { StatefulDockingWrapper } from \"../Docking/StatefulDockingWrapper\";\nimport { StatefulReaderHeader } from \"../StatefulReaderHeader\";\nimport { StatefulReaderFooter } from \"../StatefulReaderFooter\";\n\nimport { usePreferences } from \"@/preferences/hooks/usePreferences\";\nimport { useWebPubNavigator } from \"@/core/Hooks/WebPub\";\nimport { useFullscreen } from \"@/core/Hooks/useFullscreen\";\nimport { useI18n } from \"@/i18n/useI18n\";\nimport { useTimeline } from \"@/core/Hooks/useTimeline\";\nimport { useLocalStorage } from \"@/core/Hooks/useLocalStorage\";\nimport { useDocumentTitle } from \"@/core/Hooks/useDocumentTitle\";\nimport { useSpacingPresets } from \"../Settings/Spacing/hooks/useSpacingPresets\";\nimport { useLineHeight } from \"../Settings/Spacing/hooks/useLineHeight\";\n\nimport { toggleActionOpen } from \"@/lib/actionsReducer\";\nimport { useAppSelector, useAppDispatch, useAppStore } from \"@/lib/hooks\";\nimport { \n setBreakpoint, \n setColorScheme, \n setContrast, \n setForcedColors, \n setMonochrome, \n setReducedMotion, \n setReducedTransparency \n} from \"@/lib/themeReducer\";\nimport { \n setLoading,\n setHovering, \n toggleImmersive, \n setPlatformModifier, \n setDirection, \n setFullscreen,\n setReaderProfile\n} from \"@/lib/readerReducer\";\nimport { \n setRTL, \n setTimeline,\n setPublicationStart,\n setPublicationEnd,\n setHasDisplayTransformability\n} from \"@/lib/publicationReducer\";\n\nimport classNames from \"classnames\";\nimport { createDefaultPlugin } from \"../Plugins/helpers/createDefaultPlugin\";\nimport Peripherals from \"../../helpers/peripherals\";\nimport { getPlatformModifier } from \"@/core/Helpers/keyboardUtilities\";\nimport { propsToCSSVars } from \"@/core/Helpers/propsToCSSVars\";\nimport { getReaderClassNames } from \"../Helpers/getReaderClassNames\";\nimport { prefixString } from \"@/core/Helpers/prefixString\";\n\nexport interface WebPubCSSSettings {\n fontFamily: keyof typeof defaultFontFamilyOptions | null;\n fontWeight: number;\n hyphens: boolean | null;\n letterSpacing: number | null;\n lineHeight: ThLineHeightOptions | null;\n paragraphIndent: number | null;\n paragraphSpacing: number | null;\n publisherStyles: boolean;\n textAlign: ThTextAlignOptions | null;\n textNormalization: boolean;\n wordSpacing: number | null;\n zoom: number;\n}\n\nexport interface WebPubStatelessCache {\n settings: WebPubCSSSettings;\n}\n\nexport const ExperimentalWebPubStatefulReader = ({\n rawManifest,\n selfHref,\n plugins\n}: StatefulReaderProps) => {\n const [pluginsRegistered, setPluginsRegistered] = useState(false);\n\n useEffect(() => {\n if (plugins && plugins.length > 0) {\n plugins.forEach(plugin => {\n ThPluginRegistry.register(plugin);\n });\n } else {\n ThPluginRegistry.register(createDefaultPlugin());\n }\n setPluginsRegistered(true);\n }, [plugins]);\n\n if (!pluginsRegistered) {\n return null;\n }\n\n return (\n <>\n <ThPluginProvider>\n <WebPubStatefulReaderInner rawManifest={ rawManifest } selfHref={ selfHref } />\n </ThPluginProvider>\n </>\n );\n};\n\nconst WebPubStatefulReaderInner = ({ rawManifest, selfHref }: { rawManifest: object; selfHref: string }) => {\n\n const { preferences } = usePreferences();\n const { t } = useI18n();\n const { getEffectiveSpacingValue } = useSpacingPresets();\n\n const [publication, setPublication] = useState<Publication | null>(null);\n\n const container = useRef<HTMLDivElement>(null);\n const localDataKey = useRef(`${selfHref}-current-location`);\n\n const textAlign = useAppSelector(state => state.webPubSettings.textAlign);\n const fontFamily = useAppSelector(state => state.webPubSettings.fontFamily);\n const fontWeight = useAppSelector(state => state.webPubSettings.fontWeight);\n const hyphens = useAppSelector(state => state.webPubSettings.hyphens);\n const letterSpacing = getEffectiveSpacingValue(ThSpacingSettingsKeys.letterSpacing);\n const lineHeight = getEffectiveSpacingValue(ThSpacingSettingsKeys.lineHeight);\n const paragraphIndent = getEffectiveSpacingValue(ThSpacingSettingsKeys.paragraphIndent);\n const paragraphSpacing = getEffectiveSpacingValue(ThSpacingSettingsKeys.paragraphSpacing);\n const publisherStyles = useAppSelector(state => state.webPubSettings.publisherStyles);\n const textNormalization = useAppSelector(state => state.webPubSettings.textNormalization);\n const wordSpacing = getEffectiveSpacingValue(ThSpacingSettingsKeys.wordSpacing);\n const theme = ThThemeKeys.light;\n const zoom = useAppSelector(state => state.webPubSettings.zoom);\n const isImmersive = useAppSelector(state => state.reader.isImmersive);\n const isHovering = useAppSelector(state => state.reader.isHovering);\n\n const layoutUI = preferences.theming.layout.ui?.webPub || ThLayoutUI.stacked;\n\n // Init theming (breakpoints, theme, media queries…)\n useTheming<ThemeKeyType>({ \n theme: theme,\n themeKeys: preferences.theming.themes.keys,\n systemKeys: preferences.theming.themes.systemThemes,\n breakpointsMap: preferences.theming.breakpoints,\n initProps: {\n ...propsToCSSVars(preferences.theming.arrow, { prefix: prefixString(\"arrow\") }), \n ...propsToCSSVars(preferences.theming.icon, { prefix: prefixString(\"icon\") }),\n ...propsToCSSVars(preferences.theming.layout, { \n prefix: prefixString(\"layout\"),\n exclude: [\"ui\"]\n })\n },\n onBreakpointChange: (breakpoint) => dispatch(setBreakpoint(breakpoint)),\n onColorSchemeChange: (colorScheme) => dispatch(setColorScheme(colorScheme)),\n onContrastChange: (contrast) => dispatch(setContrast(contrast)),\n onForcedColorsChange: (forcedColors) => dispatch(setForcedColors(forcedColors)),\n onMonochromeChange: (isMonochrome) => dispatch(setMonochrome(isMonochrome)),\n onReducedMotionChange: (reducedMotion) => dispatch(setReducedMotion(reducedMotion)),\n onReducedTransparencyChange: (reducedTransparency) => dispatch(setReducedTransparency(reducedTransparency))\n });\n\n const dispatch = useAppDispatch();\n\n const onFsChange = useCallback((isFullscreen: boolean) => {\n dispatch(setFullscreen(isFullscreen));\n }, [dispatch]);\n const fs = useFullscreen(onFsChange);\n\n const webPubNavigator = useWebPubNavigator();\n const { \n WebPubNavigatorLoad, \n WebPubNavigatorDestroy,\n currentPositions,\n canGoBackward,\n canGoForward,\n } = webPubNavigator;\n\n const { setLocalData, getLocalData, localData } = useLocalStorage(localDataKey.current);\n\n const timeline = useTimeline({\n publication: publication,\n currentLocation: localData,\n currentPositions: currentPositions() || [],\n positionsList: undefined,\n onChange: (timeline) => {\n dispatch(setTimeline(timeline));\n }\n });\n\n const lineHeightOptions = useLineHeight();\n\n const documentTitleFormat = preferences.metadata?.documentTitle?.format;\n\n let documentTitle: string | undefined;\n\n if (documentTitleFormat) {\n if (typeof documentTitleFormat === \"object\" && \"key\" in documentTitleFormat) {\n const translatedTitle = t(documentTitleFormat.key);\n documentTitle = translatedTitle !== documentTitleFormat.key \n ? translatedTitle \n : documentTitleFormat.fallback;\n } else {\n switch (documentTitleFormat) {\n case ThDocumentTitleFormat.title:\n documentTitle = timeline?.title;\n break;\n case ThDocumentTitleFormat.chapter:\n documentTitle = timeline?.progression?.currentChapter;\n break;\n case ThDocumentTitleFormat.titleAndChapter:\n if (timeline?.title && timeline?.progression?.currentChapter) {\n documentTitle = `${ timeline.title } – ${ timeline.progression.currentChapter }`;\n }\n break;\n case ThDocumentTitleFormat.none:\n documentTitle = undefined;\n break;\n default: \n documentTitle = documentTitleFormat;\n break;\n }\n }\n }\n\n useDocumentTitle(documentTitle);\n\n const cache = useRef<WebPubStatelessCache>({\n settings: {\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n hyphens: hyphens,\n letterSpacing: letterSpacing,\n lineHeight: lineHeight,\n paragraphIndent: paragraphIndent,\n paragraphSpacing: paragraphSpacing,\n publisherStyles: publisherStyles,\n textAlign: textAlign,\n textNormalization: textNormalization,\n wordSpacing: wordSpacing,\n zoom: zoom\n }\n });\n\n const toggleIsImmersive = useCallback(() => {\n // If tap/click in iframe, then header/footer no longer hoovering \n dispatch(setHovering(false));\n dispatch(toggleImmersive());\n }, [dispatch]);\n\n const p = new Peripherals(useAppStore(), preferences.actions, {\n moveTo: () => {},\n goProgression: () => {},\n toggleAction: (actionKey) => {\n switch (actionKey) {\n case ThActionsKeys.fullscreen:\n fs.handleFullscreen();\n break;\n case ThActionsKeys.settings:\n case ThActionsKeys.toc:\n dispatch(toggleActionOpen({\n key: actionKey\n }))\n break;\n default:\n break\n }\n }\n });\n\n const listeners: WebPubNavigatorListeners = {\n frameLoaded: async function (_wnd: Window): Promise<void> {\n p.observe(window);\n },\n positionChanged: async function (locator: Locator): Promise<void> {\n setLocalData(locator)\n\n if (canGoBackward()) {\n dispatch(setPublicationStart(false));\n } else {\n dispatch(setPublicationStart(true));\n }\n\n if (canGoForward()) {\n dispatch(setPublicationEnd(false));\n } else {\n dispatch(setPublicationEnd(true));\n }\n },\n tap: function (_e: FrameClickEvent): boolean {\n toggleIsImmersive();\n return true;\n },\n click: function (_e: FrameClickEvent): boolean {\n return false;\n },\n zoom: function (_scale: number): void { },\n scroll: function (_delta: number): void { },\n customEvent: function (_key: string, _data: unknown): void { },\n handleLocator: function (locator: Locator): boolean {\n const href = locator.href;\n\n if (\n href.startsWith(\"http://\") ||\n href.startsWith(\"https://\") ||\n href.startsWith(\"mailto:\") ||\n href.startsWith(\"tel:\")\n ) {\n if (confirm(`Open \"${href}\" ?`)) window.open(href, \"_blank\");\n } else {\n console.warn(\"Unhandled locator\", locator);\n }\n return false;\n },\n textSelected: function (_selection: BasicTextSelection): void {},\n };\n\n useEffect(() => {\n cache.current.settings.fontFamily = fontFamily;\n }, [fontFamily]);\n useEffect(() => {\n cache.current.settings.fontWeight = fontWeight;\n }, [fontWeight]);\n useEffect(() => {\n cache.current.settings.hyphens = hyphens;\n }, [hyphens]);\n useEffect(() => {\n cache.current.settings.letterSpacing = letterSpacing;\n }, [letterSpacing]);\n useEffect(() => {\n cache.current.settings.lineHeight = lineHeight;\n }, [lineHeight]);\n useEffect(() => {\n cache.current.settings.paragraphIndent = paragraphIndent;\n }, [paragraphIndent]);\n useEffect(() => {\n cache.current.settings.paragraphSpacing = paragraphSpacing;\n }, [paragraphSpacing]);\n useEffect(() => {\n cache.current.settings.textAlign = textAlign;\n }, [textAlign]);\n\n useEffect(() => {\n cache.current.settings.textNormalization = textNormalization;\n }, [textNormalization]);\n useEffect(() => {\n cache.current.settings.wordSpacing = wordSpacing;\n }, [wordSpacing]);\n useEffect(() => {\n cache.current.settings.zoom = zoom;\n }, [zoom]);\n\n useEffect(() => {\n preferences.direction && dispatch(setDirection(preferences.direction));\n dispatch(setPlatformModifier(getPlatformModifier()));\n }, [preferences.direction, dispatch]);\n\n useEffect(() => {\n const fetcher: Fetcher = new HttpFetcher(undefined, selfHref);\n const manifest = Manifest.deserialize(rawManifest)!;\n manifest.setSelfLink(selfHref);\n\n setPublication(new Publication({\n manifest: manifest,\n fetcher: fetcher\n }));\n\n dispatch(setReaderProfile(\"webPub\"));\n }, [rawManifest, selfHref, dispatch]);\n\n useEffect(() => {\n if (!publication) return;\n\n dispatch(setRTL(publication.metadata.effectiveReadingProgression === ReadingProgression.rtl));\n\n const displayTransformability = publication.metadata.accessibility?.feature?.some(feature => feature && feature.value === Feature.DISPLAY_TRANSFORMABILITY.value);\n dispatch(setHasDisplayTransformability(displayTransformability));\n\n const initialPosition: Locator | null = getLocalData();\n\n const webPubPreferences: IWebPubPreferences = {\n zoom: cache.current.settings.zoom\n };\n\n if (displayTransformability) {\n webPubPreferences.fontFamily = cache.current.settings.fontFamily && defaultFontFamilyOptions[cache.current.settings.fontFamily];\n webPubPreferences.fontWeight = cache.current.settings.fontWeight;\n webPubPreferences.hyphens = cache.current.settings.hyphens;\n webPubPreferences.letterSpacing = cache.current.settings.letterSpacing;\n webPubPreferences.lineHeight = cache.current.settings.lineHeight === null \n ? null \n : lineHeightOptions[cache.current.settings.lineHeight];\n webPubPreferences.paragraphIndent = cache.current.settings.paragraphIndent;\n webPubPreferences.paragraphSpacing = cache.current.settings.paragraphSpacing;\n webPubPreferences.textAlign = cache.current.settings.textAlign as TextAlignment | null | undefined;\n webPubPreferences.textNormalization = cache.current.settings.textNormalization;\n webPubPreferences.wordSpacing = cache.current.settings.wordSpacing;\n }\n\n WebPubNavigatorLoad({\n container: container.current,\n publication: publication,\n listeners: listeners,\n initialPosition: initialPosition ? new Locator(initialPosition) : undefined,\n preferences: webPubPreferences,\n defaults: {\n experiments: preferences.experiments?.webPub || null\n }\n }, () => {\n p.observe(window);\n });\n\n dispatch(setLoading(false));\n\n return () => {\n WebPubNavigatorDestroy(() => {\n p.destroy();\n });\n };\n }, [publication, preferences]);\n\n return (\n <>\n <I18nProvider locale={ preferences.locale }>\n <NavigatorProvider navigator={ webPubNavigator }>\n <main className={ readerStyles.main }>\n <StatefulDockingWrapper>\n <div \n className={ \n classNames(\n getReaderClassNames({\n isScroll: true,\n isImmersive,\n isHovering,\n layoutUI\n })\n )\n }\n >\n <StatefulReaderHeader \n actionKeys={ preferences.actions.webPubOrder }\n actionsOrder={ preferences.actions.webPubOrder }\n layout={ layoutUI } \n runningHeadFormatPref={ preferences.theming.header?.runningHead?.format?.webPub }\n />\n\n <article className={ readerStyles.wrapper } aria-label={ t(\"reader.app.publicationWrapper\") }>\n <div id=\"thorium-web-container\" className={ readerStyles.iframeContainer } ref={ container }></div>\n </article>\n\n <StatefulReaderFooter \n layout={ layoutUI } \n progressionFormatPref={ preferences.theming.progression?.format?.webPub }\n progressionFormatFallback={ ThProgressionFormat.readingOrderIndex }\n />\n </div>\n </StatefulDockingWrapper>\n </main>\n </NavigatorProvider>\n </I18nProvider>\n </>\n)};"]}
@@ -1,4 +1,4 @@
1
- export { timelineInstance, useDocumentTitle, useEpubNavigator, useFullscreen, useIsClient, useLocalStorage, useTimeline, useWebPubNavigator } from '../../chunk-OWJCESNF.mjs';
1
+ export { timelineInstance, useDocumentTitle, useEpubNavigator, useFullscreen, useIsClient, useLocalStorage, useTimeline, useWebPubNavigator } from '../../chunk-VETE7ULS.mjs';
2
2
  export { useBreakpoints, useForcedColors, useMonochrome, useReducedMotion, useReducedTransparency } from '../../chunk-BNPR6V7V.mjs';
3
3
  export { ThColorScheme, ThContrast, useColorScheme, useContrast, useMediaQuery } from '../../chunk-NQ2ZSGCX.mjs';
4
4
  export { usePrevious } from '../../chunk-YZ73DHRU.mjs';
@@ -15,11 +15,11 @@ declare const initI18n: (options?: Partial<InitOptions>) => Promise<i18next.i18n
15
15
 
16
16
  /**
17
17
  * Hook to access the i18n instance and translation functions
18
- * @param ns The namespace to use for translations (defaults to DEFAULT_NAMESPACE)
18
+ * @param ns Optional additional namespace(s) to include alongside the default namespaces
19
19
  * @returns Translation functions and i18n instance
20
20
  */
21
- declare const useI18n: (ns?: string) => {
22
- t: i18next.TFunction<string, undefined>;
21
+ declare const useI18n: (ns?: string | string[]) => {
22
+ t: (key: string, options?: any) => string;
23
23
  i18n: i18next.i18n;
24
24
  ready: boolean;
25
25
  currentLanguage: string;
@@ -1,10 +1,11 @@
1
- export { DEFAULT_CONFIG, ThI18nProvider, Trans, i18n, initI18n } from '../chunk-FG6BJGVE.mjs';
2
- import '../chunk-SPAC7T57.mjs';
1
+ export { ThI18nProvider, Trans } from '../chunk-EY4D4BZN.mjs';
2
+ import '../chunk-IRA4ZKAX.mjs';
3
3
  import '../chunk-7CGMWOZN.mjs';
4
4
  import '../chunk-BNPR6V7V.mjs';
5
5
  import '../chunk-5LUMM7FW.mjs';
6
6
  import '../chunk-NQ2ZSGCX.mjs';
7
- export { useI18n } from '../chunk-KKJA56IZ.mjs';
7
+ export { DEFAULT_CONFIG, i18n, initI18n, useI18n } from '../chunk-IYAFKTPL.mjs';
8
+ import '../chunk-B3WDMWCT.mjs';
8
9
  import '../chunk-MLEYTQGK.mjs';
9
10
  import '../chunk-CVM2ZAPL.mjs';
10
11
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "reader": {
3
+ "preferences": {
4
+ "lineHeight": {
5
+ "large": "واسع"
6
+ },
7
+ "paragraphSpacing": "تباعد الفقرات"
8
+ }
9
+ }
10
+ }
@@ -7,16 +7,6 @@
7
7
  "dockingLeft": "لوحة مثبتة على اليسار",
8
8
  "dockingRight": "لوحة مثبتة على اليمين"
9
9
  }
10
- },
11
- "settings": {
12
- "lineHeight": {
13
- "large": "واسع"
14
- },
15
- "paraSpacing": {
16
- "title": "تباعد الفقرات",
17
- "increase": "زيادة تباعد الفقرات",
18
- "decrease": "تقليل تباعد الفقرات"
19
- }
20
10
  }
21
11
  }
22
12
  }
@@ -0,0 +1,138 @@
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "clear": "Nulstil",
5
+ "close": "Luk",
6
+ "decrease": "Reducer",
7
+ "enable": "Aktiver",
8
+ "exit": "Afslut",
9
+ "increase": "Forøg",
10
+ "reset": "Nulstil",
11
+ "search": "Søg",
12
+ "toggle": "Vis"
13
+ }
14
+ },
15
+ "reader": {
16
+ "actions": {
17
+ "goBackward": "Naviger tilbage",
18
+ "goForward": "Naviger frem",
19
+ "goToPosition": {
20
+ "compact": "Gå til…",
21
+ "descriptive": "Gå til position"
22
+ }
23
+ },
24
+ "preferences": {
25
+ "columns": {
26
+ "auto": "Auto",
27
+ "dual": {
28
+ "descriptive": "2 kolonner"
29
+ },
30
+ "single": {
31
+ "descriptive": "1 kolonne"
32
+ },
33
+ "title": "Kolonner"
34
+ },
35
+ "fontFamily": {
36
+ "humanist": {
37
+ "compact": "Humanist",
38
+ "descriptive": "Humanist sans-serif"
39
+ },
40
+ "modern": {
41
+ "compact": "Moderne",
42
+ "descriptive": "Moderne serif"
43
+ },
44
+ "monospace": "Monospace",
45
+ "oldStyle": {
46
+ "compact": "Gammeldags",
47
+ "descriptive": "Gammeldags serif"
48
+ },
49
+ "publisher": "Bogens Skrifttype",
50
+ "sans": "Sans-serif",
51
+ "title": "Skrifttype"
52
+ },
53
+ "fontSize": "Skriftstørrelse",
54
+ "fontWeight": {
55
+ "bold": "Federe",
56
+ "normal": "Normal",
57
+ "title": "Skrift tykkelse"
58
+ },
59
+ "hyphens": {
60
+ "label": "Aktiver bindestreger",
61
+ "title": "Bindestreg"
62
+ },
63
+ "layout": {
64
+ "paginated": "Sideopdelt",
65
+ "scrolled": "Scrollbar",
66
+ "title": "Layout"
67
+ },
68
+ "letterSpacing": "Tegn afstand",
69
+ "lineHeight": {
70
+ "default": "Normal",
71
+ "large": "Løs",
72
+ "medium": "Balanceret",
73
+ "small": "Tæt",
74
+ "title": "Linjehøjde"
75
+ },
76
+ "paragraphIndent": "Afsnitsindrykning",
77
+ "paragraphSpacing": "Afsnitsafstand",
78
+ "publisherStyles": {
79
+ "label": "Brug original formatering"
80
+ },
81
+ "spacing": {
82
+ "presets": {
83
+ "accessible": "Tilgængelig",
84
+ "balanced": "Balanceret",
85
+ "custom": "Brugerdefineret",
86
+ "default": "Normal",
87
+ "loose": "Løs",
88
+ "tight": "Tæt",
89
+ "title": "Forudindstillinger"
90
+ },
91
+ "title": "Afstande"
92
+ },
93
+ "text": "Tekst",
94
+ "textAlign": {
95
+ "default": "Normal",
96
+ "justify": "Udfyld",
97
+ "left": "Venstre",
98
+ "right": "Højre",
99
+ "title": "Tekst justering"
100
+ },
101
+ "textNormalization": {
102
+ "label": "Fjern al tekstformatering",
103
+ "title": "Normalisering af tekst"
104
+ },
105
+ "themes": {
106
+ "auto": "Automatisk",
107
+ "contrast1": "Kontrast 1",
108
+ "contrast2": "Kontrast 2",
109
+ "contrast3": "Kontrast 3",
110
+ "dark": "Mørk",
111
+ "light": "Lys",
112
+ "paper": "Papir",
113
+ "sepia": "Sepia",
114
+ "title": "Temaer"
115
+ },
116
+ "title": "Visningsindstillinger",
117
+ "wordSpacing": "Ordafstand",
118
+ "zoom": "Zoom"
119
+ },
120
+ "progression": {
121
+ "percentage": "{{ percentage }}%",
122
+ "positionsLeftInChapter_other": "{{ count }} tilbage i nuværende kapitel",
123
+ "positionsLeftInPublication_other": "{{ count }} tilbage i bogen",
124
+ "positionsLeft_other": "{{ count }} tilbage",
125
+ "range": "{{ start }}–{{ end }}",
126
+ "xOfY": {
127
+ "compact": "{{ x }} af {{ y }}",
128
+ "descriptive": "{{ x }} af {{ y }} ({{ z }})"
129
+ }
130
+ },
131
+ "tableOfContents": {
132
+ "emptyState": {
133
+ "description": "Der blev ikke fundet nogen indholdsfortegnelse for denne bog."
134
+ },
135
+ "title": "Indholdsfortegnelse"
136
+ }
137
+ }
138
+ }
@@ -1,130 +1,5 @@
1
1
  {
2
2
  "reader": {
3
- "settings": {
4
- "column": {
5
- "one": "1 kolonne",
6
- "title": "Kolonner",
7
- "two": "2 kolonner",
8
- "auto": "Auto"
9
- },
10
- "reset": "Nulstil",
11
- "tooltip": "Indstillinger",
12
- "trigger": "Menu for indstillinger",
13
- "close": "Luk indstillinger",
14
- "heading": "Visningsindstillinger",
15
- "themes": {
16
- "title": "Temaer",
17
- "auto": "Automatisk",
18
- "light": "Lys",
19
- "sepia": "Sepia",
20
- "paper": "Papir",
21
- "dark": "Mørk",
22
- "contrast1": "Kontrast 1",
23
- "contrast2": "Kontrast 2",
24
- "contrast3": "Kontrast 3"
25
- },
26
- "zoom": {
27
- "title": "Zoom",
28
- "increase": "Forøg zoom",
29
- "decrease": "Reducer zoom"
30
- },
31
- "fontSize": {
32
- "title": "Skriftstørrelse",
33
- "increase": "Forøg skriftstørrelse",
34
- "decrease": "Reducer skriftstørrelse"
35
- },
36
- "fontFamily": {
37
- "title": "Skrifttype",
38
- "labels": {
39
- "publisher": "Bogens skrifttype",
40
- "oldStyle": "Gammeldags serif",
41
- "modern": "Moderne serif",
42
- "sans": "Sans-serif",
43
- "humanist": "Humanist sans-serif",
44
- "monospace": "Monospace"
45
- }
46
- },
47
- "fontWeight": {
48
- "title": "Skrift tykkelse",
49
- "default": "Normal",
50
- "bolder": "Federe",
51
- "increase": "Forøg skrift tykkelse",
52
- "decrease": "Reducer skrift tykkelse"
53
- },
54
- "normalizeText": {
55
- "title": "Normalisering af tekst",
56
- "label": "Fjern al tekstformatering"
57
- },
58
- "align": {
59
- "title": "Tekst justering",
60
- "publisher": "Normal",
61
- "left": "Venstre",
62
- "justify": "Udfyld",
63
- "right": "Højre"
64
- },
65
- "hyphens": {
66
- "title": "Bindestreg",
67
- "label": "Aktiver bindestreger"
68
- },
69
- "text": {
70
- "title": "Tekst",
71
- "advanced": {
72
- "tooltip": "Flere indstillinger",
73
- "trigger": "Flere formaterings-indstillinger"
74
- }
75
- },
76
- "lineHeight": {
77
- "title": "Linjehøjde",
78
- "publisher": "Normal",
79
- "small": "Tæt",
80
- "medium": "Balanceret",
81
- "large": "Løs"
82
- },
83
- "paraSpacing": {
84
- "title": "Afsnitsafstand",
85
- "increase": "Forøg afsnitsafstand",
86
- "decrease": "Reducer afsnitsafstand"
87
- },
88
- "paraIndent": {
89
- "title": "Afsnitsindrykning",
90
- "increase": "Forøg afsnitsindrykning",
91
- "decrease": "Reducer afsnitsindrykning"
92
- },
93
- "wordSpacing": {
94
- "title": "Ordafstand",
95
- "increase": "Forøg ordafstand",
96
- "decrease": "Reducer ordafstand"
97
- },
98
- "letterSpacing": {
99
- "title": "Tegn afstand",
100
- "increase": "Forøg afstand mellem tegn",
101
- "decrease": "Reducer afstand mellem tegn"
102
- },
103
- "publisherStyles": {
104
- "label": "Brug original formatering"
105
- },
106
- "spacing": {
107
- "title": "Afstande",
108
- "advanced": {
109
- "tooltip": "Flere indstillinger",
110
- "trigger": "Flere afstands-indstillinger"
111
- },
112
- "presets": {
113
- "title": "Forudindstillinger",
114
- "publisher": "Normal",
115
- "tight": "Tæt",
116
- "balanced": "Balanceret",
117
- "loose": "Løs",
118
- "accessible": "Tilgængelig",
119
- "custom": "Brugerdefineret"
120
- }
121
- },
122
- "layout": {
123
- "title": "Layout",
124
- "scrolled": "Scrollbar",
125
- "paginated": "Sideopdelt"
126
- }
127
- },
128
3
  "app": {
129
4
  "loading": "Indlæser",
130
5
  "publicationWrapper": "Du er nu i den åbnede bog.",
@@ -149,8 +24,6 @@
149
24
  },
150
25
  "progression": {
151
26
  "wrapper": "Nuværende position",
152
- "of": "{{ current }} af {{ reference }}",
153
- "positionsLeft": "{{ count }} tilbage i {{ reference }}",
154
27
  "referenceFallback": "nuværende kapitel",
155
28
  "pubFallback": "bogen"
156
29
  },
@@ -171,10 +44,6 @@
171
44
  "fullscreen": {
172
45
  "trigger": "Vis over indholdet",
173
46
  "tooltip": "Overlay"
174
- },
175
- "close": {
176
- "trigger": "Luk",
177
- "tooltip": "Luk"
178
47
  }
179
48
  },
180
49
  "back": {
@@ -182,14 +51,8 @@
182
51
  }
183
52
  },
184
53
  "navigation": {
185
- "goForward": "Naviger frem",
186
- "goBackward": "Naviger tilbage",
187
54
  "scroll": {
188
- "wrapper": "Naviger igennem bogen",
189
- "prevLabel": "Forrige",
190
- "nextLabel": "Næste",
191
- "prevA11yLabel": "Gå til forrige kapitel eller sektion",
192
- "nextA11yLabel": "Gå til næste kapitel eller sektion"
55
+ "wrapper": "Naviger igennem bogen"
193
56
  }
194
57
  },
195
58
  "fullscreen": {
@@ -198,24 +61,10 @@
198
61
  "close": "Afslut fuldskærmstilstand"
199
62
  },
200
63
  "toc": {
201
- "tooltip": "Indholdsfortegnelse",
202
- "trigger": "Indholdsfortegnelse",
203
- "close": "Luk indholdsfortegnelse",
204
- "heading": "Indholdsfortegnelse",
205
- "entries": "Punkter i indholdsfortegnelsen",
206
- "empty": "Der blev ikke fundet nogen indholdsfortegnelse for denne bog.",
207
- "search": {
208
- "label": "Søg",
209
- "placeholder": "Søg",
210
- "clear": "Nulstil"
211
- }
64
+ "entries": "Punkter i indholdsfortegnelsen"
212
65
  },
213
66
  "jumpToPosition": {
214
- "tooltip": "Gå til…",
215
- "trigger": "Gå til position",
216
- "heading": "Gå til position",
217
67
  "go": "Gå",
218
- "close": "Luk gå til position",
219
68
  "label": "Vælg en position fra {{ positionStart }} til {{ positionEnd }}:"
220
69
  },
221
70
  "overflowMenu": {
@@ -227,6 +76,20 @@
227
76
  "tooltip": "Vis flere handlinger",
228
77
  "trigger": "Vis handlinger"
229
78
  }
79
+ },
80
+ "settings": {
81
+ "text": {
82
+ "advanced": {
83
+ "tooltip": "Flere indstillinger",
84
+ "trigger": "Flere formaterings-indstillinger"
85
+ }
86
+ },
87
+ "spacing": {
88
+ "advanced": {
89
+ "tooltip": "Flere indstillinger",
90
+ "trigger": "Flere afstands-indstillinger"
91
+ }
92
+ }
230
93
  }
231
94
  }
232
95
  }
@@ -0,0 +1,12 @@
1
+ {
2
+ "reader": {
3
+ "app": {
4
+ "loading": "Φόρτωση",
5
+ "publicationWrapper": "Τώρα βρίσκεστε στην έκδοση.",
6
+ "docking": {
7
+ "dockingLeft": "Το παράθυρο είναι τοποθετημένο αριστερά",
8
+ "dockingRight": "Το παράθυρο είναι τοποθετημένο δεξία"
9
+ }
10
+ }
11
+ }
12
+ }