Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
aa6ea92
fix: reject empty localization messages
Priveetee Aug 30, 2026
4d6aeaf
ci: route workflows to R730 runners
Priveetee Aug 31, 2026
f72003d
chore: benchmark dev runners
Priveetee Aug 31, 2026
ce6e563
ci: route localization checks to R730
Priveetee Aug 31, 2026
5a94ed6
fix: stabilize remote YouTube input handling
Priveetee Sep 3, 2026
f21d656
feat: add remote login bug reporting
Priveetee Sep 3, 2026
0541f47
fix: consume mse stalled playback recovery
Priveetee Sep 3, 2026
c1e40fc
fix: handle volume wheel on every player layout
Priveetee Sep 3, 2026
833a6ef
fix: localize volume slider labels
Priveetee Sep 3, 2026
ed48437
fix: capture volume wheel on native controls
Priveetee Sep 3, 2026
9f3c2e3
fix: prevent page scroll on volume wheel
Priveetee Sep 3, 2026
5b54088
fix: capture volume wheel on native slider
Priveetee Sep 3, 2026
b6ba355
test: cover YouTube short share URLs
Priveetee Sep 3, 2026
3d8e21c
fix: normalize YouTube short share links
Priveetee Sep 3, 2026
6d5db72
feat: show playback progress on video cards
Priveetee Sep 4, 2026
4b60155
feat: add provider source link sharing
Priveetee Sep 4, 2026
475b43d
feat: anchor share links dropdown
Priveetee Sep 4, 2026
b360956
style: simplify share dropdown
Priveetee Sep 4, 2026
9cba24c
style: use icon-only share menu
Priveetee Sep 4, 2026
3233a74
style: use compact share chips
Priveetee Sep 4, 2026
cedaef1
fix: show share destination names
Priveetee Sep 4, 2026
1f8a168
fix: align share dropdown with trigger
Priveetee Sep 4, 2026
158da3d
feat: keep watch player visible on scroll
Priveetee Sep 4, 2026
b634c13
fix: keep sticky player with related videos
Priveetee Sep 4, 2026
213ecc4
fix: disable sticky player in landscape
Priveetee Sep 4, 2026
3b004e5
fix: make sticky watch player compact
Priveetee Sep 4, 2026
6aa4c48
feat: persist watch player state across navigation
Priveetee Sep 4, 2026
c11db39
feat: add draggable floating watch player
Priveetee Sep 4, 2026
28a06f7
refactor: mount watch player outside route layout
Priveetee Sep 4, 2026
421a295
fix: preserve player anchor on initial mount
Priveetee Sep 4, 2026
3f18978
fix: simplify compact player controls and scrolling
Priveetee Sep 5, 2026
0e8017b
fix: synchronize compact playback controls after seeking
Priveetee Sep 5, 2026
94455a0
fix: update MSE engine for paused Firefox seeks
Priveetee Sep 5, 2026
97de733
fix: use WebKit seek isolation in frontend
Priveetee Sep 5, 2026
6d984d0
fix: preserve SABR position across WebKit provider replacement
Priveetee Sep 5, 2026
81b0d12
fix: capture WebKit positions before provider replacement
Priveetee Sep 5, 2026
85c26a3
refactor: isolate WebKit handoff capture
Priveetee Sep 5, 2026
51ae07f
style: soften compact player controls
Priveetee Sep 6, 2026
2d5cf23
chore: add ZIP64 archive reader for Takeout imports
Priveetee Sep 6, 2026
df71d8e
fix: prepare large Takeout archives before upload
Priveetee Sep 6, 2026
896ca9b
chore(l10n): update French translation
typetype-translations Aug 29, 2026
a3ecab8
chore(l10n): add German translation
Toastienergy Aug 30, 2026
88143ba
chore(l10n): update German translation
Toastienergy Aug 30, 2026
e783db5
chore(l10n): update German translation
Toastienergy Aug 31, 2026
a172c3b
chore(l10n): update German translation
Toastienergy Sep 1, 2026
4aa7897
chore(l10n): update German translation
Toastienergy Sep 2, 2026
c644d35
chore(l10n): update German translation
Toastienergy Sep 3, 2026
1ecc63c
chore(l10n): update German translation
Toastienergy Sep 4, 2026
82da9a1
chore(l10n): update German translation
Toastienergy Sep 5, 2026
56c3200
chore(l10n): update German translation
Toastienergy Sep 6, 2026
60aa81a
chore(l10n): update German translation
typetype-translations Sep 6, 2026
a00b827
Merge pull request #24 from typetype-translations/weblate-typetype-web
Priveetee Sep 6, 2026
7d9d88a
fix: expose German interface locale
Priveetee Sep 6, 2026
ec49d4f
fix: adapt interface layout to translated labels
Priveetee Sep 6, 2026
6a06c08
fix: keep related video cards within mobile viewport
Priveetee Sep 6, 2026
3a4e899
fix: make video settings locale responsive
Priveetee Sep 6, 2026
f4d88e4
fix: remove duplicate watch settings context
Priveetee Sep 6, 2026
0242112
feat: add profile actions dropdown
Priveetee Sep 7, 2026
2b98fb3
fix: make nginx service targets configurable
Priveetee Sep 8, 2026
35b3348
fix: avoid false positives in JSX localization scan
Priveetee Sep 8, 2026
74f24c1
feat: add account profile switching client
Priveetee Sep 8, 2026
4898b05
feat: add account profile switcher UI
Priveetee Sep 8, 2026
03d8019
feat: improve service notification center
Priveetee Sep 8, 2026
29d3812
chore: bump frontend version to 1.8.1
Priveetee Sep 8, 2026
e2c7a1f
fix: satisfy frontend quality checks
Priveetee Sep 8, 2026
168af27
feat: add fullscreen control to floating player
Priveetee Sep 8, 2026
642dd2d
fix: restore SABR segment recovery in beta
Priveetee Sep 8, 2026
b9ec928
feat: add mini-player return control and remove button halos
Priveetee Sep 8, 2026
ee59857
fix: display avatars in account profile switcher
Priveetee Sep 8, 2026
fc798e6
fix: refresh profile data without resetting mounted players
Priveetee Sep 8, 2026
1626538
chore: replace Reddit community link with Lemmy
Priveetee Sep 8, 2026
0d34a8b
feat: announce community move to Lemmy
Priveetee Sep 8, 2026
8a88791
style: make the Lemmy announcement more welcoming
Priveetee Sep 8, 2026
656b9e0
style: improve community announcement readability and store colors
Priveetee Sep 8, 2026
43d9d90
style: place Lemmy beside support without hover backgrounds
Priveetee Sep 8, 2026
f8bb191
fix: open the Lemmy community through Blorp
Priveetee Sep 8, 2026
d9714ad
refactor: share search input and provider navigation state
Priveetee Sep 8, 2026
8aec10d
feat: add panoramic search panel with provider selection
Priveetee Sep 8, 2026
4ec5361
feat: integrate panoramic search on desktop and mobile
Priveetee Sep 8, 2026
3f73525
feat: show relevant videos in a more compact search panel
Priveetee Sep 8, 2026
3e1773d
style: widen the desktop search panel
Priveetee Sep 8, 2026
9a1a074
chore: update frontend analysis tools
Priveetee Sep 9, 2026
48b579f
chore: update React and Zustand patch versions
Priveetee Sep 9, 2026
153dbbc
chore: update frontend tooling and UI dependencies
Priveetee Sep 9, 2026
5a542fa
chore: regenerate routes with the updated router
Priveetee Sep 9, 2026
ed0417f
perf: defer the persistent player until a video is opened
Priveetee Sep 9, 2026
9828da3
perf: skip redundant volume settings writes
Priveetee Sep 9, 2026
d613a90
chore: align frontend builds and CI on Bun 1.4.2
Priveetee Sep 9, 2026
a5df6bb
perf: serialize settings writes
Priveetee Sep 9, 2026
7d776f9
chore: update frontend media dependencies
Priveetee Sep 9, 2026
828090e
fix: preserve cinema position and restore volume
Priveetee Sep 9, 2026
43ab74c
fix: restore volume after provider initialization
Priveetee Sep 9, 2026
b65e13b
feat: link Lemmy announcement from site
Priveetee Sep 9, 2026
8f647d9
fix: align mobile playback controls
Priveetee Sep 9, 2026
c1920a0
fix: show BiliBili bullet comments
Priveetee Sep 9, 2026
f2df9a1
fix: preserve BiliBili audio bandwidth
Priveetee Sep 9, 2026
166f22e
fix: keep proxy URLs usable in tests
Priveetee Sep 9, 2026
7970d84
fix: use opaque provider media handles
Priveetee Sep 9, 2026
215d499
fix: resolve opaque media handles in data manifests
Priveetee Sep 9, 2026
540ba5d
chore(l10n): update German translation
Toastienergy Sep 7, 2026
a0ec0bf
fix: keep small player volume slider horizontal
Priveetee Sep 10, 2026
8cce78f
fix: release media providers between videos
Priveetee Sep 10, 2026
588d05b
perf: align HLS buffering with MSE
Priveetee Sep 10, 2026
919f1ec
Merge pull request #28 from typetype-translations/weblate-typetype-web
Priveetee Sep 10, 2026
5cfce86
fix: reload NicoNico playback reliably
Priveetee Sep 10, 2026
e6e0549
fix: preserve Nico media handle routes
Priveetee Sep 10, 2026
33e5574
fix: isolate HLS media request generations
Priveetee Sep 10, 2026
32f0c81
fix: version HLS requests in loader context
Priveetee Sep 10, 2026
9bd18f0
fix: keep HLS generation stable per provider
Priveetee Sep 10, 2026
c1de57e
fix: preserve logical HLS request URLs
Priveetee Sep 10, 2026
5bb447c
fix: bypass stale Chromium HLS requests
Priveetee Sep 10, 2026
e63ab98
fix: use Fetch for HLS media requests
Priveetee Sep 10, 2026
957828a
fix: preserve same-type media providers
Priveetee Sep 10, 2026
decd88e
feat: add trilingual Lemmy announcement controls
Priveetee Sep 10, 2026
1198ebd
docs: refine Lemmy announcement copy
Priveetee Sep 10, 2026
49380a5
docs: use collective Lemmy announcement voice
Priveetee Sep 10, 2026
fd4bd9a
fix: clarify Lemmy announcement dismissal and store icons
Priveetee Sep 10, 2026
7bef1fa
fix: exclude immutable brand SVGs from lint
Priveetee Sep 10, 2026
5cc9494
fix: align SponsorBlock markers with slider track
Priveetee Sep 10, 2026
46891c6
fix: support custom audio SponsorBlock sliders
Priveetee Sep 10, 2026
4f1ef56
chore: sync release with main
Priveetee Sep 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:

- uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: "1.3.14"
bun-version: "1.4.2"

- name: Install dependencies
run: bun install --frozen-lockfile
Expand Down Expand Up @@ -76,7 +76,7 @@ jobs:

- uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: "1.3.14"
bun-version: "1.4.2"

- name: Install dependencies
run: bun install --frozen-lockfile
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:

- uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: "1.3.14"
bun-version: "1.4.2"

- name: Install dependencies
run: bun install --frozen-lockfile
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:

- uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: "1.3.14"
bun-version: "1.4.2"

- name: Resolve build metadata
id: info
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/localization.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

- uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: "1.3.14"
bun-version: "1.4.2"

- name: Install dependencies
run: bun install --frozen-lockfile
Expand Down
10 changes: 8 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM --platform=$BUILDPLATFORM oven/bun:1.3.14-alpine AS builder
FROM --platform=$BUILDPLATFORM oven/bun:1.4.2-alpine AS builder

WORKDIR /app

Expand All @@ -22,7 +22,13 @@ ARG BUILD_REVISION=development
ARG BUILD_TIME=unknown

# Let the official entrypoint derive the resolver from the runtime network.
ENV NGINX_ENTRYPOINT_LOCAL_RESOLVERS=1
ENV NGINX_ENTRYPOINT_LOCAL_RESOLVERS=1 \
TYPETYPE_SERVER_HOST=typetype-server \
TYPETYPE_SERVER_PORT=8080 \
TYPETYPE_TOKEN_HOST=typetype-token \
TYPETYPE_TOKEN_PORT=8081 \
TYPETYPE_DOWNLOADER_HOST=typetype-downloader \
TYPETYPE_DOWNLOADER_PORT=18093

RUN apk upgrade --no-cache libxml2 libcrypto3 libssl3 libexpat

Expand Down
65 changes: 45 additions & 20 deletions apps/web/messages/de.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"$schema": "https://inlang.com/schema/inlang-message-format",
"search_panel_suggestions": "Vorschläge",
"search_panel_no_history": "Keine letzten Suchanfragen",
"search_panel_no_suggestions": "Keine Vorschläge. Sie können trotzdem nach Ihrem Text suchen.",
"search_panel_no_videos": "Zurzeit keine Empfehlungen",
"search_panel_clear_failed": "Der Suchverlauf konnte nicht gelöscht werden. Bitte erneut versuchen.",
"admin_access_description": "Lege fest, wer beitreten darf und welche Inhalte verfügbar sind.",
"admin_access_label": "Zugriff",
"admin_access_mode_description": "Die Jugendschutzfunktion beschränkt das Abrufen und Entdecken von Inhalten auf zugelassene Kanäle.",
Expand Down Expand Up @@ -66,7 +71,7 @@
"nav_subscriptions": "Abonnements",
"shell_built_by_community": "Erstellt von der TypeType Community",
"shell_search": "Suchen",
"shell_support": "Hilfe",
"shell_support": "Unterstützen",
"shell_support_typetype": "Unterstütze TypeType",
"watch_audio_loading": "Lade Ton…",
"watch_audio_only": "Nur Ton",
Expand Down Expand Up @@ -167,7 +172,7 @@
"settings_blocked_label": "Gesperrter Inhalt",
"settings_data_description": "Importiere, exportiere und stelle Accountdaten wieder her.",
"settings_data_label": "Daten",
"settings_interface_description": "Entscheide was TypeType öffnet und hervorhebt.",
"settings_interface_description": "Wähle aus, was TypeType öffnet und hervorhebt.",
"settings_interface_label": "Benutzeroberfläche",
"settings_language_description": "Benutzeroberflächen-, Ton- und Untertitel- Einstellungen.",
"settings_language_label": "Sprachen",
Expand All @@ -177,15 +182,15 @@
"settings_privacy_description": "Wiedergabeverlauf, Sitzungen und Datenschutz des Kontos verwalten.",
"settings_privacy_label": "Datenschutz",
"settings_rss_description": "Private Feeds für dieses Konto verwalten.",
"settings_services_description": "Wähle den Anbieter welcher standardmäßig genutzt wird.",
"settings_services_description": "Wähle den Anbieter, welcher standardmäßig genutzt wird.",
"settings_services_label": "Dienste",
"settings_subtitle": "Passe Wiedergabe, Inhalte, Datenschutz und Kontodaten an. Die Änderungen gelten für dein gesamtes TypeType-Konto.",
"settings_subtitle_default_description": "Aktiviere Untertitel standardmäßig",
"settings_subtitle_default_label": "Untertitel",
"settings_subtitle_language_description": "Bevorzugte Untertitelspur",
"settings_subtitle_language_label": "Untertitelsprache",
"settings_title": "Einstellungen",
"settings_audio_language_description": "Bevorzugte Audiospur",
"settings_audio_language_description": "Bevorzugte Tonspur",
"settings_audio_language_ignored": "Wird ignoriert, wenn die Originalsprache erzwungen wird",
"settings_audio_language_label": "Tonsprache",
"settings_original_audio_description": "Verwende immer die ursprüngliche Tonspur",
Expand Down Expand Up @@ -213,6 +218,17 @@
"profile_username_too_long": "Benutzername darf maximal 32 Zeichen lang sein.",
"profile_bio_too_long": "Die Kurzbiografie darf maximal 280 Zeichen lang sein.",
"profile_update_failed": "Profil konnte nicht aktualisiert werden.",
"profile_switcher": "Profile",
"profile_active": "Aktives Profil",
"profile_add": "Profil hinzufügen",
"profile_rename": "Profil umbenennen",
"profile_delete": "Profil löschen",
"profile_set_default": "Als Standardprofil festlegen",
"profile_save_name": "Profilnamen speichern",
"profile_name_placeholder": "Name des neuen Profils",
"profile_name_label": "Profilname",
"profile_delete_confirm": "Dieses Profil und alle privaten Daten löschen?",
"profile_action_failed": "Profile konnten nicht aktualisiert werden.",
"account_identity_title": "Kontoidentität",
"account_identity_description": "Wird für die Anmeldung und die Anzeige des Kontos verwendet.",
"account_identity_managed": "Verwaltet von deinem Identitätsanbieter.",
Expand All @@ -236,7 +252,7 @@
"avatar_update_failed": "Profilbild kann nicht aktualisiert werden",
"avatar_clear_failed": "Profilbild kann nicht gelöscht werden",
"avatar_emoji_source": "Emojis von",
"avatar_search": "Emojis suchen",
"avatar_search": "Emojis durchsuchen",
"avatar_scroll_left": "Emoji-Liste nach links scrollen",
"avatar_scroll_right": "Emoji-Liste nach rechts scrollen",
"avatar_clear": "Leeren",
Expand Down Expand Up @@ -269,9 +285,9 @@
"portability_import_title": "Daten importieren",
"portability_import_description": "Vorschau anzeigen und auswählen, was wiederhergestellt werden soll.",
"portability_import_from": "Importieren von",
"portability_choose_or_drop": "Backup auswählen oder ablegen",
"portability_drop_original_prefix": "Original ablegen",
"portability_drop_original_suffix": "Datei. Es wird nichts importiert bis du die Vorschau überprüfst.",
"portability_choose_or_drop": "Sicherungskopie auswählen oder ablegen",
"portability_drop_original_prefix": "Lege die originale",
"portability_drop_original_suffix": "Datei ab. Es wird nichts importiert, bis du die Vorschau überprüft hast.",
"portability_duplicate_records": "Doppelte Daten gefunden",
"portability_different_file": "Andere Datei",
"portability_compatibility_notes": "Kompatibilitätshinweise",
Expand Down Expand Up @@ -300,14 +316,14 @@
"portability_status_partial": "Teilunterstützung",
"portability_status_supported": "Unterstützt",
"portability_status_not_supported": "Nicht unterstützt",
"portability_get_backup": "Erhalte dein",
"portability_get_backup": "Erhalte deine",
"portability_backup_suffix": "Sicherungskopie",
"portability_guide_typetype_description": "Daten aus einer anderen TypeType-Instanz übertragen oder eine Sicherungskopie wiederherstellen.",
"portability_guide_typetype_step_one": "Öffne die Einstellungen und anschließend Datenübertragbarkeit auf der ursprünglichen Instanz.",
"portability_guide_typetype_step_two": "Wähle TypeType als Ziel aus und lade den Export herunter.",
"portability_guide_typetype_step_three": "Lege unten die heruntergeladene Sicherungskopie unverändert ab.",
"portability_guide_takeout_description": "Google Takeout kann Abonnements, Wiedergabeverlauf, Wiedergabelisten, Videos in Später ansehen und mit Gefällt mir markierte Videos bereitstellen.",
"portability_guide_takeout_step_one": "Öffne Google Takeout mit YouTube und Meine Aktivitäten ausgewählt.",
"portability_guide_takeout_step_one": "Öffne Google Takeout und wähle YouTube und Meine Aktivitäten aus.",
"portability_guide_takeout_step_two": "Erstelle einen ZIP-Export und lade diesen von Google herunter.",
"portability_guide_takeout_step_three": "Lege die originale ZIP unten ab. Wenn Google mehrere ZIPs erstellt hat, importiere sie einzeln.",
"portability_guide_takeout_action": "Öffne Google Takeout",
Expand Down Expand Up @@ -415,7 +431,7 @@
"admin_users_account_access": "Kontozugriff",
"admin_users_suspend": "Ausschließen",
"admin_users_unsuspend": "Ausschluss aufheben",
"admin_users_reset_token": "Token zurücksetzen",
"admin_users_reset_token": "Reset-Token",
"admin_users_previous_page": "Vorherige Seite",
"admin_users_next_page": "Nächste Seite",
"admin_users_page": "Seite",
Expand Down Expand Up @@ -515,7 +531,7 @@
"ui_connect_with_youtube": "Mit YouTube verbinden",
"ui_connect_youtube_inside_typetype": "Verbinde YouTube innerhalb von TypeType",
"ui_connect_youtube_on_typetype": "Verbinde YouTube auf TypeType",
"ui_content": "Verbinden",
"ui_content": "Inhalt",
"ui_content_controls": "Verbindungssteuerung",
"ui_continue": "Fortsetzen",
"ui_continue_watching": "Ansehen fortsetzen",
Expand Down Expand Up @@ -649,7 +665,7 @@
"ui_no_playlists_on_this_channel": "Keine Wiedergabelisten auf diesem Kanal.",
"ui_no_playlists_yet": "Noch keine Wiedergabelisten.",
"ui_no_podcast_selected": "Keine Podcasts ausgewählt.",
"ui_no_preference": "Keine Vorlieben",
"ui_no_preference": "Keine Präferenz",
"ui_no_private_feeds": "Keine privaten Feeds",
"ui_no_private_feeds_have_been_created": "Es wurden keine privaten Feeds erstellt.",
"ui_no_results_for": "Keine Ergebnisse für “",
Expand Down Expand Up @@ -764,7 +780,7 @@
"ui_startup": "Hochfahren",
"ui_status": "Status:",
"ui_stored_data": "Gespeicherte Daten",
"ui_subscribe_to_channels_to_unlock_a_personalized_home_feed": "Abonniere Kanäle, um einen personalisierte Startseite freizuschalten.",
"ui_subscribe_to_channels_to_unlock_a_personalized_home_feed": "Abonniere Kanäle, um eine personalisierte Startseite freizuschalten.",
"ui_subscribers": "Abonnenten",
"ui_subscription_views": "Ansichten von Abonnements",
"ui_subscriptions": "Abonnements,",
Expand Down Expand Up @@ -802,7 +818,7 @@
"ui_unblock": "Freigeben",
"ui_unpacking_and_syncing_your_data_this_may_take_a_moment": "Extrahieren und synchronisieren deiner Daten. Dies kann einen Moment dauern.",
"ui_unsubscribe_all": "Alle deabonnieren",
"ui_unsubscribe_from_all_channels_in_settings": "Deabonnieren aller Kanäle in den Einstellungen.",
"ui_unsubscribe_from_all_channels_in_settings": "Deabonniere alle Kanäle in den Einstellungen.",
"ui_up_next": "Als Nächstes",
"ui_updated": "Aktualisiert",
"ui_use_a_secondary_youtube_account_the_remote_browser_is_temporary_and_c": "Verwende ein sekundäres YouTube-Konto. Der Remote-Browser ist nur vorübergehend aktiv und wird nach der Verbindung, nach Ablauf der Zeit oder bei Abbruch geschlossen.",
Expand Down Expand Up @@ -1030,13 +1046,13 @@
"video_paid_message": "Dieses Video muss auf YouTube gekauft werden, bevor es wiedergegeben werden kann.",
"video_members_only": "Video nur für Kanalmitglieder",
"video_members_only_message": "Dieses Video ist nur für Kanalmitglieder verfügbar",
"channel_sort_newest": "Neuste",
"channel_sort_newest": "Neueste",
"channel_sort_popular": "Beliebt",
"channel_sort_oldest": "Älteste",
"playlist_sort_manual": "Manuell",
"playlist_sort_added_newest": "Hinzugefügt am (zuletzt)",
"playlist_sort_added_newest": "Hinzugefügt am (neueste)",
"playlist_sort_added_oldest": "Hinzugefügt am (älteste)",
"playlist_sort_posted_newest": "Hochgeladen am (neuste)",
"playlist_sort_posted_newest": "Hochgeladen am (neueste)",
"playlist_sort_posted_oldest": "Hochgeladen am (älteste)",
"playlist_sort_popularity": "Beliebtheit",
"search_filter_sort_by": "Sortieren nach",
Expand Down Expand Up @@ -1077,7 +1093,7 @@
"ui_home_recommendations": "Empfehlungen auf der Startseite",
"ui_hide_personalized_recommendations_from_the_home_page": "Personalisierte Empfehlungen auf der Startseite ausblenden.",
"ui_hide_the_suggestions_column_on_watch_pages": "Die Spalte mit den Vorschlägen auf den Wiedergabeseite ausblenden.",
"ui_watch_and_shorts": "Wiedergeben + Shorts",
"ui_watch_and_shorts": "Wiedergabe + Shorts",
"ui_hide_shorts_navigation_and_block_the_shorts_page": "Die Shorts-Navigation ausblenden und die Shorts-Seite sperren.",
"ui_hide_active_and_scheduled_live_streams_from_the_subscriptions_feed": "Laufende und geplante Livestreams aus dem Abonnement-Feed ausblenden.",
"ui_hide_videos_that_require_a_paid_youtube_channel_membership": "Videos ausblenden, welche eine bezahlte YouTube Kanalmitgliedschaft benötigen.",
Expand Down Expand Up @@ -1275,7 +1291,7 @@
"ui_downloader_insufficient_storage": "Die Instanz hat nicht genug Speicherplatz um diesen Download abzuschließen.",
"ui_downloader_insufficient_storage_help": "Gebe Speicherplatz frei und versuche es nochmal. Wenn das Problem weiterhin besteht, kontaktiere den Administrator der Instanz mit dem Code: insufficient_storage (HTTP 507).",
"portability_progress_of": "{processed} von {total}",
"portability_progress_records": "Aufzeichnungen",
"portability_progress_records": "Einträge",
"portability_progress_categories": "Kategorien",
"portability_progress_bytes": "Bytes",
"ui_download_started": "Download begonnen: {selected}",
Expand All @@ -1294,6 +1310,15 @@
"watch_share_typetype_link": "TypeType Link teilen",
"ui_close_player": "Player schließen",
"ui_move_player": "Player bewegen",
"player_return_to_video": "Zurück zum Video",
"community_lemmy_title": "Bis bald auf Lemmy!",
"community_lemmy_reason": "Leider gibt es eine traurige Nachricht: Die TypeType-Community wurde auf Reddit gesperrt...\nWir versuchen noch herauszufinden, warum.\n\nEntschuldigt diesen unerwarteten Wechsel!",
"community_lemmy_move": "Aber das Abenteuer geht weiter!\nNach Rücksprache haben wir beschlossen, TypeType auf Lemmy ein neues Zuhause zu geben. Wir hoffen dort auf einen freundlicheren Empfang und mehr Respekt für das Projekt.\n\nWir freuen uns darauf, euch dort wiederzusehen!",
"community_lemmy_support": "Die beste Art, TypeType zu unterstützen, ist, der Lemmy-Community beizutreten!\nTragt bei, teilt eure Ideen und beteiligt euch an den Diskussionen: Das hält das Projekt am Leben.\n\nDanke, dass ihr dabei seid und Teil des Abenteuers seid!",
"community_lemmy_join": "Zu TypeType auf Lemmy!",
"community_lemmy_announcement": "Die vollständige Ankündigung lesen",
"community_lemmy_voyager": "Unterwegs? Probiert Voyager aus!",
"community_lemmy_acknowledge": "ICH HABE ES VERSTANDEN! Alles klar",
"portability_preparing_upload": "Kontodaten werden vorbereitet und hochgeladen...",
"portability_takeout_metadata_limit": "Die Kontodaten in diesem Archiv überschreiten die Importgrenzen oder sind verschlüsselt. Exportiere YouTube separat in kleineren ZIP-Dateien.",
"portability_takeout_no_metadata": "Keine YouTube-Kontodaten gefunden. Wähle eine originale Takeout-ZIP mit deinem Verlauf, deinen Abonnements oder deinen Wiedergabelisten statt eines reinen Video-Teils oder einer ZIP-Datei, die weitere ZIP-Dateien enthält."
Expand Down
25 changes: 25 additions & 0 deletions apps/web/messages/en.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"$schema": "https://inlang.com/schema/inlang-message-format",
"search_panel_suggestions": "Suggestions",
"search_panel_no_history": "No recent searches",
"search_panel_no_suggestions": "No suggestions. You can still search with your text.",
"search_panel_no_videos": "No recommendations right now",
"search_panel_clear_failed": "Could not clear search history. Please try again.",
"admin_access_description": "Define who can join and which content is available.",
"admin_access_label": "Access",
"admin_access_mode_description": "Parental controls restrict extraction and discovery to approved channels.",
Expand Down Expand Up @@ -215,6 +220,17 @@
"profile_username_too_long": "Username must be at most 32 characters.",
"profile_bio_too_long": "Bio must be at most 280 characters.",
"profile_update_failed": "Unable to update profile.",
"profile_switcher": "Profiles",
"profile_active": "Active profile",
"profile_add": "Add profile",
"profile_rename": "Rename profile",
"profile_delete": "Delete profile",
"profile_set_default": "Set as default profile",
"profile_save_name": "Save profile name",
"profile_name_placeholder": "New profile name",
"profile_name_label": "Profile name",
"profile_delete_confirm": "Delete this profile and all of its private data?",
"profile_action_failed": "Unable to update profiles.",
"account_identity_title": "Account identity",
"account_identity_description": "Used for sign-in and account display.",
"account_identity_managed": "Managed by your identity provider.",
Expand Down Expand Up @@ -626,6 +642,15 @@
"ui_minimum_segment_duration": "Minimum segment duration",
"ui_move_data_between_supported_apps": "Move data between supported apps",
"ui_move_player": "Move player",
"player_return_to_video": "Return to video",
"community_lemmy_title": "See you on Lemmy!",
"community_lemmy_reason": "A bit of sad news: the TypeType community has been banned from Reddit...\nWe're still trying to understand why.\n\nSorry for this unexpected change!",
"community_lemmy_move": "But the adventure continues!\nAfter talking it over, we've decided to give TypeType a new home on Lemmy. We're hoping for a friendlier welcome and more respect for the project.\n\nWe can't wait to see you there!",
"community_lemmy_support": "The best way to support TypeType is to join the Lemmy community!\nContribute, share your ideas, and join the conversation: that's what keeps the project alive.\n\nThank you for being here and being part of the adventure!",
"community_lemmy_join": "Join TypeType on Lemmy!",
"community_lemmy_announcement": "Read the full announcement",
"community_lemmy_voyager": "On mobile? Try Voyager!",
"community_lemmy_acknowledge": "I UNDERSTAND! All good",
"ui_move_down": "Move down",
"ui_move_up": "Move up",
"ui_name": "Name",
Expand Down
Loading