diff --git a/.github/workflows/prod-android.yml b/.github/workflows/prod-android.yml index b88addb5..a075d7e6 100644 --- a/.github/workflows/prod-android.yml +++ b/.github/workflows/prod-android.yml @@ -1,11 +1,13 @@ name: Build Android + on: push: - branches: - - 'main' + branches: [ main ] paths-ignore: - '**/README.md' + workflow_dispatch: + permissions: contents: write @@ -49,8 +51,8 @@ jobs: - name: Move files run: | - mv app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/app-release.apk - mv app/build/outputs/bundle/release/app-release.aab app/build/outputs/app-release.aab + mv app/build/outputs/apk/release/*.apk app/build/outputs/ + mv app/build/outputs/bundle/release/*.aab app/build/outputs/ - name: Sign App id: sign_app @@ -65,10 +67,19 @@ jobs: - name: Make release dir run: mkdir app/release + - name: Delete temp apks + run: rm app/build/outputs/*temp* + continue-on-error: true + - name: Move files to release run: | - mv app/build/outputs/app-release-signed.aab app/release/app-release-signed.aab - mv app/build/outputs/app-release-signed.apk app/release/app-release-signed.apk + mv app/build/outputs/*-signed.aab app/release/ + mv app/build/outputs/*-signed.apk app/release/ + continue-on-error: true + + - name: Remove unsigned from file name + run: cd app/release/ && for file in *-unsigned*; do mv "$file" "${file//-unsigned/}"; done + continue-on-error: true - name: get-npm-version id: package-version @@ -81,8 +92,8 @@ jobs: with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ./materialious/android/app/release/* - tag: ${{ steps.package-version.outputs.current-version}} - release_name: ${{ steps.package-version.outputs.current-version}} + tag: ${{ steps.package-version.outputs.current-version }} + release_name: ${{ steps.package-version.outputs.current-version }} overwrite: true file_glob: true draft: false diff --git a/materialious/android/app/build.gradle b/materialious/android/app/build.gradle index a266297c..169abf9d 100644 --- a/materialious/android/app/build.gradle +++ b/materialious/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "us.materialio.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 73 - versionName "1.6.22" + versionCode 74 + versionName "1.6.23" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. @@ -22,6 +22,14 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + splits { + abi { + enable true + reset() + include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' + universalApk true + } + } } repositories { diff --git a/materialious/electron/electron-builder.config.json b/materialious/electron/electron-builder.config.json index f251e485..1e861508 100644 --- a/materialious/electron/electron-builder.config.json +++ b/materialious/electron/electron-builder.config.json @@ -34,7 +34,11 @@ }, "win": { "publish": [ - "github" + { + "provider": "github", + "vPrefixedTagName": false, + "releaseType": "release" + } ], "target": [ { @@ -62,14 +66,22 @@ }, "mac": { "publish": [ - "github" + { + "provider": "github", + "vPrefixedTagName": false, + "releaseType": "release" + } ], "category": "Entertainment", "target": "dmg" }, "linux": { "publish": [ - "github" + { + "provider": "github", + "vPrefixedTagName": false, + "releaseType": "release" + } ], "target": [ { @@ -134,4 +146,4 @@ "libsecret-1-0" ] } -} +} \ No newline at end of file diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index 1e3f7755..373036dc 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "Materialious", - "version": "1.6.22", + "version": "1.6.23", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "Materialious", - "version": "1.6.22", + "version": "1.6.23", "license": "MIT", "dependencies": { "@capacitor-community/electron": "^5.0.0", @@ -19,10 +19,10 @@ "jsonfile": "^6.1.0" }, "devDependencies": { - "electron": "^33.2.0", + "electron": "^33.2.1", "electron-builder": "^25.1.8", "electron-rebuild": "^3.2.9", - "typescript": "^5.0.4" + "typescript": "^5.7.2" } }, "node_modules/@capacitor-community/electron": { @@ -2126,9 +2126,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2401,9 +2401,9 @@ } }, "node_modules/electron": { - "version": "33.2.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-33.2.0.tgz", - "integrity": "sha512-PVw1ICAQDPsnnsmpNFX/b1i/49h67pbSPxuIENd9K9WpGO1tsRaQt+K2bmXqTuoMJsbzIc75Ce8zqtuwBPqawA==", + "version": "33.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-33.2.1.tgz", + "integrity": "sha512-SG/nmSsK9Qg1p6wAW+ZfqU+AV8cmXMTIklUL18NnOKfZLlum4ZsDoVdmmmlL39ZmeCaq27dr7CgslRPahfoVJg==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -5235,11 +5235,10 @@ } }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/materialious/electron/package.json b/materialious/electron/package.json index a8542882..2202e57b 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -1,6 +1,6 @@ { "name": "Materialious", - "version": "1.6.22", + "version": "1.6.23", "description": "Modern material design for Invidious.", "author": { "name": "Ward Pearce", @@ -32,10 +32,10 @@ "jsonfile": "^6.1.0" }, "devDependencies": { - "electron": "^33.2.0", + "electron": "^33.2.1", "electron-builder": "^25.1.8", "electron-rebuild": "^3.2.9", - "typescript": "^5.0.4" + "typescript": "^5.7.2" }, "keywords": [ "capacitor", diff --git a/materialious/package-lock.json b/materialious/package-lock.json index 6f644b23..3af576fa 100644 --- a/materialious/package-lock.json +++ b/materialious/package-lock.json @@ -1,12 +1,12 @@ { "name": "materialious", - "version": "1.6.22", + "version": "1.6.23", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "materialious", - "version": "1.6.22", + "version": "1.6.23", "dependencies": { "@capacitor-community/electron": "^5.0.1", "@capacitor/android": "6.1.2", @@ -5127,9 +5127,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", diff --git a/materialious/package.json b/materialious/package.json index f1925bef..84de51ba 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -1,6 +1,6 @@ { "name": "materialious", - "version": "1.6.22", + "version": "1.6.23", "private": true, "scripts": { "dev": "vite dev", diff --git a/materialious/src/lib/i18n/index.ts b/materialious/src/lib/i18n/index.ts index 15512f30..12f04088 100644 --- a/materialious/src/lib/i18n/index.ts +++ b/materialious/src/lib/i18n/index.ts @@ -7,7 +7,10 @@ register('en', () => import('./locales/en.json')); register('ru', () => import('./locales/ru.json')); register('zh-CN', () => import('./locales/zh-CN.json')); register('tr', () => import('./locales/tr.json')); +register('nl', () => import('./locales/nl.json')); register('de', () => import('./locales/de.json')); +register('sh', () => import('./locales/sh.json')); +register('pt-BR', () => import('./locales/pt-BR.json')); init({ fallbackLocale: defaultLocale, diff --git a/materialious/src/lib/i18n/locales/de.json b/materialious/src/lib/i18n/locales/de.json index 59c1414a..7aef4809 100644 --- a/materialious/src/lib/i18n/locales/de.json +++ b/materialious/src/lib/i18n/locales/de.json @@ -1,133 +1,160 @@ { - "enabled": "Aktiviert", - "copyUrl": "URL kopieren", - "loadMore": "Mehr laden", - "views": "Ansichten", - "videos": "Videos", - "cancel": "Abbrechen", - "create": "Erstellen", - "title": "Titel", - "searchPlaceholder": "Suchen...", - "delete": "Löschen", - "deleteAllHistory": "Gesamten Verlauf löschen", - "skipping": "Überspringen", - "replies": "antworten", - "region": "Region", - "noResult": "Keine Ergebnisse", - "language": "Sprache", - "transcript": "Transkript", - "noCaptionData": "Untertitel enthalten keine daten.", - "selectLang": "Sprache auswählen", - "letterCase": "Groß-/Kleinschreibung für Titel", - "hideReplies": "Antworten verstecken", - "hideVideo": "Video verstecken", - "syncParty": { - "userJoined": "Ein Benutzer ist Ihrer Watch-Party beigetreten.", - "userLeft": "Ein Benutzer hat ihre Watch-Party verlassen.", - "userOnPrivatePage": "Der Benutzer sieht gerade eine private Seite, die Synchronisierung wird in Kürze fortgesetzt." - }, - "videoTabs": { - "all": "Alle", - "videos": "Videos", - "playlists": "Wiedergabeliste", - "channels": "Kanäle", - "shorts": "Shorts", - "streams": "Streams" - }, - "subscriptions": { - "manageSubscriptions": "Abonnements verwalten" - }, - "playlist": { - "createPlaylist": "Wiedergabeliste erstellen", - "public": "Öffentlich", - "unlisted": "Ungelistet", - "private": "Privat", - "playVideos": "Videos abspielen", - "shuffleVideos": "Videos in zufälliger Reihenfolge abspielen", - "loopPlaylist": "Wiedergabeliste in Schleife abspielen" - }, - "thumbnail": { - "live": "LIVE", - "failedToLoadImage": "Laden des Bildes fehlgeschlagen" - }, - "pages": { - "home": "Startseite", - "trending": "Beliebt", - "subscriptions": "Abonnements", - "history": "Verlauf", - "playlists": "Wiedergabelisten" - }, - "subscribers": "Abonnenten", - "unsubscribe": "Deabonnieren", - "loginRequired": "Anmeldung erforderlich", - "player": { - "audioOnly": "Nur Ton", - "theatreMode": "Theatermodus", - "share": { - "title": "Teilen", - "materialiousLink": "Materialious link kopieren", - "invidiousRedirect": "Invidious Weiterleitungslink kopieren", - "youtubeLink": "YouTube Link kopieren" - }, - "download": "Herunterladen", - "noPlaylists": "Keine Wiedergabelisten", - "unableToLoadComments": "Laden der Kommentare fehlgeschlagen", - "addToPlaylist": "Zur Wiedergabeliste hinzufügen" - }, - "layout": { - "star": "Sternchen auf GitHub vergeben", - "syncPartyWarning": "Bitte beachten Sie, dass Ihre IP für die von Ihnen eingeladenen Benutzer sichtbar ist.", - "startSyncParty": "Sync-Party starten", - "endSyncParty": "Sync-Party beenden", - "notifications": "Benachrichtigungen", - "noNewNotifications": "Keine neuen Benachrichtigungen", - "settings": "Einstellungen", - "login": "Anmelden", - "logout": "Abmelden", - "customize": "Anpassen", - "theme": { - "theme": "Thema", - "darkMode": "Dunkler Modus", - "lightMode": "Heller Modus", - "color": "Farbe" - }, - "searchSuggestions": "Suchvorschläge", - "previewVideoOnHover": "Video-Vorschau beim Hovern", - "expandDescription": "Beschreibung standardmäßig erweitern", - "expandComments": "Kommentare standardmäßig erweitern", - "dataPreferences": { - "content": "Sie möchten Abonnements importieren/exportieren, Ihr Passwort ändern oder Ihr Konto löschen? Klicken Sie hier und scrollen Sie bis zum Ende der Seite.", - "dataPreferences": "Dateneinstellungen" - }, - "player": { - "title": "Player", - "autoPlay": "Video automatisch abspielen", - "alwaysLoopVideo": "Video immer in Schleife abspielen", - "savePlaybackPosition": "Wiedergabeposition speichern", - "listenByDefault": "Standardmäßig zuhören", - "theatreModeByDefault": "Standardmäßiger Theatermodus", - "autoPlayNextByDefault": "Standardmäßige Wiedergabe des nächsten Videos", - "miniPlayer": "Miniplayer", - "proxyVideos": "Proxy-Videos", - "backgroundPlay": "Ton im Hintergrund abspielen", - "dash": "Bindestrich" - }, - "bookmarklet": "Lesezeichen", - "instanceUrl": "URL der Instanz", - "sponsors": { - "sponsor": "Sponsor", - "unpaidSelfPromotion": "Unbezahlte / Selbstständige Förderung", - "interactionReminder": "Interaktionserinnerung (Abonnieren)", - "intermissionIntroAnimation": "Unterbrechung/Einstiegsanimation", - "credits": "Endkarten/Gutschriften", - "preViewRecapHook": "Vorschau/Rückblick/Hook", - "tangentJokes": "Füller Tangent/Witze" - }, - "deArrow": { - "title": "DeArrow", - "thumbnailInstanceUrl": "URL der Miniaturansicht", - "titleOnly": "Nur Titel" - } - }, - "subscribe": "Abonnieren" -} + "enabled": "Aktiviert", + "copyUrl": "URL kopieren", + "loadMore": "Mehr laden", + "views": "Ansichten", + "invidiousBlockWarning": "Invidious wird derzeit von Google blockiert. Wenn Videos für diese Instanz nicht geladen werden, verwenden Sie diese Instanz bitte auf Materialious auf {android} oder {desktop}, um dies mit lokalem Videozurückfall zu umgehen.", + "videos": "Videos", + "cancel": "Abbrechen", + "create": "Erstellen", + "title": "Titel", + "searchPlaceholder": "Suchen...", + "delete": "Löschen", + "donate": "Spenden", + "deleteAllHistory": "Gesamten Verlauf löschen", + "skipping": "Überspringen", + "replies": "antworten", + "region": "Region", + "noResult": "Keine Ergebnisse", + "language": "Sprache", + "channels": "Kanäle", + "transcript": "Transkript", + "noCaptionData": "Untertitel enthalten keine daten.", + "selectLang": "Sprache auswählen", + "letterCase": "Groß-/Kleinschreibung für Titel", + "hideReplies": "Antworten verstecken", + "hideVideo": "Video verstecken", + "syncParty": { + "userJoined": "Ein Benutzer ist Ihrer Anzeiggruppe beigetreten.", + "userLeft": "Ein Benutzer hat ihre Anzeiggruppe verlassen.", + "userOnPrivatePage": "Der Benutzer sieht gerade eine private Seite, die Synchronisierung wird in Kürze fortgesetzt." + }, + "videoTabs": { + "all": "Alle", + "videos": "Videos", + "playlists": "Wiedergabeliste", + "channels": "Kanäle", + "shorts": "Shorts", + "streams": "Ströme" + }, + "subscriptions": { + "manageSubscriptions": "Abonnements verwalten" + }, + "playlist": { + "createPlaylist": "Wiedergabeliste erstellen", + "public": "Öffentlich", + "unlisted": "Ungelistet", + "private": "Privat", + "playVideos": "Videos abspielen", + "shuffleVideos": "Videos in zufälliger Reihenfolge abspielen", + "loopPlaylist": "Wiedergabeliste in Schleife abspielen" + }, + "thumbnail": { + "live": "LIVE", + "failedToLoadImage": "Laden des Bildes fehlgeschlagen" + }, + "pages": { + "home": "Startseite", + "trending": "Beliebt", + "subscriptions": "Abonnements", + "history": "Verlauf", + "playlists": "Wiedergabelisten" + }, + "subscribers": "Abonnenten", + "unsubscribe": "Deabonnieren", + "loginRequired": "Anmeldung erforderlich", + "player": { + "audioOnly": "Nur Ton", + "theatreMode": "Theatermodus", + "pauseTimer": "Timer pausieren", + "pauseVideoIn": "Video pausieren in ", + "share": { + "title": "Teilen", + "materialiousLink": "Materialious link kopieren", + "invidiousRedirect": "Invidious Weiterleitungslink kopieren", + "youtubeLink": "YouTube Link kopieren" + }, + "download": "Herunterladen", + "downloadSteps": { + "merging": "Video und Audio zusammenführen", + "video": "Herunterladen der Video", + "audio": "Herunterladen der Audio", + "ffmpeg": "Herunterladen der ffmpeg-Bibliothek und -Komponenten", + "classWorker": "Herunterladen des ffmpeg-Klassenarbeiters", + "core": "Herunterladen der ffmpeg-Kern", + "wasm": "Herunterladen der ffmpeg wasm", + "worker": "Herunterladen der ffmpeg worker" + }, + "noPlaylists": "Keine Wiedergabelisten", + "unableToLoadComments": "Laden der Kommentare fehlgeschlagen", + "addToPlaylist": "Zur Wiedergabeliste hinzufügen", + "youtubeJsFallBack": "Lokales Videozurückfall wird verwendet" + }, + "layout": { + "interface": "Schnittstelle", + "star": "Sternchen auf GitHub vergeben!", + "syncParty": "Synchronisierung der Partei", + "syncPartyWarning": "Bitte beachten Sie, dass Ihre IP für die von Ihnen eingeladenen Benutzer sichtbar ist.", + "startSyncParty": "Synchronisierung der Partei starten", + "endSyncParty": "Synchronisierung der Partei beenden", + "notifications": "Benachrichtigungen", + "noNewNotifications": "Keine neuen Benachrichtigungen", + "settings": "Einstellungen", + "login": "Anmelden", + "logout": "Abmelden", + "customize": "Anpassen", + "lowBandwidthMode": "Modus der geringer Bandbreite", + "theme": { + "theme": "Thema", + "darkMode": "Dunkler Modus", + "lightMode": "Heller Modus", + "AmoledTheme": "Amoled-Thema", + "color": "Farbe" + }, + "searchSuggestions": "Suchvorschläge", + "previewVideoOnHover": "Video-Vorschau beim Hovern", + "expandDescription": "Beschreibung standardmäßig erweitern", + "expandComments": "Kommentare standardmäßig erweitern", + "dataPreferences": { + "content": "Sie möchten Abonnements importieren/exportieren, Ihr Passwort ändern oder Ihr Konto löschen? Klicken Sie hier und scrollen Sie bis zum Ende der Seite.", + "dataPreferences": "Dateneinstellungen" + }, + "player": { + "title": "Spieler", + "autoPlay": "Video automatisch abspielen", + "alwaysLoopVideo": "Video immer in Schleife abspielen", + "savePlaybackPosition": "Wiedergabeposition speichern", + "listenByDefault": "Standardmäßig zuhören", + "theatreModeByDefault": "Standardmäßiger Theatermodus", + "autoPlayNextByDefault": "Standardmäßige Wiedergabe des nächsten Videos", + "miniPlayer": "Minispieler", + "proxyVideos": "Proxy-Videos", + "backgroundPlay": "Ton im Hintergrund abspielen", + "dash": "Bindestrichmodus", + "silenceSkipper": "Schweigenüberspringer (Experimentell)", + "youtubeJsFallback": "Fallback für lokale Videoverarbeitung", + "youtubeJsAlways": "Verwenden Sie immer die lokale Videoverarbeitung", + "lockOrientation": "Ausrichtung an Seitenverhältnis gebunden" + }, + "bookmarklet": "Lesezeichen", + "instanceUrl": "URL der Instanz", + "sponsors": { + "sponsor": "Sponsor", + "disableToast": "Toast deaktivieren", + "disableTimeline": "Segmente auf der Zeitleiste deaktivieren", + "Catagories": "Kategorien", + "unpaidSelfPromotion": "Unbezahlte/Selbstständige Förderung", + "interactionReminder": "Interaktionserinnerung (Abonnieren)", + "intermissionIntroAnimation": "Unterbrechung/Einstiegsanimation", + "credits": "Endkarten/Gutschriften", + "preViewRecapHook": "Vorschau/Rückblick/Haken", + "tangentJokes": "Füller Tangent/Witze" + }, + "deArrow": { + "title": "DeArrow", + "thumbnailInstanceUrl": "URL der Miniaturansicht", + "titleOnly": "Nur Titel" + } + }, + "subscribe": "Abonnieren" +} \ No newline at end of file diff --git a/materialious/src/lib/i18n/locales/en.json b/materialious/src/lib/i18n/locales/en.json index 0214cbea..9b2cb6ea 100644 --- a/materialious/src/lib/i18n/locales/en.json +++ b/materialious/src/lib/i18n/locales/en.json @@ -142,7 +142,7 @@ "sponsor": "Sponsor", "disableToast": "Disable toast", "disableTimeline": "Disable segments on timeline", - "Catagories": "Catagories", + "Catagories": "Categories", "unpaidSelfPromotion": "Unpaid/Self Promotion", "interactionReminder": "Interaction Reminder (Subscribe)", "intermissionIntroAnimation": "Intermission/Intro Animation", diff --git a/materialious/src/lib/i18n/locales/nl.json b/materialious/src/lib/i18n/locales/nl.json new file mode 100644 index 00000000..e42ca92a --- /dev/null +++ b/materialious/src/lib/i18n/locales/nl.json @@ -0,0 +1,160 @@ +{ + "enabled": "Ingeschakeld", + "copyUrl": "URL kopiëren", + "loadMore": "Meer laden", + "views": "uitzichten", + "invidiousBlockWarning": "Invidious wordt momenteel geblokkeerd door Google. Als video's niet worden geladen voor deze instantie, gebruik dan deze instantie op Materialious op {android} of {desktop} om dit te omzeilen met lokale video terugval.", + "videos": "video's", + "cancel": "Annuleren", + "create": "Creëren", + "title": "Titel", + "searchPlaceholder": "Zoeken...", + "delete": "Verwijderen", + "donate": "Doneren", + "deleteAllHistory": "Alle geschiedenis verwijderen", + "skipping": "Overslaan", + "replies": "antwoorden", + "region": "Regio", + "noResult": "Geen resultaten", + "language": "Taal", + "channels": "kanalen", + "transcript": "Transcriptie", + "noCaptionData": "Ondertitels hebben geen gegevens.", + "selectLang": "Selecteer taal", + "letterCase": "Letterkast voor titels", + "hideReplies": "Antwoorden verbergen", + "hideVideo": "Video verbergen", + "syncParty": { + "userJoined": "De gebruiker heeft zich aangesloten bij jouw kijkgroep.", + "userLeft": "De gebruiker heeft je kijkgroep verlaten.", + "userOnPrivatePage": "De gebruiker wie bekijkt momenteel een privépagina, de synchronisatie wordt binnenkort hervat." + }, + "videoTabs": { + "all": "Alle", + "videos": "Video's", + "playlists": "Afspeellijsten", + "channels": "Kanalen", + "shorts": "Shorts", + "streams": "Stromen" + }, + "subscriptions": { + "manageSubscriptions": "Beheer abonnementen" + }, + "playlist": { + "createPlaylist": "Maak een afspeellijst", + "public": "Openbaar", + "unlisted": "Onvermelde", + "private": "Privé", + "playVideos": "Video's afspelen", + "shuffleVideos": "Video's in willekeurige volgorde afspelen", + "loopPlaylist": "Herhaal afspeellijst" + }, + "thumbnail": { + "live": "LIVE", + "failedToLoadImage": "Afbeelding laden mislukt" + }, + "pages": { + "home": "Startpagina", + "trending": "Populair", + "subscriptions": "Abonnementen", + "history": "Geschiedenis", + "playlists": "Afspeellijsten" + }, + "subscribers": "abonnees", + "unsubscribe": "Uitschrijven", + "loginRequired": "Inloggen vereist", + "player": { + "audioOnly": "Alleen audio", + "theatreMode": "Theatermodus", + "pauseTimer": "Pauzeer timer", + "pauseVideoIn": "Pauzeer video in ", + "share": { + "title": "Deel", + "materialiousLink": "Kopieer Materialious-link", + "invidiousRedirect": "Kopieer Invidious-omleidingslink", + "youtubeLink": "Kopieer Youtube-link" + }, + "download": "Download", + "downloadSteps": { + "merging": "Video en audio samenvoegen", + "video": "Video downloaden", + "audio": "Audio downloaden", + "ffmpeg": "Downloaden van ffmpeg-bibliotheek en componenten", + "classWorker": "Downloaden van ffmpeg-klassewerker", + "core": "Downloaden van ffmpeg-kern", + "wasm": "Downloaden van ffmpeg wasm", + "worker": "Downloaden van ffmpeg-werker" + }, + "noPlaylists": "Geen afspeellijsten", + "unableToLoadComments": "Kan opmerkingen niet laden", + "addToPlaylist": "Toevoegen aan afspeellijst", + "youtubeJsFallBack": "Lokale video terugval wordt gebruikt" + }, + "layout": { + "interface": "Koppelvlak", + "star": "Geef ons een ster op Github!", + "syncParty": "Synchroniseren van partij", + "syncPartyWarning": "Houd er rekening mee dat uw IP-adres zichtbaar is voor gebruikers die u uitnodigt.", + "startSyncParty": "Start synchroniseren van partij", + "endSyncParty": "Einde synchroniseren van partij", + "notifications": "Meldingen", + "noNewNotifications": "Geen nieuwe meldingen hier", + "settings": "Instellingen", + "login": "Aanmelden", + "logout": "Afmelden", + "customize": "Aanpassen", + "lowBandwidthMode": "Lage bandbreedtemodus", + "theme": { + "theme": "Thema", + "darkMode": "Donkere modus", + "lightMode": "Lichtmodus", + "AmoledTheme": "Amoled-thema", + "color": "Kleur" + }, + "searchSuggestions": "Zoek suggesties", + "previewVideoOnHover": "Voorbeeldvideo bij hover", + "expandDescription": "Beschrijving standaard uitvouwen", + "expandComments": "Standaard opmerkingen uitvouwen", + "dataPreferences": { + "content": "Wilt u abonnementen importeren/exporteren, wachtwoord wijzigen of account verwijderen? Klik hier en scroll naar de onderkant van de pagina.", + "dataPreferences": "Gegevensvoorkeuren" + }, + "player": { + "title": "Speler", + "autoPlay": "Video automatisch afspelen", + "alwaysLoopVideo": "Video altijd herhalen", + "savePlaybackPosition": "Afspeelpositie opslaan", + "listenByDefault": "Standaard luisteren", + "theatreModeByDefault": "Theatermodus standaard", + "autoPlayNextByDefault": "Automatisch afspelen als volgende standaard", + "miniPlayer": "Mini-speler", + "proxyVideos": "Proxy-video's", + "backgroundPlay": "Audio op de achtergrond afspelen", + "dash": "Streepje-modus", + "silenceSkipper": "Stilte-overslager (Experimenteel)", + "youtubeJsFallback": "Lokale videoverwerking fallback", + "youtubeJsAlways": "Gebruik altijd lokale videoverwerking", + "lockOrientation": "Oriëntatie vergrendeld op beeldverhouding" + }, + "bookmarklet": "Bladwijzer", + "instanceUrl": "Instantie-URL", + "sponsors": { + "sponsor": "Sponsor", + "disableToast": "Toast uitschakelen", + "disableTimeline": "Segmenten op tijdlijn uitschakelen", + "Catagories": "Categorieën", + "unpaidSelfPromotion": "Onbetaald/Zelfpromotie", + "interactionReminder": "Interactieherinnering (Abonneren)", + "intermissionIntroAnimation": "Pauze/Intro-animatie", + "credits": "Eindkaarten/credits", + "preViewRecapHook": "Voorbeschouwing/Samenvatting/Haak", + "tangentJokes": "Vulling Tangens/Grappen" + }, + "deArrow": { + "title": "DeArrow", + "thumbnailInstanceUrl": "URL van miniatuurinstantie", + "titleOnly": "Alleen titel" + } + }, + "subscribe": "Abonneren" +} \ No newline at end of file diff --git a/materialious/src/lib/i18n/locales/pt-BR.json b/materialious/src/lib/i18n/locales/pt-BR.json new file mode 100644 index 00000000..e6156562 --- /dev/null +++ b/materialious/src/lib/i18n/locales/pt-BR.json @@ -0,0 +1,160 @@ +{ + "enabled": "Ativado", + "copyUrl": "Copiar URL", + "loadMore": "Carregar mais", + "views": "visualizações", + "invidiousBlockWarning": "Invidious está sendo bloqueado pelo Google. Se os vídeos não estiverem carregando para esta instância, por gentileza, use esta instância do Materialious no {android} ou {desktop} para contornar isso com o fallback de vídeo local.", + "videos": "vídeos", + "cancel": "Cancelar", + "create": "Criar", + "title": "Título", + "searchPlaceholder": "Pesquisar", + "delete": "Excluir", + "donate": "Doar", + "deleteAllHistory": "Apagar todo o histórico", + "skipping": "Pulando", + "replies": "respostas", + "region": "Região", + "noResult": "Sem resultados", + "language": "Idioma", + "channels": "canais", + "transcript": "Transcrição", + "noCaptionData": "Legendas não contêm dados.", + "selectLang": "Selecione o idioma", + "letterCase": "Letras maiúsculas/minúsculas para títulos", + "hideReplies": "Ocultar respostas", + "hideVideo": "Ocultar vídeo", + "syncParty": { + "userJoined": "Usuário adicionado à sua sala de cinema.", + "userLeft": "Usuário deixou sua sala de cinema.", + "userOnPrivatePage": "O usuário está visualizando uma página privada, a sincronização será retomada em breve." + }, + "videoTabs": { + "all": "Todos", + "videos": "Vídeos", + "playlists": "Listas de reprodução", + "channels": "Canais", + "shorts": "Shorts", + "streams": "Ao vivo" + }, + "subscriptions": { + "manageSubscriptions": "Gerenciar assinaturas" + }, + "playlist": { + "createPlaylist": "Criar lista de reprodução", + "public": "Pública", + "unlisted": "Não listada", + "private": "Privada", + "playVideos": "Reproduzir vídeos", + "shuffleVideos": "Aleatorizar reprodução", + "loopPlaylist": "Repetir reprodução" + }, + "thumbnail": { + "live": "AO VIVO", + "failedToLoadImage": "Falha ao carregar a imagem" + }, + "pages": { + "home": "Início", + "trending": "Popular", + "subscriptions": "Inscrições", + "history": "Histórico", + "playlists": "Listas de reprodução" + }, + "subscribers": "inscritos", + "unsubscribe": "Cancelar inscrição", + "loginRequired": "Login necessário", + "player": { + "audioOnly": "Somente áudio", + "theatreMode": "Modo teatro", + "pauseTimer": "Pausar temporizador", + "pauseVideoIn": "Pausar vídeo em ", + "share": { + "title": "Compartilhar", + "materialiousLink": "Copiar link Materialious", + "invidiousRedirect": "Copiar link de redirecionamento Invidious", + "youtubeLink": "Copiar link do Youtube" + }, + "download": "Baixar", + "downloadSteps": { + "merging": "Mesclando vídeo e áudio juntos", + "video": "Baixando vídeo", + "audio": "Baixando áudio", + "ffmpeg": "Baixando biblioteca e componentes ffmpeg", + "classWorker": "Baixando o webworker do ffmpeg", + "core": "Baixando o núcleo do ffmpeg", + "wasm": "Baixando o wasm do ffmpeg", + "worker": "Baixando o worker do ffmpeg" + }, + "noPlaylists": "Sem listas de reprodução", + "unableToLoadComments": "Incapaz de carregar os comentários", + "addToPlaylist": "Adicionar à lista de reprodução", + "youtubeJsFallBack": "Fallback de vídeo local sendo usado" + }, + "layout": { + "interface": "Interface", + "star": "Avalie-nos com uma estrela no Github! ☆", + "syncParty": "Sincronizar sala", + "syncPartyWarning": "Por gentileza, lembre-se que seu IP ficará visível para os usuários que você convidar.", + "startSyncParty": "Iniciar sincronização da sala", + "endSyncParty": "Encerrar sincronização da sala", + "notifications": "Notificações", + "noNewNotifications": "Sem notificações recentes por aqui", + "settings": "Configurações", + "login": "Fazer login", + "logout": "Sair", + "customize": "Personalizar", + "lowBandwidthMode": "Modo de baixo consumo de banda larga", + "theme": { + "theme": "Tema", + "darkMode": "Modo escuro", + "lightMode": "Modo claro", + "AmoledTheme": "Tema Amoled", + "color": "Cor" + }, + "searchSuggestions": "Sugestões de pesquisa", + "previewVideoOnHover": "Pré-visualizar vídeo com passagem do mouse", + "expandDescription": "Expandir descrição por padrão", + "expandComments": "Expandir comentários por padrão", + "dataPreferences": { + "content": "Procurando importar/exportar inscrições, alterar senha ou excluir conta? Clique aqui e navegue até o fim da página.", + "dataPreferences": "Preferências de dados" + }, + "player": { + "title": "Reprodutor", + "autoPlay": "Reprodução automática de vídeo", + "alwaysLoopVideo": "Sempre repetir o vídeo", + "savePlaybackPosition": "Salvar progresso da reprodução", + "listenByDefault": "Apenas escutar por padrão", + "theatreModeByDefault": "Modo teatro por padrão", + "autoPlayNextByDefault": "Reprodução automática por padrão", + "miniPlayer": "Reprodutor pequeno", + "proxyVideos": "Vídeos proxy", + "backgroundPlay": "Reproduzir áudio em segundo plano", + "dash": "Hífen", + "silenceSkipper": "Pular silêncio (Experimental)", + "youtubeJsFallback": "Fallback para processamento de vídeo local", + "youtubeJsAlways": "Sempre usar processamento de vídeo local", + "lockOrientation": "Orientação travada para igualar aspecto de proporção" + }, + "bookmarklet": "Favoritos", + "instanceUrl": "URL da instância", + "sponsors": { + "sponsor": "Patrocinador", + "disableToast": "Desativar avisos", + "disableTimeline": "Desabilitar segmentos na linha do tempo", + "Catagories": "Categorias", + "unpaidSelfPromotion": "Não remunerado/Auto promoção", + "interactionReminder": "Lembrete de interação (Inscreva-se)", + "intermissionIntroAnimation": "Intervalo/Animação de introdução", + "credits": "Cartões finais/Créditos", + "preViewRecapHook": "Prévia/Recapitulação/Gancho", + "tangentJokes": "Tangente não relacionada/Piadas" + }, + "deArrow": { + "title": "DeArrow", + "thumbnailInstanceUrl": "URL da instância de miniatura", + "titleOnly": "Somente títulos" + } + }, + "subscribe": "Inscrever-se" +} \ No newline at end of file diff --git a/materialious/src/lib/i18n/locales/ru.json b/materialious/src/lib/i18n/locales/ru.json index 39068661..46e6c238 100644 --- a/materialious/src/lib/i18n/locales/ru.json +++ b/materialious/src/lib/i18n/locales/ru.json @@ -1,134 +1,147 @@ { - "enabled": "Включено", - "copyUrl": "Копировать ссылку", - "loadMore": "Загрузить ещё", - "views": "просмотров", - "videos": "видео", - "cancel": "Отмена", - "create": "Создать", - "title": "Заголовок", - "searchPlaceholder": "Искать...", - "delete": "Удалить", - "deleteAllHistory": "Удалить всю историю", - "skipping": "Пропускаю", - "replies": "ответ(а/ов)", - "region": "Регион", - "noResult": "Без результатов", - "language": "Язык", - "transcript": "Транскрипция", - "noCaptionData": "Субтитры не содержат данных.", - "selectLang": "Выбрать язык", - "letterCase": "Регистр для названий", - "hideReplies": "Скрыть ответы", - "hideVideo": "Скрыть видео", - "syncParty": { - "userJoined": "Пользователь вошел в вашу группу", - "userLeft": "Пользователь покинул вашу группу", - "userOnPrivatePage": "Сейчас пользователь просматривает приватную страницу, синхронизация вскоре возобновится." - }, - "videoTabs": { - "all": "Всё", - "videos": "Видео", - "playlists": "Списки воспроизведения", - "channels": "Каналы", - "shorts": "Shorts", - "streams": "Трансляции" - }, - "subscriptions": { - "manageSubscriptions": "Управление подписками" - }, - "playlist": { - "createPlaylist": "Создать список воспроизведения", - "public": "Общедоступно", - "unlisted": "Недоступно", - "private": "Ограниченно", - "playVideos": "Воспроизвести видео", - "shuffleVideos": "Воспроизвести видео в случайном порядке", - "loopPlaylist": "Повторять список воспроизведения" - }, - "thumbnail": { - "live": "В ЭФИРЕ", - "failedToLoadImage": "Ошибка загрузки изображения" - }, - "pages": { - "home": "Главная", - "trending": "В тренде", - "subscriptions": "Подписки", - "history": "История", - "playlists": "Плейлисты" - }, - "subscribers": "подписчик(а/ов)", - "unsubscribe": "Отписаться", - "loginRequired": "Нужно войти в учётную запись", - "player": { - "audioOnly": "Только звук", - "theatreMode": "Широкий экран", - "share": { - "title": "Поделиться", - "materialiousLink": "Скопировать ссылку на Materialious", - "invidiousRedirect": "Скопировать ссылку на инстанс Invidious", - "youtubeLink": "Скопировать ссылку на Youtube" - }, - "download": "Скачать", - "noPlaylists": "Нет списков воспроизведения", - "unableToLoadComments": "Невозможно загрузить комментарии", - "addToPlaylist": "Добавить в плейлист" - }, - "layout": { - "star": "Поставить нам звезду на GitHub!", - "syncParty": "Совместный просмотр", - "syncPartyWarning": "Помните, ваш IP должен быть доступен для тех кого вы приглашаете.", - "startSyncParty": "Начать совместный просмотр", - "endSyncParty": "Закончить совместный просмотр", - "notifications": "Уведомления", - "noNewNotifications": "Нет новых уведомлений", - "settings": "Настройки", - "login": "Зайти в учетную запись", - "logout": "Выйти из учетной записи", - "customize": "Настроить под себя", - "theme": { - "theme": "Тема", - "darkMode": "Тёмный режим", - "lightMode": "Светлый режим", - "color": "Цвет" - }, - "searchSuggestions": "Поисковые подсказки", - "previewVideoOnHover": "Предпросмотр видео при наведении", - "expandDescription": "Развернуть описание по умолчанию", - "expandComments": "Развернуть комментарий по умолчанию", - "dataPreferences": { - "content": "Ищете импорт/экспорт подписок, смену пароля или как удалить учётную запись? Нажмите сюда и прокрутите станицу вниз.", - "dataPreferences": "Настройки данных" - }, - "player": { - "title": "Плеер", - "autoPlay": "Авто-воспроизведение видео", - "alwaysLoopVideo": "Зацикливать видео", - "savePlaybackPosition": "Сохранять позицию", - "listenByDefault": "Слушать по умолчанию", - "theatreModeByDefault": "Широкий формат по умолчанию", - "autoPlayNextByDefault": "Авто-воспроизведение по умолчанию", - "miniPlayer": "Мини-плеер", - "proxyVideos": "Прокси видео", - "backgroundPlay": "Играть аудио в фоне", - "dash": "Использовать DASH" - }, - "bookmarklet": "Закладка", - "instanceUrl": "URL инстанса", - "sponsors": { - "sponsor": "Спонсор", - "unpaidSelfPromotion": "Самореклама", - "interactionReminder": "Напоминание о подписке", - "intermissionIntroAnimation": "Интро", - "credits": "Титры/Авторы", - "preViewRecapHook": "Краткое содержание", - "tangentJokes": "Шутки" - }, - "deArrow": { - "title": "DeArrow", - "thumbnailInstanceUrl": "URL инстанса обложек", - "titleOnly": "Только название" - } - }, - "subscribe": "Подписаться" -} + "enabled": "Включено", + "copyUrl": "Копировать ссылку", + "loadMore": "Загрузить ещё", + "views": "просмотров", + "invidiousBlockWarning": "Google блокирует Invidious. Если видео не загружается для этого экземпляра, используйте этот экземпляр Materialious на {android} или {desktop}, чтобы обойти эту проблему с помощью локального резервного видео.", + "videos": "видео", + "cancel": "Отмена", + "create": "Создать", + "title": "Заголовок", + "searchPlaceholder": "Искать...", + "delete": "Удалить", + "donate": "Пожертвовать", + "deleteAllHistory": "Удалить всю историю", + "skipping": "Пропускаю", + "replies": "ответ(а/ов)", + "region": "Регион", + "noResult": "Без результатов", + "language": "Язык", + "channels": "каналы", + "transcript": "Транскрипция", + "noCaptionData": "Субтитры не содержат данных.", + "selectLang": "Выбрать язык", + "letterCase": "Регистр для названий", + "hideReplies": "Скрыть ответы", + "hideVideo": "Скрыть видео", + "syncParty": { + "userJoined": "Пользователь вошел в вашу группу", + "userLeft": "Пользователь покинул вашу группу", + "userOnPrivatePage": "Сейчас пользователь просматривает приватную страницу, синхронизация вскоре возобновится." + }, + "videoTabs": { + "all": "Всё", + "videos": "Видео", + "playlists": "Списки воспроизведения", + "channels": "Каналы", + "shorts": "Shorts", + "streams": "Трансляции" + }, + "subscriptions": { + "manageSubscriptions": "Управление подписками" + }, + "playlist": { + "createPlaylist": "Создать список воспроизведения", + "public": "Общедоступно", + "unlisted": "Недоступно", + "private": "Ограниченно", + "playVideos": "Воспроизвести видео", + "shuffleVideos": "Воспроизвести видео в случайном порядке", + "loopPlaylist": "Повторять список воспроизведения" + }, + "thumbnail": { + "live": "В ЭФИРЕ", + "failedToLoadImage": "Ошибка загрузки изображения" + }, + "pages": { + "home": "Главная", + "trending": "В тренде", + "subscriptions": "Подписки", + "history": "История", + "playlists": "Плейлисты" + }, + "subscribers": "подписчик(а/ов)", + "unsubscribe": "Отписаться", + "loginRequired": "Нужно войти в учётную запись", + "player": { + "audioOnly": "Только звук", + "theatreMode": "Широкий экран", + "pauseTimer": "Таймер паузы", + "pauseVideoIn": "Приостановите видео на", + "share": { + "title": "Поделиться", + "materialiousLink": "Скопировать ссылку на Materialious", + "invidiousRedirect": "Скопировать ссылку на инстанс Invidious", + "youtubeLink": "Скопировать ссылку на Youtube" + }, + "download": "Скачать", + "downloadSteps": { + "merging": "Объединение видео и аудио", + "video": "Загрузка видео", + "audio": "Загрузка аудио", + "ffmpeg": "Загрузка библиотеки и компонентов ffmpeg" + }, + "noPlaylists": "Нет списков воспроизведения", + "unableToLoadComments": "Невозможно загрузить комментарии", + "addToPlaylist": "Добавить в плейлист" + }, + "layout": { + "interface": "Интерфейс", + "star": "Поставить нам звезду на GitHub!", + "syncParty": "Совместный просмотр", + "syncPartyWarning": "Помните, ваш IP должен быть доступен для тех кого вы приглашаете.", + "startSyncParty": "Начать совместный просмотр", + "endSyncParty": "Закончить совместный просмотр", + "notifications": "Уведомления", + "noNewNotifications": "Нет новых уведомлений", + "settings": "Настройки", + "login": "Зайти в учетную запись", + "logout": "Выйти из учетной записи", + "customize": "Настроить под себя", + "theme": { + "theme": "Тема", + "darkMode": "Тёмный режим", + "lightMode": "Светлый режим", + "color": "Цвет" + }, + "searchSuggestions": "Поисковые подсказки", + "previewVideoOnHover": "Предпросмотр видео при наведении", + "expandDescription": "Развернуть описание по умолчанию", + "expandComments": "Развернуть комментарий по умолчанию", + "dataPreferences": { + "content": "Ищете импорт/экспорт подписок, смену пароля или как удалить учётную запись? Нажмите сюда и прокрутите станицу вниз.", + "dataPreferences": "Настройки данных" + }, + "player": { + "title": "Плеер", + "autoPlay": "Авто-воспроизведение видео", + "alwaysLoopVideo": "Зацикливать видео", + "savePlaybackPosition": "Сохранять позицию", + "listenByDefault": "Слушать по умолчанию", + "theatreModeByDefault": "Широкий формат по умолчанию", + "autoPlayNextByDefault": "Авто-воспроизведение по умолчанию", + "miniPlayer": "Мини-плеер", + "proxyVideos": "Прокси видео", + "backgroundPlay": "Играть аудио в фоне", + "dash": "Использовать DASH" + }, + "bookmarklet": "Закладка", + "instanceUrl": "URL инстанса", + "sponsors": { + "sponsor": "Спонсор", + "Catagories": "Категории", + "unpaidSelfPromotion": "Самореклама", + "interactionReminder": "Напоминание о подписке", + "intermissionIntroAnimation": "Интро", + "credits": "Титры/Авторы", + "preViewRecapHook": "Краткое содержание", + "tangentJokes": "Шутки" + }, + "deArrow": { + "title": "DeArrow", + "thumbnailInstanceUrl": "URL инстанса обложек", + "titleOnly": "Только название" + } + }, + "subscribe": "Подписаться" +} \ No newline at end of file diff --git a/materialious/src/lib/i18n/locales/sh.json b/materialious/src/lib/i18n/locales/sh.json new file mode 100644 index 00000000..e6f5379b --- /dev/null +++ b/materialious/src/lib/i18n/locales/sh.json @@ -0,0 +1,160 @@ +{ + "enabled": "Omogućeno", + "copyUrl": "Kopiraj URL", + "loadMore": "Učitaj više", + "views": "pogleda", + "invidiousBlockWarning": "Google trenutno blokira Invidious. Ako se video snimci ne učitavaju za ovu instancu, koristite ovu instancu na Materialious na {android} ili {desktop} da biste to zaobišli pomoću lokalnog video povlačenja.", + "videos": "video snimci", + "cancel": "Otkaži", + "create": "Kreiraj", + "title": "Naslov", + "searchPlaceholder": "Traži", + "delete": "Izbriši", + "donate": "Donirajte", + "deleteAllHistory": "Izbrišite svu historiju", + "skipping": "Preskakanje", + "replies": "odgovori", + "region": "Regija", + "noResult": "Nema rezultata", + "language": "Jezik", + "channels": "kanali", + "transcript": "Transkript", + "noCaptionData": "Podnaslovi nemaju nikakve podatke.", + "selectLang": "Izaberite jezik", + "letterCase": "Velika slova za naslove", + "hideReplies": "Sakrijte odgovore", + "hideVideo": "Sakrijte video", + "syncParty": { + "userJoined": "Korisnik se pridružio vašem udruženju za gledanje.", + "userLeft": "Korisnik se napustio vaše udruženje za gledanje.", + "userOnPrivatePage": "Korisnik koji trenutno gleda privatnu stranicu, sinkronizacija će se uskoro nastaviti." + }, + "videoTabs": { + "all": "Sve", + "videos": "Video snimci", + "playlists": "Zapisi", + "channels": "Kanali", + "shorts": "Shorts", + "streams": "Tokovi" + }, + "subscriptions": { + "manageSubscriptions": "Upravljajte pretplatama" + }, + "playlist": { + "createPlaylist": "Kreirajte zapis", + "public": "Javan", + "unlisted": "Nenaveden", + "private": "Privatan", + "playVideos": "Pusti video zapise", + "shuffleVideos": "Video snimci su pom(ij)ešani", + "loopPlaylist": "Ponavljaj zapis" + }, + "thumbnail": { + "live": "UŽIVO", + "failedToLoadImage": "Učitavanje slike nije usp(j)elo" + }, + "pages": { + "home": "Početna", + "trending": "U trendu", + "subscriptions": "Pretplate", + "history": "Historija", + "playlists": "Zapisi" + }, + "subscribers": "pretplatnici", + "unsubscribe": "Otkažite pretplatu", + "loginRequired": "Potrebna je prijava", + "player": { + "audioOnly": "Samo zvuk", + "theatreMode": "Režim bioskopa", + "pauseTimer": "Pauziraj vremem(j)er", + "pauseVideoIn": "Pauzirajte video u", + "share": { + "title": "Pod(ij)eli", + "materialiousLink": "Kopiraj Materijalious poveznicu", + "invidiousRedirect": "Kopiraj Invidious poveznicu za preusm(j)eravanje", + "youtubeLink": "Kopirajte Youtube poveznicu" + }, + "download": "Preuzmi", + "downloadSteps": { + "merging": "Spajaju se video i audio zapisi zajedno", + "video": "Preuzimanje videa", + "audio": "Preuzimanje zvuka", + "ffmpeg": "Preuzimanje ffmpeg biblioteke i komponenata", + "classWorker": "Preuzimanje ffmpeg klasnog radnika", + "core": "Preuzimanje ffmpeg jezgra", + "wasm": "Preuzimanje ffmpeg wasm", + "worker": "Preuzimanje ffmpeg radnika" + }, + "noPlaylists": "Nema zapisa", + "unableToLoadComments": "Nije moguće učitati komentare", + "addToPlaylist": "Dodaj na listu za reprodukciju", + "youtubeJsFallBack": "Koristi se rezervni lokalni video" + }, + "layout": { + "interface": "Sučelje", + "star": "Ozv(j)ezdite nas na Github-u!", + "syncParty": "Sinkronizacija žurke", + "syncPartyWarning": "Čuvajte na umu da će vaša IP adresa biti vidljiva korisnicima koje pozovete.", + "startSyncParty": "Započni žurku za sinkronizaciju", + "endSyncParty": "Završi žurku za sinkronizaciju", + "notifications": "Obav(j)eštenja", + "noNewNotifications": "Ovd(j)e nema novih obav(j)eštenja", + "settings": "Podešavanja/Postavke", + "login": "Upis", + "logout": "Ispis", + "customize": "Prilagodite", + "lowBandwidthMode": "Režim niske propusnosti", + "theme": { + "theme": "Tema", + "darkMode": "Tamni režim", + "lightMode": "Sv(j)etli režim", + "AmoledTheme": "Amoled tema", + "color": "Boja" + }, + "searchSuggestions": "Pr(ij)edlozi za pretragu", + "previewVideoOnHover": "Pregledajte video pri lebdenju", + "expandDescription": "Zadano proširite opis", + "expandComments": "Zadano proširite komentare", + "dataPreferences": { + "content": "Želite da uvezete/izvezete pretplate, prom(j)enite lozinku ili izbrišete nalog? Kliknite ovd(j)e i pomaknite se do dna stranice.", + "dataPreferences": "Podešavanja podataka" + }, + "player": { + "title": "Plejer", + "autoPlay": "Automatska reprodukcija videa", + "alwaysLoopVideo": "Uv(ij)ek ponovite video", + "savePlaybackPosition": "Sačuvajte poziciju reprodukcije", + "listenByDefault": "Zadano slušajte", + "theatreModeByDefault": "Zadan je režim bioskopa", + "autoPlayNextByDefault": "Zadano sl(j)edeće pokrenite", + "miniPlayer": "Mini plejer", + "proxyVideos": "Proksi video snimci", + "backgroundPlay": "Pustite audio u pozadini", + "dash": "Dash mod", + "silenceSkipper": "Preskoknik tišine (eksperimentalno)", + "youtubeJsFallback": "Povlačaj za lokalnu obradu video zapisa", + "youtubeJsAlways": "Uv(ij)ek koristite lokalnu obradu video zapisa", + "lockOrientation": "Or(ij)entacija je zaključana u odnosu na om(j)er" + }, + "bookmarklet": "Oznaka", + "instanceUrl": "URL instance", + "sponsors": { + "sponsor": "Sponzor", + "disableToast": "Onemogući tost", + "disableTimeline": "Onemogućite segmente na vremenskoj liniji", + "Catagories": "Kategorije", + "unpaidSelfPromotion": "Neplaćeno/samounapređenje", + "interactionReminder": "Pods(j)etnik o interakciji (Pretplatite se)", + "intermissionIntroAnimation": "Pauza/uvodna animacija", + "credits": "Završne špice/zasluge", + "preViewRecapHook": "Pregled/Rekapitulacija/Kuka", + "tangentJokes": "Nadoknadna tangenta/vicevi" + }, + "deArrow": { + "title": "DeArrow", + "thumbnailInstanceUrl": "URL minijature za instance", + "titleOnly": "Samo naslov" + } + }, + "subscribe": "Pretplatite se" +} \ No newline at end of file diff --git a/materialious/src/lib/i18n/locales/tr.json b/materialious/src/lib/i18n/locales/tr.json index d98f6826..9f606970 100644 --- a/materialious/src/lib/i18n/locales/tr.json +++ b/materialious/src/lib/i18n/locales/tr.json @@ -70,21 +70,22 @@ "youtubeLink": "Youtube bağlantısını kopyala" }, "download": "İndir", - "noPlaylists": "Oynatma listesi yok", - "unableToLoadComments": "Yorumlar yüklenemiyor", - "addToPlaylist": "Oynatma listesine ekle", "downloadSteps": { "merging": "Birlikte video ve ses birleştiriliyor", "video": "Video indiriliyor", "audio": "Ses indiriliyor", "ffmpeg": "FFmpeg kütüphaneleri ve parçaları indiriliyor", + "classWorker": "FFmpeg sınıf işcisi indiriliyor", "core": "FFmpeg çekirdeği indiriliyor", "wasm": "FFmpeg wasm indiriliyor", - "worker": "FFmpeg işcisi indiriliyor", - "classWorker": "FFmpeg sınıf işcisi indiriliyor" - } + "worker": "FFmpeg işcisi indiriliyor" + }, + "noPlaylists": "Oynatma listesi yok", + "unableToLoadComments": "Yorumlar yüklenemiyor", + "addToPlaylist": "Oynatma listesine ekle" }, "layout": { + "interface": "Arayüz", "star": "Github'da bize yıldız verin!", "syncParty": "Senkronizasyon partisi", "syncPartyWarning": "Lütfen IP nizin davet ettiğiniz kullanıcılara görüneceğini unutmayın.", @@ -104,6 +105,8 @@ }, "searchSuggestions": "Önerileri ara", "previewVideoOnHover": "Fareyle üzerine gelindiğinde videoyu ön izleyin", + "expandDescription": "Açıklamayı varsayılan olarak genişlet", + "expandComments": "Yorumları varsayılan olarak genişlet", "dataPreferences": { "content": "Abonelikleri içe/dışa aktarmayı, şifreyi değiştirmeyi veya hesabı silmeyi mi istiyorsunuz? Buraya tıklayın ve sayfanın en altına gidin.", "dataPreferences": "Veri tercihleri" @@ -125,22 +128,19 @@ "instanceUrl": "Instance URL", "sponsors": { "sponsor": "Sponsor", + "Catagories": "Kategoriler", "unpaidSelfPromotion": "Ücretsiz/Kişisel Promosyon", "interactionReminder": "Etkileşim Hatırlatıcısı (Abone Ol)", "intermissionIntroAnimation": "Ara/Giriş Animasyonu", "credits": "Bitiş Kartları/Krediler", "preViewRecapHook": "Önizleme/Özet/Kanca", - "tangentJokes": "Dolgu Tanjantı/Şakalar", - "Catagories": "Kategoriler" + "tangentJokes": "Dolgu Tanjantı/Şakalar" }, "deArrow": { "title": "DeArrow", "thumbnailInstanceUrl": "Küçük resim görünüm URL'si", "titleOnly": "Sadece başlık" - }, - "interface": "Arayüz", - "expandDescription": "Açıklamayı varsayılan olarak genişlet", - "expandComments": "Yorumları varsayılan olarak genişlet" + } }, "subscribe": "Abone Ol" } diff --git a/project.inlang/settings.json b/project.inlang/settings.json index d8b3ef49..704bd621 100644 --- a/project.inlang/settings.json +++ b/project.inlang/settings.json @@ -3,7 +3,10 @@ "languageTags": [ "en", "de", + "nl", + "pt-BR", "ru", + "sh", "tr" ], "modules": [ diff --git a/update_versions.py b/update_versions.py index 23ec301c..32f44cd8 100644 --- a/update_versions.py +++ b/update_versions.py @@ -5,7 +5,7 @@ import json import os import re -LATEST_VERSION = "1.6.22" +LATEST_VERSION = "1.6.23" WORKING_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "materialious") ROOT_PACKAGE = os.path.join(WORKING_DIR, "package.json")