react-cheminfo 0.24.0 → 0.26.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 (432) hide show
  1. package/README.md +73 -2
  2. package/bin/check-messages.mjs +229 -0
  3. package/lib/about/ui/AboutBuild.d.ts.map +1 -1
  4. package/lib/about/ui/AboutBuild.js +15 -4
  5. package/lib/about/ui/AboutBuild.js.map +1 -1
  6. package/lib/about/ui/AboutCitations.d.ts.map +1 -1
  7. package/lib/about/ui/AboutCitations.js +3 -1
  8. package/lib/about/ui/AboutCitations.js.map +1 -1
  9. package/lib/about/ui/AboutPage.d.ts.map +1 -1
  10. package/lib/about/ui/AboutPage.js +9 -1
  11. package/lib/about/ui/AboutPage.js.map +1 -1
  12. package/lib/about/ui/AboutProvidedBy.d.ts.map +1 -1
  13. package/lib/about/ui/AboutProvidedBy.js +8 -3
  14. package/lib/about/ui/AboutProvidedBy.js.map +1 -1
  15. package/lib/capsule/ui/Capsule.d.ts +30 -0
  16. package/lib/capsule/ui/Capsule.d.ts.map +1 -0
  17. package/lib/capsule/ui/Capsule.js +12 -0
  18. package/lib/capsule/ui/Capsule.js.map +1 -0
  19. package/lib/capsule/ui/CapsuleFilter.d.ts +19 -3
  20. package/lib/capsule/ui/CapsuleFilter.d.ts.map +1 -1
  21. package/lib/capsule/ui/CapsuleFilter.js +14 -44
  22. package/lib/capsule/ui/CapsuleFilter.js.map +1 -1
  23. package/lib/capsule/ui/capsuleFilterCapsules.d.ts +15 -0
  24. package/lib/capsule/ui/capsuleFilterCapsules.d.ts.map +1 -0
  25. package/lib/capsule/ui/capsuleFilterCapsules.js +47 -0
  26. package/lib/capsule/ui/capsuleFilterCapsules.js.map +1 -0
  27. package/lib/chart/ui/ChartTrackingLayer.d.ts.map +1 -1
  28. package/lib/chart/ui/ChartTrackingLayer.js +4 -2
  29. package/lib/chart/ui/ChartTrackingLayer.js.map +1 -1
  30. package/lib/chrome/ui/SiteHeader.d.ts +1 -1
  31. package/lib/chrome/ui/SiteHeader.d.ts.map +1 -1
  32. package/lib/chrome/ui/SiteHeader.js +4 -2
  33. package/lib/chrome/ui/SiteHeader.js.map +1 -1
  34. package/lib/citation/ui/CitationMenu.d.ts +1 -1
  35. package/lib/citation/ui/CitationMenu.d.ts.map +1 -1
  36. package/lib/citation/ui/CitationMenu.js +7 -3
  37. package/lib/citation/ui/CitationMenu.js.map +1 -1
  38. package/lib/citation/ui/CiteButton.d.ts +1 -1
  39. package/lib/citation/ui/CiteButton.d.ts.map +1 -1
  40. package/lib/citation/ui/CiteButton.js +3 -1
  41. package/lib/citation/ui/CiteButton.js.map +1 -1
  42. package/lib/citation/ui/CopyFormatEntries.d.ts.map +1 -1
  43. package/lib/citation/ui/CopyFormatEntries.js +3 -1
  44. package/lib/citation/ui/CopyFormatEntries.js.map +1 -1
  45. package/lib/citation/ui/WorkEntry.d.ts.map +1 -1
  46. package/lib/citation/ui/WorkEntry.js +3 -1
  47. package/lib/citation/ui/WorkEntry.js.map +1 -1
  48. package/lib/citation/ui/entries.d.ts.map +1 -1
  49. package/lib/citation/ui/entries.js +8 -2
  50. package/lib/citation/ui/entries.js.map +1 -1
  51. package/lib/citation/ui/useCopyFeedback.d.ts.map +1 -1
  52. package/lib/citation/ui/useCopyFeedback.js +9 -4
  53. package/lib/citation/ui/useCopyFeedback.js.map +1 -1
  54. package/lib/clipboard/ui/ClickToCopy.d.ts.map +1 -1
  55. package/lib/clipboard/ui/ClickToCopy.js +12 -6
  56. package/lib/clipboard/ui/ClickToCopy.js.map +1 -1
  57. package/lib/clipboard/ui/CopyButton.d.ts +3 -3
  58. package/lib/clipboard/ui/CopyButton.d.ts.map +1 -1
  59. package/lib/clipboard/ui/CopyButton.js +7 -4
  60. package/lib/clipboard/ui/CopyButton.js.map +1 -1
  61. package/lib/color/ui/ColorScaleEditor.d.ts.map +1 -1
  62. package/lib/color/ui/ColorScaleEditor.js +15 -10
  63. package/lib/color/ui/ColorScaleEditor.js.map +1 -1
  64. package/lib/color/ui/ColorScaleEntry.d.ts.map +1 -1
  65. package/lib/color/ui/ColorScaleEntry.js +4 -2
  66. package/lib/color/ui/ColorScaleEntry.js.map +1 -1
  67. package/lib/color/ui/ColorScaleLegend.d.ts.map +1 -1
  68. package/lib/color/ui/ColorScaleLegend.js +7 -1
  69. package/lib/color/ui/ColorScaleLegend.js.map +1 -1
  70. package/lib/color/ui/ColorScaleSelect.d.ts.map +1 -1
  71. package/lib/color/ui/ColorScaleSelect.js +8 -4
  72. package/lib/color/ui/ColorScaleSelect.js.map +1 -1
  73. package/lib/confirm/ui/ConfirmButton.d.ts +2 -2
  74. package/lib/confirm/ui/ConfirmButton.d.ts.map +1 -1
  75. package/lib/confirm/ui/ConfirmButton.js +4 -2
  76. package/lib/confirm/ui/ConfirmButton.js.map +1 -1
  77. package/lib/core.d.ts +1 -0
  78. package/lib/core.d.ts.map +1 -1
  79. package/lib/core.js +1 -0
  80. package/lib/core.js.map +1 -1
  81. package/lib/credits/ui/CreditsList.d.ts.map +1 -1
  82. package/lib/credits/ui/CreditsList.js +3 -1
  83. package/lib/credits/ui/CreditsList.js.map +1 -1
  84. package/lib/delimited/ui/DelimitedTextDialog.d.ts.map +1 -1
  85. package/lib/delimited/ui/DelimitedTextDialog.js +5 -2
  86. package/lib/delimited/ui/DelimitedTextDialog.js.map +1 -1
  87. package/lib/delimited/ui/DelimitedTextPanel.d.ts.map +1 -1
  88. package/lib/delimited/ui/DelimitedTextPanel.js +8 -8
  89. package/lib/delimited/ui/DelimitedTextPanel.js.map +1 -1
  90. package/lib/download/ui/FigureDownload.d.ts +2 -2
  91. package/lib/download/ui/FigureDownload.d.ts.map +1 -1
  92. package/lib/download/ui/FigureDownload.js +4 -2
  93. package/lib/download/ui/FigureDownload.js.map +1 -1
  94. package/lib/download/ui/FigureDownloadPanel.d.ts.map +1 -1
  95. package/lib/download/ui/FigureDownloadPanel.js +24 -18
  96. package/lib/download/ui/FigureDownloadPanel.js.map +1 -1
  97. package/lib/ecosystem/core/sites.d.ts.map +1 -1
  98. package/lib/ecosystem/core/sites.js +4 -2
  99. package/lib/ecosystem/core/sites.js.map +1 -1
  100. package/lib/ecosystem/ui/EcosystemButton.d.ts +1 -1
  101. package/lib/ecosystem/ui/EcosystemButton.d.ts.map +1 -1
  102. package/lib/ecosystem/ui/EcosystemButton.js +4 -2
  103. package/lib/ecosystem/ui/EcosystemButton.js.map +1 -1
  104. package/lib/ecosystem/ui/EcosystemLinks.d.ts +1 -1
  105. package/lib/ecosystem/ui/EcosystemLinks.d.ts.map +1 -1
  106. package/lib/ecosystem/ui/EcosystemLinks.js +5 -2
  107. package/lib/ecosystem/ui/EcosystemLinks.js.map +1 -1
  108. package/lib/ecosystem/ui/EcosystemMenu.d.ts.map +1 -1
  109. package/lib/ecosystem/ui/EcosystemMenu.js +3 -1
  110. package/lib/ecosystem/ui/EcosystemMenu.js.map +1 -1
  111. package/lib/ecosystem/ui/SiteGroupSection.d.ts.map +1 -1
  112. package/lib/ecosystem/ui/SiteGroupSection.js +3 -1
  113. package/lib/ecosystem/ui/SiteGroupSection.js.map +1 -1
  114. package/lib/ecosystem/ui/SiteTile.d.ts.map +1 -1
  115. package/lib/ecosystem/ui/SiteTile.js +3 -1
  116. package/lib/ecosystem/ui/SiteTile.js.map +1 -1
  117. package/lib/ecosystem/ui/glyphs.d.ts.map +1 -1
  118. package/lib/ecosystem/ui/glyphs.js +6 -5
  119. package/lib/ecosystem/ui/glyphs.js.map +1 -1
  120. package/lib/error/ui/ErrorFallback.d.ts +2 -2
  121. package/lib/error/ui/ErrorFallback.d.ts.map +1 -1
  122. package/lib/error/ui/ErrorFallback.js +4 -2
  123. package/lib/error/ui/ErrorFallback.js.map +1 -1
  124. package/lib/help/ui/HelpBody.d.ts.map +1 -1
  125. package/lib/help/ui/HelpBody.js +3 -1
  126. package/lib/help/ui/HelpBody.js.map +1 -1
  127. package/lib/help/ui/HelpIcon.d.ts +2 -1
  128. package/lib/help/ui/HelpIcon.d.ts.map +1 -1
  129. package/lib/help/ui/HelpIcon.js +4 -2
  130. package/lib/help/ui/HelpIcon.js.map +1 -1
  131. package/lib/help/ui/HelpToolbarButton.d.ts.map +1 -1
  132. package/lib/help/ui/HelpToolbarButton.js +3 -1
  133. package/lib/help/ui/HelpToolbarButton.js.map +1 -1
  134. package/lib/help/ui/helpName.d.ts +5 -1
  135. package/lib/help/ui/helpName.d.ts.map +1 -1
  136. package/lib/help/ui/helpName.js +4 -2
  137. package/lib/help/ui/helpName.js.map +1 -1
  138. package/lib/i18n/core/chromeCatalog.d.ts +21 -0
  139. package/lib/i18n/core/chromeCatalog.d.ts.map +1 -0
  140. package/lib/i18n/core/chromeCatalog.js +29 -0
  141. package/lib/i18n/core/chromeCatalog.js.map +1 -0
  142. package/lib/i18n/core/index.d.ts +12 -0
  143. package/lib/i18n/core/index.d.ts.map +1 -0
  144. package/lib/i18n/core/index.js +6 -0
  145. package/lib/i18n/core/index.js.map +1 -0
  146. package/lib/i18n/core/languages.d.ts +32 -0
  147. package/lib/i18n/core/languages.d.ts.map +1 -0
  148. package/lib/i18n/core/languages.js +41 -0
  149. package/lib/i18n/core/languages.js.map +1 -0
  150. package/lib/i18n/core/messageCatalog.d.ts +113 -0
  151. package/lib/i18n/core/messageCatalog.d.ts.map +1 -0
  152. package/lib/i18n/core/messageCatalog.js +135 -0
  153. package/lib/i18n/core/messageCatalog.js.map +1 -0
  154. package/lib/i18n/core/messageValues.d.ts +3 -0
  155. package/lib/i18n/core/messageValues.d.ts.map +1 -0
  156. package/lib/i18n/core/messageValues.js +2 -0
  157. package/lib/i18n/core/messageValues.js.map +1 -0
  158. package/lib/i18n/core/session.d.ts +51 -0
  159. package/lib/i18n/core/session.d.ts.map +1 -0
  160. package/lib/i18n/core/session.js +64 -0
  161. package/lib/i18n/core/session.js.map +1 -0
  162. package/lib/i18n/core/translateSetup.d.ts +28 -0
  163. package/lib/i18n/core/translateSetup.d.ts.map +1 -0
  164. package/lib/i18n/core/translateSetup.js +30 -0
  165. package/lib/i18n/core/translateSetup.js.map +1 -0
  166. package/lib/i18n/ui/LanguageSelect.d.ts +37 -0
  167. package/lib/i18n/ui/LanguageSelect.d.ts.map +1 -0
  168. package/lib/i18n/ui/LanguageSelect.js +27 -0
  169. package/lib/i18n/ui/LanguageSelect.js.map +1 -0
  170. package/lib/i18n/ui/index.d.ts +6 -0
  171. package/lib/i18n/ui/index.d.ts.map +1 -0
  172. package/lib/i18n/ui/index.js +4 -0
  173. package/lib/i18n/ui/index.js.map +1 -0
  174. package/lib/i18n/ui/useLanguage.d.ts +23 -0
  175. package/lib/i18n/ui/useLanguage.d.ts.map +1 -0
  176. package/lib/i18n/ui/useLanguage.js +36 -0
  177. package/lib/i18n/ui/useLanguage.js.map +1 -0
  178. package/lib/i18n/ui/useT.d.ts +47 -0
  179. package/lib/i18n/ui/useT.d.ts.map +1 -0
  180. package/lib/i18n/ui/useT.js +51 -0
  181. package/lib/i18n/ui/useT.js.map +1 -0
  182. package/lib/locales/de.json +442 -0
  183. package/lib/locales/en.json +442 -0
  184. package/lib/locales/es.json +442 -0
  185. package/lib/locales/fr.json +442 -0
  186. package/lib/molecule3d/core/gestures.d.ts +10 -0
  187. package/lib/molecule3d/core/gestures.d.ts.map +1 -1
  188. package/lib/molecule3d/core/gestures.js +39 -7
  189. package/lib/molecule3d/core/gestures.js.map +1 -1
  190. package/lib/molecule3d/ui/Molecule3DExport.d.ts.map +1 -1
  191. package/lib/molecule3d/ui/Molecule3DExport.js +3 -1
  192. package/lib/molecule3d/ui/Molecule3DExport.js.map +1 -1
  193. package/lib/molecule3d/ui/Molecule3DHelp.d.ts.map +1 -1
  194. package/lib/molecule3d/ui/Molecule3DHelp.js +7 -2
  195. package/lib/molecule3d/ui/Molecule3DHelp.js.map +1 -1
  196. package/lib/molecule3d/ui/Molecule3DOptions.d.ts.map +1 -1
  197. package/lib/molecule3d/ui/Molecule3DOptions.js +9 -9
  198. package/lib/molecule3d/ui/Molecule3DOptions.js.map +1 -1
  199. package/lib/molecule3d/ui/Molecule3DSurfaceColors.d.ts.map +1 -1
  200. package/lib/molecule3d/ui/Molecule3DSurfaceColors.js +8 -8
  201. package/lib/molecule3d/ui/Molecule3DSurfaceColors.js.map +1 -1
  202. package/lib/molecule3d/ui/Molecule3DToolbar.d.ts.map +1 -1
  203. package/lib/molecule3d/ui/Molecule3DToolbar.js +15 -10
  204. package/lib/molecule3d/ui/Molecule3DToolbar.js.map +1 -1
  205. package/lib/molecule3d/ui/MoleculeViewer3D.d.ts.map +1 -1
  206. package/lib/molecule3d/ui/MoleculeViewer3D.js +6 -3
  207. package/lib/molecule3d/ui/MoleculeViewer3D.js.map +1 -1
  208. package/lib/orbital/ui/AtomicOrbitalCanvas.d.ts.map +1 -1
  209. package/lib/orbital/ui/AtomicOrbitalCanvas.js +3 -1
  210. package/lib/orbital/ui/AtomicOrbitalCanvas.js.map +1 -1
  211. package/lib/orbital/ui/AtomicOrbitalControls.d.ts.map +1 -1
  212. package/lib/orbital/ui/AtomicOrbitalControls.js +12 -15
  213. package/lib/orbital/ui/AtomicOrbitalControls.js.map +1 -1
  214. package/lib/orbital/ui/AtomicOrbitalViewer.d.ts.map +1 -1
  215. package/lib/orbital/ui/AtomicOrbitalViewer.js +6 -3
  216. package/lib/orbital/ui/AtomicOrbitalViewer.js.map +1 -1
  217. package/lib/orbital/ui/capability.d.ts +4 -0
  218. package/lib/orbital/ui/capability.d.ts.map +1 -1
  219. package/lib/orbital/ui/capability.js +4 -0
  220. package/lib/orbital/ui/capability.js.map +1 -1
  221. package/lib/overlay/ui/OverlayBar.d.ts +1 -1
  222. package/lib/overlay/ui/OverlayBar.d.ts.map +1 -1
  223. package/lib/overlay/ui/OverlayBar.js +6 -3
  224. package/lib/overlay/ui/OverlayBar.js.map +1 -1
  225. package/lib/overlay/ui/OverlayInfo.d.ts +1 -1
  226. package/lib/overlay/ui/OverlayInfo.d.ts.map +1 -1
  227. package/lib/overlay/ui/OverlayInfo.js +5 -2
  228. package/lib/overlay/ui/OverlayInfo.js.map +1 -1
  229. package/lib/overlay/ui/OverlayPanel.d.ts +9 -2
  230. package/lib/overlay/ui/OverlayPanel.d.ts.map +1 -1
  231. package/lib/overlay/ui/OverlayPanel.js +5 -11
  232. package/lib/overlay/ui/OverlayPanel.js.map +1 -1
  233. package/lib/overlay/ui/OverlayReadout.d.ts.map +1 -1
  234. package/lib/overlay/ui/OverlayReadout.js +3 -1
  235. package/lib/overlay/ui/OverlayReadout.js.map +1 -1
  236. package/lib/pedagogy/ui/ExerciseActions.d.ts +1 -1
  237. package/lib/pedagogy/ui/ExerciseActions.d.ts.map +1 -1
  238. package/lib/pedagogy/ui/ExerciseActions.js +9 -2
  239. package/lib/pedagogy/ui/ExerciseActions.js.map +1 -1
  240. package/lib/pedagogy/ui/ExerciseProgressHeader.d.ts +1 -1
  241. package/lib/pedagogy/ui/ExerciseProgressHeader.d.ts.map +1 -1
  242. package/lib/pedagogy/ui/ExerciseProgressHeader.js +9 -5
  243. package/lib/pedagogy/ui/ExerciseProgressHeader.js.map +1 -1
  244. package/lib/pedagogy/ui/GlossaryIndex.d.ts +1 -1
  245. package/lib/pedagogy/ui/GlossaryIndex.d.ts.map +1 -1
  246. package/lib/pedagogy/ui/GlossaryIndex.js +6 -8
  247. package/lib/pedagogy/ui/GlossaryIndex.js.map +1 -1
  248. package/lib/pedagogy/ui/HintLadder.d.ts +2 -2
  249. package/lib/pedagogy/ui/HintLadder.d.ts.map +1 -1
  250. package/lib/pedagogy/ui/HintLadder.js +8 -2
  251. package/lib/pedagogy/ui/HintLadder.js.map +1 -1
  252. package/lib/pedagogy/ui/SyntaxTooltip.d.ts +4 -4
  253. package/lib/pedagogy/ui/SyntaxTooltip.d.ts.map +1 -1
  254. package/lib/pedagogy/ui/SyntaxTooltip.js +4 -2
  255. package/lib/pedagogy/ui/SyntaxTooltip.js.map +1 -1
  256. package/lib/pedagogy/ui/TutorialStepStrip.d.ts.map +1 -1
  257. package/lib/pedagogy/ui/TutorialStepStrip.js +7 -2
  258. package/lib/pedagogy/ui/TutorialStepStrip.js.map +1 -1
  259. package/lib/periodic/ui/CategoryLegend.d.ts.map +1 -1
  260. package/lib/periodic/ui/CategoryLegend.js +3 -1
  261. package/lib/periodic/ui/CategoryLegend.js.map +1 -1
  262. package/lib/periodic/ui/ElementCell.d.ts.map +1 -1
  263. package/lib/periodic/ui/ElementCell.js +7 -1
  264. package/lib/periodic/ui/ElementCell.js.map +1 -1
  265. package/lib/periodic/ui/PeriodicTable.d.ts.map +1 -1
  266. package/lib/periodic/ui/PeriodicTable.js +3 -1
  267. package/lib/periodic/ui/PeriodicTable.js.map +1 -1
  268. package/lib/periodic/ui/PeriodicTableChrome.d.ts.map +1 -1
  269. package/lib/periodic/ui/PeriodicTableChrome.js +4 -2
  270. package/lib/periodic/ui/PeriodicTableChrome.js.map +1 -1
  271. package/lib/share/ui/ShareButton.d.ts +2 -2
  272. package/lib/share/ui/ShareButton.d.ts.map +1 -1
  273. package/lib/share/ui/ShareButton.js +5 -2
  274. package/lib/share/ui/ShareButton.js.map +1 -1
  275. package/lib/share/ui/ShareConfigOptions.d.ts.map +1 -1
  276. package/lib/share/ui/ShareConfigOptions.js +4 -2
  277. package/lib/share/ui/ShareConfigOptions.js.map +1 -1
  278. package/lib/share/ui/ShareDialog.d.ts.map +1 -1
  279. package/lib/share/ui/ShareDialog.js +3 -1
  280. package/lib/share/ui/ShareDialog.js.map +1 -1
  281. package/lib/share/ui/ShareDialogContent.d.ts.map +1 -1
  282. package/lib/share/ui/ShareDialogContent.js +10 -1
  283. package/lib/share/ui/ShareDialogContent.js.map +1 -1
  284. package/lib/share/ui/SharePresetTabs.d.ts.map +1 -1
  285. package/lib/share/ui/SharePresetTabs.js +3 -1
  286. package/lib/share/ui/SharePresetTabs.js.map +1 -1
  287. package/lib/slides/ui/BackToSlides.d.ts.map +1 -1
  288. package/lib/slides/ui/BackToSlides.js +4 -2
  289. package/lib/slides/ui/BackToSlides.js.map +1 -1
  290. package/lib/slides/ui/EmbedSlide.d.ts.map +1 -1
  291. package/lib/slides/ui/EmbedSlide.js +3 -1
  292. package/lib/slides/ui/EmbedSlide.js.map +1 -1
  293. package/lib/slides/ui/Slide.d.ts.map +1 -1
  294. package/lib/slides/ui/Slide.js +3 -1
  295. package/lib/slides/ui/Slide.js.map +1 -1
  296. package/lib/slides/ui/SlideshowBar.d.ts.map +1 -1
  297. package/lib/slides/ui/SlideshowBar.js +5 -3
  298. package/lib/slides/ui/SlideshowBar.js.map +1 -1
  299. package/lib/slides/ui/TalkList.d.ts +1 -1
  300. package/lib/slides/ui/TalkList.d.ts.map +1 -1
  301. package/lib/slides/ui/TalkList.js +4 -2
  302. package/lib/slides/ui/TalkList.js.map +1 -1
  303. package/lib/structure/core/editorGuide.d.ts +14 -0
  304. package/lib/structure/core/editorGuide.d.ts.map +1 -1
  305. package/lib/structure/core/editorGuide.js +117 -19
  306. package/lib/structure/core/editorGuide.js.map +1 -1
  307. package/lib/structure/core/editorToolbar.d.ts +3 -1
  308. package/lib/structure/core/editorToolbar.d.ts.map +1 -1
  309. package/lib/structure/core/editorToolbar.js +44 -23
  310. package/lib/structure/core/editorToolbar.js.map +1 -1
  311. package/lib/structure/ui/EditorHelpButton.d.ts.map +1 -1
  312. package/lib/structure/ui/EditorHelpButton.js +3 -2
  313. package/lib/structure/ui/EditorHelpButton.js.map +1 -1
  314. package/lib/structure/ui/StructureEditor.d.ts.map +1 -1
  315. package/lib/structure/ui/StructureEditor.js +3 -1
  316. package/lib/structure/ui/StructureEditor.js.map +1 -1
  317. package/lib/structure/ui/StructureEditorHelp.d.ts.map +1 -1
  318. package/lib/structure/ui/StructureEditorHelp.js +12 -3
  319. package/lib/structure/ui/StructureEditorHelp.js.map +1 -1
  320. package/lib/structure/ui/ToolbarTooltip.d.ts.map +1 -1
  321. package/lib/structure/ui/ToolbarTooltip.js +5 -3
  322. package/lib/structure/ui/ToolbarTooltip.js.map +1 -1
  323. package/lib/translate/core/index.d.ts +1 -1
  324. package/lib/translate/core/index.d.ts.map +1 -1
  325. package/lib/translate/core/start.d.ts +35 -2
  326. package/lib/translate/core/start.d.ts.map +1 -1
  327. package/lib/translate/core/start.js +23 -4
  328. package/lib/translate/core/start.js.map +1 -1
  329. package/lib/ui.d.ts +1 -0
  330. package/lib/ui.d.ts.map +1 -1
  331. package/lib/ui.js +1 -0
  332. package/lib/ui.js.map +1 -1
  333. package/package.json +4 -2
  334. package/src/about/ui/AboutBuild.tsx +23 -16
  335. package/src/about/ui/AboutCitations.tsx +3 -1
  336. package/src/about/ui/AboutPage.tsx +38 -12
  337. package/src/about/ui/AboutProvidedBy.tsx +13 -3
  338. package/src/capsule/ui/Capsule.tsx +48 -0
  339. package/src/capsule/ui/CapsuleFilter.tsx +38 -114
  340. package/src/capsule/ui/capsuleFilterCapsules.tsx +110 -0
  341. package/src/chart/ui/ChartTrackingLayer.tsx +4 -2
  342. package/src/chrome/ui/SiteHeader.tsx +5 -3
  343. package/src/citation/ui/CitationMenu.tsx +9 -5
  344. package/src/citation/ui/CiteButton.tsx +4 -2
  345. package/src/citation/ui/CopyFormatEntries.tsx +3 -1
  346. package/src/citation/ui/WorkEntry.tsx +5 -3
  347. package/src/citation/ui/entries.tsx +9 -2
  348. package/src/citation/ui/useCopyFeedback.ts +11 -4
  349. package/src/clipboard/ui/ClickToCopy.tsx +15 -5
  350. package/src/clipboard/ui/CopyButton.tsx +14 -10
  351. package/src/color/ui/ColorScaleEditor.tsx +17 -15
  352. package/src/color/ui/ColorScaleEntry.tsx +7 -3
  353. package/src/color/ui/ColorScaleLegend.tsx +7 -1
  354. package/src/color/ui/ColorScaleSelect.tsx +12 -6
  355. package/src/confirm/ui/ConfirmButton.tsx +9 -11
  356. package/src/core.ts +1 -0
  357. package/src/credits/ui/CreditsList.tsx +5 -1
  358. package/src/delimited/ui/DelimitedTextDialog.tsx +10 -10
  359. package/src/delimited/ui/DelimitedTextPanel.tsx +19 -12
  360. package/src/download/ui/FigureDownload.tsx +7 -5
  361. package/src/download/ui/FigureDownloadPanel.tsx +31 -25
  362. package/src/ecosystem/core/sites.ts +4 -2
  363. package/src/ecosystem/ui/EcosystemButton.tsx +5 -3
  364. package/src/ecosystem/ui/EcosystemLinks.tsx +10 -10
  365. package/src/ecosystem/ui/EcosystemMenu.tsx +3 -1
  366. package/src/ecosystem/ui/SiteGroupSection.tsx +6 -2
  367. package/src/ecosystem/ui/SiteTile.tsx +6 -2
  368. package/src/ecosystem/ui/glyphs.tsx +16 -22
  369. package/src/error/ui/ErrorFallback.tsx +13 -12
  370. package/src/help/ui/HelpBody.tsx +4 -2
  371. package/src/help/ui/HelpIcon.tsx +6 -3
  372. package/src/help/ui/HelpToolbarButton.tsx +4 -1
  373. package/src/help/ui/helpName.ts +10 -2
  374. package/src/i18n/core/chromeCatalog.ts +35 -0
  375. package/src/i18n/core/index.ts +26 -0
  376. package/src/i18n/core/languages.ts +46 -0
  377. package/src/i18n/core/messageCatalog.ts +202 -0
  378. package/src/i18n/core/messageValues.ts +2 -0
  379. package/src/i18n/core/session.ts +82 -0
  380. package/src/i18n/core/translateSetup.ts +47 -0
  381. package/src/i18n/ui/LanguageSelect.tsx +72 -0
  382. package/src/i18n/ui/index.ts +9 -0
  383. package/src/i18n/ui/useLanguage.ts +48 -0
  384. package/src/i18n/ui/useT.ts +90 -0
  385. package/src/locales/de.json +442 -0
  386. package/src/locales/en.json +442 -0
  387. package/src/locales/es.json +442 -0
  388. package/src/locales/fr.json +442 -0
  389. package/src/molecule3d/core/gestures.ts +44 -7
  390. package/src/molecule3d/ui/Molecule3DExport.tsx +3 -1
  391. package/src/molecule3d/ui/Molecule3DHelp.tsx +17 -6
  392. package/src/molecule3d/ui/Molecule3DOptions.tsx +13 -13
  393. package/src/molecule3d/ui/Molecule3DSurfaceColors.tsx +16 -13
  394. package/src/molecule3d/ui/Molecule3DToolbar.tsx +29 -18
  395. package/src/molecule3d/ui/MoleculeViewer3D.tsx +13 -8
  396. package/src/orbital/ui/AtomicOrbitalCanvas.tsx +3 -1
  397. package/src/orbital/ui/AtomicOrbitalControls.tsx +15 -20
  398. package/src/orbital/ui/AtomicOrbitalViewer.tsx +13 -13
  399. package/src/orbital/ui/capability.ts +10 -0
  400. package/src/overlay/ui/OverlayBar.tsx +7 -4
  401. package/src/overlay/ui/OverlayInfo.tsx +6 -3
  402. package/src/overlay/ui/OverlayPanel.tsx +10 -7
  403. package/src/overlay/ui/OverlayReadout.tsx +3 -1
  404. package/src/pedagogy/ui/ExerciseActions.tsx +16 -6
  405. package/src/pedagogy/ui/ExerciseProgressHeader.tsx +13 -11
  406. package/src/pedagogy/ui/GlossaryIndex.tsx +11 -12
  407. package/src/pedagogy/ui/HintLadder.tsx +15 -12
  408. package/src/pedagogy/ui/SyntaxTooltip.tsx +9 -7
  409. package/src/pedagogy/ui/TutorialStepStrip.tsx +8 -3
  410. package/src/periodic/ui/CategoryLegend.tsx +6 -1
  411. package/src/periodic/ui/ElementCell.tsx +7 -1
  412. package/src/periodic/ui/PeriodicTable.tsx +3 -1
  413. package/src/periodic/ui/PeriodicTableChrome.tsx +4 -2
  414. package/src/share/ui/ShareButton.tsx +8 -5
  415. package/src/share/ui/ShareConfigOptions.tsx +6 -7
  416. package/src/share/ui/ShareDialog.tsx +3 -1
  417. package/src/share/ui/ShareDialogContent.tsx +20 -10
  418. package/src/share/ui/SharePresetTabs.tsx +3 -1
  419. package/src/slides/ui/BackToSlides.tsx +4 -2
  420. package/src/slides/ui/EmbedSlide.tsx +3 -3
  421. package/src/slides/ui/Slide.tsx +3 -1
  422. package/src/slides/ui/SlideshowBar.tsx +12 -4
  423. package/src/slides/ui/TalkList.tsx +8 -10
  424. package/src/structure/core/editorGuide.ts +126 -19
  425. package/src/structure/core/editorToolbar.ts +52 -24
  426. package/src/structure/ui/EditorHelpButton.tsx +9 -4
  427. package/src/structure/ui/StructureEditor.tsx +7 -1
  428. package/src/structure/ui/StructureEditorHelp.tsx +34 -11
  429. package/src/structure/ui/ToolbarTooltip.tsx +8 -4
  430. package/src/translate/core/index.ts +1 -1
  431. package/src/translate/core/start.ts +65 -3
  432. package/src/ui.ts +1 -0
@@ -0,0 +1,47 @@
1
+ import type { ChromeKey } from '../core/chromeCatalog.ts';
2
+ import type { Language, LooseKey, MessageValues, TranslateOptions } from '../core/index.ts';
3
+ import type { MessageCatalog } from '../core/messageCatalog.ts';
4
+ /**
5
+ * What a component reads its text with.
6
+ *
7
+ * `t(key)` is a key the catalog declares, checked at compile time.
8
+ * `t.or(key, fallback)` is a key built from the data — a site's id, an
9
+ * element's symbol — which the catalog may not have caught up with yet; it
10
+ * reads as the fallback rather than as a raw key.
11
+ */
12
+ export type Translate<TKey extends string> = ((key: LooseKey<TKey>, values?: MessageValues) => string) & {
13
+ or: (key: string, fallback: string, values?: MessageValues) => string;
14
+ };
15
+ /**
16
+ * The formatter of a catalog's text, in the language the page is written in.
17
+ *
18
+ * It is meant to be called while rendering, never kept in a module constant:
19
+ * the language and a translator's edits both change under the page, and only a
20
+ * render picks them up.
21
+ * @param catalog - The catalog to read, typed by its English keys.
22
+ * @returns See {@link Translate}.
23
+ */
24
+ export declare function useT<TKey extends string>(catalog: MessageCatalog<TKey>): Translate<TKey>;
25
+ /**
26
+ * The formatter of this library's own text — the header, the Tools menu, the
27
+ * share dialog, the About page.
28
+ *
29
+ * A site reads it for a word it shows beside the chrome's own, so `Share` and
30
+ * `Cite` are written the same way everywhere.
31
+ * @returns `t(key, values)`, typed by the chrome's English catalog.
32
+ */
33
+ export declare function useChromeT(): Translate<ChromeKey>;
34
+ /**
35
+ * One message of a catalog, outside a component.
36
+ *
37
+ * Only for the rare place a hook cannot go — a label computed in a module
38
+ * helper, a message thrown from a worker. A component uses {@link useT}, which
39
+ * redraws when the language does.
40
+ * @param catalog - The catalog to read.
41
+ * @param key - Key to read.
42
+ * @param language - Language to read it in.
43
+ * @param options - See `TranslateOptions`.
44
+ * @returns The text.
45
+ */
46
+ export declare function translateMessage<TKey extends string>(catalog: MessageCatalog<TKey>, key: LooseKey<TKey>, language: Language, options?: TranslateOptions): string;
47
+ //# sourceMappingURL=useT.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useT.d.ts","sourceRoot":"","sources":["../../../src/i18n/ui/useT.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,CAAC,IAAI,SAAS,MAAM,IAAI,CAAC,CAC5C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,EACnB,MAAM,CAAC,EAAE,aAAa,KACnB,MAAM,CAAC,GAAG;IACb,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;CACvE,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,IAAI,SAAS,MAAM,EACtC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CAKjB;AAeD;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,SAAS,CAAC,SAAS,CAAC,CAEjD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAS,MAAM,EAClD,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,EAC7B,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,EACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAER"}
@@ -0,0 +1,51 @@
1
+ import { CHROME_CATALOG } from "../core/chromeCatalog.js";
2
+ import { useLanguage, useMessagesVersion } from "./useLanguage.js";
3
+ /**
4
+ * The formatter of a catalog's text, in the language the page is written in.
5
+ *
6
+ * It is meant to be called while rendering, never kept in a module constant:
7
+ * the language and a translator's edits both change under the page, and only a
8
+ * render picks them up.
9
+ * @param catalog - The catalog to read, typed by its English keys.
10
+ * @returns See {@link Translate}.
11
+ */
12
+ export function useT(catalog) {
13
+ const language = useLanguage();
14
+ useMessagesVersion();
15
+ catalog.prefetch(language);
16
+ return translator(catalog, language);
17
+ }
18
+ // Built outside the hook, because the `or` form is a property of the function
19
+ // itself and a render may not write to a value it has just read.
20
+ function translator(catalog, language) {
21
+ const translate = (key, values) => catalog.translate(key, language, { values });
22
+ translate.or = (key, fallback, values) => catalog.translate(key, language, { fallback, values });
23
+ return translate;
24
+ }
25
+ /**
26
+ * The formatter of this library's own text — the header, the Tools menu, the
27
+ * share dialog, the About page.
28
+ *
29
+ * A site reads it for a word it shows beside the chrome's own, so `Share` and
30
+ * `Cite` are written the same way everywhere.
31
+ * @returns `t(key, values)`, typed by the chrome's English catalog.
32
+ */
33
+ export function useChromeT() {
34
+ return useT(CHROME_CATALOG);
35
+ }
36
+ /**
37
+ * One message of a catalog, outside a component.
38
+ *
39
+ * Only for the rare place a hook cannot go — a label computed in a module
40
+ * helper, a message thrown from a worker. A component uses {@link useT}, which
41
+ * redraws when the language does.
42
+ * @param catalog - The catalog to read.
43
+ * @param key - Key to read.
44
+ * @param language - Language to read it in.
45
+ * @param options - See `TranslateOptions`.
46
+ * @returns The text.
47
+ */
48
+ export function translateMessage(catalog, key, language, options) {
49
+ return catalog.translate(key, language, options);
50
+ }
51
+ //# sourceMappingURL=useT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useT.js","sourceRoot":"","sources":["../../../src/i18n/ui/useT.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS1D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAiBnE;;;;;;;;GAQG;AACH,MAAM,UAAU,IAAI,CAClB,OAA6B;IAE7B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,kBAAkB,EAAE,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3B,OAAO,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,8EAA8E;AAC9E,iEAAiE;AACjE,SAAS,UAAU,CACjB,OAA6B,EAC7B,QAAkB;IAElB,MAAM,SAAS,GAAG,CAAC,GAAmB,EAAE,MAAsB,EAAE,EAAE,CAChE,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAE,MAAsB,EAAE,EAAE,CACvE,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA6B,EAC7B,GAAmB,EACnB,QAAkB,EAClB,OAA0B;IAE1B,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,442 @@
1
+ {
2
+ "language.label": "Sprache",
3
+ "chrome.pages": "Seiten",
4
+ "ecosystem.tools": "Werkzeuge",
5
+ "ecosystem.menuHeading": "Unsere Werkzeuge, alle im Browser",
6
+ "ecosystem.otherTools": "Unsere weiteren Werkzeuge",
7
+ "ecosystem.youAreHere": "Sie sind hier",
8
+ "ecosystem.group.basics.label": "Grundlagen der Chemie",
9
+ "ecosystem.group.basics.blurb": "Womit ein Kurs beginnt, und worauf man zurückkommt.",
10
+ "ecosystem.group.practice.label": "Üben",
11
+ "ecosystem.group.practice.blurb": "Wo ein erster Kurs durchgearbeitet wird, eine abgestufte Reihe nach der anderen.",
12
+ "ecosystem.group.structures.label": "Strukturen und Notation",
13
+ "ecosystem.group.structures.blurb": "Ein Molekül zeichnen, zwischen Notationen umwandeln, im Raum betrachten.",
14
+ "ecosystem.group.spectra.label": "Spektren",
15
+ "ecosystem.group.spectra.blurb": "Eine Messung verarbeiten und auf die Struktur dahinter zurückschließen.",
16
+ "ecosystem.group.research.label": "Forschung und Daten",
17
+ "ecosystem.group.research.blurb": "Spezialisierte Arbeit: echte Datensätze und Moleküle, die niemand hergestellt hat.",
18
+ "ecosystem.group.computing.label": "Informatik und Lehre",
19
+ "ecosystem.group.computing.blurb": "Rund um die Chemie: einen Kurs aufbauen, ihn setzen, ihn auswerten.",
20
+ "site.learn.tagline": "Die Werkzeuge zu einem Kurs zusammenstellen und dessen Link weitergeben.",
21
+ "site.inchi.tagline": "InChI und InChIKey aus einer Struktur, im Browser.",
22
+ "site.vcl.tagline": "Ein Grundgerüst und Fragmente zu einer gefilterten Substanzbibliothek verbinden.",
23
+ "site.smiles.tagline": "Eine Struktur zeichnen, ihren SMILES lesen, die Notation lernen.",
24
+ "site.openbabel.tagline": "Eine Struktur zwischen beliebigen chemischen Dateiformaten umwandeln.",
25
+ "site.chemcalc.tagline": "Summenformel, exakte Masse und Isotopenverteilung.",
26
+ "site.dbe.tagline": "Ringe und Doppelbindungen aus einer Formel oder einer Struktur zählen.",
27
+ "site.nmrium.tagline": "NMR-Spektren im Browser verarbeiten und zuordnen.",
28
+ "site.metabo.tagline": "Eine Reihe von NMR-Spektren in eine Karte Ihrer Proben verwandeln.",
29
+ "site.derepflow.tagline": "Die Bestandteile eines Gemischs aus seinem ¹³C-Spektrum bestimmen.",
30
+ "site.surge.tagline": "Alle Konstitutionsisomere einer Summenformel.",
31
+ "site.tex.tagline": "LaTeX-Formeln, aus einer URL als SVG oder PNG gerendert.",
32
+ "site.lcao.tagline": "Atomorbitale zu Molekülorbitalen kombinieren.",
33
+ "site.regexp.tagline": "Reguläre Ausdrücke in einer interaktiven Spielwiese lernen.",
34
+ "site.pdb.tagline": "Ein schneller Blick auf jeden Eintrag der Protein Data Bank.",
35
+ "site.elucidation.tagline": "Eine Struktur aus einem 1H-NMR-Spektrum und einer Formel.",
36
+ "site.equilibrium.tagline": "Chemische Gleichgewichte: pH, Speziation und Titrationskurven.",
37
+ "site.polycarp.tagline": "Die Mikrostruktur einer radikalischen Copolymerisation vorhersagen.",
38
+ "site.3d.tagline": "Konformere in 3D aus einer Struktur, die Sie zeichnen.",
39
+ "site.periodic-table.tagline": "Das Periodensystem, eingefärbt, aufgetragen und zerlegt.",
40
+ "site.database.tagline": "Einen echten chemischen Datensatz in SQL und in Mango abfragen.",
41
+ "site.symmetry.tagline": "Die Symmetrie eines Moleküls, eines Kristalls oder eines Musters finden.",
42
+ "site.osiris.tagline": "Vorhergesagte Toxizitätsrisiken und Eigenschaften, für ein Molekül oder viele.",
43
+ "site.atoms.tagline": "Elektronen, Neutronen, Lewis-Formeln und Oxidationszahlen.",
44
+ "site.moles.tagline": "Eine Reaktion ausgleichen und ihre Massenzusammensetzung berechnen.",
45
+ "site.inorganic.tagline": "Eine anorganische Verbindung benennen und ihre Formel schreiben.",
46
+ "share.button": "Teilen",
47
+ "share.buttonTitle": "Einen Link zu dieser Seite teilen oder sie in Ihre eigene Website einbetten",
48
+ "share.dialogTitle": "Teilen oder einbetten",
49
+ "share.lead": "Ein Link auf {title}, so wie Sie es eingestellt haben.",
50
+ "share.layout": "Darstellung",
51
+ "share.embed": "In eine andere Seite einbetten",
52
+ "share.embedHint": "Lässt Kopfzeile und Navigation der Website weg, damit die Seite in einer Seite von Ihnen sitzt.",
53
+ "share.showOnPage": "Auf der Seite zeigen",
54
+ "share.custom": "Eigene",
55
+ "share.link": "Link",
56
+ "share.copyLink": "Link kopieren",
57
+ "share.openInNewTab": "In einem neuen Tab öffnen",
58
+ "share.iframe": "Iframe",
59
+ "share.copyIframe": "Iframe kopieren",
60
+ "share.done": "Fertig",
61
+ "cite.button": "Zitieren",
62
+ "cite.copyReferenceAs": "Literaturangabe kopieren als",
63
+ "cite.pleaseCiteBoth": "Bitte zitieren Sie beide Arbeiten",
64
+ "cite.pleaseCiteEvery": "Bitte zitieren Sie jede dieser Arbeiten",
65
+ "cite.copyBothAs": "Beide Literaturangaben kopieren als",
66
+ "cite.copyEveryAs": "Alle Literaturangaben kopieren als",
67
+ "cite.importIntoManager": "In ein Literaturverwaltungsprogramm importieren",
68
+ "cite.openArticle": "Den Artikel öffnen",
69
+ "cite.copyThisAs": "Diese Literaturangabe kopieren als",
70
+ "cite.importThis": "Diese Literaturangabe importieren",
71
+ "cite.copied": "kopiert",
72
+ "cite.copyFailed": "fehlgeschlagen",
73
+ "cite.format.doi": "DOI-Link",
74
+ "cite.download.ris": "RIS-Datei",
75
+ "cite.download.bibtex": "BibTeX-Datei",
76
+ "clipboard.copied": "Kopiert",
77
+ "clipboard.failed": "Kopieren fehlgeschlagen",
78
+ "clipboard.copy": "Kopieren",
79
+ "clipboard.copyThe": "{what} kopieren",
80
+ "clipboard.copyValue": "{value} kopieren",
81
+ "clipboard.copyToClipboard": "In die Zwischenablage kopieren",
82
+ "about.providedBy": "Bereitgestellt von",
83
+ "about.whatYouCanDo": "Was Sie hier tun können",
84
+ "about.builtOn": "Aufgebaut auf",
85
+ "about.howToCite": "Wie zu zitieren",
86
+ "about.licenceAndSource": "Lizenz und Quelltext",
87
+ "about.licence": "{license}, © cheminfo. Nutzen Sie es in einem Kurs, forken Sie es, oder übernehmen Sie einen Teil davon anderswo. Der Quelltext liegt auf {sources}.",
88
+ "about.foundAProblem": "Ein Problem gefunden?",
89
+ "about.reportIt": "Sagen Sie es uns: ein Bericht, der nennt, was Sie eingegeben haben und was zurückkam, ist die schnellste Korrektur, die es gibt. {tracker}.",
90
+ "about.citeWork": "{what} zitieren",
91
+ "about.built": "Erstellt {builtAt}.",
92
+ "about.builtFromCommit": "Erstellt {builtAt} aus Commit {commit}.",
93
+ "about.nameList": "{names} und {last}",
94
+ "help.label": "Hilfe",
95
+ "help.learnMore": "Mehr erfahren",
96
+ "help.on": "auf",
97
+ "confirm.delete": "Löschen",
98
+ "confirm.cancel": "Abbrechen",
99
+ "error.title": "Etwas ist schiefgelaufen",
100
+ "error.tryAgain": "Erneut versuchen",
101
+ "error.noMessage": "Es wurde keine Meldung angegeben.",
102
+ "capsule.filter": "Filter",
103
+ "credits.openbabel.description": "liest und schreibt die chemischen Dateiformate und führt die Umwandlung selbst aus.",
104
+ "credits.openchemlib.description": "liest und schreibt Strukturen und berechnet ihre Eigenschaften im Browser.",
105
+ "credits.openchemlib-utils.description": "die Struktur-Hilfsfunktionen, die auf OpenChemLib aufbauen.",
106
+ "credits.osiris-property-explorer.description": "die ursprünglichen Toxizitäts- und Eigenschaftsvorhersagen, von Thomas Sander bei Actelion, heute Idorsia.",
107
+ "credits.react-ocl.description": "der Struktureditor, in dem Sie zeichnen, und die 2D-Darstellung.",
108
+ "credits.react-mf.description": "setzt eine Summenformel, samt Indizes, Isotopen und Ladungen.",
109
+ "credits.mass-tools.description": "wertet Summenformeln aus und berechnet Massen und Isotopenverteilungen.",
110
+ "credits.chem-equilibrium.description": "stellt das Massenbilanzsystem einer Lösung auf und findet dessen Wurzel.",
111
+ "credits.ml-matrix.description": "die lineare Algebra hinter den Zahlen auf der Seite.",
112
+ "credits.ml-xsadd.description": "der Generator mit Startwert, aus dem eine reproduzierbare Reihe gezogen wird.",
113
+ "credits.cif-to-json.description": "der Leser, der eine kristallographische Datei in Daten verwandelt.",
114
+ "credits.ml-spectra-processing.description": "die Array- und Spektrenoperationen, die die Daten durchlaufen.",
115
+ "credits.occ.description": "die GFN2-xTB-Implementierung, aus der die verfeinerten Geometrien und Energien stammen.",
116
+ "credits.xtb-wasm.description": "GFN2-xTB nach WebAssembly übersetzt, aus einem Pool von Web Workern gesteuert.",
117
+ "credits.molstar.description": "der 3D-Betrachter, seine Darstellungen und seine Oberflächen.",
118
+ "credits.blueprint.description": "die Oberflächenbausteine — Karten, Dialoge, Eingabefelder, Tabellen und Etiketten.",
119
+ "credits.react-science.description": "die wissenschaftliche Anwendungshülle, die sich diese Familie von Websites teilt.",
120
+ "credits.react-cheminfo.description": "das gemeinsame Rahmenwerk und die Konventionen der cheminfo-Websites.",
121
+ "credits.cheminfo-font.description": "die Chemie-Glyphen, mit denen die Werkzeugleisten gezeichnet sind.",
122
+ "credits.nivo.description": "zeichnet die Diagramme — die Kurven, die Grafiken und die Achsen.",
123
+ "credits.mathjax.description": "setzt die Mathematik, von LaTeX bis zu dem, was Sie lesen.",
124
+ "credits.lexical.description": "der Editor, in dem eine verfasste Seite geschrieben und gespeichert wird.",
125
+ "credits.katex.description": "setzt die Mathematik innerhalb einer verfassten Seite.",
126
+ "credits.dnd-kit.description": "das Ziehen, das Dinge in eine Reihenfolge bringt.",
127
+ "credits.react-roi.description": "der Rahmen, mit dem ein Bildbereich gezeichnet wird.",
128
+ "credits.file-collection.description": "der Leser, der abgelegte Dateien, Ordner und Archive entgegennimmt.",
129
+ "credits.zip-js.description": "die ZIP-Archive, die im Browser gelesen und geschrieben werden.",
130
+ "credits.preact-signals.description": "der Zustand, den die Seiten lesen, ohne einen Store darum herum.",
131
+ "credits.fastify.description": "der Server, der die API beantwortet und die Seite ausliefert.",
132
+ "credits.sqlite.description": "die Datenbank, eine einzige Datei, über das Node-Modul gelesen.",
133
+ "credits.sqlite-wasm.description": "lässt dieselbe Engine in der Seite laufen, nach WebAssembly übersetzt.",
134
+ "credits.pouchdb.description": "beantwortet Mango-Selektoren so, wie CouchDB sie beantwortet.",
135
+ "credits.chemexper.description": "der Katalog, aus dem die Verbindungen und ihre Spektren stammen.",
136
+ "credits.react.description": "das Komponentenmodell, in dem die Seiten geschrieben sind.",
137
+ "credits.vite.description": "baut die statische Website und liefert sie aus.",
138
+ "color.scales": "Skalen",
139
+ "color.done": "Fertig",
140
+ "color.custom": "Eigene",
141
+ "color.customEllipsis": "Eigene…",
142
+ "color.inUse": "in Gebrauch",
143
+ "color.colourScale": "Farbskala",
144
+ "color.legendLabel": "{what} von {low} bis {high}",
145
+ "color.scaleBeingEdited": "Die bearbeitete Skala",
146
+ "color.anchorColour": "Farbe des Ankers {index}",
147
+ "color.anchorPosition": "Position des Ankers {index}",
148
+ "color.removeAnchor": "Anker {index} entfernen",
149
+ "color.addColour": "Eine Farbe hinzufügen",
150
+ "color.path": "Weg zwischen zwei Ankern",
151
+ "color.interpolation.rgb": "RGB — die Kanäle mischen",
152
+ "color.interpolation.hsv": "HSV — den kurzen Weg drehen",
153
+ "color.interpolation.hsv-long": "HSV — den langen Weg drehen",
154
+ "color.kind.sequential": "Von niedrig nach hoch",
155
+ "color.kind.diverging": "Von einer Mitte weg",
156
+ "color.kind.cyclic": "Rund um den Farbkreis",
157
+ "color.scale.viridis.label": "Viridis",
158
+ "color.scale.viridis.description": "Von Violett nach Gelb. Druckt in Grau und ist auch bei Farbenblindheit lesbar.",
159
+ "color.scale.plasma.label": "Plasma",
160
+ "color.scale.plasma.description": "Von Blau nach Gelb über Magenta, leuchtender als Viridis.",
161
+ "color.scale.magma.label": "Magma",
162
+ "color.scale.magma.description": "Von Schwarz nach Cremeweiß über Violett und Orange.",
163
+ "color.scale.inferno.label": "Inferno",
164
+ "color.scale.inferno.description": "Von Schwarz nach Blassgelb über Rot.",
165
+ "color.scale.cividis.label": "Cividis",
166
+ "color.scale.cividis.description": "Von Blau nach Gelb, so gebaut, dass sie für Deuteranope gleich aussieht.",
167
+ "color.scale.turbo.label": "Turbo",
168
+ "color.scale.turbo.description": "Regenbogenfarben, so geordnet, dass die Helligkeit dennoch ansteigt.",
169
+ "color.scale.greys.label": "Grautöne",
170
+ "color.scale.greys.description": "Von Hell nach Schwarz, für eine Abbildung, die fotokopiert wird.",
171
+ "color.scale.cool-warm.label": "Von kalt nach warm",
172
+ "color.scale.cool-warm.description": "Von Blau nach Rot über Blassgelb.",
173
+ "color.scale.blue-red.label": "Von Blau nach Rot",
174
+ "color.scale.blue-red.description": "Von Blau nach Rot über Weiß, die hellste Mitte.",
175
+ "color.scale.rainbow.label": "Regenbogen",
176
+ "color.scale.rainbow.description": "Von Blau nach Rot über Grün und Gelb. Ordnet in Grau gar nichts.",
177
+ "download.save": "Speichern",
178
+ "download.saveFigure": "Abbildung speichern",
179
+ "download.saveThisFigure": "Diese Abbildung speichern",
180
+ "download.format": "Format",
181
+ "download.formatHelp": "Ein PNG ist ein Bild der Abbildung, und das ist es, was eine Folie, ein Chatfenster oder ein Ticket annimmt. Ein SVG ist die Abbildung selbst: jede Linie bleibt scharf, wie weit man sie auch vergrößert, und sie lässt sich nachträglich bearbeiten.",
182
+ "download.resolution": "Auflösung",
183
+ "download.resolutionHelp": "Wie viele Pixel für jedes Pixel der Abbildung auf dem Bildschirm gemalt werden. Zwei passt für eine Folie, drei oder vier für den Druck. Ein SVG hat keine eigene Auflösung und wird daher in jeder Größe scharf gespeichert.",
184
+ "download.resolutionExample": "Eine auf dem Bildschirm 640 Pixel breite Abbildung wird 1280 Pixel breit gespeichert.",
185
+ "download.noFigure": "Auf der Seite gibt es noch keine Abbildung zum Speichern.",
186
+ "download.hintRasterSvg": "Ein SVG, das ein Bild von {pixels} enthält: eine 3D-Szene hat keine Vektorform.",
187
+ "download.hintSvg": "Ein SVG bleibt in jeder Größe scharf, die Auflösung gilt also nicht. Gezeichnet {pixels}.",
188
+ "download.hintPng": "Gespeichert {pixels}.",
189
+ "pedagogy.check": "Prüfen",
190
+ "pedagogy.revealHint": "Hinweis zeigen",
191
+ "pedagogy.revealHintCount": "Hinweis zeigen ({revealed}/{total})",
192
+ "pedagogy.revealHintLadder": "{label} ({open}/{total})",
193
+ "pedagogy.hideSolution": "Lösung verbergen",
194
+ "pedagogy.revealSolution": "Lösung zeigen",
195
+ "pedagogy.reset": "Zurücksetzen",
196
+ "pedagogy.hints": "Hinweise",
197
+ "pedagogy.solvedCount": "{solved} / {total} gelöst",
198
+ "pedagogy.clearAll": "Alle Antworten löschen",
199
+ "pedagogy.keepAnswers": "Meine Antworten behalten",
200
+ "pedagogy.clearEverything": "Alles löschen",
201
+ "pedagogy.clearWarning": "Damit sind auf diesem Browser jede Antwort, jeder gezeigte Hinweis und jede gelöste Aufgabe vergessen. Das lässt sich nicht rückgängig machen.",
202
+ "pedagogy.filterTerms": "Begriffe filtern…",
203
+ "pedagogy.noTermDefined": "Es ist noch kein Begriff erklärt.",
204
+ "pedagogy.noTermMatches": "Kein Begriff passt zu „{query}“.",
205
+ "pedagogy.example": "Beispiel",
206
+ "pedagogy.input": "Eingabe",
207
+ "pedagogy.previous": "Zurück",
208
+ "pedagogy.next": "Weiter",
209
+ "pedagogy.stepOf": "Schritt {step} von {total}",
210
+ "slides.exit": "Beenden",
211
+ "slides.previousSlide": "Vorige Folie",
212
+ "slides.nextSlide": "Nächste Folie",
213
+ "slides.toggleFullscreen": "Vollbild umschalten",
214
+ "slides.backToSlides": "Zurück zu den Folien",
215
+ "slides.backToSlide": "Zurück zu Folie {slide}",
216
+ "slides.noAddress": "Diese Folie rahmt ein Werkzeug ein, nennt aber keine Adresse.",
217
+ "slides.liveDemos": "Live-Demos:",
218
+ "slides.noTalkYet": "Noch kein Vortrag.",
219
+ "overlay.options": "Optionen",
220
+ "overlay.whatAmILookingAt": "Was sehe ich hier?",
221
+ "overlay.reset": "Zurücksetzen",
222
+ "overlay.hoverAName": "Fahren Sie über einen Namen, um zu sehen, was er bewirkt.",
223
+ "overlay.dismiss": "Schließen",
224
+ "delimited.copyTable": "Tabelle kopieren",
225
+ "delimited.close": "Schließen",
226
+ "delimited.separator": "Trennzeichen",
227
+ "delimited.save": "Speichern",
228
+ "delimited.copy": "Kopieren",
229
+ "delimited.tableAsText": "Die Tabelle, als Text",
230
+ "delimited.descriptionOne": "{count} Zeile, eine pro Zeile. Kopieren Sie sie und fügen Sie sie in eine Tabellenkalkulation ein.",
231
+ "delimited.descriptionMany": "{count} Zeilen, eine pro Zeile. Kopieren Sie sie und fügen Sie sie in eine Tabellenkalkulation ein.",
232
+ "chart.measurement": "Messung {name}",
233
+ "chart.measurements": "Messungen",
234
+ "periodic.table": "Periodensystem",
235
+ "periodic.group": "Gruppe {group}",
236
+ "periodic.period": "Periode {period}",
237
+ "periodic.cellLabel": "{name} ({symbol}, Z = {atomicNumber})",
238
+ "periodic.category.alkali-metal": "Alkalimetall",
239
+ "periodic.category.alkaline-earth-metal": "Erdalkalimetall",
240
+ "periodic.category.transition-metal": "Übergangsmetall",
241
+ "periodic.category.post-transition-metal": "Metall der p-Gruppe",
242
+ "periodic.category.metalloid": "Halbmetall",
243
+ "periodic.category.nonmetal": "Nichtmetall",
244
+ "periodic.category.halogen": "Halogen",
245
+ "periodic.category.noble-gas": "Edelgas",
246
+ "periodic.category.lanthanoid": "Lanthanoid",
247
+ "periodic.category.actinoid": "Actinoid",
248
+ "orbital.couldNotDraw": "Dieses Orbital konnte nicht gezeichnet werden",
249
+ "orbital.sampling": "Abtastung…",
250
+ "orbital.showAxes": "Die x-, y-, z-Achsen anzeigen",
251
+ "orbital.axesTitle": "Kartesische Achsen",
252
+ "orbital.axesBody": "x, y und z durch den Kern zeichnen. Die Bezeichnung benennt ein Orbital danach, wo seine Keulen gegenüber ihnen liegen.",
253
+ "orbital.axesExample": "vier Keulen zwischen der y- und der z-Achse, keine auf einer von beiden.",
254
+ "orbital.resetTitle": "Ansicht zurücksetzen",
255
+ "orbital.resetBody": "Zurück zu Blickwinkel und Zoom, mit denen das Orbital geöffnet wurde. Ein Wechsel des Orbitals behält die Ansicht bei, in die Sie es gedreht haben.",
256
+ "viewer.capability.noWindow": "Der 3D-Betrachter braucht ein Browserfenster.",
257
+ "viewer.capability.noContext": "Dieser Browser konnte keinen WebGL-Kontext anlegen, der 3D-Betrachter kann daher nicht starten. Schalten Sie die Hardwarebeschleunigung ein oder aktualisieren Sie den Grafiktreiber.",
258
+ "viewer.capability.noFloatTextures": "Dieser Grafiktreiber hat keine Fließkomma-Texturen, berechnete Orbitale werden daher auf dem Prozessor gebaut. Alles funktioniert, aber jedes Orbital dauert einige Sekunden.",
259
+ "viewer.capability.ready": "Dieser Browser kann den 3D-Betrachter und berechnete Orbitale darstellen.",
260
+ "conformers.strategy.adaptive-random": "Adaptiv zufällig",
261
+ "conformers.strategy.likely-random": "Gewichtet zufällig",
262
+ "conformers.strategy.pure-random": "Rein zufällig",
263
+ "conformers.strategy.likely-systematic": "Gewichtet systematisch",
264
+ "conformers.strategyDetail.adaptive-random": "Zieht Torsionen zufällig, meidet aber die Kombinationen, die bereits kollidiert sind, und deckt damit ein flexibles Molekül am schnellsten ab.",
265
+ "conformers.strategyDetail.likely-random": "Zieht Torsionen zufällig aus der Torsionsdatenbank, gewichtet danach, wie oft jeder Winkel in Kristallstrukturen vorkommt.",
266
+ "conformers.strategyDetail.pure-random": "Zieht jede Torsion gleichverteilt zufällig, ohne Rücksicht auf die Wahrscheinlichkeit des Winkels — die breiteste Streuung und der unrealistischste Satz.",
267
+ "conformers.strategyDetail.likely-systematic": "Geht die Torsionskombinationen nach abnehmender Wahrscheinlichkeit durch, sodass die ersten Konformere die wahrscheinlichsten sind und der Satz reproduzierbar ist.",
268
+ "conformers.minimisation.none": "Keine (keine Energien)",
269
+ "structure.guide.atom.title": "Zeiger auf einem Atom",
270
+ "structure.guide.atom.element": "Daraus ein Na machen",
271
+ "structure.guide.atom.group": "Ein Phenyl anhängen; Me, Et, Boc, TMS… gehen auch",
272
+ "structure.guide.atom.applyOrForget": "Das Eingetippte übernehmen oder verwerfen",
273
+ "structure.guide.atom.chain": "Eine Kette mit so vielen Kohlenstoffen anhängen",
274
+ "structure.guide.atom.charge": "Die Ladung erhöhen oder verringern",
275
+ "structure.guide.atom.radical": "Ein Radikal hinzufügen oder entfernen",
276
+ "structure.guide.atom.spin": "Daraus ein Triplett machen, dann ein Singulett",
277
+ "structure.guide.atom.attachment": "Daraus eine Anknüpfstelle machen",
278
+ "structure.guide.atom.query": "Seine Abfragemerkmale bearbeiten",
279
+ "structure.guide.atom.halogen": "Jedes Halogen zulassen",
280
+ "structure.guide.atom.delete": "Es löschen",
281
+ "structure.guide.atom.note": "Das Eingetippte erscheint schwarz für ein Element, blau für eine Gruppe, grau solange es unvollständig ist und rot, wenn es unbekannt ist.",
282
+ "structure.guide.bond.title": "Zeiger auf einer Bindung",
283
+ "structure.guide.bond.order": "Einfach, doppelt oder dreifach",
284
+ "structure.guide.bond.zeroOrder": "Bindung nullter Ordnung (Metall–Ligand)",
285
+ "structure.guide.bond.stereo": "Stereobindung nach vorn oder nach hinten",
286
+ "structure.guide.bond.unknownGeometry": "Doppelbindung unbekannter Geometrie",
287
+ "structure.guide.bond.threeRing": "Einen Dreiring anellieren",
288
+ "structure.guide.bond.ring": "Einen Ring dieser Größe anellieren",
289
+ "structure.guide.bond.benzene": "Einen Benzolring anellieren",
290
+ "structure.guide.bond.query": "Ihre Abfragemerkmale bearbeiten",
291
+ "structure.guide.bond.delete": "Sie löschen",
292
+ "structure.guide.anywhere.title": "Überall",
293
+ "structure.guide.anywhere.undo": "Rückgängig",
294
+ "structure.guide.anywhere.copy": "Die Struktur kopieren",
295
+ "structure.guide.anywhere.paste": "Ein Molfile, einen SMILES oder einen idCode einfügen",
296
+ "structure.guide.anywhere.deleteSelection": "Die Auswahl löschen",
297
+ "structure.guide.anywhere.flip": "Waagerecht oder senkrecht spiegeln",
298
+ "structure.guide.anywhere.help": "Diese Hilfe öffnen",
299
+ "structure.guide.anywhere.note": "Die Tasten wirken, sobald in die Zeichnung geklickt wurde. Auf leerer Fläche wählt eine Taste das Werkzeug, dessen Tooltip sie nennt.",
300
+ "structure.guide.selecting.title": "Auswählen",
301
+ "structure.guide.selecting.lasso": "Auswählen, was das Lasso umschließt",
302
+ "structure.guide.selecting.rectangle": "Ein Rechteck auswählen",
303
+ "structure.guide.selecting.add": "Zur Auswahl hinzufügen",
304
+ "structure.guide.selecting.move": "Sie verschieben",
305
+ "structure.guide.selecting.duplicate": "Sie kopieren",
306
+ "structure.guide.selecting.queryFeatures": "Die Abfragemerkmale eines Atoms, einer Bindung oder der Auswahl bearbeiten",
307
+ "structure.guide.selecting.note": "Dafür braucht es das Auswahlwerkzeug, das die Leertaste wählt.",
308
+ "structure.guide.stereochemistry.title": "Stereochemie",
309
+ "structure.guide.stereochemistry.note": "Rosa Bindungen weisen auf ein Stereozentrum mit zu wenig oder zu viel Information hin. Zeichnen Sie eine Bindung nach vorn oder nach hinten mit der schmalen Spitze auf dem Zentrum, und sagen Sie dann mit dem Werkzeug für erweiterte Stereochemie, ob die Zeichnung dieses Enantiomer meint (abs), beide (&) oder eines von beiden (or).",
310
+ "structure.input.type": "Tippen",
311
+ "structure.input.or": "oder",
312
+ "structure.input.drag": "Ziehen",
313
+ "structure.input.plusDrag": "+ ziehen",
314
+ "structure.input.dragSelection": "Die Auswahl ziehen",
315
+ "structure.input.plusDragSelection": "+ die Auswahl ziehen",
316
+ "structure.input.doubleClick": "Doppelklick",
317
+ "structure.docs.toolsAndKeys": "Werkzeuge und Tasten",
318
+ "structure.docs.atomProperties": "Atomeigenschaften",
319
+ "structure.docs.stereochemistry": "Stereochemie",
320
+ "structure.help.hoverToolbar": "Fahren Sie über eine Schaltfläche der Werkzeugleiste, um zu sehen, was sie tut und welche Taste sie hat.",
321
+ "structure.help.learnMore": "Mehr erfahren:",
322
+ "structure.mouseAndKeyboard": "Maus und Tastatur",
323
+ "structure.tool.clear.name": "Leeren",
324
+ "structure.tool.clear.description": "Die ganze Zeichnung löschen.",
325
+ "structure.tool.cleanUp.name": "Aufräumen",
326
+ "structure.tool.cleanUp.description": "Die Struktur mit frischen 2D-Koordinaten neu zeichnen. Ist ein Teil ausgewählt, behält der Rest seine Anordnung.",
327
+ "structure.tool.select.name": "Auswählen",
328
+ "structure.tool.select.description": "Ziehen Sie um Atome herum, um sie auszuwählen: Alt halten für ein Rechteck, Umschalt, um zur Auswahl hinzuzufügen. Eine Auswahl ziehen verschiebt sie, Umschalt-Ziehen kopiert sie.",
329
+ "structure.tool.unknownConfiguration.name": "Unbekannte Konfiguration",
330
+ "structure.tool.unknownConfiguration.description": "Klicken Sie ein Stereozentrum an, um seine Konfiguration als unbekannt zu kennzeichnen; ein weiterer Klick nimmt das zurück.",
331
+ "structure.tool.delete.name": "Löschen",
332
+ "structure.tool.delete.description": "Klicken Sie ein Atom oder eine Bindung an, um es zu löschen.",
333
+ "structure.tool.singleBond.name": "Einfachbindung",
334
+ "structure.tool.singleBond.description": "Klicken Sie auf leere Fläche für eine neue Bindung, oder ziehen Sie von einem Atom aus. Ein erneuter Klick auf eine Bindung macht sie doppelt, dann dreifach.",
335
+ "structure.tool.upBond.name": "Bindung nach vorn",
336
+ "structure.tool.upBond.description": "Keilförmige Stereobindung, die zum Betrachter zeigt. Ihre schmale Spitze liegt auf dem Stereozentrum.",
337
+ "structure.tool.positiveCharge.name": "Positive Ladung",
338
+ "structure.tool.positiveCharge.description": "Klicken Sie ein Atom an, um seine Ladung um eins zu erhöhen.",
339
+ "structure.tool.undo.name": "Rückgängig",
340
+ "structure.tool.undo.description": "Die letzte Änderung zurücknehmen.",
341
+ "structure.tool.zoomAndRotate.name": "Zoomen und drehen",
342
+ "structure.tool.zoomAndRotate.description": "Drücken Sie dort, wo der Mittelpunkt sein soll, und ziehen Sie dann nach oben oder unten zum Zoomen und seitwärts zum Drehen. Bei einer Auswahl bewegt sich nur dieser Teil.",
343
+ "structure.tool.atomMapping.name": "Atomzuordnung",
344
+ "structure.tool.atomMapping.description": "Ziehen Sie von einem Atom des Edukts zum selben Atom im Produkt: beide bekommen dieselbe Nummer. Ein Klick auf ein zugeordnetes Atom hebt die Zuordnung auf.",
345
+ "structure.tool.enhancedStereo.name": "Erweiterte Stereochemie",
346
+ "structure.tool.enhancedStereo.description": "Klicken Sie eine Stereobindung an, um zu sagen, was ihr Zentrum bedeutet: abs, dieses Enantiomer; &, beide (racemisch); or, eines von beiden. Ein erneuter Druck auf die Schaltfläche wechselt zwischen den dreien.",
347
+ "structure.tool.text.name": "Text",
348
+ "structure.tool.text.description": "Eine Textbeschriftung in die Zeichnung setzen.",
349
+ "structure.tool.chain.name": "Kette",
350
+ "structure.tool.chain.description": "Ziehen Sie von leerer Fläche oder von einem Atom aus, um eine Zickzack-Kohlenstoffkette zu zeichnen.",
351
+ "structure.tool.downBond.name": "Bindung nach hinten",
352
+ "structure.tool.downBond.description": "Gestrichelte Stereobindung, die vom Betrachter weg zeigt. Ihre schmale Spitze liegt auf dem Stereozentrum.",
353
+ "structure.tool.negativeCharge.name": "Negative Ladung",
354
+ "structure.tool.negativeCharge.description": "Klicken Sie ein Atom an, um seine Ladung um eins zu verringern.",
355
+ "structure.tool.anyAtom.name": "Beliebiges Atom",
356
+ "structure.tool.anyAtom.description": "Wählen Sie in einem Dialog ein beliebiges Element, Isotop, eine Valenz oder ein Radikal, und klicken Sie dann, um es zu setzen oder ein Atom zu ändern. Alt-Klick auf ein Atom bearbeitet dessen eigene Eigenschaften.",
357
+ "structure.tool.ring3.name": "Dreiring",
358
+ "structure.tool.ring3.description": "Klicken Sie auf leere Fläche für einen neuen Ring, auf eine Bindung, um einen daran anzuellieren, oder auf ein Atom für einen Spiroring.",
359
+ "structure.tool.ring5.name": "Fünfring",
360
+ "structure.tool.ring5.description": "Klicken Sie auf leere Fläche für einen neuen Ring, auf eine Bindung, um einen daran anzuellieren, oder auf ein Atom für einen Spiroring.",
361
+ "structure.tool.ring7.name": "Siebenring",
362
+ "structure.tool.ring7.description": "Klicken Sie auf leere Fläche für einen neuen Ring, auf eine Bindung, um einen daran anzuellieren, oder auf ein Atom für einen Spiroring.",
363
+ "structure.tool.ring4.name": "Vierring",
364
+ "structure.tool.ring4.description": "Klicken Sie auf leere Fläche für einen neuen Ring, auf eine Bindung, um einen daran anzuellieren, oder auf ein Atom für einen Spiroring.",
365
+ "structure.tool.ring6.name": "Sechsring",
366
+ "structure.tool.ring6.description": "Klicken Sie auf leere Fläche für einen neuen Ring, auf eine Bindung, um einen daran anzuellieren, oder auf ein Atom für einen Spiroring.",
367
+ "structure.tool.benzene.name": "Benzolring",
368
+ "structure.tool.benzene.description": "Klicken Sie auf leere Fläche für einen neuen Ring, auf eine Bindung, um einen daran anzuellieren, oder auf ein Atom für einen Spiroring.",
369
+ "structure.tool.carbon.name": "Kohlenstoff",
370
+ "structure.tool.carbon.description": "Klicken Sie auf leere Fläche für ein neues C-Atom, oder auf ein Atom, um es in C zu verwandeln.",
371
+ "structure.tool.nitrogen.name": "Stickstoff",
372
+ "structure.tool.nitrogen.description": "Klicken Sie auf leere Fläche für ein neues N-Atom, oder auf ein Atom, um es in N zu verwandeln.",
373
+ "structure.tool.oxygen.name": "Sauerstoff",
374
+ "structure.tool.oxygen.description": "Klicken Sie auf leere Fläche für ein neues O-Atom, oder auf ein Atom, um es in O zu verwandeln.",
375
+ "structure.tool.fluorine.name": "Fluor",
376
+ "structure.tool.fluorine.description": "Klicken Sie auf leere Fläche für ein neues F-Atom, oder auf ein Atom, um es in F zu verwandeln.",
377
+ "structure.tool.bromine.name": "Brom",
378
+ "structure.tool.bromine.description": "Klicken Sie auf leere Fläche für ein neues Br-Atom, oder auf ein Atom, um es in Br zu verwandeln.",
379
+ "structure.tool.hydrogen.name": "Wasserstoff",
380
+ "structure.tool.hydrogen.description": "Klicken Sie auf leere Fläche für ein neues H-Atom, oder auf ein Atom, um es in H zu verwandeln.",
381
+ "structure.tool.silicon.name": "Silicium",
382
+ "structure.tool.silicon.description": "Klicken Sie auf leere Fläche für ein neues Si-Atom, oder auf ein Atom, um es in Si zu verwandeln.",
383
+ "structure.tool.phosphorus.name": "Phosphor",
384
+ "structure.tool.phosphorus.description": "Klicken Sie auf leere Fläche für ein neues P-Atom, oder auf ein Atom, um es in P zu verwandeln.",
385
+ "structure.tool.sulfur.name": "Schwefel",
386
+ "structure.tool.sulfur.description": "Klicken Sie auf leere Fläche für ein neues S-Atom, oder auf ein Atom, um es in S zu verwandeln.",
387
+ "structure.tool.chlorine.name": "Chlor",
388
+ "structure.tool.chlorine.description": "Klicken Sie auf leere Fläche für ein neues Cl-Atom, oder auf ein Atom, um es in Cl zu verwandeln.",
389
+ "structure.tool.iodine.name": "Iod",
390
+ "structure.tool.iodine.description": "Klicken Sie auf leere Fläche für ein neues I-Atom, oder auf ein Atom, um es in I zu verwandeln.",
391
+ "structure.tool.reactionOnly": "Nur beim Zeichnen einer Reaktion.",
392
+ "structure.tool.unavailable": "In diesem Editor nicht verfügbar.",
393
+ "structure.loadingEditor": "Der Editor wird geladen…",
394
+ "molecule3d.view": "Ansicht",
395
+ "molecule3d.resetView": "Ansicht zurücksetzen",
396
+ "molecule3d.spin": "Drehen lassen",
397
+ "molecule3d.surface": "Oberfläche",
398
+ "molecule3d.molecularSurface": "Moleküloberfläche",
399
+ "molecule3d.displayOptions": "Anzeigeoptionen",
400
+ "molecule3d.exportImage": "Bild exportieren",
401
+ "molecule3d.measure": "Messen",
402
+ "molecule3d.clearMeasurements": "Alle Messungen entfernen",
403
+ "molecule3d.measurement.distance": "Abstand",
404
+ "molecule3d.measurement.angle": "Winkel",
405
+ "molecule3d.measurement.dihedral": "Diederwinkel",
406
+ "molecule3d.measurementTooltip": "{what}: {atoms} Atome anklicken",
407
+ "molecule3d.representation.ball-and-stick": "Kugel-Stab",
408
+ "molecule3d.representation.spacefill": "Kalotten",
409
+ "molecule3d.representation.stick": "Stäbe",
410
+ "molecule3d.size": "Größe",
411
+ "molecule3d.surfaceOpacity": "Deckkraft der Oberfläche",
412
+ "molecule3d.solventProbe": "Lösungsmittelsonde [Å]",
413
+ "molecule3d.solventProbeHelp": "Radius der Lösungsmittelkugel, die über die Atome gerollt wird. 1,4 Å entspricht einem Wassermolekül; eine größere Sonde glättet die Oberfläche und schließt die engen Taschen.",
414
+ "molecule3d.surfaceColour": "Farbe der Oberfläche",
415
+ "molecule3d.colour": "Farbe",
416
+ "molecule3d.coloring.uniform": "Einfarbig",
417
+ "molecule3d.coloring.element": "Element",
418
+ "molecule3d.coloring.polarity": "Polarität",
419
+ "molecule3d.neutral": "neutral",
420
+ "molecule3d.tpsaHelp": "Topologische polare Oberfläche (Ertl): die Fläche, die Stickstoff, Sauerstoff und deren Wasserstoffe beitragen, von openchemlib aus der Struktur berechnet. Sie hängt weder vom Konformer noch von der Sonde ab.",
421
+ "molecule3d.loadingViewer": "Der 3D-Betrachter wird geladen…",
422
+ "molecule3d.couldNotDraw": "Der Betrachter konnte dies nicht zeichnen",
423
+ "molecule3d.gesture.rotate": "Drehen",
424
+ "molecule3d.gesture.rollDrag": "In der Bildschirmebene drehen",
425
+ "molecule3d.gesture.rollKeys": "In der Ebene drehen, solange gehalten",
426
+ "molecule3d.gesture.moveDrag": "Verschieben",
427
+ "molecule3d.gesture.moveCtrl": "Verschieben",
428
+ "molecule3d.gesture.zoom": "Zoomen",
429
+ "molecule3d.gesture.clip": "Um den Mittelpunkt herum schneiden",
430
+ "molecule3d.gesture.centreAtom": "Darauf zentrieren",
431
+ "molecule3d.gesture.centreMolecule": "Auf das Molekül zentrieren",
432
+ "molecule3d.input.drag": "Ziehen",
433
+ "molecule3d.input.plus": "+",
434
+ "molecule3d.input.plusDrag": "+ ziehen",
435
+ "molecule3d.input.plusScroll": "+ scrollen",
436
+ "molecule3d.input.or": "oder",
437
+ "molecule3d.input.rightDrag": "Mit rechts ziehen",
438
+ "molecule3d.input.scroll": "Scrollen",
439
+ "molecule3d.input.clickAtom": "Ein Atom anklicken",
440
+ "molecule3d.input.clickBackground": "Den Hintergrund anklicken",
441
+ "molecule3d.helpNote": "Die Tasten wirken, solange der Zeiger über dem Molekül ist. Auf dem Mac ist Ctrl die Control-Taste, nicht ⌘. Bei eingeschaltetem Messwerkzeug wählt ein Klick ein Atom."
442
+ }