pageflow 17.1.0 → 17.2.0

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 (302) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +319 -345
  3. data/README.md +3 -4
  4. data/admins/pageflow/accounts.rb +6 -6
  5. data/admins/pageflow/entry.rb +10 -8
  6. data/admins/pageflow/membership.rb +11 -11
  7. data/admins/pageflow/translations.rb +5 -5
  8. data/app/assets/images/pageflow/admin/icons/comment.svg +1 -0
  9. data/app/assets/javascripts/pageflow/dist/ui.js +1350 -630
  10. data/app/assets/javascripts/pageflow/editor/vendor.js +0 -1
  11. data/app/assets/javascripts/pageflow/ui.js +0 -1
  12. data/app/assets/stylesheets/pageflow/admin/entry_comments_indicator.scss +45 -0
  13. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +8 -1
  14. data/app/assets/stylesheets/pageflow/admin.scss +1 -0
  15. data/app/assets/stylesheets/pageflow/animations/spin.scss +9 -0
  16. data/app/assets/stylesheets/pageflow/animations.scss +1 -0
  17. data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +21 -5
  18. data/app/assets/stylesheets/pageflow/editor/base.scss +9 -1
  19. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +13 -1
  20. data/app/assets/stylesheets/pageflow/editor/edit_configuration_view.scss +5 -0
  21. data/app/assets/stylesheets/pageflow/editor/file_folders.scss +127 -0
  22. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +0 -1
  23. data/app/assets/stylesheets/pageflow/editor/file_meta_data_overlay.scss +45 -0
  24. data/app/assets/stylesheets/pageflow/editor/file_preview.scss +138 -0
  25. data/app/assets/stylesheets/pageflow/editor/file_references.scss +68 -0
  26. data/app/assets/stylesheets/pageflow/editor/file_settings_dialog.scss +1 -1
  27. data/app/assets/stylesheets/pageflow/editor/file_stage_icons.scss +17 -0
  28. data/app/assets/stylesheets/pageflow/editor/file_stages.scss +25 -32
  29. data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +31 -48
  30. data/app/assets/stylesheets/pageflow/editor/file_type_pills.scss +73 -0
  31. data/app/assets/stylesheets/pageflow/editor/files.scss +230 -50
  32. data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +142 -14
  33. data/app/assets/stylesheets/pageflow/editor/folder_breadcrumb.scss +40 -0
  34. data/app/assets/stylesheets/pageflow/editor/info_box.scss +12 -0
  35. data/app/assets/stylesheets/pageflow/editor/inputs/edit_defaults_button.scss +15 -0
  36. data/app/assets/stylesheets/pageflow/editor/inputs.scss +1 -0
  37. data/app/assets/stylesheets/pageflow/editor/list.scss +88 -38
  38. data/app/assets/stylesheets/pageflow/editor/manage_files.scss +9 -0
  39. data/app/assets/stylesheets/pageflow/editor/menu.scss +14 -0
  40. data/app/assets/stylesheets/pageflow/editor/move_to_folder_dialog.scss +83 -0
  41. data/app/assets/stylesheets/pageflow/mixins/pageflow.scss +9 -5
  42. data/app/assets/stylesheets/pageflow/ui/color_picker.scss +230 -0
  43. data/app/assets/stylesheets/pageflow/ui/forms.scss +34 -4
  44. data/app/assets/stylesheets/pageflow/ui/functions.scss +12 -2
  45. data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +9 -16
  46. data/app/assets/stylesheets/pageflow/ui/input/text_area_input.scss +15 -0
  47. data/app/assets/stylesheets/pageflow/ui/overrides.scss +8 -0
  48. data/app/assets/stylesheets/pageflow/ui/properties.scss +29 -0
  49. data/app/assets/stylesheets/pageflow/ui/tabs_view.scss +8 -3
  50. data/app/assets/stylesheets/pageflow/ui.scss +4 -2
  51. data/app/controllers/pageflow/editor/entries_controller.rb +1 -0
  52. data/app/controllers/pageflow/editor/file_folders_controller.rb +80 -0
  53. data/app/controllers/pageflow/editor/file_import_controller.rb +1 -0
  54. data/app/controllers/pageflow/editor/files_controller.rb +15 -6
  55. data/app/controllers/pageflow/editor/oembeds_controller.rb +21 -0
  56. data/app/controllers/pageflow/entries_controller.rb +17 -13
  57. data/app/controllers/pageflow/review/comment_thread_reads_controller.rb +30 -0
  58. data/app/controllers/pageflow/review/comment_threads_controller.rb +60 -0
  59. data/app/controllers/pageflow/review/comments_controller.rb +53 -0
  60. data/app/controllers/pageflow/revisions_controller.rb +4 -1
  61. data/app/helpers/pageflow/admin/entries_helper.rb +40 -0
  62. data/app/helpers/pageflow/admin/widgets_helper.rb +2 -2
  63. data/app/helpers/pageflow/common_entry_seed_helper.rb +5 -3
  64. data/app/helpers/pageflow/editor/config_helper.rb +3 -1
  65. data/app/helpers/pageflow/entries_helper.rb +24 -42
  66. data/app/helpers/pageflow/entry_json_seed_helper.rb +4 -4
  67. data/app/helpers/pageflow/public_i18n_helper.rb +9 -8
  68. data/app/helpers/pageflow/structured_data_helper.rb +4 -1
  69. data/app/helpers/pageflow/themes_helper.rb +1 -3
  70. data/app/helpers/pageflow/widgets_helper.rb +2 -1
  71. data/app/inputs/pageflow_permalink_input.rb +6 -2
  72. data/app/models/concerns/pageflow/auto_generated_perma_id.rb +11 -4
  73. data/app/models/concerns/pageflow/reusable_file.rb +1 -1
  74. data/app/models/concerns/pageflow/serialization_blacklist.rb +2 -4
  75. data/app/models/concerns/pageflow/translated_attributes.rb +101 -0
  76. data/app/models/concerns/pageflow/uploadable_file.rb +1 -1
  77. data/app/models/pageflow/comment.rb +30 -0
  78. data/app/models/pageflow/comment_thread.rb +65 -0
  79. data/app/models/pageflow/comment_thread_read.rb +22 -0
  80. data/app/models/pageflow/customized_theme.rb +3 -2
  81. data/app/models/pageflow/draft_entry.rb +20 -8
  82. data/app/models/pageflow/entry.rb +2 -0
  83. data/app/models/pageflow/entry_at_revision.rb +9 -1
  84. data/app/models/pageflow/entry_comment_summary.rb +114 -0
  85. data/app/models/pageflow/file_folder.rb +74 -0
  86. data/app/models/pageflow/file_reuse.rb +3 -2
  87. data/app/models/pageflow/file_usage.rb +8 -0
  88. data/app/models/pageflow/image_file.rb +24 -20
  89. data/app/models/pageflow/image_file_url_templates.rb +3 -3
  90. data/app/models/pageflow/legal_info.rb +38 -0
  91. data/app/models/pageflow/nested_revision_component_copy.rb +1 -1
  92. data/app/models/pageflow/permalink.rb +1 -0
  93. data/app/models/pageflow/revision.rb +6 -2
  94. data/app/models/pageflow/site.rb +10 -0
  95. data/app/models/pageflow/used_file.rb +8 -2
  96. data/app/models/pageflow/widget.rb +2 -2
  97. data/app/views/pageflow/audio_files/_audio_file.json.jbuilder +0 -1
  98. data/app/views/pageflow/editor/config/_seeds.json.jbuilder +4 -2
  99. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +2 -1
  100. data/app/views/pageflow/editor/entries/seed.json.erb +1 -0
  101. data/app/views/pageflow/editor/file_folders/_file_folder.json.jbuilder +5 -0
  102. data/app/views/pageflow/editor/file_folders/create.json.jbuilder +1 -0
  103. data/app/views/pageflow/editor/file_folders/index.json.jbuilder +3 -0
  104. data/app/views/pageflow/editor/files/_file.json.jbuilder +2 -1
  105. data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +3 -0
  106. data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +3 -0
  107. data/app/views/pageflow/files/_file.json.jbuilder +2 -0
  108. data/app/views/pageflow/image_files/_image_file.json.jbuilder +0 -1
  109. data/app/views/pageflow/review/comment_threads/_comment_thread.json.jbuilder +20 -0
  110. data/app/views/pageflow/review/comment_threads/create.json.jbuilder +2 -0
  111. data/app/views/pageflow/review/comment_threads/index.json.jbuilder +13 -0
  112. data/app/views/pageflow/review/comments/_comment.json.jbuilder +13 -0
  113. data/app/views/pageflow/review/comments/create.json.jbuilder +1 -0
  114. data/app/views/pageflow/structured_data/_entry.json.jbuilder +2 -3
  115. data/app/views/pageflow/video_files/_video_file.json.jbuilder +0 -1
  116. data/config/locales/de.yml +152 -14
  117. data/config/locales/en.yml +150 -14
  118. data/config/routes.rb +14 -0
  119. data/db/migrate/20140418225525_setup_schema.rb +2 -2
  120. data/db/migrate/20251015000000_add_structured_data_type_name_to_revisions.rb +5 -0
  121. data/db/migrate/20251029142849_convert_legacy_social_embeds_to_unified_social_embed.rb +38 -0
  122. data/db/migrate/20251119083347_fix_main_storyline_positions.rb +16 -0
  123. data/db/migrate/20251119083348_ensure_scrolled_entries_have_excursion_storyline.rb +15 -0
  124. data/db/migrate/20260303000000_add_layout_version_to_revisions.rb +6 -0
  125. data/db/migrate/20260323000000_create_comment_threads_and_comments.rb +30 -0
  126. data/db/migrate/20260414000000_add_subject_range_to_comment_threads.rb +5 -0
  127. data/db/migrate/20260415000000_add_section_perma_id_to_comment_threads.rb +5 -0
  128. data/db/migrate/20260727000000_add_quote_to_comments.rb +5 -0
  129. data/db/migrate/20260728000000_create_file_folders.rb +17 -0
  130. data/db/migrate/20260805000000_add_attribute_translations_to_sites.rb +5 -0
  131. data/db/migrate/20260806000000_add_edited_at_to_comments.rb +5 -0
  132. data/db/migrate/20260810000000_create_pageflow_scrolled_lottie_files.rb +24 -0
  133. data/db/migrate/20260817000000_create_comment_thread_reads.rb +16 -0
  134. data/db/migrate/20260819000000_add_unread_comments_since_at_to_users.rb +18 -0
  135. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +8665 -3890
  136. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +979 -3571
  137. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +20199 -28120
  138. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +18652 -26584
  139. data/entry_types/scrolled/app/assets/stylesheets/pageflow_scrolled/ui.scss +2 -0
  140. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +33 -3
  141. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +2 -3
  142. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +21 -1
  143. data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +3 -3
  144. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +7 -5
  145. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +5 -2
  146. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +13 -5
  147. data/entry_types/scrolled/app/helpers/pageflow_scrolled/i18n_helper.rb +28 -13
  148. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +26 -11
  149. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +2 -2
  150. data/entry_types/scrolled/app/helpers/pageflow_scrolled/sprockets_helper.rb +16 -0
  151. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +174 -3
  152. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +49 -7
  153. data/entry_types/scrolled/app/models/pageflow_scrolled/lottie_file.rb +6 -0
  154. data/entry_types/scrolled/app/models/pageflow_scrolled/lottie_file_url_templates.rb +16 -0
  155. data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +1 -0
  156. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +13 -12
  157. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +30 -10
  158. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +9 -0
  159. data/entry_types/scrolled/app/views/pageflow_scrolled/favicons/_entry.html.erb +1 -1
  160. data/entry_types/scrolled/config/configuration_schemas/pageflow-scrolled.json +414 -0
  161. data/entry_types/scrolled/config/locales/de.yml +512 -65
  162. data/entry_types/scrolled/config/locales/en.yml +518 -52
  163. data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +2 -2
  164. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +51 -6
  165. data/entry_types/scrolled/lib/pageflow_scrolled/configuration_schemas.rb +91 -0
  166. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +2 -1
  167. data/entry_types/scrolled/lib/pageflow_scrolled/entry_file_reference_locations.rb +71 -0
  168. data/entry_types/scrolled/lib/pageflow_scrolled/entry_structured_data_types/faq_page.rb +58 -0
  169. data/entry_types/scrolled/lib/pageflow_scrolled/file_reference_locations.rb +69 -0
  170. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +205 -22
  171. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +2 -4
  172. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +56 -36
  173. data/entry_types/scrolled/lib/pageflow_scrolled/theme_options_default_scale.rb +35 -0
  174. data/entry_types/scrolled/lib/pageflow_scrolled.rb +13 -0
  175. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +19 -1
  176. data/entry_types/scrolled/package/config/configurationSchemas.js +70 -0
  177. data/entry_types/scrolled/package/config/rollup/configurationSchemas.js +19 -0
  178. data/entry_types/scrolled/package/config/webpack.js +72 -0
  179. data/entry_types/scrolled/package/contentElements/hotspots-frontend.css +1 -1
  180. data/entry_types/scrolled/package/contentElements/hotspots-frontend.js +1181 -915
  181. data/entry_types/scrolled/package/contentElements/inlineBeforeAfter-frontend.css +1 -0
  182. data/entry_types/scrolled/package/contentElements/inlineBeforeAfter-frontend.js +219 -0
  183. data/entry_types/scrolled/package/contentElements/lottieAnimation-frontend.css +1 -0
  184. data/entry_types/scrolled/package/contentElements/lottieAnimation-frontend.js +244 -0
  185. data/entry_types/scrolled/package/contentElements/socialEmbed-frontend.css +1 -0
  186. data/entry_types/scrolled/package/contentElements/socialEmbed-frontend.js +823 -0
  187. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.js +71 -21
  188. data/entry_types/scrolled/package/contentElements/twitterEmbed-frontend.css +1 -0
  189. data/entry_types/scrolled/package/contentElements/twitterEmbed-frontend.js +277 -0
  190. data/entry_types/scrolled/package/contentElements/videoEmbed-frontend.css +1 -0
  191. data/entry_types/scrolled/package/contentElements/videoEmbed-frontend.js +244 -0
  192. data/entry_types/scrolled/package/contentElements-editor.js +1915 -1097
  193. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  194. data/entry_types/scrolled/package/contentElements-frontend.js +3093 -1679
  195. data/entry_types/scrolled/package/editor.css +1 -0
  196. data/entry_types/scrolled/package/editor.js +8667 -4077
  197. data/entry_types/scrolled/package/entryState.js +1600 -0
  198. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-20c600de.js +1979 -0
  199. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-58189220.js +2538 -0
  200. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-9f76033e.js → PhonePlatformContext-035a99fa.js} +7 -12
  201. data/entry_types/scrolled/package/frontend/PhonePlatformContext-9da43797.js +33 -0
  202. data/entry_types/scrolled/package/frontend/Placeholder.module-bf0966b4.js +5267 -0
  203. data/entry_types/scrolled/package/frontend/Placeholder.module-d22a9335.js +4180 -0
  204. data/entry_types/scrolled/package/frontend/ThemeIcon-ab834849.js +754 -0
  205. data/entry_types/scrolled/package/frontend/ThemeIcon-f6cb3a8f.js +773 -0
  206. data/entry_types/scrolled/package/frontend/{ToggleFullscreenCornerButton-788e9cdb.js → ToggleFullscreenCornerButton-30fd1124.js} +6 -6
  207. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-61c25224.js +72 -0
  208. data/entry_types/scrolled/package/frontend/Viewer-1074fd59.js +147 -0
  209. data/entry_types/scrolled/package/frontend/Viewer-1482ca34.js +480 -0
  210. data/entry_types/scrolled/package/frontend/Viewer-70504231.js +210 -0
  211. data/entry_types/scrolled/package/frontend/{Viewer-0345ce57.js → Viewer-cc8d4072.js} +84 -92
  212. data/entry_types/scrolled/package/frontend/Wavesurfer-656e3c36.js +302 -0
  213. data/entry_types/scrolled/package/frontend/Wavesurfer-b753b838.js +385 -0
  214. data/entry_types/scrolled/package/frontend/commenting.css +1 -0
  215. data/entry_types/scrolled/package/frontend/extensions-167ae143.js +1455 -0
  216. data/entry_types/scrolled/package/frontend/extensions-2318f92b.js +5918 -0
  217. data/entry_types/scrolled/package/frontend/extensions-a461fd13.js +4890 -0
  218. data/entry_types/scrolled/package/frontend/extensions-c98269fd.js +1982 -0
  219. data/entry_types/scrolled/package/frontend/i18n-493cd2a6.js +93 -0
  220. data/entry_types/scrolled/package/frontend/i18n-e06cac14.js +100 -0
  221. data/entry_types/scrolled/package/frontend/{index-eb670c2f.js → index-2e5546f7.js} +36 -44
  222. data/entry_types/scrolled/package/frontend/index-de2b418d.js +130 -0
  223. data/entry_types/scrolled/package/frontend/index.css +1 -1
  224. data/entry_types/scrolled/package/frontend/index.js +1870 -875
  225. data/entry_types/scrolled/package/frontend/inlineEditing.css +1 -0
  226. data/entry_types/scrolled/package/frontend/useContentElementEditorState-a084912e.js +25 -0
  227. data/entry_types/scrolled/package/frontend/useDelayedBoolean-a387d85b.js +24 -0
  228. data/entry_types/scrolled/package/frontend/{usePhonePlatform-c2ba875d.js → usePhonePlatform-4ecb96d4.js} +1 -1
  229. data/entry_types/scrolled/package/frontend/usePhonePlatform-ce9ff08d.js +8 -0
  230. data/entry_types/scrolled/package/frontend-server.js +20 -209
  231. data/entry_types/scrolled/package/package.json +5 -3
  232. data/entry_types/scrolled/package/review.css +1 -0
  233. data/entry_types/scrolled/package/review.js +3306 -0
  234. data/entry_types/scrolled/package/testHelpers.js +836 -359
  235. data/entry_types/scrolled/package/widgets/consentBar.css +1 -1
  236. data/entry_types/scrolled/package/widgets/consentBar.js +269 -290
  237. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  238. data/entry_types/scrolled/package/widgets/defaultNavigation.js +911 -352
  239. data/entry_types/scrolled/package/widgets/excursionSheet.css +1 -1
  240. data/entry_types/scrolled/package/widgets/excursionSheet.js +87 -124
  241. data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -1
  242. data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +62 -29
  243. data/entry_types/scrolled/package/widgets/iconScrollIndicator.js +32 -13
  244. data/entry_types/scrolled/package/widgets/mainStorylineSheet.css +1 -1
  245. data/entry_types/scrolled/package/widgets/mainStorylineSheet.js +56 -100
  246. data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -1
  247. data/entry_types/scrolled/package/widgets/textInlineFileRights.js +33 -28
  248. data/entry_types/scrolled/package/widgets-server.js +1 -0
  249. data/entry_types/scrolled/spec/factories/lottie_files.rb +29 -0
  250. data/entry_types/scrolled/spec/fixtures/animation.lottie +0 -0
  251. data/entry_types/scrolled/spec/fixtures/font.woff +0 -0
  252. data/entry_types/scrolled/spec/fixtures/font.woff2 +0 -0
  253. data/lib/generators/pageflow/resque/resque_generator.rb +0 -2
  254. data/lib/pageflow/configuration.rb +49 -7
  255. data/lib/pageflow/deprecation.rb +19 -0
  256. data/lib/pageflow/engine.rb +1 -1
  257. data/lib/pageflow/entries_controller_env_helper.rb +32 -2
  258. data/lib/pageflow/entry_export_import/entry_serialization.rb +4 -4
  259. data/lib/pageflow/entry_export_import/page_type_versions.rb +2 -2
  260. data/lib/pageflow/entry_export_import/revision_serialization/import.rb +10 -0
  261. data/lib/pageflow/entry_export_import/revision_serialization.rb +3 -0
  262. data/lib/pageflow/entry_structured_data_types.rb +43 -0
  263. data/lib/pageflow/entry_type_configuration.rb +1 -0
  264. data/lib/pageflow/file_type.rb +2 -2
  265. data/lib/pageflow/file_types.rb +1 -1
  266. data/lib/pageflow/oembed_providers.rb +42 -0
  267. data/lib/pageflow/primary_domain_entry_redirect.rb +6 -0
  268. data/lib/pageflow/rails_version.rb +13 -2
  269. data/lib/pageflow/themes.rb +41 -0
  270. data/lib/pageflow/user_mixin.rb +12 -0
  271. data/lib/pageflow/version.rb +1 -1
  272. data/lib/pageflow.rb +1 -0
  273. data/package/config/eslint-rules/documented-in-toc.js +125 -0
  274. data/package/config/jest/index.js +0 -1
  275. data/package/config/webpack.js +0 -1
  276. data/package/config/webpack5.js +0 -1
  277. data/package/editor.js +4378 -1897
  278. data/package/frontend.js +647 -886
  279. data/package/package.json +2 -1
  280. data/package/review.js +384 -0
  281. data/package/testHelpers.js +248 -188
  282. data/package/ui.js +1346 -630
  283. data/package/vendor/stubs/wysihtml5.js +2 -0
  284. data/spec/factories/comment_thread_reads.rb +10 -0
  285. data/spec/factories/comment_threads.rb +10 -0
  286. data/spec/factories/comments.rb +9 -0
  287. data/spec/factories/file_folders.rb +8 -0
  288. data/spec/factories/published_entries.rb +2 -0
  289. metadata +188 -67
  290. data/app/assets/stylesheets/pageflow/editor/select_button.scss +0 -51
  291. data/entry_types/scrolled/app/helpers/pageflow_scrolled/generated_media_queries_helper.rb +0 -55
  292. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-51914be7.js +0 -5439
  293. data/entry_types/scrolled/package/frontend/ThemeIcon-81f2f066.js +0 -1932
  294. data/entry_types/scrolled/package/frontend/Viewer-cdc549cc.js +0 -147
  295. data/entry_types/scrolled/package/frontend/Wavesurfer-1cdc3925.js +0 -313
  296. data/entry_types/scrolled/package/frontend/components-96660ffd.js +0 -3803
  297. data/entry_types/scrolled/package/frontend/inherits-539844a6.js +0 -99
  298. data/entry_types/scrolled/package/frontend/useContentElementEditorState-77fe6c79.js +0 -51
  299. data/entry_types/scrolled/package/widgets/excursionDialog.css +0 -1
  300. data/entry_types/scrolled/package/widgets/excursionDialog.js +0 -109
  301. data/lib/generators/pageflow/resque/templates/resque_enqueue_after_commit_patch.rb +0 -25
  302. data/package/vendor/jquery.minicolors.js +0 -1108
@@ -1,7 +1,11 @@
1
1
  de:
2
2
  pageflow:
3
+ commenting:
4
+ feature_name: Kommentare
3
5
  datawrapper_chart_embed_opt_in:
4
6
  feature_name: Opt-in für Datawrapper Embeds
7
+ image_srcset:
8
+ feature_name: Responsive Bild-Srcset
5
9
  defaultNavigation:
6
10
  widget_type_name: Standard Navigation
7
11
  editor:
@@ -14,6 +18,10 @@ de:
14
18
  name:
15
19
  one: Bild
16
20
  other: Bilder
21
+ lottie_files:
22
+ name:
23
+ one: Lottie-Animation
24
+ other: Lottie-Animationen
17
25
  other_files:
18
26
  name:
19
27
  one: Andere
@@ -22,6 +30,9 @@ de:
22
30
  name:
23
31
  one: Video
24
32
  other: Videos
33
+ files:
34
+ tabs:
35
+ lottie_files: Lottie
25
36
  widgets:
26
37
  attributes:
27
38
  defaultNavigation:
@@ -33,6 +44,15 @@ de:
33
44
  sparen, wird die Navigation im Phone-Layout beim
34
45
  Scrollen dennoch immer ausgeblendet.
35
46
  label: Im Desktop-Layout fixieren
47
+ firstBackdropBelowNavigation:
48
+ inline_help: |
49
+ Positioniert das Hintergrundbild der ersten Sektion
50
+ unterhalb der Navigationsleiste statt dahinter.
51
+ inline_help_disabled: |
52
+ Positioniert das Hintergrundbild der ersten Sektion
53
+ unterhalb der Navigationsleiste statt dahinter. Nur
54
+ verfügbar, wenn die Navigation fixiert ist.
55
+ label: Hintergrund unterhalb beginnen
36
56
  hideSharingButton:
37
57
  label: Share-Button ausblenden
38
58
  hideToggleMuteButton:
@@ -56,16 +76,20 @@ de:
56
76
  values:
57
77
  large: Groß
58
78
  small: Klein
59
- frontend_v2:
60
- feature_name: Frontend v2
61
79
  hls_instead_of_dash:
62
80
  feature_name: HLS statt DASH für Videos verwenden
63
81
  iconInlineFileRights:
64
82
  widget_type_name: Copyright-Icons
65
83
  iframe_embed_content_element:
66
84
  feature_name: iframe-Embed Inhaltselement
85
+ legacy_social_embed_content_elements:
86
+ feature_name: Legacy Twitter und TikTok Inhaltselemente
87
+ lottie_animation_content_element:
88
+ feature_name: Lottie-Animation-Inhaltselement
67
89
  scrolled_entry_fragment_caching:
68
90
  feature_name: Pageflow-Next-Fragment-Caching
91
+ social_embed_content_element:
92
+ feature_name: Social Embed Inhaltselement
69
93
  textInlineFileRights:
70
94
  widget_type_name: Text am Element
71
95
  ui:
@@ -108,16 +132,14 @@ de:
108
132
  with_projection:
109
133
  blank_slate: Gebe in den Datei-Einstellungen eines Bildes eine Projektion an, um es als 360° Bild zu markieren.
110
134
  name: 360° Bilder
111
- decoration_effects:
112
- feature_name: Dekoration-Effekte
113
- content_element_margins:
114
- feature_name: "Element Margins"
115
135
  icon_scroll_indicator:
116
136
  feature_name: Icon Scroll-Indikator
117
137
  iconScrollIndicator:
118
138
  widget_type_name: Icon unten am Viewport-Rand
119
- section_paddings:
120
- feature_name: "Abschnittsinnenabstände"
139
+ excursion_sheets:
140
+ feature_name: "Exkurs-Sheet-Widgets"
141
+ file_rights_from_references:
142
+ feature_name: "Nachweise nur für verwendete Dateien"
121
143
  pageflow_scrolled:
122
144
  editor:
123
145
  backdrop_effects:
@@ -158,6 +180,7 @@ de:
158
180
  drag_hint: Ziehen, um das Kapitel zu verschieben
159
181
  save_error: Beim Speichern des Kapitels ist ein Fehler aufgetreten.
160
182
  chapter: Kapitel
183
+ excursion: Exkurs
161
184
  unnamed: Unbenannt
162
185
  hidden_in_navigation: In der Navigationsleiste ausgeblendet
163
186
  common_content_element_attributes:
@@ -234,12 +257,8 @@ de:
234
257
  inline_help: Ändere die Darstellung der Beschriftung unterhalb des Element.
235
258
  inline_help_disabled: Füge eine Beschriftung unterhalb des Elements hinzu, um zwischen Varianten zu wählen.
236
259
  blank: "(Standard)"
237
- marginTop:
238
- label: "Abstand oben"
239
- blank: "(Automatisch)"
240
- marginBottom:
241
- label: "Abstand unten"
242
- blank: "(Automatisch)"
260
+ styles:
261
+ label: "Stile"
243
262
  fullWidthInPhoneLayout:
244
263
  label: "Volle Breite im Phone-Layout"
245
264
  inline_help: |-
@@ -264,12 +283,17 @@ de:
264
283
  attributes:
265
284
  countingSpeed:
266
285
  inline_help: Lege fest, wie schnell die Zählanimation ablaufen soll.
267
- label: Zählanimation
286
+ label: Zählgeschwindigkeit
268
287
  values:
269
288
  fast: Schnell
270
289
  medium: Mittel
271
- none: "(Keine)"
272
290
  slow: Langsam
291
+ countingAnimation:
292
+ label: Zählanimation
293
+ values:
294
+ none: "(Keine)"
295
+ plain: Einfach
296
+ wheel: Zählwerk
273
297
  decimalPlaces:
274
298
  inline_help: Bestimme, wie wieviele Nachkommastellen gezeigt werden sollen.
275
299
  label: Nachkommastellen
@@ -284,21 +308,32 @@ de:
284
308
  fadeInScaleUp: Einblenden und vergrößern
285
309
  none: "(Keine)"
286
310
  numberColor:
287
- label: Farbe
311
+ label: Farbe Zahl
312
+ unitColor:
313
+ label: Farbe Einheit
314
+ descriptionColor:
315
+ label: Farbe Beschreibung
288
316
  startValue:
289
317
  inline_help: Bei diesem Wert beginnt die Zählanimation.
290
318
  label: Startwert
319
+ startAnimationTrigger:
320
+ inline_help: Lege fest, wann die Animation starten soll.
321
+ label: Animation starten
322
+ values:
323
+ onActivate: Bei Erreichen der Viewport-Mitte
324
+ onVisible: Sobald das Element sichtbar wird
291
325
  targetValue:
292
326
  inline_help: Zahlenwert, der angezeigt werden soll. Die Zählanimation endet bei diesem Wert.
293
327
  label: Zielwert
294
- textSize:
295
- inline_help: Bestimme die Textgröße der Zahl.
296
- label: Schriftgröße
297
- values:
298
- large: Groß
299
- medium: Mittel
300
- small: Klein
301
- verySmall: Sehr klein
328
+ numberSize:
329
+ inline_help: Bestimme die Schriftgröße der Zahl.
330
+ label: Schriftgröße Zahl
331
+ unitSize:
332
+ inline_help: Relative Größe der Einheit basierend auf der Schriftgröße der Zahl.
333
+ label: Schriftgröße Einheit
334
+ descriptionSize:
335
+ inline_help: Bestimme die Schriftgröße der Beschreibung.
336
+ label: Schriftgröße Beschreibung
302
337
  unit:
303
338
  inline_help: Text der vor oder hinter der Zahl gezeigt werden soll.
304
339
  label: Einheit
@@ -308,6 +343,14 @@ de:
308
343
  values:
309
344
  leading: Vor dem Betrag ($100)
310
345
  trailing: Nach dem Betrag (100%)
346
+ textAlign:
347
+ label: Textausrichtung
348
+ blank: "(Automatisch)"
349
+ values:
350
+ left: Links
351
+ center: Mitte
352
+ centerRagged: Zentriert
353
+ right: Rechts
311
354
  thousandsSeparators:
312
355
  label: "Tausendertrennzeichen anzeigen"
313
356
  inline_help: "Zum Beispiel 1.000, wenn Deutsch als Sprache für den Beitrag eingestellt ist."
@@ -420,16 +463,24 @@ de:
420
463
  label: "Buttons anzeigen"
421
464
  inline_help: |-
422
465
  Zeige Buttons an, um die Links zu öffnen.
466
+ inline_help_disabled: |-
467
+ Da die Flip-Animation per Klick ausgelöst wird, können
468
+ Links nur als Buttons angeboten werden.
423
469
  thumbnailBackgroundColor:
424
470
  label: Thumbnail-Hintergrundfarbe
425
471
  inline_help: |-
426
472
  Sichtbar wenn "Einpassen" als Thumbnail-Anpassung
427
473
  ausgewählt wurde sowie für Thumbnail-Bilder mit
428
474
  transparenten Bereichen.
475
+ backfaces:
476
+ label: Kartenrückseiten
477
+ inline_help: |-
478
+ Karten mit einer Flip-Animation drehen und weitere
479
+ Inhalte auf der Rückseite der Karte anbieten.
429
480
  back: Zurück
430
- destroy: Löschen
481
+ confirm_destroy: Soll der Teaser wirklich gelöscht werden?
482
+ destroy: Teaser löschen
431
483
  description: Liste von Kacheln mit Bild und Beschriftung
432
- confirm_delete_item: Soll der Teaser wirklich gelöscht werden?
433
484
  items: Einträge
434
485
  name: Teaser-Liste
435
486
  tabs:
@@ -573,8 +624,8 @@ de:
573
624
  general: Bildergalerie
574
625
  edit_item:
575
626
  back: Zurück
576
- destroy: Löschen
577
- confirm_delete_link: Soll der Bildergalerie-Eintrag wirklich gelöscht werden?
627
+ confirm_destroy: Soll der Bildergalerie-Eintrag wirklich gelöscht werden?
628
+ destroy: Eintrag löschen
578
629
  attributes:
579
630
  image:
580
631
  label: Bild
@@ -598,8 +649,14 @@ de:
598
649
  mute: Ausblenden
599
650
  play: Weiterspielen
600
651
  turnDown: Leiser weiterspielen
652
+ autoplay:
653
+ inline_help: Automatisch abspielen, wenn das Element in den sichtbaren Bereich gescrollt wird.
654
+ label: Autoplay
601
655
  id:
602
656
  label: Audio
657
+ invertPlayButton:
658
+ inline_help: Dunklen Play-Button statt des standardmäßig weißen verwenden.
659
+ label: Play-Button invertieren
603
660
  playerControlVariant:
604
661
  inline_help: Wähle den Stil der Player-Steuerelemente.
605
662
  label: Player Controls
@@ -610,9 +667,17 @@ de:
610
667
  waveformLines: Waveform (Linien)
611
668
  posterId:
612
669
  label: Poster
670
+ remainingWaveformColor:
671
+ auto: (Automatisch)
672
+ inline_help: Farbe des noch nicht abgespielten Bereichs der Waveform.
673
+ label: Verbleibende Waveform
613
674
  waveformColor:
614
675
  inline_help: Farbe des Bereichs der Waveform, der den bereits abgespielten Teil der Audio-Datei repräsentiert.
615
- label: Waveform Farbe
676
+ label: Abgespielte Waveform
677
+ waveformCursorColor:
678
+ auto: (Automatisch)
679
+ inline_help: Farbe des Cursors, der die aktuelle Wiedergabeposition markiert.
680
+ label: Waveform Cursor
616
681
  description: Wiedergabe einer Audiodatei mit Steuerelementen
617
682
  name: Audio
618
683
  tabs:
@@ -665,17 +730,22 @@ de:
665
730
  mute: Ausblenden
666
731
  play: Weiterspielen
667
732
  turnDown: Leiser weiterspielen
733
+ enableFullscreen:
734
+ inline_help: Button anzeigen, um das Video im Vollbildmodus zu öffnen.
735
+ inline_help_disabled: Steht nicht zur Verfügung bei Hintergrund-Position oder Endlosschleife.
736
+ label: Vollbildmodus erlauben
668
737
  hideControlBar:
669
738
  inline_help: Für kurze Videos, bei denen der Benutzer nicht an bestimmte Stellen springen will.
670
- inline_help_disabled: Für Videos mit Wiedergabe-Modus "Loop" sind die Controls immer ausgeblendet.
739
+ inline_help_disabled: Für Videos mit Wiedergabe-Modus "Loop" oder kreisförmigem Zuschnitt sind die Controls immer ausgeblendet.
671
740
  label: Controls ausblenden
672
741
  id:
673
742
  label: Video
674
743
  playbackMode:
675
- inline_help_html: Bestimme, wie das Video gestartet wird:<ul><li><strong>Manuell:</strong> Durch einen Klick des Benutzers.</li><li><strong>Automatisch:</strong> Wenn es die Mitte des Browser-Viewports erreicht.</li><li><strong>Loop:</strong> In Endlosschleife sobald es sichtbar wird.</li></ul>
744
+ inline_help_html: Bestimme, wie das Video gestartet wird:<ul><li><strong>Manuell:</strong> Durch einen Klick des Benutzers.</li><li><strong>Automatisch:</strong> Wenn es die Mitte des Browser-Viewports erreicht.</li><li><strong>Automatisch falls Stummschaltung aufgehoben:</strong> Wenn es die Mitte des Viewports erreicht, aber nur wenn der Ton des Beitrags bereits aktiviert wurde, z.B. über das Lautsprecher-Icon in der Navigationsleiste.</li><li><strong>Loop:</strong> In Endlosschleife sobald es sichtbar wird.</li></ul>
676
745
  label: Wiedergabe-Modus
677
746
  values:
678
747
  autoplay: Automatisch
748
+ autoplayIfUnmuted: Automatisch falls Stummschaltung aufgehoben
679
749
  loop: Loop
680
750
  manual: Manuell
681
751
  portraitId:
@@ -704,6 +774,36 @@ de:
704
774
  name: Video
705
775
  tabs:
706
776
  general: Video
777
+ lottieAnimation:
778
+ attributes:
779
+ id:
780
+ label: Animation
781
+ playbackMode:
782
+ inline_help_html: Bestimmt, wie die Animation abgespielt wird:<ul><li><strong>Endlosschleife:</strong> Immer wieder, solange sie sichtbar ist.</li><li><strong>Einmal abspielen:</strong> Einmal von Anfang bis Ende. Über die Einstellung „Animation starten“ kann gewählt werden, wann die Wiedergabe beginnt.</li><li><strong>Scrollposition:</strong> Bild für Bild beim Scrollen. Über die Einstellung „Scroll-Bereich“ kann gewählt werden, wann das Scrollen der Seite die Animation antreibt.</li></ul>
783
+ label: Wiedergabe-Modus
784
+ values:
785
+ loop: Endlosschleife
786
+ playOnce: Einmal abspielen
787
+ scroll: Scrollposition
788
+ scrollRange:
789
+ inline_help_html: Bestimmt, wann das Scrollen der Seite die Animation antreibt:<ul><li><strong>Während sichtbar:</strong> Von dem Moment, in dem das Element in den Viewport scrollt, bis es ihn wieder vollständig verlassen hat.</li><li><strong>Während vollständig sichtbar:</strong> Solange das Element vollständig im Viewport ist.</li><li><strong>Beim Passieren der Viewport-Mitte:</strong> Das Scrollen der Seite treibt die Animation an, während das Element die vertikale Mitte des Viewports passiert. Verfügbar für alle Elemente außer solchen mit Position „Neben dem Text (Sticky)“ oder „Stand-Alone“.</li><li><strong>Während eingerastet:</strong> Das Scrollen der Seite treibt die Animation an, solange das Element stehenbleibt. Bleibt das Element nicht stehen - in der Mobil-Darstellung, in der solche Elemente im Text verankert werden, oder wenn nicht genug Text daneben steht -, treibt das Scrollen die Animation stattdessen beim Passieren der Viewport-Mitte an. Verfügbar für Elemente mit Position „Neben dem Text (Sticky)“ oder „Stand-Alone“.</li><li><strong>Beim Hereinscrollen:</strong> Solange das Element in den Viewport scrollt.</li></ul>
790
+ label: Scroll-Bereich
791
+ values:
792
+ contain: Während vollständig sichtbar
793
+ cover: Während sichtbar
794
+ entry: Beim Hereinscrollen
795
+ inFocus: Beim Passieren der Viewport-Mitte
796
+ inFocusWhenPinned: Während eingerastet
797
+ startAnimationTrigger:
798
+ inline_help_html: Bestimmt, wann die Animation zu spielen beginnt:<ul><li><strong>Bei Erreichen der Viewport-Mitte:</strong> Sobald das Element die vertikale Mitte des Viewports erreicht.</li><li><strong>Sobald das Element sichtbar wird:</strong> Sobald das Element in den Viewport scrollt.</li></ul>Die Animation spielt dann bis zu ihrem Ende. Sie pausiert nur, solange das Element außerhalb des Viewports ist.
799
+ label: Animation starten
800
+ values:
801
+ onActivate: Bei Erreichen der Viewport-Mitte
802
+ onVisible: Sobald das Element sichtbar wird
803
+ description: Eine als dotLottie-Datei exportierte Animation einbinden
804
+ name: Lottie-Animation
805
+ tabs:
806
+ general: Lottie-Animation
707
807
  question:
708
808
  attributes:
709
809
  expandByDefault:
@@ -782,6 +882,25 @@ de:
782
882
  name: Text-Block
783
883
  tabs:
784
884
  general: Text-Block
885
+ socialEmbed:
886
+ attributes:
887
+ provider:
888
+ label: Anbieter
889
+ values:
890
+ x: X
891
+ instagram: Instagram
892
+ bluesky: Bluesky
893
+ tiktok: TikTok
894
+ url:
895
+ label: Post-URL
896
+ hideConversation:
897
+ label: Konversation ausblenden
898
+ hideMedia:
899
+ label: Medien ausblenden
900
+ description: Bettet Posts von X, Instagram, Bluesky oder TikTok ein
901
+ name: Social Media Post
902
+ tabs:
903
+ general: Social Embed
785
904
  twitterEmbed:
786
905
  attributes:
787
906
  hideConversation:
@@ -855,8 +974,8 @@ de:
855
974
  hotspots:
856
975
  edit_area:
857
976
  back: Zurück
858
- destroy: Löschen
859
- confirm_delete_link: Soll der Hotspot-Bereich wirklich gelöscht werden?
977
+ confirm_destroy: Soll der Hotspot-Bereich wirklich gelöscht werden?
978
+ destroy: Hotspot-Bereich löschen
860
979
  tabs:
861
980
  area: Hotspot-Bereich
862
981
  portrait: Hochkant
@@ -981,8 +1100,6 @@ de:
981
1100
  phonePlatform: Im Phone-Layout
982
1101
  always: Immer
983
1102
  never: Nie
984
- panZoomInitially:
985
- label: Pan & Zoom bei erstem Bereich starten
986
1103
  enableFullscreen:
987
1104
  label: Vollbildmodus erlauben
988
1105
  inline_help: Button anzeigen, um das Element bildschirmfüllend zu öffnen.
@@ -1095,13 +1212,17 @@ de:
1095
1212
  inline_help: |-
1096
1213
  Kapitel kann als Link-Ziel verwendet werden, erscheint
1097
1214
  allerdings nicht in der Navigationsleiste.
1098
- confirm_destroy: |-
1099
- Kapitel einschließlich ALLER enthaltener Abschnitte wirklich löschen?
1100
-
1101
- Dieser Schritt kann nicht rückgängig gemacht werden.
1215
+ returnButtonLabel:
1216
+ label: Text für Zurück-Button
1217
+ sheetWidth:
1218
+ label: Overlay-Breite
1219
+ values:
1220
+ full: Volle Breite
1221
+ inset: Mit seitlichem Abstand
1102
1222
  save_error: Beim Speichern des Kapitels ist ein Fehler aufgetreten.
1103
1223
  tabs:
1104
1224
  chapter: Kapitel
1225
+ excursion: Exkurs
1105
1226
  edit_motif_area:
1106
1227
  blank_slate: Kein Bereich markiert.
1107
1228
  cancel: Abbrechen
@@ -1110,15 +1231,41 @@ de:
1110
1231
  hint: Ziehe ein Rechteck, um den wichtigsten Bereich des Bildes zu markieren.
1111
1232
  reset: Zurücksetzen
1112
1233
  save: Speichern
1234
+ chapter_menu_items:
1235
+ copy_permalink: Permalink kopieren
1236
+ move_to_main: In Kapitel umwandeln
1237
+ move_to_excursions: In Exkurs umwandeln
1238
+ destroy_chapter_menu_item:
1239
+ confirm_destroy: |-
1240
+ Kapitel inklusive ALLER Abschnitte wirklich löschen?
1241
+
1242
+ Diese Aktion kann nicht rückgängig gemacht werden.
1243
+ destroy: Kapitel löschen
1244
+ destroy_content_element_menu_item:
1245
+ confirm_destroy: Element wirklich löschen?
1246
+ destroy: Element löschen
1247
+ selection_label: Auswahl löschen
1248
+ duplicate_content_element_menu_item:
1249
+ label: Element duplizieren
1250
+ selection_label: Auswahl duplizieren
1251
+ content_element_menu_items:
1252
+ move: Element verschieben...
1253
+ move_selection: Auswahl verschieben...
1254
+ destroy_section_menu_item:
1255
+ confirm_destroy: Abschnitt inklusive aller Elemente wirklich löschen?
1256
+ destroy: Abschnitt löschen
1113
1257
  edit_section:
1258
+ hidden_info: Dieser Abschnitt ist außerhalb des Editors ausgeblendet.
1259
+ motif_area_info_text: Markiere den wichtigsten Teil des Hintergrunds, der beim Erreichen des Abschnitts sichtbar und nicht von anderen Elementen überdeckt sein soll.
1114
1260
  attributes:
1115
1261
  appearance:
1116
- inline_help: Diese Einstellung legt fest wie die scrollenden Vordergrund-Ebene vom Hintergrund abgehoben werden soll. Bei der Einstellung "Karte" wird der Vordergrund mit einer Fläche mit abgerundeten Ecken hinterlegt, bei "Schatten" mit einem hellen oder dunklen Farbverlauf.
1262
+ inline_help: Legt fest, wie der Vordergrund vom Hintergrund abgehoben wird. "Schatten" fügt einen Farbverlauf hinter dem Text hinzu. "Karte" platziert den Inhalt auf einer abgerundeten Fläche. "Split" bedeckt die halbe Viewport-Breite mit einem Overlay für den Inhalt.
1117
1263
  label: Abblendung
1118
1264
  values:
1119
1265
  cards: Karte
1120
1266
  shadow: Schatten
1121
1267
  transparent: Keine
1268
+ split: Split
1122
1269
  atmoAudioFileId:
1123
1270
  inline_help: Wähle eine Audio-Datei, die im Hintergrund abgespielt werden soll. Wenn diese Atmo auch in nachfolgenden Abschnitten nahtlos weiterspielen soll, wähle für diese Abschnitte die selbe Atmo aus.
1124
1271
  label: Atmo-Audio
@@ -1144,12 +1291,8 @@ de:
1144
1291
  label: Hintergrund-Video (Hochkant)
1145
1292
  dynamicShadowOpacity:
1146
1293
  inline_help: Intensität der Abblendung, die - gesteuert durch die Scrollposition - hinter dem Text eingeblendet wird, sobald sich Motivbereich und Inhalt des Abschnitts zu überschneiden beginnen, um einen ausreichnenden Kontrast zu gewährleisten. Beachte, dass diese Abblendung nur sichtbar ist, wenn Motivbereich und Inhalt nicht nebeneinander dargestellt werden können. Wechsle am besten in die Phone-Vorschau, wenn du den eingestellten Wert veränderst.
1147
- inline_help_disabled: Aktiviere "Motivbereich freilegen" weiter oben, um diese Einstellung zu verwenden.
1294
+ inline_help_disabled: Setze den oberen Innenabstand in den Abstandseinstellungen des Abschnitts auf "Automatisch anpassen", um diese Einstellung zu verwenden.
1148
1295
  label: Dynamische Abblendung
1149
- exposeMotifArea:
1150
- inline_help: Sicherstellen, dass der markierte Motivbereich des Hintergrunds beim Erreichen des Abschnitts sichtbar ist und nicht von anderen Elementen überlagert wird. Wenn Motivbereich und Inhalt des Abschnitts nicht nebeneiner dargestellt werden können, wird zusätzlicher Freiraum am Anfang des Abschnitts eingefügt und der Inhalt nach unten verschoben.
1151
- inline_help_disabled: Wähle "Motivbereich markieren" im Drei-Punkte-Menü des Hintergrund-Bilds/Videos weiter oben, um diese Funktion zu verwenden. du kannst damit sicherzustellen, dass wichtige Teile des Hintegrunds nicht von anderen Elementen überdeckt werden.
1152
- label: Motivbereich freilegen
1153
1296
  fullHeight:
1154
1297
  inline_help: Aktiviere diese Einstellung, wenn der Hintergrund des Abschnitts (z.B. Bild, Farbfläche oder Hintergrundvideo) so groß angezeigt werden soll, dass das gesamte Browserfenster (der sogenannte Viewport) gefüllt ist. Wenn du mit kurzen Abschnitten arbeiten möchtest, musst du diese Option deaktivieren. Dann nimmt der Abschnitt und sein Hintergrund vertikal nur so viel Platz ein, wie für den Inhalt des Abschnitts unbedingt nötig ist. Es können dann mehrere Abschnitte mit verschiedenen Hintergründen gleichzeitig auf dem Bildschirm des Nutzers sichtbar sein. Um einen Überblendeffekt zwischen den Hintergründen zweier Abschnitte verwenden zu können, muss diese Option für beide Abschnitte aktiviert sein.
1155
1298
  label: Volle Viewport-Höhe
@@ -1181,8 +1324,24 @@ de:
1181
1324
  coverViewport: Viewport überdecken
1182
1325
  coverSection: Abschnitt überdecken
1183
1326
  cardSurfaceColor:
1327
+ inline_help: Hintergrundfarbe der Karte. Verwende eine teiltransparente Farbe, um den Hintergrund durchscheinen zu lassen und Hintergrundunschärfe zu aktivieren.
1184
1328
  label: Kartenhintergrundfarbe
1185
1329
  auto: "(Automatisch)"
1330
+ auto_color: "Automatische Farbe"
1331
+ shadowColor:
1332
+ inline_help: Farbe der Verläufe, die die Lesbarkeit des Inhalts vor dem Hintergrund verbessern.
1333
+ label: Schattenfarbe
1334
+ auto: "(Automatisch)"
1335
+ auto_color: "Automatische Farbe"
1336
+ splitOverlayColor:
1337
+ inline_help: Farbe des Overlays hinter dem Inhalt.
1338
+ label: Overlay-Farbe
1339
+ auto: "(Automatisch)"
1340
+ auto_color: "Automatische Farbe"
1341
+ overlayBackdropBlur:
1342
+ inline_help: Stärke der Unschärfe, die auf den Hintergrund hinter dem Overlay angewendet wird.
1343
+ label: Hintergrundunschärfe
1344
+ inline_help_disabled: Nur verfügbar, wenn die Overlay-Farbe Transparenz hat.
1186
1345
  sectionPaddings:
1187
1346
  label: Innenabstände oben/unten
1188
1347
  tabs:
@@ -1225,11 +1384,9 @@ de:
1225
1384
  header: Element einfügen
1226
1385
  no_options: Keine Optionen verfügbar
1227
1386
  section_item:
1387
+ cutoff: Paywall Grenze
1228
1388
  drag_hint: Ziehen, um den Abschnitt zu verschieben
1229
- duplicate: Duplizieren
1230
- insert_section_above: Abschnitt oberhalb einfügen
1231
- insert_section_below: Abschnitt unterhalb einfügen
1232
- copy_permalink: Permalink kopieren
1389
+ hidden: Nur im Editor sichtbar
1233
1390
  save_error: Beim Speichern des Abschnitts ist ein Fehler aufgetreten.
1234
1391
  transitions:
1235
1392
  beforeAfter: Statische Hintergründe
@@ -1238,9 +1395,24 @@ de:
1238
1395
  reveal: Freilegen
1239
1396
  scroll: Aus-/Einscrollen
1240
1397
  scrollOver: Überlagern
1398
+ section_menu_items:
1399
+ copy_permalink: Permalink kopieren
1400
+ duplicate: Abschnitt duplizieren
1241
1401
  hide: Außerhalb des Editors ausblenden
1402
+ insert_section_above: Abschnitt oberhalb einfügen
1403
+ insert_section_below: Abschnitt unterhalb einfügen
1404
+ move: Abschnitt verschieben...
1405
+ reset_cutoff: Paywall Grenze entfernen
1406
+ set_cutoff: Paywall Grenze oberhalb setzen
1242
1407
  show: Außerhalb des Editors einblenden
1243
- hidden: Nur im Editor sichtbar
1408
+ section_padding_visualization:
1409
+ intersecting_auto: "Darstellung des dynamischen Abstands, der sich an die Größe des Motivbereichs anpasst, um Überlappungen von Text und Motiv zu vermeiden"
1410
+ intersecting_manual: "Darstellung des manuell definierten Abstands, der bei Änderung der Fenstergröße konstant bleibt"
1411
+ side_by_side: "Darstellung des oberen Abstands, wenn der Inhalt neben dem Motivbereich Platz findet"
1412
+ top_padding: "Darstellung des oberen Abstands"
1413
+ bottom_padding: "Darstellung des unteren Abstands"
1414
+ section_paddings_input:
1415
+ motif: Motiv
1244
1416
  select_link_destination:
1245
1417
  cancel: Abbrechen
1246
1418
  create: Erstellen
@@ -1252,17 +1424,71 @@ de:
1252
1424
  select_file: Biete eine Datei zum Download an
1253
1425
  select_file_description: Lasse Leser eine Datei herunterladen, wenn sie auf den Link klicken.
1254
1426
  select_in_sidebar: Datei auswählen
1427
+ selection_label: Datei zum Herunterladen
1428
+ select_move_destination:
1429
+ cancel: Abbrechen
1430
+ header_insertPosition: Abschnitt verschieben
1431
+ header_sectionPart: Element verschieben
1432
+ hint: Wähle die Position aus, an die verschoben werden soll.
1433
+ selectable_storyline_item:
1434
+ blank_slate: Keine Kapitel
1435
+ blank_slate_excursions: Keine Exkurse
1255
1436
  selectable_chapter_item:
1256
1437
  title: Kapitel auswählen
1438
+ insert_here: Hierhin verschieben
1257
1439
  selectable_section_item:
1258
1440
  title: Abschnitt auswählen
1441
+ insert_here: Hierhin verschieben
1442
+ insert_at_beginning: An den Anfang
1443
+ insert_at_end: Ans Ende
1259
1444
  edit_motif_area_menu_item: Motivbereich markieren...
1445
+ edit_motif_area_input:
1446
+ select: Motivbereich auswählen
1447
+ edit: Motivbereich bearbeiten
1448
+ warn: Noch kein Motivbereich ausgewählt
1449
+ ignore_image: Für dieses Bild ignorieren
1450
+ ignore_video: Für dieses Video ignorieren
1260
1451
  backdrop_content_element_input:
1261
1452
  add: Neues Element
1262
1453
  unset: Nicht mehr als Hintergrund verwenden
1263
1454
  scales:
1455
+ sectionPaddingTop:
1456
+ none: "-"
1457
+ xxxs: XXXS
1458
+ xxs: XXS
1459
+ xs: XS
1460
+ sm: S
1461
+ md: M
1462
+ lg: L
1463
+ xl: XL
1464
+ xxl: XXL
1465
+ xxxl: XXXL
1466
+ sectionPaddingBottom:
1467
+ none: "-"
1468
+ xxxs: XXXS
1469
+ xxs: XXS
1470
+ xs: XS
1471
+ sm: S
1472
+ md: M
1473
+ lg: L
1474
+ xl: XL
1475
+ xxl: XXL
1476
+ xxxl: XXXL
1264
1477
  contentElementBoxBorderRadius:
1265
1478
  none: Keine
1479
+ contentElementMargin:
1480
+ xxs: XXS
1481
+ xs: XS
1482
+ sm: S
1483
+ md: M
1484
+ lg: L
1485
+ xl: XL
1486
+ xxl: XXL
1487
+ contentElementBoxShadow:
1488
+ sm: S
1489
+ md: M
1490
+ lg: L
1491
+ xl: XL
1266
1492
  content_element_text_inline_file_rights_attributes:
1267
1493
  showTextInlineFileRightsBackdrop:
1268
1494
  label: "Abblendung hinter Rechteangabe"
@@ -1278,42 +1504,182 @@ de:
1278
1504
  done: Fertig
1279
1505
  add_chapter: Neues Kapitel
1280
1506
  add_excursion: Neuer Exkurs
1507
+ excursion_blank_slate: |-
1508
+ <p>
1509
+ <strong>Exkurse</strong> bieten zusätzliche Inhalte abseits des
1510
+ Hauptpfads. Sie öffnen sich in einer <strong>separaten
1511
+ Ebene</strong> und der Leser kehrt automatisch zur
1512
+ ursprünglichen Position zurück.
1513
+ </p>
1514
+ <p>
1515
+ Lege deinen ersten Exkurs an und <strong>verlinke
1516
+ ihn</strong> aus deinem Beitrag, um ihn für Leser zugänglich
1517
+ zu machen.
1518
+ </p>
1519
+ <a target="_blank" rel="noopener noreferrer"
1520
+ href="https://pageflow.freshdesk.com/de/support/solutions/articles/11000134532-was-sind-exkurse-und-wie-nutze-ich-sie-fr-vertiefende-inhalte">Mehr über Exkurse erfahren</a>
1281
1521
  aspect_ratios:
1282
1522
  narrow: Landscape (4:3)
1283
1523
  portrait: Portrait (3:4)
1284
1524
  square: Quadratisch (1:1)
1285
1525
  wide: Landscape (16:9)
1286
1526
  original: Original
1527
+ content_element_style_list_input:
1528
+ add: "Stil hinzufügen..."
1529
+ remove: "Stil entfernen"
1530
+ marginTop: "Abstand oben"
1531
+ marginBottom: "Abstand unten"
1532
+ boxShadow: "Schatten"
1533
+ outlineColor: "Umrandung"
1287
1534
  image_modifier_list_input:
1288
1535
  add: "Stil hinzufügen..."
1289
1536
  remove: "Stil entfernen"
1290
1537
  crop_types:
1291
1538
  circle: Kreis
1292
- section_paddings_input:
1293
- auto: (Automatisch)
1294
1539
  edit_section_paddings:
1295
1540
  tabs:
1296
1541
  sectionPaddings: Innenabstände
1297
1542
  portrait: Hochkant
1543
+
1544
+ side_by_side_info: 'Wenn Motiv und Inhalt nebeneinander passen:'
1298
1545
  attributes:
1546
+ topPaddingVisualization:
1547
+ label: Abstand oben
1548
+ exposeMotifArea:
1549
+ label: Abstand oben
1550
+ values:
1551
+ 'true': Automatisch anpassen, um ein Motiv im Hintergrund freizustellen
1552
+ 'false': Manuell festlegen
1553
+ sideBySideVisualization:
1554
+ label: Nebeneinander
1299
1555
  paddingTop:
1300
- blank: (Standard)
1301
- label: Oben
1556
+ label: Abstand oben
1557
+ bottomPaddingVisualization:
1558
+ label: Abstand unten
1302
1559
  paddingBottom:
1303
- blank: (Standard)
1304
- label: Unten
1560
+ label: Abstand unten
1561
+ samePortraitPaddings:
1562
+ label: Gleiche Innenabstände wie bei Querformat verwenden
1563
+ portraitExposeMotifArea:
1564
+ label: Abstand oben
1305
1565
  portraitPaddingTop:
1306
- blank: (Standard)
1307
- label: Oben (Hochkant)
1566
+ label: Abstand oben (Hochkant)
1308
1567
  portraitPaddingBottom:
1309
- blank: (Standard)
1310
- label: Unten (Hochkant)
1568
+ label: Abstand unten (Hochkant)
1569
+ remainingVerticalSpace:
1570
+ label: Verbleibender vertikaler Raum
1571
+ inline_help: Bestimmt, wo der Inhalt positioniert wird, wenn er nicht die gesamte Höhe des Abschnitts ausfüllt.
1572
+ inline_help_disabled: Nur verfügbar, wenn "Volle Viewport-Höhe" in den Abschnittseinstellungen aktiviert ist.
1573
+ values:
1574
+ around: Um den Inhalt
1575
+ above: Über dem Inhalt
1576
+ below: Unter dem Inhalt
1577
+ edit_defaults:
1578
+ back: Erscheinungsbild
1579
+ sections_info: Änderungen an diesen Einstellungen haben keine Auswirkungen auf existierende Abschnitte.
1580
+ content_elements_info: |-
1581
+ Änderungen an diesen Einstellungen haben keine Auswirkungen auf existierende Elemente.
1582
+ Einstellungen können später für einzelne Elemente überschrieben werden.
1583
+ all_elements: Alle Elemente
1584
+ tabs:
1585
+ sections: Neue Abschnitte
1586
+ content_elements: Neue Elemente
1587
+ attributes:
1588
+ defaultSectionLayout:
1589
+ label: Vordergrund-Positionierung
1590
+ inline_help: |-
1591
+ Standardposition der scrollenden Vordergrund-Ebene
1592
+ neuer Abschnitte in Desktop-Darstellung.
1593
+ values:
1594
+ center: Mitte
1595
+ centerRagged: Zentriert
1596
+ left: Links
1597
+ right: Rechts
1598
+ defaultSectionAppearance:
1599
+ label: Abblendung
1600
+ inline_help: Standard-Erscheinung neuer Abschnitte.
1601
+ values:
1602
+ cards: Karte
1603
+ shadow: Schatten
1604
+ transparent: Keine
1605
+ topPaddingVisualization:
1606
+ label: Abstand oben
1607
+ defaultSectionPaddingTop:
1608
+ label: Abstand oben
1609
+ inline_help: Standardabstand oberhalb des Inhalts neuer Abschnitte.
1610
+ bottomPaddingVisualization:
1611
+ label: Abstand unten
1612
+ defaultSectionPaddingBottom:
1613
+ label: Abstand unten
1614
+ inline_help: Standardabstand unterhalb des Inhalts neuer Abschnitte.
1615
+ defaultContentElementFullWidthInPhoneLayout:
1616
+ label: Volle Breite im Phone-Layout
1617
+ inline_help: |-
1618
+ Standardmäßig Elemente auf kleineren Bildschirmen
1619
+ die gesamte Breite des Viewports nutzen lassen.
1620
+ defaultCaptionVariant:
1621
+ label: Beschriftungsvariante
1622
+ inline_help: Standard-Darstellung der Beschriftungen neuer Elemente.
1623
+ defaultFileRightsDisplay:
1624
+ label: Rechteanzeige hochgeladener Dateien
1625
+ inline_help: |-
1626
+ Lege fest, ob die Rechteangabe neu hochgeladener Dateien in
1627
+ der zusammenfassenden Liste in der Info-Box angezeigt werden
1628
+ soll oder unmittelbar an der Stelle im Beitrag, wo die Datei
1629
+ verwendet wird.
1630
+ values:
1631
+ credits: In der Info-Box
1632
+ inline: Am verwendenden Element
1311
1633
  typography_sizes:
1634
+ xxxl: Riesig
1635
+ xxl: Extra groß
1312
1636
  xl: Sehr groß
1313
1637
  lg: Groß
1314
1638
  md: Mittel
1315
1639
  sm: Klein
1316
1640
  xs: Sehr klein
1641
+ xxs: Extra klein
1642
+ xxxs: Winzig
1643
+ short:
1644
+ xxxl: XXXL
1645
+ xxl: XXL
1646
+ xl: XL
1647
+ lg: L
1648
+ md: M
1649
+ sm: S
1650
+ xs: XS
1651
+ xxs: XXS
1652
+ xxxs: XXXS
1653
+ link_button_variant_attributes:
1654
+ linkButtonVariant:
1655
+ label: Button-Variante
1656
+ blank: "(Standard)"
1657
+ main_menu:
1658
+ comments: Kommentare
1659
+ comments_view:
1660
+ activity: Letzte Aktivität
1661
+ always_show_comments: Kommentare immer anzeigen
1662
+ display_options: Kommentaranzeige
1663
+ filter:
1664
+ all: Alle Themen
1665
+ unresolved: Ungelöste Themen
1666
+ new_thread: Neues Thema
1667
+ section: Abschnitt
1668
+ tabs:
1669
+ comments: Alle
1670
+ selection: Für Auswahl
1671
+ comment_activity_view:
1672
+ back: Kommentare
1673
+ tabs:
1674
+ activity: Letzte Aktivität
1675
+ new_thread_view:
1676
+ back: Kommentare
1677
+ tabs:
1678
+ newComment: Neues Thema
1679
+ configuration_places:
1680
+ entry: "Einstellungen"
1681
+ label: "%{chapter} - %{subject}"
1682
+ section: "Abschnitt %{number}"
1317
1683
  help_entries:
1318
1684
  content_elements:
1319
1685
  menu_item: Inhaltselemente
@@ -1389,10 +1755,11 @@ de:
1389
1755
  rechts neben dem Text dargestellt werden kann, so wird
1390
1756
  kein zusätzlicher Abstand oberhalb des Texts eingefügt.
1391
1757
 
1392
- Deaktiviere die Option **Motivbereich freilegen**, falls
1393
- der Bildauschnitt zwar passend zum Motivbereich gewählt
1394
- werden soll, der Inhalt des Abschnitts das Motiv aber
1395
- überlagern darf.
1758
+ Wähle in den Abstandseinstellungen des Abschnitts beim
1759
+ oberen Innenabstand die Option **Manuell festlegen**,
1760
+ falls der Bildauschnitt zwar passend zum Motivbereich
1761
+ gewählt werden soll, der Inhalt des Abschnitts das Motiv
1762
+ aber überlagern darf.
1396
1763
 
1397
1764
  Der Motivbereich kann über den Menüpunkt **Bildmotiv
1398
1765
  markieren** der **Hintergrund-Bild**- und **Hintergrund
@@ -1581,11 +1948,15 @@ de:
1581
1948
  aktiviert wurde.
1582
1949
  inline_editing:
1583
1950
  add_caption: Beschriftung hinzufügen
1951
+ add_comment: Kommentar hinzufügen
1584
1952
  add_content_element: Neues Element hinzufügen
1585
1953
  cancel: Abbrechen
1586
1954
  drag_content_element: Ziehen, um Element zu verschieben
1955
+ padding_suppressed_before_full_width: Abstand unterdrückt vor vollbreitem Element
1956
+ padding_suppressed_after_full_width: Abstand unterdrückt nach vollbreitem Element
1587
1957
  edit_section_transition_after: Übergangseffekt bearbeiten
1588
1958
  edit_section_transition_before: Übergangseffekt bearbeiten
1959
+ flip_card: Karte wenden
1589
1960
  formats:
1590
1961
  block_quote: Blockzitat
1591
1962
  bulleted_list: Auflistung
@@ -1606,9 +1977,12 @@ de:
1606
1977
  chapter_number: Kapitel %{number}
1607
1978
  deleted_chapter: Gelöschtes Kapitel
1608
1979
  deleted_file: Gelöschte Datei
1980
+ excursion_with_title: "Exkurs: %{title}"
1609
1981
  opens_in_new_tab: Öffnet in neuem Tab
1610
1982
  opens_in_same_tab: Öffnet außerhalb des Editors im selben Tab
1983
+ untitled_excursion: Unbenannter Exkurs
1611
1984
  visit_chapter: Gehe zu Kapitel
1985
+ visit_excursion: Gehe zu Exkurs
1612
1986
  visit_section: Gehe zu Abschnitt
1613
1987
  remove_link: Link entfernen
1614
1988
  select_content_element: Element auswählen
@@ -1629,3 +2003,76 @@ de:
1629
2003
  select_link_destination: "Link-Ziel auswählen"
1630
2004
  change_link_destination: "Link-Ziel ändern"
1631
2005
  remove_link: "Link entfernen"
2006
+ edit_section_padding_top: Oberen Abstand bearbeiten
2007
+ edit_section_padding_bottom: Unteren Abstand bearbeiten
2008
+ content_element_margin_top: Oberer Außenabstand
2009
+ content_element_margin_bottom: Unterer Außenabstand
2010
+ expose_motif_area: Motiv freilegen
2011
+ review:
2012
+ add_comment: Kommentar hinzufügen
2013
+ cancel_add_comment: Abbrechen
2014
+ hide_comments: Kommentare ausblenden
2015
+ show_comments: Kommentare einblenden
2016
+ show_comments_with_unread:
2017
+ one: Kommentare einblenden (1 Thema mit neuer Aktivität)
2018
+ other: Kommentare einblenden (%{count} Themen mit neuer Aktivität)
2019
+ comment_toolbar: Kommentare
2020
+ filter:
2021
+ label: Kommentare filtern
2022
+ unresolved: Ungelöst
2023
+ all: Alle
2024
+ previous_comment: Vorheriger Kommentar
2025
+ next_comment: Nächster Kommentar
2026
+ comment_count:
2027
+ zero: Keine Kommentare
2028
+ one: 1 Kommentar
2029
+ other: '%{count} Kommentare'
2030
+ unread_count:
2031
+ one: 1 ungelesen
2032
+ other: '%{count} ungelesen'
2033
+ unread_reply_count:
2034
+ one: 1 ungelesen
2035
+ other: '%{count} ungelesen'
2036
+ unread_replies: Ungelesene Antworten
2037
+ select_content_element: Zum Kommentieren auswählen
2038
+ select_section: Abschnitt zum Kommentieren auswählen
2039
+ select_text_to_comment: Text zum Kommentieren auswählen
2040
+ new_topic: Neues Thema
2041
+ add_comment_placeholder: Kommentar hinzufügen...
2042
+ reply_placeholder: Antworten...
2043
+ cancel: Abbrechen
2044
+ save: Speichern
2045
+ send: Senden
2046
+ enter_for_new_line: Enter für neue Zeile
2047
+ comment_actions: Kommentaraktionen
2048
+ edit_comment: Bearbeiten
2049
+ edited: Bearbeitet %{date}
2050
+ resolve: Als gelöst markieren
2051
+ unresolve: Als ungelöst markieren
2052
+ resolution: Als gelöst markiert
2053
+ resolution_by: Als gelöst markiert von
2054
+ thread_actions: Aktionen für Thema
2055
+ resolved_count:
2056
+ one: 1 erledigt
2057
+ other: '%{count} erledigt'
2058
+ reply_count:
2059
+ one: 1 Antwort
2060
+ other: '%{count} Antworten'
2061
+ earlier_reply_count:
2062
+ one: 1 weitere Antwort
2063
+ other: '%{count} weitere Antworten'
2064
+ no_threads_yet: Noch keine Kommentare
2065
+ refers_to_deleted_element: Bezieht sich auf ein gelöschtes Element
2066
+ activity:
2067
+ toggle: Letzte Aktivität
2068
+ summary:
2069
+ topic: Thema begonnen
2070
+ reply_count:
2071
+ one: 1 Antwort
2072
+ other: '%{count} Antworten'
2073
+ resolution: als gelöst markiert
2074
+ and: ' und '
2075
+ today: Heute
2076
+ yesterday: Gestern
2077
+ no_activity_yet: Noch keine Aktivität
2078
+ show_more: Mehr anzeigen