From 3bc85f123c6ef7b83fa5f96bad4bd16290bc622c Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 11 Aug 2020 21:50:48 +0200 Subject: [PATCH] German translation for extra branch --- Debug-Log/log.json | 10 +- Debug-Log/log.txt | 2 +- .../ft-video-player/ft-video-player.js | 6 +- src/renderer/views/Watch/Watch.js | 25 +- static/locales/de-DE.yaml | 379 ++++++++++++++++++ 5 files changed, 401 insertions(+), 21 deletions(-) create mode 100644 static/locales/de-DE.yaml diff --git a/Debug-Log/log.json b/Debug-Log/log.json index 570eede9..a8fefca0 100644 --- a/Debug-Log/log.json +++ b/Debug-Log/log.json @@ -1,6 +1,6 @@ -https://i9.ytimg.com/sb/s6_azdBnAlU/storyboard3_L$L/$N.jpg?sqp=-oaymwGbA0g48quKqQOSA4gBAZUBAAAEQpgBMqABPKgBBLABELABDbABDLABELABFbABH7ABJrABLbABDrABDrABD7ABErABF7ABK7ABLLABKbABD7ABDrABELABFbABH7ABKrABMrABKbABD7ABEbABFLABGLABJrABPbABOLABLbABEbABFLABHrABKrABMbABS7ABR7ABNrABFbABHLABKbABLrABObABR7ABTbABP7ABJbABLrABN7ABPbABR7ABUrABUbABRbABM7ABQLABQrABQ7ABTLABRLABRrABQ7gBEbgBEbgBFbgBI7gBRLgBQ7gBQ7gBQ7gBEbgBE7gBFrgBL7gBQ7gBQ7gBQ7gBQ7gBFbgBFrgBKbgBQ7gBQ7gBQ7gBQ7gBQ7gBI7gBL7gBQ7gBQ7gBQ7gBQ7gBQ7gBQ7gBRLgBQ7gBQ7gBQ7gBQ7gBQ7gBQrgBQrgBQ7gBQ7gBQ7gBQ7gBQ7gBQrgBQrgBQrgBQ7gBQ7gBQ7gBQ7gBQrgBQrgBQrgBQrgBQ7gBQ7gBQ7gBQrgBQrgBQrgBQrgBQqLzl_8DBgiFlMj5BQ== -|48#27#100#10#10#0#default#rs$AOn4CLCu9a64J5sAqPWwTfONv24Uf3p_Uw -|89#45#92#10#10#10000#M$M#rs$AOn4CLBwuocwkIfcn1A5S13Aa97T7pqdGg +https://i9.ytimg.com/sb/H8Gd9t7FQqI/storyboard3_L$L/$N.jpg?sqp=-oaymwGBQ7gymY2Drpcg| +80#45#158#10#10#10000#M$M#rs$AOn4CLBmFesZLLYKWd0UNT36Xx79Glm1zQ| +160#90#158#5#5#10000#M$M#rs$AOn4CLAMIjIKYqm6PxJnW7fSiydSpGJl5A' - -|179#90#92#5#5#10000#M$M#rs$AOn4CLD2caskvla-xuYU_wgN51Dmu3V6Ow +full: +https://i9.ytimg.com/sb/H8Gd9t7FQqI/storyboard3_L0/M$M.jpg?sqp=-oaymwGBQ7gymY2Drpcg&sigh=rs$AOn4CLBmFesZLLYKWd0UNT36Xx79Glm1zQ diff --git a/Debug-Log/log.txt b/Debug-Log/log.txt index e1769fd3..66dc9051 100644 --- a/Debug-Log/log.txt +++ b/Debug-Log/log.txt @@ -1 +1 @@ -https://i.ytimg.com/sb/s6_azdBnAlU/storyboard3_L$L/$N.jpg?sqp=-oaymwGbA0g48quKqQOSA4gBAZUBAAAEQpgBMqABPKgBBLABELABDbABDLABELABFbABH7ABJrABLbABDrABDrABD7ABErABF7ABK7ABLLABKbABD7ABDrABELABFbABH7ABKrABMrABKbABD7ABEbABFLABGLABJrABPbABOLABLbABEbABFLABHrABKrABMbABS7ABR7ABNrABFbABHLABKbABLrABObABR7ABTbABP7ABJbABLrABN7ABPbABR7ABUrABUbABRbABM7ABQLABQrABQ7ABTLABRLABRrABQ7gBEbgBEbgBFbgBI7gBRLgBQ7gBQ7gBQ7gBEbgBE7gBFrgBL7gBQ7gBQ7gBQ7gBQ7gBFbgBFrgBKbgBQ7gBQ7gBQ7gBQ7gBQ7gBI7gBL7gBQ7gBQ7gBQ7gBQ7gBQ7gBQ7gBRLgBQ7gBQ7gBQ7gBQ7gBQ7gBQrgBQrgBQ7gBQ7gBQ7gBQ7gBQ7gBQrgBQrgBQrgBQ7gBQ7gBQ7gBQ7gBQrgBQrgBQrgBQrgBQ7gBQ7gBQ7gBQrgBQrgBQrgBQrgBQqLzl_8DBgiFlMj5BQ==|48#27#100#10#10#0#default#rs$AOn4CLDHVRzycfFSzvX-6HsZU5m70bZbTg|89#45#92#10#10#10000#M$M#rs$AOn4CLDxmuxU7t8lN2-aRglo_B0bb0sbxg|179#90#92#5#5#10000#M$M#rs$AOn4CLCOmNcCRoAr84FxqBNzUt1e47eKhg \ No newline at end of file +undefined \ No newline at end of file diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 6bff816c..4d7543fb 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -230,9 +230,9 @@ export default Vue.extend({ this.player.volume(this.volume) this.player.playbackRate(this.defaultPlayback) - // this.player.vttThumbnails({ - // src: this.storyboardSrc - // }) + this.player.vttThumbnails({ + src: this.videoStoryboardSrc + }) if (this.useDash) { this.dataSetup.plugins.httpSourceSelector = { diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index 03b97f7a..42f6b63c 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -298,18 +298,21 @@ export default Vue.extend({ // Uncomment this line if that ever changes. const TemplateUrl = result.player_response.storyboards.playerStoryboardSpecRenderer.spec const Storyboards = TemplateUrl.split('|') - - const BaseUrl = Url.url.parse(Storyboards.shift(), true) - const BaseUrlParams = BaseUrl.query + console.log('AAAAAAAAAAAAAAAAAAAAAAAAA') + const BaseUrl = new Url.URL(Storyboards.shift()) const items = [] + FileWriter.writeFile('D:\\Workspace\\JavaScript\\FreeTube-Vue\\Debug-Log\\log.txt', BaseUrl.URLS, (err) => { + if (err) { + console.log(err) + } + }) Storyboards.forEach((storyboard, i) => { const [width, height, count, sWidth, sHeight, interval, _, sigh] = storyboard.split('#') - const BaseStoryboardUrl = BaseUrl.sub('$L', i).sub('$N', 'M$M') - BaseUrlParams.sigh = sigh - BaseUrl.query = BaseUrlParams + const BaseStoryboardUrl = new URL(BaseUrl.toString().replace('$L', i).replace('$N', 'M$M')) + BaseStoryboardUrl.searchParams.append('sigh', sigh) items.push( { - Url: BaseStoryboardUrl, + Url: BaseStoryboardUrl.toString(), Width: Number(width), Height: Number(height), Count: Number(count), @@ -319,13 +322,11 @@ export default Vue.extend({ StoryboardCount: Math.ceil((Number(count) / (Number(sHeight) * Number(sWidth)))) } ) + console.log('URL: ', items[items.length - 1].Url) }) - FileWriter.writeFile('D:\\Workspace\\JavaScript\\FreeTube-Vue\\Debug-Log\\log.txt', TemplateUrl, (err) => { - if (err) { - console.log(err) - } - }) + // this.videoStoryboardSrc = result.player_response.storyboards.playerStoryboardSpecRenderer.spec + this.videoStoryboardSrc = items[0].Url this.captionSourceList = result.player_response.captions && diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml new file mode 100644 index 00000000..a59893d6 --- /dev/null +++ b/static/locales/de-DE.yaml @@ -0,0 +1,379 @@ +# This document follows a roughly page to page, top to bottom, left to right view +# as things appear on the screen for the user. It is layouted in this way to allow for +# easy verification of all words and phrases by the translator. + +# For repeat entries, + #an ampersand (&) will follow the pound (#) in a comment for single item repeats, i.e: + #& Playlists + #an asterisk (*) will follow the pound (#) in a comment to reference the head listing in multiple item repeats, i.e: + #Main Color Theme: Main Color Theme + #Red: Red + #Pink: Pink + #Secondary Color Theme: Secondary Color Theme + #* Main Color Theme +# An exclamation point (!) is used for entries not yet completed. +# A tilda (~) is used for entries that are present, but do not need to be translated. i.e: + #~ 'BTC: 1Lih7Ho5gnxb1CwPD4o59ss78pwo2T91eS' + +--- +FreeTube: FreeTube +# Currently on Subscriptions, Playlists, and History +'This part of the app is not ready yet. Come back later when progress has been made.': > + Dieser Teil des Programms is noch nicht fertig. Bitte komme zu einem späteren Zeitpunkt wieder. + +# Webkit Menu Bar +File: Datei +Quit: Verlassen +Edit: Bearbeiten +Undo: Rückgängig machen +Redo: Zurück machen +Cut: Ausschneiden +Copy: Kopieren +Paste: Einfügen +Delete: Löschen +Select all: Alles auswählen +Reload: Aktualisieren +Force Reload: Erzwinge Aktualisierung +Toggle Developer Tools: Aktiviere Entwicklerwerkzeuge +Actual size: Tatsächliche Größe +Zoom in: Vergrößern +Zoom out: Verkleinern +Toggle fullscreen: Vollbild aktivieren +Window: Fenster +Minimize: Minimieren +Close: Schließen +Back: Zurück +Forward: Vorwärts + +# Search Bar +Search / Go to URL: Suche / Geh zu URL + # In Filter Button +Search Filters: + Search Filters: Suchfilter + Sort By: + Sort By: Sortiere nach + Most Relevant: Am relevantesten + Rating: Bewertung + Upload Date: Hochladedatum + View Count: Klickzahl + Time: + Time: Zeit + Any Time: Jeder Zeitraum + Last Hour: Letze Stunde + Today: Heute + This Week: Diese Woche + This Month: Dieser Monat + This Year: Dieses Jahr + Type: + Type: Typ + All Types: Alle Typen + Videos: Videos + Channels: Kanäle + #& Playlists + Duration: + Duration: Dauer + All Durations: Aller Dauern + Short (< 4 minutes): Kurz (< 4 Minuten) + Long (> 20 minutes): Lang (> 20 Minuten) + # On Search Page + Search Results: Suchergebnisse + Fetching results. Please wait: Lade Ergebnisse. Bitte warten + Fetch more results: Lade mehr Ergebnisse +# Sidebar +Subscriptions: + # On Subscriptions Page + Subscriptions: Abonnement + Latest Subscriptions: Neueste Abonnements + + 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': > + Deine Abonnementliste ist aktuell leer. Beginne Abonnements hinzuzufügen um sie hier zu sehen. + + 'Getting Subscriptions. Please wait...': Hole Abonnements. Bitte warten… +Trending: Trends +Most Popular: Am beliebtesten +Playlists: Playlists +User Playlists: + Your Playlists: Deine Playlists +History: + # On History Page + History: Verlauf + Watch History: Schaue Verlauf +Settings: + # On Settings Page + Settings: Einstellungen + General Settings: + General Settings: Allgemeine Einstellungen + Fallback to Non-Preferred Backend on Failure: Falle zu nicht-präferiertem System bei Fehlschlag zurück + Enable Search Suggestions: Aktiviere Suchvorschläge + Default Landing Page: Standardseite + Preferred API Backend: + Preferred API Backend: Präferiertes API System + Local API: Lokale API + Invidious API: Invidious API + Video View Type: + Video View Type: Videoansichtstyp + Grid: Gitter + List: Liste + Thumbnail Preference: + Thumbnail Preference: Thumbnail Präferenz + Default: Standard + Beginning: Anfang + Middle: Mitte + End: Ende + 'Invidious Instance (Default is https://invidio.us)': Invidious Instanz (Standard ist https://invidio.us) + Region for Trending: Region für Trends + #! List countries + Theme Settings: + Theme Settings: Thema Einstellungen + Match Top Bar with Main Color: Passe obere Leiste an Hauptfarbe an + Base Theme: + Base Theme: Grundlegendes Thema + Black: Schwarz + Dark: Dunkel + Light: Hell + Main Color Theme: + Main Color Theme: Hauptfarbenthema + Red: Rot + Pink: Pink + Purple: Lila + Deep Purple: Dunkellila + Indigo: Indigo + Blue: Blau + Light Blue: Hellblau + Cyan: Cyan + Teal: Petrol + Green: Grün + Light Green: Hellgrün + Lime: Lindgrün + Yellow: Gelb + Amber: Bernstein + Orange: Orange + Deep Orange: Dunkelorange + Secondary Color Theme: Sekundäres Farbenthema + #* Main Color Theme + Player Settings: + Player Settings: Videoplayer Einstellungen + Force Local Backend for Legacy Formats: Erzwinge lokales System für Legacyformat + Remember History: Speichere Verlauf + Play Next Video: Spiele nächstes Video + Turn on Subtitles by Default: Untertitel standardmäßig aktivieren + Autoplay Videos: Automatische Videowiedergabe + Proxy Videos Through Invidious: Proxy Videos durch Invidious + Autoplay Playlists: Automatische Playlistwiedergabe + Enable Theatre Mode by Default: Aktiviere standardmäßig Kinomodus + Default Volume: Standard Lautstärke + Default Playback Rate: Standard Wiedergabegeschwindigkeit + Default Video Format: + Default Video Format: Standard Video Format + Dash Formats: Dash Formate + Legacy Formats: Legacy Formate + Audio Formats: Audio Formate + Default Quality: + Default Quality: Standard Qualität + Auto: Auto + 144p: 144p + 240p: 240p + 360p: 360p + 480p: 480p + 720p: 720p + 1080p: 1080p + 1440p: 1440p + 4k: 4k + 8k: 8k + Subscription Settings: + Subscription Settings: Abonnement Einstellungen + Hide Videos on Watch: Verstecke Videos bei Wiedergabe + Subscriptions Export Format: + Subscriptions Export Format: Abonnement Exportierformat + #& Freetube + Newpipe: Newpipe + OPML: OPML + Manage Subscriptions: Verwalte Abonnements + Import Subscriptions: Importiere Abonnements + Export Subscriptions: Exportiere Abonnements + How do I import my subscriptions?: Wie importiere ich meine Abonnements? + Advanced Settings: + Advanced Settings: Fortgeschrittene Einstellungen + Enable Debug Mode (Prints data to the console): Aktiviere Debug Modus (Gibt Daten auf der Konsole aus) + 'Proxy Address (Example: SOCKS5://127.0.0.1:9050 )': 'Proxy Adresse (Beispiel: SOCKS5://127.0.0.1:9050 )' + 'Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json': > + Den "TESTE PROXY" Knopf zu drücken, sendet eine Anfrage an https://ipinfo.io/json + Use Tor / Proxy for API calls: Nutze Tor / Proxy für API Aufrufe + TEST PROXY: TESTE PROXY + #& Invidious Instance (Default is https://invidio.us) + See Public Instances: Zeige öffentliche Instanzen + Clear History: + Clear History: Lösche Verlauf + # On Click + Are you sure you want to delete your history?: Bist du sicher, dass du deinen Verlauf löschen möchtest? + #& Yes + #& No + Clear Subscriptions: + Clear Subscriptions: Lösche Abonnements + # On Click + Are you sure you want to remove all subscriptions?: Bist du sicher, dass du deine Abonnements löschen möchtest? + #& Yes + #& No + +About: + #On About page + About: Über + #& About + 'This software is FOSS and released under the GNU Public License v3+.': > + Dieses Programm is unter der freien Lizent GPLv3+ veröffentlicht. + + 'Found a bug? Want to suggest a feature? Want to help out? Check out our GitHub page. Pull requests are welcome.': >- + Einen Bug gefunden? Eine neue Funktion vorschlagen? Mithelfen? Schau auf unserer GitHub-Seite vorbei. + Pull requests sind wilkommen. + + Thank you very much to the People and Projects that make FreeTube possible!: > + Vielen Dank an all die Personen und Projekte die FreeTube möglich machen! + + 'Want to chat? Join our Element / Matrix Server . Please check the rules before joining.': > + Lust zu chatten? Tritt unserem Element / Matrix Server bei. Bitte lese zuvor aber noch die Regeln. + + 'Looking for help? Check out our Wiki page.': Suchst nach Hilfe? Schaue auf unserer Wiki vorbei. + + Check out our Firefox extension!: Installiere auch unsere Firefox-Erweiterung! + + 'If you enjoy using FreeTube, consider donating via Liberapay or through our Bitcoin address.': > + Falls du FreeTube gerne nutzt, erwäge doch view Liberapay oder über unsere Bitcoinadresse zu spenden. + + #~ 'BTC: 1Lih7Ho5gnxb1CwPD4o59ss78pwo2T91eS' + + Latest FreeTube News: Aktuellsten FreeTube Neuigkeiten + +#On Channel Page +Channel: + Subscriber: Abonnement + Subscribers: Abonnements + Subscribe: Abonnieren + Unsubscribe: Deabonnieren + Search Channel: Suche Kanal + Your search results have returned 0 results: Deine Suche hat 0 Ergebnisse geliefert. + Sort By: Sortiere nach + Videos: + Videos: Videos + This channel does not currently have any videos: Dieser Kanal hat aktuell keine Videos + Sort Types: + Newest: Neueste + Oldest: Älteste + Most Popular: Am beliebtesten + Playlists: + Playlists: Playlists + This channel does not currently have any playlists: Dieser Kanal hat aktuell keine Playlists + Sort Types: + Last Video Added: Zuletzt hinzugefügtes Video + Newest: Neuestes + Oldest: Ältestes + About: + About: Über + Channel Description: Kanalbeschreibung + Featured Channels: Featured Kanäle +Video: + Views: Klicks + Live Now: Gerade Live + Enable Live Chat: Aktiviere Live-Chat + Live Chat is currently not supported in this build.: Live-Chat ist in der aktuellen Version nicht unterstützt. + 'Chat is disabled or the Live Stream has ended.': Der Chat ist deaktiviert oder der Livestream zuende. + Live chat is enabled. Chat messages will appear here once sent.: Der Live chat ist aktivier. Chatnachrichten tauchen hier auf. + 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': Live Chat ist in der aktuellen Invidious API nicht unterstützt. Eine direkte Verbindung zu YouTube wird benötigt. + Published: + Jan: Jan + Feb: Feb + Mar: Mär + Apr: Apr + May: Mai + Jun: Jun + Jul: Jul + Aug: Aug + Sep: Sep + Oct: Okt + Nov: Nov + Dec: Dez + Hour: Stunde + Hours: Stunden + Day: Tag + Days: Tage + Week: Woche + Weeks: Wochen + Month: Monat + Months: Monate + Year: Jahr + Years: Jahre + Ago: Vor + Published on: Veröffentlicht am +#& Videos +Videos: + #& Sort By + Sort By: + Newest: Neuestes + Oldest: Ältestes + #& Most Popular +#& Playlists +Playlist: + #& About + View Full Playlist: Zeige volle Playlist + +# On Channel Playlist Page +Share Playlist: + Share Playlist: Teile Playlist + Copy YouTube Link: Kopiere YouTube Link + Open in YouTube: Öffne auf YouTube + Copy Invidious Link: Kopiere Invidious Link + Open in Invidious: Öffne auf Invidious + +# On Video Watch Page +#* Published +#& Views +Toggle Theatre Mode: Aktiviere Kinomodus +Change Format: + Change Video Formats: Ändere Videoformat + Use Dash Formats: Nutze Dash Format + Use Legacy Formats: Nutze Legacy Format + Use Audio Formats: Nutze Audio Format +Share: + Share Video: Teile das Video + Copy Link: Kopiere Link + Open Link: Öffne Link + Copy Embed: Kopiere Embed + Open Embed: Öffne Embed + # On Click + Invidious URL copied to clipboard: Invidious URL in die Zwischenablage kopiert + Invidious Embed URL copied to clipboard: Invidious Embed URL in die Zwischenablage kopiert + YouTube URL copied to clipboard: YouTube URL in die Zwischenablage kopiert + YouTube Embed URL copied to clipboard: YouTube Embed URL in die Zwischenablage kopiert +Mini Player: Mini Player +Comments: + Comments: Kommentare + Click to View Comments: Klicke um Kommentare anzuzeigen + Getting comment replies, please wait: Lade Kommentare, bitte warten + Show Comments: Zeige Kommentare + Hide Comments: Verstecke Kommentare + # Context: View 10 Replies, View 1 Reply + View: Zeige + Hide: Verstecke + Replies: Antworten + Reply: Antworte + There are no comments available for this video: Für dieses Video gibt es keine Kommentare + Load More Comments: Lade mehr Kommentare +Up Next: Nächster Titel + +# Toast Messages +Local API Error (Click to copy): Lokaler API Fehler (Klicke zum Kopieren) +Invidious API Error (Click to copy): Invidious API Fehler (Klicke zum Kopieren) +Falling back to Invidious API: Falle auf Invidious API zurück +Falling back to the local API: Dalle auf lokale API zurück +Subscriptions have not yet been implemented: Abonnements sind noch nicht implementiert +Loop is now disabled: Schleife ist jetzt deaktiviert +Loop is now enabled: Schleife ist jetzt aktiviert +Shuffle is now disabled: Zufallswiedergabe ist jetzt deaktiviert +Shuffle is now enabled: Zufallswiedergabe ist jetzt aktiviert +Playing Next Video: Spiele nächstes Video +Playing Previous Video: Spiele vorheriges Video +Playing next video in 5 seconds. Click to cancel: Spiele nächstes Video in 5 Sekunden. Klicke um abzubrechen +Canceled next video autoplay: Wiedergabe des nächsten Videos abgebrochen +'The playlist has ended. Enable loop to continue playing': 'Die Playlist hat das Ende erreicht. Aktiviere Schleife um weiterzuspielen' + +Yes: Ja +No: Nein