diff --git a/l10n/de.js b/l10n/de.js index 1418615..4ee898b 100644 --- a/l10n/de.js +++ b/l10n/de.js @@ -7,6 +7,7 @@ OC.L10N.register( "🔊 Browse, manage and listen to podcasts" : "🔊 Suchen, Verwalten und Anhören von Podcasts", "## Features\n- 🔍 Browse and subscribe huge collection of podcasts\n- 🔊 Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Mobile friendly interface\n- 📡 Import and export your subscriptions\n- ➡️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!" : "## Funktionen\n- 🔍 Durchsuchen und abonnieren einer großen Sammlung von Podcasts\n- 🔊 Episoden direkt in Nextcloud anhören\n- 🌐 Synchronisiere deine Aktivität mit [AntennaPod](https://antennapod.org/)\n- 📱 Mobile-freundliche Schnittstelle\n- 📡 Importieren und Exportieren Ihrer Abonnements\n\n## Voraussetzungen\nDu musst [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installiert haben, um diese App zu benutzen!", "Download" : "Herunterladen", + "Skip to {match}" : "Springen zu {match}", "Add a RSS link" : "Einen RSS-Link hinzufügen", "Subscribe" : "Abonnieren", "Error while adding the feed" : "Fehler beim Hinzufügen des Feeds", diff --git a/l10n/de.json b/l10n/de.json index a8cf292..b755a33 100644 --- a/l10n/de.json +++ b/l10n/de.json @@ -5,6 +5,7 @@ "🔊 Browse, manage and listen to podcasts" : "🔊 Suchen, Verwalten und Anhören von Podcasts", "## Features\n- 🔍 Browse and subscribe huge collection of podcasts\n- 🔊 Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Mobile friendly interface\n- 📡 Import and export your subscriptions\n- ➡️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!" : "## Funktionen\n- 🔍 Durchsuchen und abonnieren einer großen Sammlung von Podcasts\n- 🔊 Episoden direkt in Nextcloud anhören\n- 🌐 Synchronisiere deine Aktivität mit [AntennaPod](https://antennapod.org/)\n- 📱 Mobile-freundliche Schnittstelle\n- 📡 Importieren und Exportieren Ihrer Abonnements\n\n## Voraussetzungen\nDu musst [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installiert haben, um diese App zu benutzen!", "Download" : "Herunterladen", + "Skip to {match}" : "Springen zu {match}", "Add a RSS link" : "Einen RSS-Link hinzufügen", "Subscribe" : "Abonnieren", "Error while adding the feed" : "Fehler beim Hinzufügen des Feeds", diff --git a/l10n/fr.js b/l10n/fr.js index 07add49..ff303b9 100644 --- a/l10n/fr.js +++ b/l10n/fr.js @@ -7,6 +7,7 @@ OC.L10N.register( "🔊 Browse, manage and listen to podcasts" : "🔊 Parcourir, gérer et écouter vos podcasts", "## Features\n- 🔍 Browse and subscribe huge collection of podcasts\n- 🔊 Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Mobile friendly interface\n- 📡 Import and export your subscriptions\n- ➡️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!" : "## Fonctionnalités\n- 🔍 Parcourir et s'abonner à une grande collections de podcasts\n- 🔊 Écouter vos épisodes directement sur Nextcloud\n- 🌐 Synchroniser son activité avec [AntennaPod](https://antennapod.org/) et d'autres [applications](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Interface optimisée pour mobiles et ordinateurs\n- 📡 Import/export de ses abonnements\n- ➡️ Tableau récapitulatif complet des fonctionnalitées [ici](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Pré-requis\nVous devez avoir [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installé pour utiliser cette application !", "Download" : "Télécharger", + "Skip to {match}" : "Sauter à {match}", "Add a RSS link" : "Ajouter un lien RSS", "Subscribe" : "S'abonner", "Error while adding the feed" : "Erreur lors de l'ajout du flux", diff --git a/l10n/fr.json b/l10n/fr.json index bd230fc..4b318e2 100644 --- a/l10n/fr.json +++ b/l10n/fr.json @@ -5,6 +5,7 @@ "🔊 Browse, manage and listen to podcasts" : "🔊 Parcourir, gérer et écouter vos podcasts", "## Features\n- 🔍 Browse and subscribe huge collection of podcasts\n- 🔊 Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Mobile friendly interface\n- 📡 Import and export your subscriptions\n- ➡️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!" : "## Fonctionnalités\n- 🔍 Parcourir et s'abonner à une grande collections de podcasts\n- 🔊 Écouter vos épisodes directement sur Nextcloud\n- 🌐 Synchroniser son activité avec [AntennaPod](https://antennapod.org/) et d'autres [applications](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Interface optimisée pour mobiles et ordinateurs\n- 📡 Import/export de ses abonnements\n- ➡️ Tableau récapitulatif complet des fonctionnalitées [ici](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Pré-requis\nVous devez avoir [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installé pour utiliser cette application !", "Download" : "Télécharger", + "Skip to {match}" : "Sauter à {match}", "Add a RSS link" : "Ajouter un lien RSS", "Subscribe" : "S'abonner", "Error while adding the feed" : "Erreur lors de l'ajout du flux", diff --git a/package.json b/package.json index 5cb0b84..5c570cd 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,20 @@ { "name": "repod", "license": "AGPL-3.0-or-later", + "type": "module", "scripts": { "build": "vite build", "dev": "vite --mode development build", - "watch": "vite --mode development build --watch", "lint": "vue-tsc && eslint src", "lint:fix": "vue-tsc && eslint src --fix", "stylelint": "stylelint src/**/*.vue src/**/*.scss src/**/*.css", - "stylelint:fix": "stylelint src/**/*.vue src/**/*.scss src/**/*.css --fix" + "stylelint:fix": "stylelint src/**/*.vue src/**/*.scss src/**/*.css --fix", + "watch": "vite --mode development build --watch" }, - "type": "module", "browserslist": [ "extends @nextcloud/browserslist-config" ], + "prettier": "@nextcloud/prettier-config", "dependencies": { "@formatjs/intl-segmenter": "^11.7.3", "@nextcloud/axios": "^2.5.1", @@ -44,6 +45,5 @@ "eslint-plugin-prettier": "^5.2.1", "typescript": "5.5", "vue-tsc": "^2.1.10" - }, - "prettier": "@nextcloud/prettier-config" + } } diff --git a/src/components/Atoms/SafeHtml.vue b/src/components/Atoms/SafeHtml.vue index 53880af..012a011 100644 --- a/src/components/Atoms/SafeHtml.vue +++ b/src/components/Atoms/SafeHtml.vue @@ -6,6 +6,7 @@ import dompurify from 'dompurify' import linkifyHtml from 'linkify-html' import { mapActions } from 'pinia' +import { t } from '@nextcloud/l10n' import { timeToSeconds } from '../../utils/time.ts' import { usePlayer } from '../../store/player.ts' @@ -34,7 +35,9 @@ export default { parseInt(hours), parseInt(minutes), parseInt(seconds), - )}">${match}`, + )}" title="${t('repod', 'Skip to {match}', { match })}">${ + match + }`, ) }, }, diff --git a/translationfiles/de/repod.po b/translationfiles/de/repod.po index ac90aec..55020d8 100644 --- a/translationfiles/de/repod.po +++ b/translationfiles/de/repod.po @@ -58,6 +58,9 @@ msgstr "" msgid "Download" msgstr "Herunterladen" +msgid "Skip to {match}" +msgstr "Springen zu {match}" + msgid "Add a RSS link" msgstr "Einen RSS-Link hinzufügen" diff --git a/translationfiles/fr/repod.po b/translationfiles/fr/repod.po index 6929d78..fd76e57 100644 --- a/translationfiles/fr/repod.po +++ b/translationfiles/fr/repod.po @@ -62,6 +62,9 @@ msgstr "" msgid "Download" msgstr "Télécharger" +msgid "Skip to {match}" +msgstr "Sauter à {match}" + msgid "Add a RSS link" msgstr "Ajouter un lien RSS" diff --git a/translationfiles/templates/repod.pot b/translationfiles/templates/repod.pot index 89cd57e..f6775ea 100644 --- a/translationfiles/templates/repod.pot +++ b/translationfiles/templates/repod.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Nextcloud 3.14159\n" "Report-Msgid-Bugs-To: translations\\@example.com\n" -"POT-Creation-Date: 2024-11-09 18:34+0000\n" +"POT-Creation-Date: 2024-11-12 20:57+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,211 +55,215 @@ msgid "" msgstr "" #: /app/specialVueFakeDummyForL10nScript.js:1 -#: /app/specialVueFakeDummyForL10nScript.js:24 #: /app/specialVueFakeDummyForL10nScript.js:25 +#: /app/specialVueFakeDummyForL10nScript.js:26 msgid "Download" msgstr "" #: /app/specialVueFakeDummyForL10nScript.js:2 -msgid "Add a RSS link" +msgid "Skip to {match}" msgstr "" #: /app/specialVueFakeDummyForL10nScript.js:3 +msgid "Add a RSS link" +msgstr "" + #: /app/specialVueFakeDummyForL10nScript.js:4 #: /app/specialVueFakeDummyForL10nScript.js:5 -#: /app/specialVueFakeDummyForL10nScript.js:12 +#: /app/specialVueFakeDummyForL10nScript.js:6 +#: /app/specialVueFakeDummyForL10nScript.js:13 msgid "Subscribe" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:6 -#: /app/specialVueFakeDummyForL10nScript.js:13 +#: /app/specialVueFakeDummyForL10nScript.js:7 +#: /app/specialVueFakeDummyForL10nScript.js:14 msgid "Error while adding the feed" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:7 +#: /app/specialVueFakeDummyForL10nScript.js:8 msgid "Could not fetch search results" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:8 +#: /app/specialVueFakeDummyForL10nScript.js:9 msgid "New podcasts" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:9 +#: /app/specialVueFakeDummyForL10nScript.js:10 msgid "Hot podcasts" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:10 +#: /app/specialVueFakeDummyForL10nScript.js:11 msgid "Could not fetch tops" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:11 +#: /app/specialVueFakeDummyForL10nScript.js:12 msgid "Copy feed" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:14 +#: /app/specialVueFakeDummyForL10nScript.js:15 msgid "Link copied to the clipboard" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:15 #: /app/specialVueFakeDummyForL10nScript.js:16 -#: /app/specialVueFakeDummyForL10nScript.js:31 +#: /app/specialVueFakeDummyForL10nScript.js:17 +#: /app/specialVueFakeDummyForL10nScript.js:32 msgid "Play" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:17 #: /app/specialVueFakeDummyForL10nScript.js:18 +#: /app/specialVueFakeDummyForL10nScript.js:19 msgid "Stop" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:19 #: /app/specialVueFakeDummyForL10nScript.js:20 #: /app/specialVueFakeDummyForL10nScript.js:21 +#: /app/specialVueFakeDummyForL10nScript.js:22 msgid "Read" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:22 #: /app/specialVueFakeDummyForL10nScript.js:23 +#: /app/specialVueFakeDummyForL10nScript.js:24 msgid "Open website" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:26 +#: /app/specialVueFakeDummyForL10nScript.js:27 msgid "Could not change the status of the episode" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:27 #: /app/specialVueFakeDummyForL10nScript.js:28 +#: /app/specialVueFakeDummyForL10nScript.js:29 msgid "Could not fetch episodes" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:29 +#: /app/specialVueFakeDummyForL10nScript.js:30 msgid "Rewind 10 seconds" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:30 +#: /app/specialVueFakeDummyForL10nScript.js:31 msgid "Pause" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:32 +#: /app/specialVueFakeDummyForL10nScript.js:33 msgid "Fast forward 30 seconds" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:33 #: /app/specialVueFakeDummyForL10nScript.js:34 #: /app/specialVueFakeDummyForL10nScript.js:35 +#: /app/specialVueFakeDummyForL10nScript.js:36 msgid "Mute" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:36 +#: /app/specialVueFakeDummyForL10nScript.js:37 msgid "Unmute" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:37 +#: /app/specialVueFakeDummyForL10nScript.js:38 msgid "Export subscriptions" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:38 +#: /app/specialVueFakeDummyForL10nScript.js:39 msgid "Filtering episodes" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:39 +#: /app/specialVueFakeDummyForL10nScript.js:40 msgid "Show all" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:40 +#: /app/specialVueFakeDummyForL10nScript.js:41 msgid "Listened" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:41 +#: /app/specialVueFakeDummyForL10nScript.js:42 msgid "Listening" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:42 +#: /app/specialVueFakeDummyForL10nScript.js:43 msgid "Unlistened" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:43 +#: /app/specialVueFakeDummyForL10nScript.js:44 msgid "Import subscriptions" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:44 +#: /app/specialVueFakeDummyForL10nScript.js:45 msgid "Import OPML file" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:45 +#: /app/specialVueFakeDummyForL10nScript.js:46 msgid "Rate RePod ❤️" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:46 +#: /app/specialVueFakeDummyForL10nScript.js:47 msgid "Sleep timer" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:47 +#: /app/specialVueFakeDummyForL10nScript.js:48 msgid "Minutes" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:48 +#: /app/specialVueFakeDummyForL10nScript.js:49 msgid "%n min" msgid_plural "%n mins" msgstr[0] "" msgstr[1] "" -#: /app/specialVueFakeDummyForL10nScript.js:49 +#: /app/specialVueFakeDummyForL10nScript.js:50 msgid "%n sec" msgid_plural "%n secs" msgstr[0] "" msgstr[1] "" -#: /app/specialVueFakeDummyForL10nScript.js:50 +#: /app/specialVueFakeDummyForL10nScript.js:51 msgid "Playback speed" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:51 #: /app/specialVueFakeDummyForL10nScript.js:52 #: /app/specialVueFakeDummyForL10nScript.js:53 +#: /app/specialVueFakeDummyForL10nScript.js:54 msgid "Favorite" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:54 +#: /app/specialVueFakeDummyForL10nScript.js:55 msgid "Are you sure you want to delete this subscription?" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:55 +#: /app/specialVueFakeDummyForL10nScript.js:56 msgid "Error while removing the feed" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:56 +#: /app/specialVueFakeDummyForL10nScript.js:57 msgid "You can only have 10 favorites" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:57 +#: /app/specialVueFakeDummyForL10nScript.js:58 msgid "Add a podcast" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:58 +#: /app/specialVueFakeDummyForL10nScript.js:59 msgid "Could not fetch subscriptions" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:59 +#: /app/specialVueFakeDummyForL10nScript.js:60 msgid "Find a podcast" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:60 +#: /app/specialVueFakeDummyForL10nScript.js:61 msgid "Error loading feed" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:61 +#: /app/specialVueFakeDummyForL10nScript.js:62 msgid "Missing required app" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:62 +#: /app/specialVueFakeDummyForL10nScript.js:63 msgid "Install GPodder Sync" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:63 +#: /app/specialVueFakeDummyForL10nScript.js:64 msgid "Pin some subscriptions to see their latest updates" msgstr "" -#: /app/specialVueFakeDummyForL10nScript.js:64 +#: /app/specialVueFakeDummyForL10nScript.js:65 msgid "No favorites" msgstr "" diff --git a/tsconfig.json b/tsconfig.json index 5c772ca..ce80af9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,15 @@ { - "extends": "@vue/tsconfig", - "include": ["./src/**/*.ts", "./src/**/*.vue", "**/*.ts"], - "compilerOptions": { - "allowImportingTsExtensions": true, - "allowSyntheticDefaultImports": true, - "target": "ESNext", - "module": "ESNext", - "moduleResolution": "Bundler", - "noImplicitAny": false, - "rootDir": ".", - "strict": true, - "noEmit": true, - } - } + "extends": "@vue/tsconfig", + "include": ["./src/**/*.ts", "./src/**/*.vue", "**/*.ts"], + "compilerOptions": { + "allowImportingTsExtensions": true, + "allowSyntheticDefaultImports": true, + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "noImplicitAny": false, + "rootDir": ".", + "strict": true, + "noEmit": true + } +}