@saooti/octopus-sdk 41.0.12-SNAPSHOT → 41.0.12

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 (43) hide show
  1. package/package.json +3 -1
  2. package/plateform.conf +1 -1
  3. package/src/App.vue +3 -7
  4. package/src/api/classicApi.ts +1 -1
  5. package/src/components/composable/player/usePlayerLive.ts +2 -2
  6. package/src/components/composable/radio/usefetchRadioData.ts +29 -12
  7. package/src/components/display/categories/CategoryChooser.vue +4 -0
  8. package/src/components/display/comments/CommentList.vue +1 -1
  9. package/src/components/display/filter/DateFilter.vue +15 -2
  10. package/src/components/display/live/RadioCurrently.vue +2 -5
  11. package/src/components/display/podcasts/PodcastPlayButton.vue +4 -1
  12. package/src/components/display/sharing/PlayerParameters.vue +0 -8
  13. package/src/components/display/sharing/SharePlayer.vue +0 -5
  14. package/src/components/display/sharing/SubscribeButtons.vue +4 -2
  15. package/src/components/form/ClassicInputText.vue +3 -0
  16. package/src/components/form/ClassicMultiselect.vue +36 -8
  17. package/src/components/misc/ClassicAccordion.vue +4 -4
  18. package/src/components/misc/ClassicSpinner.vue +1 -1
  19. package/src/components/misc/HomeDropdown.vue +3 -110
  20. package/src/components/misc/MobileMenu.vue +59 -64
  21. package/src/components/misc/TopBar.vue +4 -11
  22. package/src/components/misc/TopBarMainContent.vue +0 -2
  23. package/src/components/misc/UserButtonContent.vue +159 -0
  24. package/src/components/misc/player/elements/PlayerImage.vue +0 -1
  25. package/src/components/misc/player/elements/PlayerTitle.vue +3 -3
  26. package/src/components/misc/player/radio/RadioHistory.vue +3 -2
  27. package/src/components/misc/player/video/PlayerVideo.vue +2 -2
  28. package/src/components/pages/PageLogout.vue +1 -6
  29. package/src/components/pages/PodcastPage.vue +0 -1
  30. package/src/components/pages/VideoPage.vue +5 -2
  31. package/src/locale/de.ts +3 -3
  32. package/src/locale/en.ts +3 -3
  33. package/src/locale/es.ts +3 -3
  34. package/src/locale/fr.ts +3 -3
  35. package/src/locale/it.ts +3 -3
  36. package/src/locale/sl.ts +3 -3
  37. package/src/stores/FilterStore.ts +1 -1
  38. package/src/stores/PlayerStore.ts +6 -1
  39. package/src/stores/class/conference/conference.ts +2 -0
  40. package/src/stores/class/general/player.ts +2 -2
  41. package/src/style/_variables.scss +6 -0
  42. package/src/style/general.scss +18 -1
  43. package/src/helper/radio/radioHelper.ts +0 -15
@@ -18,39 +18,11 @@
18
18
  :left-pos="true"
19
19
  :is-top-layer="true"
20
20
  >
21
- <template v-for="link in routerLinkArray" :key="link.routeName">
22
- <router-link
23
- v-if="link.condition"
24
- :class="
25
- 'home' === link.routeName
26
- ? 'octopus-dropdown-item show-phone-flex'
27
- : 'octopus-dropdown-item'
28
- "
29
- :to="{
30
- name: link.routeName,
31
- query: getQueriesRouter(link.routeName),
32
- }"
33
- >
34
- {{ link.title }}
35
- </router-link>
36
- </template>
37
- <a
38
- v-if="!isAuthenticatedWithOrga"
39
- class="octopus-dropdown-item realLink"
40
- :href="pathLogin"
41
- >
42
- {{ t("Login") }}
43
- </a>
44
- <a v-else class="octopus-dropdown-item c-hand" href="/logout">
45
- {{ t("Logout") }}
46
- </a>
47
- <router-link
48
- v-if="!authStore.isGarRole"
49
- class="octopus-dropdown-item"
50
- to="/main/pub/contact"
51
- >
52
- {{ t("Contact") }}
53
- </router-link>
21
+ <UserButtonContent
22
+ :isEducation="isEducation"
23
+ :navLabel="t('User menu')"
24
+ :specificRoutes="routerLinkArray"
25
+ :displayUserContent="displayUserContent"/>
54
26
  </ClassicPopover>
55
27
  </div>
56
28
  </template>
@@ -61,21 +33,22 @@ import { useRubriquesFilterComputed } from "../composable/route/useRubriquesFilt
61
33
  import { state } from "../../stores/ParamSdkStore";
62
34
  import { defineAsyncComponent, ref, computed } from "vue";
63
35
  import { useFilterStore } from "../../stores/FilterStore";
64
- import { useAuthStore } from "../../stores/AuthStore";
65
- import { useApiStore } from "../../stores/ApiStore";
66
36
  import { useI18n } from "vue-i18n";
67
- import { useRoute } from "vue-router";
37
+ import { useResizePhone } from "../composable/useResizePhone";
38
+ import { useAuthStore } from "../../stores/AuthStore";
68
39
  const ClassicPopover = defineAsyncComponent(
69
40
  () => import("../misc/ClassicPopover.vue"),
70
41
  );
71
-
42
+ const UserButtonContent = defineAsyncComponent(
43
+ () => import("./UserButtonContent.vue"),
44
+ );
72
45
 
73
46
  //Props
74
47
  const props = defineProps({
75
48
  isEducation: { default: false, type: Boolean },
76
49
  show: { default: false, type: Boolean },
77
50
  notPodcastAndEmission: { default: false, type: Boolean },
78
- scrolled: { default: false, type: Boolean },
51
+ inContentDisplayPage: { default: false, type: Boolean },
79
52
  })
80
53
 
81
54
  //Data
@@ -84,61 +57,87 @@ const firstLoaded = ref(false);
84
57
  //Composables
85
58
  const { t } = useI18n();
86
59
  const { rubriqueQueryParam } = useRubriquesFilterComputed();
87
- const authStore = useAuthStore();
88
- const apiStore = useApiStore();
89
60
  const filterStore = useFilterStore();
90
- const route = useRoute();
61
+ const authStore = useAuthStore();
62
+ const { windowWidth } = useResizePhone();
91
63
 
92
64
 
93
65
  //Computed
94
66
  const isAuthenticatedWithOrga = computed(() => undefined !== authStore.authOrgaId);
95
- const pathLogin = computed(() => "/sso/login?redirect_url="+encodeURI(apiStore.frontendUrl + route.fullPath));
67
+ const displayUserContent = computed(() =>{
68
+ if(isAuthenticatedWithOrga.value){
69
+ return 500>=windowWidth.value;
70
+ }
71
+ return props.show;
72
+ });
96
73
  const routerLinkArray = computed(() =>{
97
74
  return [
98
- {
99
- title: t("My space"),
100
- routeName: "backoffice",
101
- condition: isAuthenticatedWithOrga.value,
75
+ {
76
+ title: t("Home"),
77
+ path:{
78
+ name: "home",
79
+ query: getQueriesRouter(false),
80
+ },
81
+ class:"octopus-dropdown-item show-phone-flex",
82
+ condition: true
102
83
  },
103
- { title: t("Home"), routeName: "home", condition: true },
104
84
  {
105
85
  title: t("Radio & Live"),
106
- routeName: "lives",
86
+ path:{
87
+ name: "lives",
88
+ query: getQueriesRouter(true),
89
+ },
90
+ class: "octopus-dropdown-item",
107
91
  condition:
108
92
  state.generalParameters.isLiveTab &&
109
93
  ((filterStore.filterOrgaId && filterStore.filterLive) || !filterStore.filterOrgaId),
110
94
  },
111
95
  {
112
96
  title: t("Podcasts"),
113
- routeName: "podcasts",
97
+ path:{
98
+ name: "podcasts",
99
+ query: getQueriesRouter(false),
100
+ },
101
+ class: "octopus-dropdown-item",
114
102
  condition: !props.notPodcastAndEmission,
115
103
  },
116
104
  {
117
105
  title: t("Emissions"),
118
- routeName: "emissions",
106
+ path:{
107
+ name: "emissions",
108
+ query: getQueriesRouter(false),
109
+ },
110
+ class: "octopus-dropdown-item",
119
111
  condition: !props.notPodcastAndEmission,
120
112
  },
121
113
  {
122
114
  title: t("Productors"),
123
- routeName: "productors",
115
+ path:{
116
+ name: "productors",
117
+ query: getQueriesRouter(true),
118
+ },
119
+ class: "octopus-dropdown-item",
124
120
  condition:
125
121
  !state.generalParameters.podcastmaker && (!filterStore.filterOrgaId || props.isEducation),
126
122
  },
127
123
  {
128
124
  title: t("Playlists"),
129
- routeName: "playlists",
125
+ path:{
126
+ name: "playlists",
127
+ query: getQueriesRouter(true),
128
+ },
129
+ class: "octopus-dropdown-item",
130
130
  condition: true,
131
131
  },
132
132
  {
133
133
  title: t("Speakers"),
134
- routeName: "participants",
134
+ path:{
135
+ name: "participants",
136
+ query: getQueriesRouter(true),
137
+ },
138
+ class: "octopus-dropdown-item",
135
139
  condition: true,
136
140
  },
137
- {
138
- title: t("Create an account"),
139
- routeName: "createAccount",
140
- condition: !isAuthenticatedWithOrga.value,
141
- },
142
141
  ];
143
142
  });
144
143
 
@@ -153,12 +152,8 @@ function handleMenuClick() {
153
152
  document.getElementById("mobile-menu-dropdown")?.click();
154
153
  }, 200);
155
154
  }
156
- function getQueriesRouter(routeName: string) {
157
- if (
158
- "podcasts" !== routeName &&
159
- "emissions" !== routeName &&
160
- "home" !== routeName
161
- ) {
155
+ function getQueriesRouter(onlyProductor:boolean) {
156
+ if (onlyProductor) {
162
157
  return { productor: filterStore.filterOrgaId };
163
158
  }
164
159
  return {
@@ -3,7 +3,7 @@
3
3
  role="banner"
4
4
  class="header-saooti-play"
5
5
  :style="headerBackgroundImage"
6
- :class="[generalStore.contentToDisplay ? 'header-img-bg':'header-color-bg', scrolled? 'scrolled':'', needToBlur ? 'header-force-blur':'']"
6
+ :class="[generalStore.contentToDisplay ? 'header-img-bg':'bg-gradient', scrolled? 'scrolled':'', needToBlur ? 'header-force-blur':'']"
7
7
  >
8
8
  <TopBarMainContent
9
9
  :is-phone="isPhone"
@@ -93,7 +93,8 @@ watch(()=>generalStore.contentToDisplay, async () => {
93
93
  needToBlur.value = false;
94
94
  return;
95
95
  }
96
- const proxyUrl = useProxyImageUrl(generalStore.contentToDisplay.imageUrl,"270", undefined, true);
96
+ const widthAsked = window.innerWidth > 960 ? "1600":"1000";
97
+ const proxyUrl = useProxyImageUrl(generalStore.contentToDisplay.imageUrl,widthAsked, undefined, true);
97
98
  try {
98
99
  const result = await axios.get(proxyUrl);
99
100
  headerBackgroundImage.value = `background-image: url('${result.data}');`;
@@ -159,15 +160,7 @@ function handleScroll(): void {
159
160
  background-repeat: no-repeat;
160
161
  background-size: cover;
161
162
  }
162
- &.header-color-bg{
163
- background: var(--octopus-primary);
164
- background: linear-gradient(
165
- 90deg,
166
- var(--octopus-primary) 0%,
167
- var(--octopus-tertiary) 100%
168
- );
169
- }
170
- &.header-color-bg, &.scrolled{
163
+ &.bg-gradient, &.scrolled{
171
164
  box-shadow: 0 2px 15px 5px var(--octopus-shadow) !important;
172
165
  }
173
166
  }
@@ -136,12 +136,10 @@
136
136
  :is-education="generalStore.platformEducation"
137
137
  :show="mobileMenuDisplay"
138
138
  :not-podcast-and-emission="inContentDisplayPage && !scrolled"
139
- :scrolled="scrolled"
140
139
  />
141
140
  <HomeDropdown
142
141
  :is-education="generalStore.platformEducation"
143
142
  :mobile-menu-display="mobileMenuDisplay"
144
- :scrolled="scrolled"
145
143
  />
146
144
  <router-link
147
145
  v-show="!isPhone && !inContentDisplayPage"
@@ -0,0 +1,159 @@
1
+ <template>
2
+ <nav :aria-label="navLabel">
3
+ <ul class="p-0 m-0">
4
+ <template v-if="specificRoutes.length">
5
+ <li v-for="routerBack in specificRoutes" :key="routerBack.path" class="li-style-none">
6
+ <router-link
7
+ v-if="!state.generalParameters.podcastmaker && routerBack.condition"
8
+ :class="routerBack.class"
9
+ :to="routerBack.path"
10
+ >
11
+ {{ routerBack.title }}
12
+ </router-link>
13
+ </li>
14
+ <hr v-if="displayUserContent"/>
15
+ </template>
16
+ <template v-if="displayUserContent">
17
+ <template v-if="!isAuthenticated">
18
+ <li class="li-style-none">
19
+ <a class="octopus-dropdown-item realLink" :href="pathLogin">
20
+ {{ t("Login") }}
21
+ </a>
22
+ </li>
23
+ <li class="li-style-none">
24
+ <router-link
25
+ v-if="!state.generalParameters.podcastmaker"
26
+ class="octopus-dropdown-item"
27
+ to="/main/pub/create"
28
+ >
29
+ {{ t("Create an account") }}
30
+ </router-link>
31
+ </li>
32
+ </template>
33
+ <template v-else>
34
+ <li v-for="routeBackoffice in routerBackoffice" :key="routeBackoffice.path" class="li-style-none">
35
+ <router-link
36
+ v-if="!state.generalParameters.podcastmaker && routeBackoffice.condition"
37
+ :class="routeBackoffice.class"
38
+ :to="routeBackoffice.path"
39
+ >
40
+ {{ routeBackoffice.title }}
41
+ </router-link>
42
+ </li>
43
+ <hr />
44
+ <template v-if="helpLinks.length">
45
+ <li v-for="helpLink in helpLinks" :key="helpLink.title" class="li-style-none">
46
+ <a
47
+ :href="helpLink.href"
48
+ class="octopus-dropdown-item realLink"
49
+ rel="noreferrer noopener"
50
+ target="_blank"
51
+ :title="t('New window', {text: helpLink.title})"
52
+ >
53
+ {{ helpLink.title }}
54
+ <OpenInNewIcon class="ms-1" :size="15"/>
55
+ </a>
56
+ </li>
57
+ <hr />
58
+ </template>
59
+ <li class="li-style-none">
60
+ <a class="octopus-dropdown-item c-hand" href="/logout">
61
+ {{ t("Logout") }}
62
+ </a>
63
+ </li>
64
+ </template>
65
+ <li class="li-style-none">
66
+ <router-link
67
+ v-if="!authStore.isGarRole"
68
+ class="octopus-dropdown-item"
69
+ to="/main/pub/contact"
70
+ >
71
+ {{ t("Contact") }}
72
+ </router-link>
73
+ </li>
74
+ </template>
75
+ </ul>
76
+ </nav>
77
+ </template>
78
+
79
+ <script setup lang="ts">
80
+ import OpenInNewIcon from "vue-material-design-icons/OpenInNew.vue";
81
+ import { state } from "../../stores/ParamSdkStore";
82
+ import { useAuthStore } from "../../stores/AuthStore";
83
+ import { computed } from "vue";
84
+ import { useApiStore } from "../../stores/ApiStore";
85
+ import { useI18n } from "vue-i18n";
86
+ import { RouteLocationAsPathGeneric, RouteLocationAsRelativeGeneric, useRoute } from "vue-router";
87
+
88
+ //Interface
89
+ interface RouteInfo{
90
+ title: string;
91
+ class: string;
92
+ path: string | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric;
93
+ condition: boolean
94
+ }
95
+
96
+ //Props
97
+ const props = defineProps({
98
+ isEducation: { default: false, type: Boolean },
99
+ navLabel: { default: "", type: String },
100
+ specificRoutes: { default: ()=>[], type: Array as ()=> Array<RouteInfo> },
101
+ displayUserContent: { default: true, type: Boolean },
102
+ })
103
+
104
+ //Composables
105
+ const { t } = useI18n();
106
+ const authStore = useAuthStore();
107
+ const apiStore = useApiStore();
108
+ const route = useRoute();
109
+
110
+ //Computed
111
+ const isAuthenticated = computed(() => undefined !== authStore.authProfile?.userId);
112
+ const pathLogin = computed(() => "/sso/login?redirect_url="+encodeURI(apiStore.frontendUrl + route.fullPath));
113
+ const isAuthenticatedWithOrga = computed(() => undefined !== authStore.authOrgaId);
114
+ const organisationsAvailable = computed(() => authStore.authProfile?.organisations ?? []);
115
+
116
+ const helpLinks = computed(() => {
117
+ if (authStore.isGarRole || props.isEducation) {
118
+ return [];
119
+ }
120
+ return [
121
+ { title:t("Help"), href: "https://help.octopus.saooti.com/Aide/"},
122
+ { title: t("TutoMag"), href: "https://help.octopus.saooti.com/" },
123
+ ];
124
+ });
125
+ const routerBackoffice = computed(() => {
126
+ if(!isAuthenticated.value){
127
+ return [];
128
+ }
129
+ return [
130
+ {
131
+ title: t("My space"),
132
+ class: "octopus-dropdown-item show-small-screen",
133
+ path: "/main/priv/backoffice",
134
+ condition: isAuthenticatedWithOrga.value,
135
+ },
136
+ {
137
+ title: t("Upload"),
138
+ class: "octopus-dropdown-item show-small-screen",
139
+ path: "/main/priv/upload",
140
+ condition: isAuthenticatedWithOrga.value && authStore.isRoleContribution,
141
+ },
142
+ {
143
+ title: t("Edit my profile"),
144
+ class: "octopus-dropdown-item",
145
+ path: "/main/priv/edit/profile",
146
+ condition: true,
147
+ },
148
+ {
149
+ title: t("Edit my organisation"),
150
+ class: "octopus-dropdown-item",
151
+ path: "/main/priv/edit/organisation",
152
+ condition:
153
+ isAuthenticatedWithOrga.value &&
154
+ (authStore.isRoleOrganisation || 1 < organisationsAvailable.value.length),
155
+ },
156
+ ];
157
+ });
158
+
159
+ </script>
@@ -22,7 +22,6 @@
22
22
  :height="imageWidth"
23
23
  aria-hidden="true"
24
24
  alt=""
25
-
26
25
  :title="t('Episode name image', { name: podcastDisplay?.title })"
27
26
  class="player-image"
28
27
  :class="imageWidth > 50 ? 'big-player-image' : ''"
@@ -89,7 +89,7 @@ onUnmounted(()=>{
89
89
  async function fetchCurrentlyPlaying(): Promise<void> {
90
90
  fetchRadioMetadata(
91
91
  playerStore.playerRadio?.canalId ?? 0,
92
- playerStore.playerRadio?.metadata.title ?? "",
92
+ playerStore.playerRadio?.metadata?.title ?? "",
93
93
  updateMetadata,
94
94
  updateAdvertising,
95
95
  );
@@ -98,11 +98,11 @@ function updateAdvertising(nextAdvertising: NextAdvertising): void {
98
98
  playerStore.playerRadioUpdateNextAdvertising(nextAdvertising);
99
99
  }
100
100
  function updateMetadata(
101
- metadata: MediaRadio,
101
+ metadata: MediaRadio|undefined,
102
102
  podcast: Podcast | undefined,
103
103
  history: Array<MediaRadio>,
104
104
  ): void {
105
- playerStore.playerMetadata(metadata, history);
105
+ playerStore.playerMetadata(metadata, history); //TODO
106
106
  playerStore.playerRadioPodcast(podcast);
107
107
  }
108
108
  </script>
@@ -40,10 +40,10 @@ import ChevronLeftIcon from "vue-material-design-icons/ChevronLeft.vue";
40
40
  import ChevronRightIcon from "vue-material-design-icons/ChevronRight.vue";
41
41
  import { usePlayerStore } from "../../../../stores/PlayerStore";
42
42
  import dayjs from "dayjs";
43
- import radioHelper from "../../../../helper/radio/radioHelper";
44
43
  import { computed, nextTick, onMounted, onUnmounted, ref, useTemplateRef, watch } from "vue";
45
44
  import { MediaRadio } from "@/stores/class/general/player";
46
45
  import { useI18n } from "vue-i18n";
46
+ import { useFetchRadio } from "../../../composable/radio/usefetchRadioData";
47
47
 
48
48
 
49
49
  //Data
@@ -54,6 +54,7 @@ const historyListContainerRef = useTemplateRef('historyListContainer');
54
54
  //Composables
55
55
  const { t } = useI18n();
56
56
  const playerStore = usePlayerStore();
57
+ const {displayTitle} = useFetchRadio();
57
58
 
58
59
 
59
60
  //Computed
@@ -119,7 +120,7 @@ function displayPreviousItem(item: MediaRadio): string {
119
120
  if (item.podcastId) {
120
121
  return item.title;
121
122
  }
122
- return radioHelper.displayTitle(item);
123
+ return displayTitle(item);
123
124
  }
124
125
  </script>
125
126
  <style lang="scss">
@@ -39,10 +39,10 @@ const playerStore = usePlayerStore();
39
39
  //Computed
40
40
  const isSecured = computed(() => "SECURED" === playerStore.playerLive?.organisation?.privacy);
41
41
  const hlsVideoUrl = computed(() => {
42
- if (!playerStore.playerLive) {
42
+ if (!playerStore.playerHlsIdentifier) {
43
43
  return "";
44
44
  }
45
- return `${apiStore.hlsUrl}live/video_dev.${playerStore.playerLive.conferenceId}/index.m3u8`;
45
+ return `${apiStore.hlsUrl}live/video_${playerStore.playerHlsIdentifier}/index.m3u8`;
46
46
  });
47
47
 
48
48
  onMounted(()=>{
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <section
3
- class="page-box page-box-absolute page-logout"
3
+ class="page-box page-box-absolute page-logout bg-gradient"
4
4
  >
5
5
  <div class="logout-section">
6
6
  <h1 class="mb-3">{{ t("Logout") }}</h1>
@@ -19,11 +19,6 @@ const { t } = useI18n();
19
19
  </script>
20
20
  <style lang="scss">
21
21
  .octopus-app .page-logout {
22
- background: linear-gradient(
23
- 90deg,
24
- var(--octopus-primary) 0%,
25
- var(--octopus-tertiary) 100%
26
- );
27
22
  display: flex;
28
23
  align-items: center;
29
24
  justify-content: center;
@@ -255,7 +255,6 @@ async function fetchConferenceStatus() {
255
255
  api: 9,
256
256
  path: "conference/info/" + podcast.value?.conferenceId,
257
257
  });
258
-
259
258
  fetchConference.value = {...fetchConference.value, ...data};
260
259
  } catch {
261
260
  //Do nothing
@@ -193,7 +193,7 @@ const hlsVideoUrl = computed(() => {
193
193
  if (!recordingLive.value || !podcastConference.value) {
194
194
  return "";
195
195
  }
196
- return `${apiStore.hlsUrl}live/video_dev.${podcastConference.value.conferenceId}/index.m3u8`;
196
+ return `${apiStore.hlsUrl}live/video_${podcastConference.value.hlsIdentifier}/index.m3u8`;
197
197
  });
198
198
  const isSecured = computed(() => {
199
199
  return "SECURED" === podcast.value?.organisation?.privacy;
@@ -255,7 +255,10 @@ async function getPodcastDetails(): Promise<void> {
255
255
  playerStore.playerPlay(
256
256
  {
257
257
  ...podcast.value,
258
- ...{ conferenceId: podcast.value.conferenceId },
258
+ ...{
259
+ conferenceId: podcast.value.conferenceId,
260
+ hlsIdentifier: podcastConference.value?.hlsIdentifier,
261
+ },
259
262
  },
260
263
  true,
261
264
  );
package/src/locale/de.ts CHANGED
@@ -146,8 +146,8 @@ export default {
146
146
  "Sort score": "Nach Relevanz",
147
147
  "Sort name": "Nach Titel",
148
148
  "Sort last": "Nach Datum",
149
- "Choose color": "Farbe wählen",
150
- "Choose theme": "Design wählen",
149
+ "Choose color": "Akzentfarbe",
150
+ "Choose theme": "Thema (Spielerhintergrund)",
151
151
  "Podcast no visible": "Podcast nicht sichtbar",
152
152
  "Display episodes": "Folgen anzeigen",
153
153
  "Podcast published in future": "Podcast geplant",
@@ -167,7 +167,6 @@ export default {
167
167
  "open left Menu": "Menü öffnen/schließen",
168
168
  Participant: "Sprecher",
169
169
  "Number of player podcasts": "Anzahl der Podcasts im Player",
170
- "Proceed reading": "Weiterhören",
171
170
  "Without topic": "Ohne Thema",
172
171
  "Without rubric": "Ohne Rubrik",
173
172
  "Consider podcasts no visible":
@@ -414,4 +413,5 @@ export default {
414
413
  "Code copied!":"Code kopiert!",
415
414
  "Copied!":"Kopiert!",
416
415
  "Color of the QR Code": "Farbe des QR-Codes",
416
+ "Silent stream":"Stiller Fluss",
417
417
  }
package/src/locale/en.ts CHANGED
@@ -145,8 +145,8 @@ export default {
145
145
  "Sort score": "Sorted by relevancy score",
146
146
  "Sort name": "Sorted title",
147
147
  "Sort last": "Sorted last",
148
- "Choose color": "Choose color",
149
- "Choose theme": "Choose theme",
148
+ "Choose color": "Accent color",
149
+ "Choose theme": "Theme (player background)",
150
150
  "Podcast no visible": "Podcast not visible",
151
151
  "Display episodes": "Display episodes",
152
152
  "Podcast published in future": "Podcast published in the future",
@@ -166,7 +166,6 @@ export default {
166
166
  "open left Menu": "Open/Close Menu",
167
167
  Participant: "Speaker",
168
168
  "Number of player podcasts": "Number of podcasts in the player ",
169
- "Proceed reading": "Continue Listening",
170
169
  "Without topic": "Without a topic",
171
170
  "Without rubric": "Without a rubric",
172
171
  "Consider podcasts no visible":
@@ -417,4 +416,5 @@ export default {
417
416
  "Code copied!":"Code copied!",
418
417
  "Copied!":"Copied!",
419
418
  "Color of the QR Code": "Color of the QR Code",
419
+ "Silent stream":"Silent stream",
420
420
  };
package/src/locale/es.ts CHANGED
@@ -145,8 +145,8 @@ export default {
145
145
  "Sort score": "Clasificación por pertinencia",
146
146
  "Sort name": "Clasificación por título",
147
147
  "Sort last": "Clasificación por fecha más reciente",
148
- "Choose color": "Elegir color",
149
- "Choose theme": "Elegir tema",
148
+ "Choose color": "Color de acento",
149
+ "Choose theme": "Tema (fondo del jugador)",
150
150
  "Podcast no visible": "Este pódcast no puede visualizarse",
151
151
  "Display episodes": "Mostrar episodios",
152
152
  "Podcast published in future": "Pódcast pendiente de publicación",
@@ -167,7 +167,6 @@ export default {
167
167
  "open left Menu": "Abrir/Cerrar menú",
168
168
  Participant: "Participante",
169
169
  "Number of player podcasts": "Número de pódcast en el reproductor",
170
- "Proceed reading": "Seguir escuchando",
171
170
  "Without topic": "Sin tema",
172
171
  "Without rubric": "Sin sección",
173
172
  "Consider podcasts no visible":
@@ -415,4 +414,5 @@ export default {
415
414
  "Code copied!":"¡Código copiado!",
416
415
  "Copied!":"¡Copiado!",
417
416
  "Color of the QR Code": "Color del código QR",
417
+ "Silent stream":"Flujo silencioso",
418
418
  }
package/src/locale/fr.ts CHANGED
@@ -146,8 +146,8 @@ export default {
146
146
  "Sort score": "Pertinence",
147
147
  "Sort name": "Alphabétique",
148
148
  "Sort last": "Antéchronologique",
149
- "Choose color": "Couleur",
150
- "Choose theme": "Thème",
149
+ "Choose color": "Couleur d'accent",
150
+ "Choose theme": "Thème (fond du player)",
151
151
  "Podcast no visible": "Épisode non visible actuellement",
152
152
  "Display episodes": "Affichage des épisodes",
153
153
  "Podcast publish in future": "Épisode publié dans le futur",
@@ -168,7 +168,6 @@ export default {
168
168
  "open left Menu": "Ouvrir/Fermer le menu",
169
169
  Participant: "Intervenant",
170
170
  "Number of player podcasts": "Nombre d'épisodes dans le miniplayer",
171
- "Proceed reading": "Poursuivre la lecture",
172
171
  "Without topic": "Sans rubriquage",
173
172
  "Without rubric": "Non rubriqué",
174
173
  "Consider podcasts no visible":
@@ -424,4 +423,5 @@ export default {
424
423
  "Code copied!":"Code copié !",
425
424
  "Copied!":"Copié !",
426
425
  "Color of the QR Code": "Couleur du Qr Code",
426
+ "Silent stream":"Flux silencieux",
427
427
  };
package/src/locale/it.ts CHANGED
@@ -141,8 +141,8 @@ export default{
141
141
  'Sort score': 'Suddiviso per grado di rilevanza',
142
142
  'Sort name': 'Suddividi titolo',
143
143
  'Sort last': 'Suddividi ultimo',
144
- 'Choose color': 'Seleziona colore',
145
- 'Choose theme': 'Seleziona tema',
144
+ 'Choose color': 'Colore accento',
145
+ 'Choose theme': 'Tema (sfondo del giocatore)',
146
146
  'Podcast no visible': 'Podcast non visibile',
147
147
  'Display episodes': 'Mostra episodi',
148
148
  'Podcast published in future': 'Podcast pubblicato in futuro',
@@ -163,7 +163,6 @@ export default{
163
163
  'open left Menu': 'Apri/Chiudi Menu',
164
164
  Participant: 'Speaker',
165
165
  'Number of player podcasts': "Numero di podcast nel lettore",
166
- 'Proceed reading': 'Continua ad ascoltare',
167
166
  'Without topic': 'Senza un tema',
168
167
  'Without rubric': 'Senza una rubrica',
169
168
  'Consider podcasts no visible':
@@ -411,4 +410,5 @@ export default{
411
410
  "Code copied!":"Codice copiato!",
412
411
  "Copied!":"Copiato!",
413
412
  "Color of the QR Code": "Colore del codice QR",
413
+ "Silent stream":"Flusso silenzioso",
414
414
  };