@ndla/ui 56.0.18-alpha.0 → 56.0.20-alpha.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 (115) hide show
  1. package/dist/panda.buildinfo.json +10 -8
  2. package/dist/styles.css +35 -29
  3. package/es/Article/Article.js +3 -3
  4. package/es/Article/ArticleByline.js +5 -4
  5. package/es/Article/index.js +1 -2
  6. package/es/AudioPlayer/AudioPlayer.js +1 -1
  7. package/es/CampaignBlock/CampaignBlock.js +25 -13
  8. package/es/Concept/Concept.js +7 -1
  9. package/es/ContactBlock/ContactBlock.js +0 -1
  10. package/es/ContentTypeBadge/ContentTypeBadgeNew.js +0 -3
  11. package/es/ContentTypeHero/ContentTypeHero.js +2 -8
  12. package/es/Embed/AudioEmbed.js +3 -0
  13. package/es/Embed/BrightcoveEmbed.js +5 -1
  14. package/es/Embed/ConceptEmbed.js +23 -11
  15. package/es/Embed/ConceptListEmbed.js +2 -1
  16. package/es/Embed/ImageEmbed.js +3 -0
  17. package/es/Embed/index.js +1 -0
  18. package/es/FileList/FileList.js +5 -1
  19. package/es/FileList/PdfFile.js +6 -1
  20. package/es/FileList/index.js +1 -1
  21. package/es/Grid/Grid.js +0 -1
  22. package/es/LicenseByline/EmbedByline.js +4 -1
  23. package/es/TreeStructure/TreeStructure.js +0 -2
  24. package/es/i18n/index.js +1 -1
  25. package/es/i18n/useComponentTranslations.js +62 -0
  26. package/es/index.js +7 -5
  27. package/es/locale/messages-en.js +31 -5
  28. package/es/locale/messages-nb.js +31 -5
  29. package/es/locale/messages-nn.js +79 -53
  30. package/es/locale/messages-se.js +31 -5
  31. package/es/locale/messages-sma.js +31 -5
  32. package/es/styles.css +35 -29
  33. package/es/utils/licenseAttributes.js +18 -0
  34. package/lib/Article/Article.js +3 -3
  35. package/lib/Article/ArticleByline.js +5 -4
  36. package/lib/Article/index.d.ts +0 -1
  37. package/lib/Article/index.js +1 -8
  38. package/lib/AudioPlayer/AudioPlayer.js +1 -1
  39. package/lib/CampaignBlock/CampaignBlock.js +25 -13
  40. package/lib/Concept/Concept.d.ts +2 -0
  41. package/lib/Concept/Concept.js +7 -1
  42. package/lib/ContactBlock/ContactBlock.js +0 -1
  43. package/lib/ContentTypeBadge/ContentTypeBadgeNew.js +0 -3
  44. package/lib/ContentTypeHero/ContentTypeHero.js +2 -7
  45. package/lib/Embed/AudioEmbed.js +3 -0
  46. package/lib/Embed/BrightcoveEmbed.d.ts +2 -1
  47. package/lib/Embed/BrightcoveEmbed.js +5 -1
  48. package/lib/Embed/ConceptEmbed.d.ts +3 -1
  49. package/lib/Embed/ConceptEmbed.js +23 -11
  50. package/lib/Embed/ConceptListEmbed.js +2 -1
  51. package/lib/Embed/ImageEmbed.js +3 -0
  52. package/lib/Embed/index.d.ts +1 -0
  53. package/lib/Embed/index.js +7 -0
  54. package/lib/FileList/FileList.d.ts +3 -1
  55. package/lib/FileList/FileList.js +5 -1
  56. package/lib/FileList/PdfFile.js +6 -1
  57. package/lib/FileList/index.d.ts +1 -1
  58. package/lib/FileList/index.js +6 -0
  59. package/lib/Grid/Grid.js +0 -1
  60. package/lib/LicenseByline/EmbedByline.js +4 -1
  61. package/lib/TreeStructure/TreeStructure.js +0 -2
  62. package/lib/i18n/index.d.ts +1 -1
  63. package/lib/i18n/index.js +12 -0
  64. package/lib/i18n/useComponentTranslations.d.ts +31 -0
  65. package/lib/i18n/useComponentTranslations.js +65 -2
  66. package/lib/index.d.ts +6 -4
  67. package/lib/index.js +38 -6
  68. package/lib/locale/messages-en.d.ts +26 -0
  69. package/lib/locale/messages-en.js +31 -5
  70. package/lib/locale/messages-nb.d.ts +26 -0
  71. package/lib/locale/messages-nb.js +31 -5
  72. package/lib/locale/messages-nn.d.ts +26 -0
  73. package/lib/locale/messages-nn.js +79 -53
  74. package/lib/locale/messages-se.d.ts +26 -0
  75. package/lib/locale/messages-se.js +31 -5
  76. package/lib/locale/messages-sma.d.ts +26 -0
  77. package/lib/locale/messages-sma.js +31 -5
  78. package/lib/styles.css +35 -29
  79. package/lib/utils/licenseAttributes.d.ts +16 -0
  80. package/lib/utils/licenseAttributes.js +25 -0
  81. package/package.json +8 -8
  82. package/src/Article/Article.tsx +7 -6
  83. package/src/Article/ArticleByline.tsx +2 -3
  84. package/src/Article/index.ts +0 -2
  85. package/src/AudioPlayer/AudioPlayer.tsx +5 -3
  86. package/src/CampaignBlock/CampaignBlock.tsx +23 -12
  87. package/src/Concept/Concept.tsx +8 -3
  88. package/src/ContactBlock/ContactBlock.tsx +0 -1
  89. package/src/ContentTypeBadge/ContentTypeBadgeNew.tsx +0 -3
  90. package/src/ContentTypeHero/ContentTypeHero.tsx +2 -7
  91. package/src/Embed/AudioEmbed.tsx +4 -1
  92. package/src/Embed/BrightcoveEmbed.tsx +6 -3
  93. package/src/Embed/ConceptEmbed.tsx +21 -11
  94. package/src/Embed/ConceptListEmbed.tsx +1 -0
  95. package/src/Embed/ImageEmbed.tsx +4 -0
  96. package/src/Embed/index.ts +1 -0
  97. package/src/FileList/FileList.tsx +16 -10
  98. package/src/FileList/PdfFile.tsx +8 -2
  99. package/src/FileList/index.ts +1 -1
  100. package/src/Grid/Grid.tsx +0 -1
  101. package/src/LicenseByline/EmbedByline.tsx +2 -1
  102. package/src/TreeStructure/TreeStructure.tsx +0 -1
  103. package/src/i18n/index.ts +2 -0
  104. package/src/i18n/useComponentTranslations.ts +79 -0
  105. package/src/index.ts +8 -2
  106. package/src/locale/messages-en.ts +30 -3
  107. package/src/locale/messages-nb.ts +30 -3
  108. package/src/locale/messages-nn.ts +78 -51
  109. package/src/locale/messages-se.ts +30 -3
  110. package/src/locale/messages-sma.ts +30 -3
  111. package/src/utils/licenseAttributes.ts +23 -0
  112. package/es/Article/ArticleParagraph.js +0 -23
  113. package/lib/Article/ArticleParagraph.d.ts +0 -13
  114. package/lib/Article/ArticleParagraph.js +0 -30
  115. package/src/Article/ArticleParagraph.tsx +0 -27
@@ -14,6 +14,11 @@ const StyledIframe = styled("iframe", {
14
14
  width: "100%"
15
15
  }
16
16
  });
17
+ const StyledListElement = styled("li", {
18
+ base: {
19
+ listStyle: "none"
20
+ }
21
+ });
17
22
  const StyledFigure = styled(Figure, {
18
23
  base: {
19
24
  display: "flex",
@@ -26,7 +31,7 @@ export const PdfFile = _ref => {
26
31
  title,
27
32
  url
28
33
  } = _ref;
29
- return /*#__PURE__*/_jsx("li", {
34
+ return /*#__PURE__*/_jsx(StyledListElement, {
30
35
  children: /*#__PURE__*/_jsxs(StyledFigure, {
31
36
  children: [/*#__PURE__*/_jsx(Heading, {
32
37
  asChild: true,
@@ -6,6 +6,6 @@
6
6
  *
7
7
  */
8
8
 
9
- export { FileListEmbed, FileListItem } from "./FileList";
9
+ export { FileListEmbed, FileListItem, FileListWrapper } from "./FileList";
10
10
  export { File, FileListElement } from "./File";
11
11
  export { PdfFile } from "./PdfFile";
package/es/Grid/Grid.js CHANGED
@@ -17,7 +17,6 @@ const GridContainer = styled("div", {
17
17
  gridColumnGap: "medium",
18
18
  width: "100%",
19
19
  backgroundColor: "background.subtle",
20
- maxWidth: "surface.4xlarge",
21
20
  minWidth: "surface.xxsmall",
22
21
  gridTemplateColumns: "repeat(2, minmax(0, 1fr))",
23
22
  tabletDown: {
@@ -180,7 +180,10 @@ export const LicenseContainerContent = _ref3 => {
180
180
  const authors = getLicenseCredits(copyright);
181
181
  const captionAuthors = Object.values(authors).find(i => i.length > 0) ?? [];
182
182
  const content = /*#__PURE__*/_jsxs(_Fragment, {
183
- children: [children, ` ${t(`embed.type.${type}`)}${captionAuthors.length ? ": " : ""}`, captionAuthors.map(author => author.name).join(", "), license ? /*#__PURE__*/_jsxs(_Fragment, {
183
+ children: [children, ` ${t(`embed.type.${type}`)}${captionAuthors.length ? ": " : ""}`, /*#__PURE__*/_jsx("span", {
184
+ property: "cc:attributionName",
185
+ children: captionAuthors.map(author => author.name).join(", ")
186
+ }), license ? /*#__PURE__*/_jsxs(_Fragment, {
184
187
  children: [" / ", /*#__PURE__*/_jsx(LicenseLink, {
185
188
  license: license
186
189
  })]
@@ -250,8 +250,6 @@ const TreeStructureItem = _ref2 => {
250
250
  } = usePopoverContext();
251
251
  const containsResource = targetResource && folder.resources.some(resource => resource.resourceId === targetResource.resourceId);
252
252
  const FolderIcon = folder.status === "shared" ? StyledFolderUserLine : StyledFolderLine;
253
-
254
- // TODO: Pressing enter selects the item and closes the popover immediately. Do we actually want this? Old behavior.
255
253
  const onKeyDown = useCallback(e => {
256
254
  if (e.key === "Enter") {
257
255
  setOpen(false);
package/es/i18n/index.js CHANGED
@@ -8,4 +8,4 @@
8
8
 
9
9
  export { i18nInstance } from "./i18n";
10
10
  export { formatNestedMessages } from "./formatNestedMessages";
11
- export { useComboboxTranslations, useTagSelectorTranslations, useTagsInputTranslations, usePaginationTranslations } from "./useComponentTranslations";
11
+ export { useComboboxTranslations, useTagSelectorTranslations, useTagsInputTranslations, usePaginationTranslations, useAudioSearchTranslations, useImageSearchTranslations } from "./useComponentTranslations";
@@ -80,4 +80,66 @@ export const usePaginationTranslations = translations => {
80
80
  },
81
81
  ...translations
82
82
  };
83
+ };
84
+
85
+ // TODO: Deduplicate this and place it somewhere smart. Maybe core?
86
+
87
+ export const useImageSearchTranslations = function () {
88
+ let translations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
89
+ const {
90
+ t
91
+ } = useTranslation("translation", {
92
+ keyPrefix: "component.imageSearch"
93
+ });
94
+ const paginationTranslations = usePaginationTranslations();
95
+ const {
96
+ imagePreview,
97
+ paginationTranslations: fallbackPaginationTranslations,
98
+ ...remaining
99
+ } = translations;
100
+ return {
101
+ searchPlaceholder: t("searchPlaceholder"),
102
+ searchButtonTitle: t("searchButtonTitle"),
103
+ imagePreview: {
104
+ creatorsLabel: t("imagePreview.creatorsLabel"),
105
+ license: t("imagePreview.license"),
106
+ caption: t("imagePreview.caption"),
107
+ altText: t("imagePreview.altText"),
108
+ modelRelease: t("imagePreview.modelRelease"),
109
+ tags: t("imagePreview.tags"),
110
+ close: t("close"),
111
+ checkboxLabel: t("imagePreview.checkboxLabel"),
112
+ useImageTitle: t("imagePreview.useImageTitle"),
113
+ ...imagePreview
114
+ },
115
+ paginationTranslations: {
116
+ ...paginationTranslations,
117
+ ...fallbackPaginationTranslations
118
+ },
119
+ ...remaining
120
+ };
121
+ };
122
+ export const useAudioSearchTranslations = function () {
123
+ let translations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
124
+ const {
125
+ t
126
+ } = useTranslation("translation", {
127
+ keyPrefix: "component.audioSearch"
128
+ });
129
+ const paginationTranslations = usePaginationTranslations();
130
+ const {
131
+ paginationTranslations: fallbackPaginationTranslations,
132
+ ...remaining
133
+ } = translations;
134
+ return {
135
+ searchPlaceholder: t("searchPlaceholder"),
136
+ searchButtonTitle: t("searchButtonTitle"),
137
+ useAudio: t("useAudio"),
138
+ noResults: t("noResults"),
139
+ paginationTranslations: {
140
+ ...paginationTranslations,
141
+ ...fallbackPaginationTranslations
142
+ },
143
+ ...remaining
144
+ };
83
145
  };
package/es/index.js CHANGED
@@ -9,14 +9,15 @@
9
9
  // Ignore typescript implicit any warning and export all javascript components
10
10
  // Move components to this file when they are migrated to typescript
11
11
 
12
- export { ImageEmbed, getCrop, getFocalPoint, AudioEmbed, H5pEmbed, ExternalEmbed, IframeEmbed, FootnoteEmbed, BrightcoveEmbed, ContentLinkEmbed, RelatedContentEmbed, ConceptEmbed, ConceptListEmbed, UnknownEmbed, InlineConcept, BlockConcept, UuDisclaimerEmbed, CopyrightEmbed, CodeEmbed } from "./Embed";
12
+ export { Concept } from "./Concept/Concept";
13
+ export { ImageEmbed, getCrop, getFocalPoint, AudioEmbed, H5pEmbed, ExternalEmbed, IframeEmbed, FootnoteEmbed, BrightcoveEmbed, ContentLinkEmbed, RelatedContentEmbed, ConceptEmbed, ConceptListEmbed, UnknownEmbed, InlineConcept, BlockConcept, UuDisclaimerEmbed, CopyrightEmbed, CodeEmbed, InlineTriggerButton } from "./Embed";
13
14
  export { LicenseLink, EmbedByline } from "./LicenseByline";
14
- export { ArticleByline, ArticleBylineAccordionItem, ArticleFootNotes, ArticleWrapper, Article, ArticleParagraph, ArticleFooter, ArticleHeader, ArticleContent, ArticleHGroup, ArticleTitle } from "./Article";
15
+ export { ArticleByline, ArticleBylineAccordionItem, ArticleFootNotes, ArticleWrapper, Article, ArticleFooter, ArticleHeader, ArticleContent, ArticleHGroup, ArticleTitle } from "./Article";
15
16
  export { getPossiblyRelativeUrl } from "./utils/relativeUrl";
16
17
  export { default as ContentLoader } from "./ContentLoader";
17
18
  export { default as RelatedArticleList, RelatedArticle } from "./RelatedArticleList";
18
19
  export { ErrorResourceAccessDenied, default as ErrorMessage } from "./ErrorMessage";
19
- export { FileListEmbed, File, PdfFile, FileListItem, FileListElement } from "./FileList";
20
+ export { FileListEmbed, File, PdfFile, FileListItem, FileListElement, FileListWrapper } from "./FileList";
20
21
  export { default as FactBox } from "./FactBox";
21
22
  export { ContentTypeHero } from "./ContentTypeHero";
22
23
  export { ResourceBox } from "./ResourceBox";
@@ -28,7 +29,7 @@ export { default as messagesEN } from "./locale/messages-en";
28
29
  export { default as messagesSE } from "./locale/messages-se";
29
30
  export { default as messagesSMA } from "./locale/messages-sma";
30
31
  export { default as Breadcrumb, HomeBreadcrumb } from "./Breadcrumb";
31
- export { i18nInstance, formatNestedMessages, useTagsInputTranslations, useTagSelectorTranslations, useComboboxTranslations, usePaginationTranslations } from "./i18n";
32
+ export { i18nInstance, formatNestedMessages, useTagsInputTranslations, useTagSelectorTranslations, useComboboxTranslations, usePaginationTranslations, useAudioSearchTranslations, useImageSearchTranslations } from "./i18n";
32
33
  export { default as LayoutItem, OneColumn, PageContainer } from "./Layout";
33
34
  export { default as ContentTypeBadge, SubjectMaterialBadge, TasksAndActivitiesBadge, AssessmentResourcesBadge, LearningPathBadge, SubjectBadge, SourceMaterialBadge, ConceptBadge } from "./ContentTypeBadge";
34
35
  export { ContentTypeBadge as ContentTypeBadgeNew, contentTypeToBadgeVariantMap } from "./ContentTypeBadge/ContentTypeBadgeNew";
@@ -43,4 +44,5 @@ export { Grid, GridParallaxItem } from "./Grid";
43
44
  export { Gloss, GlossExample } from "./Gloss";
44
45
  export { LinkBlock, LinkBlockSection } from "./LinkBlock";
45
46
  export { CodeBlock, codeLanguageOptions } from "./CodeBlock";
46
- export { ZendeskButton } from "./ZendeskButton/ZendeskButton";
47
+ export { ZendeskButton } from "./ZendeskButton/ZendeskButton";
48
+ export { licenseAttributes } from "./utils/licenseAttributes";
@@ -911,6 +911,7 @@ const messages = {
911
911
  close: "Close fact box"
912
912
  },
913
913
  myNdla: {
914
+ description: "My NDLA: Organize the content your way! Use NDLA’s chat robot (AI). Save and share with colleagues and students.",
914
915
  mainMenu: "Main menu",
915
916
  myNDLA: "My NDLA",
916
917
  myNDLAMenu: "My NDLA menu",
@@ -994,7 +995,9 @@ const messages = {
994
995
  title: "Categories",
995
996
  posts: "post",
996
997
  posts_plural: "posts",
997
- subcategory: "Subcategories"
998
+ subcategory: "Subcategories",
999
+ votes: "reaction",
1000
+ votes_plural: "reactions"
998
1001
  },
999
1002
  cancel: {
1000
1003
  title: {
@@ -1056,7 +1059,9 @@ const messages = {
1056
1059
  locked: "Lock topic",
1057
1060
  unlock: "Unlock topic",
1058
1061
  lockDescription: "Do you want do lock this topic? This will prevent this topic from getting more posts.",
1059
- unlockDescription: "Do you want do unlock this topic? This will prevent this topic from getting more posts."
1062
+ unlockDescription: "Do you want do unlock this topic? This will prevent this topic from getting more posts.",
1063
+ votes: "reaction",
1064
+ votes_plural: "reactions"
1060
1065
  },
1061
1066
  posts: {
1062
1067
  title: "Posts",
@@ -1085,12 +1090,12 @@ const messages = {
1085
1090
  maxLength: "The maximum length for the text field is reached",
1086
1091
  error: "The field is required"
1087
1092
  },
1088
- bottomText: "Are you missing a category? Let our moderator know at ",
1093
+ bottomText: "Are you missing a category? You can request new categories. Use 'Ask NDLA' or send an email to ",
1089
1094
  moderatorEmail: "moderator@ndla.no",
1090
1095
  notification: {
1091
1096
  title: "Notifications",
1092
1097
  showAll: "View all notifications",
1093
- description: "Welcome to the arena for teachers in upper secondary education. This is <em>your</em> arena: a professional meeting place for discussion, inspiration, sharing, development, and collaboration.",
1098
+ description: "Welcome to NDLAs Arena. Here, you can discuss, share and cooperate with other teachers from all over Norway.",
1094
1099
  myNotification: "My notifications",
1095
1100
  markAll: "Mark all as read",
1096
1101
  subscribe: "You will now be notified of new replies to this topic",
@@ -1337,7 +1342,7 @@ const messages = {
1337
1342
  dragHandle: "Drag the category {{name}}"
1338
1343
  },
1339
1344
  favoriteSubjects: {
1340
- title: "My favorite subjects",
1345
+ title: "My subjects",
1341
1346
  subjects: "{{count}} subject",
1342
1347
  subjects_0: "{{count}} subjects",
1343
1348
  subjects_plural: "{{count}} subjects",
@@ -1466,6 +1471,27 @@ const messages = {
1466
1471
  nextTriggerLabel: "Next page",
1467
1472
  lastPage: "Last page, page {{page}}",
1468
1473
  page: "Page {{page}}"
1474
+ },
1475
+ imageSearch: {
1476
+ searchPlaceholder: "Search images",
1477
+ searchButtonTitle: "Search",
1478
+ imagePreview: {
1479
+ creatorsLabel: "Image",
1480
+ license: "License",
1481
+ caption: "Caption",
1482
+ altText: "Alt-text",
1483
+ modelRelease: "Model released",
1484
+ tags: "Tags",
1485
+ checkboxLabel: "Set as meta image",
1486
+ close: "Close",
1487
+ useImageTitle: "Use image"
1488
+ }
1489
+ },
1490
+ audioSearch: {
1491
+ searchPlaceholder: "Search in audio files",
1492
+ searchButtonTitle: "Search",
1493
+ useAudio: "Chose audio",
1494
+ noResults: "No audio files found"
1469
1495
  }
1470
1496
  }
1471
1497
  };
@@ -911,6 +911,7 @@ const messages = {
911
911
  close: "Lukk faktaboks"
912
912
  },
913
913
  myNdla: {
914
+ description: "Min NDLA: Organiser fagstoffet på din måte! Bruk NDLAs praterobot (AI/KI). Lagre og del med kolleger og elever.",
914
915
  mainMenu: "Hovedmeny",
915
916
  myNDLA: "Min NDLA",
916
917
  myNDLAMenu: "Min NDLA meny",
@@ -994,7 +995,9 @@ const messages = {
994
995
  title: "Kategorier",
995
996
  posts: "innlegg",
996
997
  posts_plural: "innlegg",
997
- subcategory: "Tema"
998
+ subcategory: "Tema",
999
+ votes: "reaksjon",
1000
+ votes_plural: "reaksjoner"
998
1001
  },
999
1002
  publish: "Publiser",
1000
1003
  cancel: {
@@ -1056,7 +1059,9 @@ const messages = {
1056
1059
  locked: "Lås innlegg",
1057
1060
  unlock: "Lås opp innlegg",
1058
1061
  lockDescription: "Vil du låse dette innlegget? Dette vil gjøre at innlegget ikke kan få flere kommentarer, og vil vises som låst.",
1059
- unlockDescription: "Vil du låse opp dette innlegget? Dette vil gjøre at innlegget kan få flere kommentarer."
1062
+ unlockDescription: "Vil du låse opp dette innlegget? Dette vil gjøre at innlegget kan få flere kommentarer.",
1063
+ votes: "reaksjon",
1064
+ votes_plural: "reaksjoner"
1060
1065
  },
1061
1066
  posts: {
1062
1067
  title: "Innlegg",
@@ -1085,12 +1090,12 @@ const messages = {
1085
1090
  maxLength: "Maksimal lengde for tekstfeltet er nådd",
1086
1091
  error: "Feltet er påkrevd"
1087
1092
  },
1088
- bottomText: "Savner du en kategori? Gi vår moderator beskjed ",
1093
+ bottomText: "Savner du en kategori? Du kan be om nye kategorier. Bruk 'Spør NDLA' eller send en epost til ",
1089
1094
  moderatorEmail: "moderator@ndla.no",
1090
1095
  notification: {
1091
1096
  title: "Varslinger",
1092
1097
  showAll: "Se alle varslinger",
1093
- description: "Velkommen inn i arenaen for lærere i videregående opplæring! Dette er <em>din</em> arena: et faglig møtested for diskusjon, inspirasjon, deling og utviklende samarbeid.",
1098
+ description: "Velkommen til NDLAs Arena. Her kan du diskutere, dele og samarbeide med andre lærere fra hele Norge.",
1094
1099
  myNotification: "Mine varsler",
1095
1100
  markAll: "Merk alle som lest",
1096
1101
  subscribe: "Du får nå varsling om nye svar på dette innlegget",
@@ -1337,7 +1342,7 @@ const messages = {
1337
1342
  dragHandle: "Sorter kategorien {{name}}"
1338
1343
  },
1339
1344
  favoriteSubjects: {
1340
- title: "Mine favorittfag",
1345
+ title: "Mine fag",
1341
1346
  subjects: "{{count}} fag",
1342
1347
  subjects_0: "{{count}} fag",
1343
1348
  subjects_plural: "{{count}} fag",
@@ -1466,6 +1471,27 @@ const messages = {
1466
1471
  nextTriggerLabel: "Neste side",
1467
1472
  lastPage: "Siste side, side {{page}}",
1468
1473
  page: "Side {{page}}"
1474
+ },
1475
+ imageSearch: {
1476
+ searchPlaceholder: "Søk i bilder",
1477
+ searchButtonTitle: "Søk",
1478
+ imagePreview: {
1479
+ creatorsLabel: "Bilde",
1480
+ license: "Lisens",
1481
+ caption: "Bildetekst",
1482
+ altText: "Alt-tekst",
1483
+ modelRelease: "Modellklarert",
1484
+ tags: "Emneknagger",
1485
+ checkboxLabel: "Sett som metabilde",
1486
+ close: "Lukk",
1487
+ useImageTitle: "Bruk bildet"
1488
+ }
1489
+ },
1490
+ audioSearch: {
1491
+ searchPlaceholder: "Søk i lydfiler",
1492
+ searchButtonTitle: "Søk",
1493
+ useAudio: "Velg lyd",
1494
+ noResults: "Ingen resultater funnet"
1469
1495
  }
1470
1496
  }
1471
1497
  };