From 3bdb9266b5bb8b21b7166f9e015f38e77302588e Mon Sep 17 00:00:00 2001 From: Alex Wardle Date: Sun, 1 Jan 2023 14:36:07 -0700 Subject: [PATCH 01/64] hide unplayedCount if UnplayedItemCount is 0 --- components/ItemGrid/GridItem.brs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/components/ItemGrid/GridItem.brs b/components/ItemGrid/GridItem.brs index 162db0b9d..80169d804 100644 --- a/components/ItemGrid/GridItem.brs +++ b/components/ItemGrid/GridItem.brs @@ -43,11 +43,12 @@ sub itemContentChanged() m.itemIcon.uri = itemData.iconUrl m.itemText.text = itemData.Title else if itemData.type = "Series" - if itemData?.json?.UserData?.UnplayedItemCount <> invalid - if itemData.json.UserData.UnplayedItemCount > 0 - m.unplayedCount.visible = true - m.unplayedEpisodeCount.text = itemData.json.UserData.UnplayedItemCount - end if + if itemData?.json?.UserData?.UnplayedItemCount <> invalid and itemData.json.UserData.UnplayedItemCount > 0 + m.unplayedCount.visible = true + m.unplayedEpisodeCount.text = itemData.json.UserData.UnplayedItemCount + else + m.unplayedCount.visible = false + m.unplayedEpisodeCount.text = "" end if m.itemPoster.uri = itemData.PosterUrl From 04a43d30306696ea9711b30b2588138f9f095868 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 16:37:08 +0000 Subject: [PATCH 02/64] Update actions/checkout action to v4 --- .github/workflows/roku-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/roku-analysis.yml b/.github/workflows/roku-analysis.yml index fa314f4e8..a557ac54e 100644 --- a/.github/workflows/roku-analysis.yml +++ b/.github/workflows/roku-analysis.yml @@ -11,7 +11,7 @@ jobs: static: runs-on: ubuntu-latest steps: - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3 with: node-version: "lts/*" From aed68f1cf1a4db5d9462f032cb351aa20fc069ad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 17:14:46 +0000 Subject: [PATCH 03/64] Update actions/setup-node digest to 5e21ff4 --- .github/workflows/roku-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/roku-analysis.yml b/.github/workflows/roku-analysis.yml index a557ac54e..0965214fc 100644 --- a/.github/workflows/roku-analysis.yml +++ b/.github/workflows/roku-analysis.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3 with: node-version: "lts/*" cache: "npm" From ea7e4def5d738afbed0043956bd0372e6aa091c5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 19:43:19 +0000 Subject: [PATCH 04/64] Update dependency @rokucommunity/bslint to v0.8.10 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index f928e4124..bca6fe3ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "sob": "npm:slide-out-button@1.0.1" }, "devDependencies": { - "@rokucommunity/bslint": "0.8.9", + "@rokucommunity/bslint": "0.8.10", "brighterscript": "0.65.5", "jshint": "2.13.6", "markdownlint-cli2": "0.9.2", @@ -125,9 +125,9 @@ "integrity": "sha512-2ox6EUL+UTtccTbD4dbVjZK3QHa0PHCqpoKMF8lZz9ayzzEP3iVPF8KZR6hOi6bxsIcbGXVjqmtCVkpC4P9SrA==" }, "node_modules/@rokucommunity/bslint": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/@rokucommunity/bslint/-/bslint-0.8.9.tgz", - "integrity": "sha512-7rXHcGL8XVguqzjKtsUoRvnm/g6ySJwV+xGO9n8Mc1r1zNIvjMi9Spfz1Kh8zJTXwfxOkG1X68lMAtp9bk/gxA==", + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@rokucommunity/bslint/-/bslint-0.8.10.tgz", + "integrity": "sha512-2aaWPtt5xACm7sIaKR5ctF7f3HrjKGfTVSAT6ZGdojDsXPQanHK2+XyYX20fQVdjJFVn414UCfVkUiaO0PTtog==", "dev": true, "dependencies": { "fs-extra": "^10.0.0", diff --git a/package.json b/package.json index 713727507..aefd6deae 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "sob": "npm:slide-out-button@1.0.1" }, "devDependencies": { - "@rokucommunity/bslint": "0.8.9", + "@rokucommunity/bslint": "0.8.10", "brighterscript": "0.65.5", "jshint": "2.13.6", "markdownlint-cli2": "0.9.2", From fd1e9d0ec241261adc8f2aef95d0e10fda4bab73 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 21:12:53 +0000 Subject: [PATCH 05/64] Update dependency brighterscript-formatter to v1.6.32 --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index bca6fe3ba..3f0ef5340 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "dependencies": { "@rokucommunity/bslib": "0.1.1", "bgv": "npm:button-group-vert@1.0.2", - "brighterscript-formatter": "1.6.31", + "brighterscript-formatter": "1.6.32", "intKeyboard": "npm:integer-keyboard@1.0.12", "log": "npm:roku-log@0.11.1", "sob": "npm:slide-out-button@1.0.1" @@ -575,11 +575,11 @@ } }, "node_modules/brighterscript-formatter": { - "version": "1.6.31", - "resolved": "https://registry.npmjs.org/brighterscript-formatter/-/brighterscript-formatter-1.6.31.tgz", - "integrity": "sha512-XOc1LVAUXrWtCwAZeOUS/7gH5TbiEqZ0IwyAJcM7J5CxrFpMrw6NKg/Yox1oKaH1m11kcLR7KgckK5CTha0eYQ==", + "version": "1.6.32", + "resolved": "https://registry.npmjs.org/brighterscript-formatter/-/brighterscript-formatter-1.6.32.tgz", + "integrity": "sha512-7rbNmSsj2v8iv+iSWXczSg4hC7L1zxMEwo+jZcDaMDPu0TBt4zmmCpaT0WvvvYcE8fD9I1tJ4dlTaj61QnH0QQ==", "dependencies": { - "brighterscript": "^0.65.4", + "brighterscript": "^0.65.5", "glob-all": "^3.3.0", "jsonc-parser": "^3.0.0", "source-map": "^0.7.3", diff --git a/package.json b/package.json index aefd6deae..1412e72b6 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "dependencies": { "@rokucommunity/bslib": "0.1.1", "bgv": "npm:button-group-vert@1.0.2", - "brighterscript-formatter": "1.6.31", + "brighterscript-formatter": "1.6.32", "intKeyboard": "npm:integer-keyboard@1.0.12", "log": "npm:roku-log@0.11.1", "sob": "npm:slide-out-button@1.0.1" From 68554d4c2a0946a6543b5920472597334fd4288b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Sep 2023 17:40:54 +0000 Subject: [PATCH 06/64] Update dependency ropm to v0.10.17 --- package-lock.json | 53 +++++++---------------------------------------- package.json | 2 +- 2 files changed, 8 insertions(+), 47 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f0ef5340..9279b4262 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "roku-deploy": "3.10.3", "roku-log-bsc-plugin": "0.8.1", "rooibos-roku": "5.7.0", - "ropm": "0.10.16", + "ropm": "0.10.17", "spellchecker-cli": "6.1.1", "undent": "0.1.0" } @@ -4419,14 +4419,14 @@ "dev": true }, "node_modules/ropm": { - "version": "0.10.16", - "resolved": "https://registry.npmjs.org/ropm/-/ropm-0.10.16.tgz", - "integrity": "sha512-YZ49ie+dSRkyOz7RbXpku+neujhk6WfrFKUpda844W2kB0Xk/p4XtwirIdorVNtefBqEeQMXswwrVaWLNaL+vQ==", + "version": "0.10.17", + "resolved": "https://registry.npmjs.org/ropm/-/ropm-0.10.17.tgz", + "integrity": "sha512-JFq/PAzrC3xVweRdTt4zAYCWWdSBzMg5MP9i302L+vi4eXLp4jDYGeYKZwSucZswWNGxVpSK3gW1paHpv7GVEw==", "dev": true, "dependencies": { "@xml-tools/ast": "^5.0.5", "@xml-tools/parser": "1.0.10", - "brighterscript": "^0.65.4", + "brighterscript": "^0.65.5", "del": "6.0.0", "fs-extra": "9.1.0", "glob-all": "3.2.1", @@ -4476,7 +4476,7 @@ "node": ">=10" } }, - "node_modules/ropm/node_modules/fs-extra/node_modules/jsonfile": { + "node_modules/ropm/node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", @@ -4488,7 +4488,7 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/ropm/node_modules/fs-extra/node_modules/universalify": { + "node_modules/ropm/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", @@ -4497,45 +4497,6 @@ "node": ">= 10.0.0" } }, - "node_modules/ropm/node_modules/roku-deploy": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/roku-deploy/-/roku-deploy-3.10.3.tgz", - "integrity": "sha512-COJSQ638QklcM+8AN1nujFuzT04rTZLFuLSww35edm8w/y0l60oF/Iu7TQ46m75DwoGFzGFfomLEmA1ltQk9mA==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "dateformat": "^3.0.3", - "dayjs": "^1.11.0", - "fast-glob": "^3.2.12", - "fs-extra": "^7.0.1", - "is-glob": "^4.0.3", - "jsonc-parser": "^2.3.0", - "jszip": "^3.6.0", - "micromatch": "^4.0.4", - "moment": "^2.29.1", - "parse-ms": "^2.1.0", - "postman-request": "^2.88.1-postman.32", - "temp-dir": "^2.0.0", - "xml2js": "^0.5.0" - }, - "bin": { - "roku-deploy": "dist/cli.js" - } - }, - "node_modules/ropm/node_modules/roku-deploy/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/ropm/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", diff --git a/package.json b/package.json index 1412e72b6..0c0be0ba3 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "roku-deploy": "3.10.3", "roku-log-bsc-plugin": "0.8.1", "rooibos-roku": "5.7.0", - "ropm": "0.10.16", + "ropm": "0.10.17", "spellchecker-cli": "6.1.1", "undent": "0.1.0" }, From 439e81ce0961debf9741346cb4b77673457a9e48 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Tue, 12 Sep 2023 19:34:12 -0400 Subject: [PATCH 07/64] update settings page to create more space for long radio lists --- components/settings/settings.brs | 6 ++---- components/settings/settings.xml | 35 +++++++++++++++++--------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/components/settings/settings.brs b/components/settings/settings.brs index 5809353f4..707c085fc 100644 --- a/components/settings/settings.brs +++ b/components/settings/settings.brs @@ -4,7 +4,6 @@ import "pkg:/source/roku_modules/log/LogMixin.brs" sub init() m.log = log.Logger("Settings") - m.top.overhangTitle = tr("Settings") m.top.optionsAvailable = false m.userLocation = [] @@ -12,7 +11,6 @@ sub init() m.settingsMenu = m.top.findNode("settingsMenu") m.settingDetail = m.top.findNode("settingDetail") m.settingDesc = m.top.findNode("settingDesc") - m.settingTitle = m.top.findNode("settingTitle") m.path = m.top.findNode("path") m.boolSetting = m.top.findNode("boolSetting") @@ -72,7 +70,7 @@ sub LoadMenu(configSection) end if ' Set Path display - m.path.text = "" + m.path.text = tr("Settings") for each level in m.userLocation if level.title <> invalid then m.path.text += " / " + tr(level.title) end for @@ -82,7 +80,7 @@ sub settingFocused() selectedSetting = m.userLocation.peek().children[m.settingsMenu.itemFocused] m.settingDesc.text = tr(selectedSetting.Description) - m.settingTitle.text = tr(selectedSetting.Title) + m.top.overhangTitle = tr(selectedSetting.Title) ' Hide Settings m.boolSetting.visible = false diff --git a/components/settings/settings.xml b/components/settings/settings.xml index 707bda79d..f35a6aa02 100644 --- a/components/settings/settings.xml +++ b/components/settings/settings.xml @@ -7,32 +7,35 @@ + itemSpacing="[0,9]" + textVertAlign="center" /> - + + - - + + + + + + + + \ No newline at end of file From 454de3b8cdad5cf08258a5c633919104d4909841 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Wed, 13 Sep 2023 17:44:33 -0400 Subject: [PATCH 08/64] fix bug on user select screen preventing the back button from working --- components/data/SceneManager.brs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/components/data/SceneManager.brs b/components/data/SceneManager.brs index e876957f5..882a4f23b 100755 --- a/components/data/SceneManager.brs +++ b/components/data/SceneManager.brs @@ -1,4 +1,6 @@ import "pkg:/source/roku_modules/log/LogMixin.brs" +import "pkg:/source/utils/config.brs" +import "pkg:/source/utils/session.bs" sub init() m.log = log.Logger("SceneManager") @@ -77,16 +79,22 @@ end sub sub popScene() group = m.groups.pop() if group <> invalid - if group.isSubType("JFGroup") + groupType = group.subtype() + if groupType = "JFGroup" unregisterOverhangData(group) - else if group.isSubType("JFVideo") + else if groupType = "JFVideo" ' Stop video to make sure app communicates stop playstate to server group.control = "stop" + else if groupType = "UserSelect" + ' user pressed back on the UserSelect screen and wants to select a server + ' wipe the current server session data + session.server.Delete() + unset_setting("server") end if group.visible = false - if group.isSubType("JFScreen") + if groupType = "JFScreen" group.callFunc("OnScreenHidden") end if else From 34770a5ee0e0e25fa00459de006545c2c0a35528 Mon Sep 17 00:00:00 2001 From: 1hitsong <3330318+1hitsong@users.noreply.github.com> Date: Wed, 13 Sep 2023 17:56:20 -0400 Subject: [PATCH 09/64] Add custom subs to new video player --- components/video/VideoPlayerView.brs | 49 +++++++++++++++++++++++----- components/video/VideoPlayerView.xml | 2 +- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/components/video/VideoPlayerView.brs b/components/video/VideoPlayerView.brs index d3c7bd6cd..2e648e681 100644 --- a/components/video/VideoPlayerView.brs +++ b/components/video/VideoPlayerView.brs @@ -23,6 +23,21 @@ sub init() m.top.observeField("content", "onContentChange") m.top.observeField("selectedSubtitle", "onSubtitleChange") + ' Custom Caption Function + m.captionGroup = m.top.findNode("captionGroup") + m.captionGroup.createchildren(9, "LayoutGroup") + m.captionTask = createObject("roSGNode", "captionTask") + m.captionTask.observeField("currentCaption", "updateCaption") + m.captionTask.observeField("useThis", "checkCaptionMode") + m.top.observeField("subtitleTrack", "loadCaption") + m.top.observeField("globalCaptionMode", "toggleCaption") + if get_user_setting("playback.subs.custom") = "false" + m.top.suppressCaptions = false + else + m.top.suppressCaptions = true + toggleCaption() + end if + m.playbackTimer.observeField("fire", "ReportPlayback") m.bufferPercentage = 0 ' Track whether content is being loaded m.playReported = false @@ -51,6 +66,27 @@ sub init() m.top.trickPlayBar.filledBarBlendColor = m.global.constants.colors.blue end sub +sub loadCaption() + if m.top.suppressCaptions + m.captionTask.url = m.top.subtitleTrack + end if +end sub + +sub toggleCaption() + m.captionTask.playerState = m.top.state + m.top.globalCaptionMode + if LCase(m.top.globalCaptionMode) = "on" + m.captionTask.playerState = m.top.state + m.top.globalCaptionMode + "w" + m.captionGroup.visible = true + else + m.captionGroup.visible = false + end if +end sub + +sub updateCaption() + m.captionGroup.removeChildrenIndex(m.captionGroup.getChildCount(), 0) + m.captionGroup.appendChildren(m.captionTask.currentCaption) +end sub + sub onSubtitleChange() ' Save the current video position m.global.queueManager.callFunc("setTopStartingPoint", int(m.top.position) * 10000000&) @@ -132,21 +168,12 @@ sub onContentChange() if not isValid(m.top.content) then return m.top.observeField("position", "onPositionChanged") - - ' If video content type is not episode, remove position observer - if m.top.content.contenttype <> 4 - m.top.unobserveField("position") - end if end sub sub onNextEpisodeDataLoaded() m.checkedForNextEpisode = true m.top.observeField("position", "onPositionChanged") - - if m.getNextEpisodeTask.nextEpisodeData.Items.count() <> 2 - m.top.unobserveField("position") - end if end sub ' @@ -189,6 +216,8 @@ end sub ' When Video Player state changes sub onPositionChanged() + m.captionTask.currentPos = Int(m.top.position * 1000) + ' Check if dialog is open m.dialog = m.top.getScene().findNode("dialogBackground") if not isValid(m.dialog) @@ -199,6 +228,8 @@ end sub ' ' When Video Player state changes sub onState(msg) + m.captionTask.playerState = m.top.state + m.top.globalCaptionMode + ' When buffering, start timer to monitor buffering process if m.top.state = "buffering" and m.bufferCheckTimer <> invalid diff --git a/components/video/VideoPlayerView.xml b/components/video/VideoPlayerView.xml index df5230ba9..b254e2366 100644 --- a/components/video/VideoPlayerView.xml +++ b/components/video/VideoPlayerView.xml @@ -7,7 +7,6 @@ - @@ -27,6 +26,7 @@ + From dfde501c87f555c5245c9ef70a88a7a94d3bbf71 Mon Sep 17 00:00:00 2001 From: 1hitsong <3330318+1hitsong@users.noreply.github.com> Date: Wed, 13 Sep 2023 22:02:50 -0400 Subject: [PATCH 10/64] Copy over crash fixes from #1133 --- components/video/VideoPlayerView.brs | 65 +++++++++++++++++++--------- components/video/VideoPlayerView.xml | 1 + source/Main.brs | 19 +++----- 3 files changed, 51 insertions(+), 34 deletions(-) diff --git a/components/video/VideoPlayerView.brs b/components/video/VideoPlayerView.brs index 2e648e681..56338e31b 100644 --- a/components/video/VideoPlayerView.brs +++ b/components/video/VideoPlayerView.brs @@ -24,19 +24,7 @@ sub init() m.top.observeField("selectedSubtitle", "onSubtitleChange") ' Custom Caption Function - m.captionGroup = m.top.findNode("captionGroup") - m.captionGroup.createchildren(9, "LayoutGroup") - m.captionTask = createObject("roSGNode", "captionTask") - m.captionTask.observeField("currentCaption", "updateCaption") - m.captionTask.observeField("useThis", "checkCaptionMode") - m.top.observeField("subtitleTrack", "loadCaption") - m.top.observeField("globalCaptionMode", "toggleCaption") - if get_user_setting("playback.subs.custom") = "false" - m.top.suppressCaptions = false - else - m.top.suppressCaptions = true - toggleCaption() - end if + m.top.observeField("allowCaptions", "onAllowCaptionsChange") m.playbackTimer.observeField("fire", "ReportPlayback") m.bufferPercentage = 0 ' Track whether content is being loaded @@ -66,6 +54,26 @@ sub init() m.top.trickPlayBar.filledBarBlendColor = m.global.constants.colors.blue end sub +' Custom Caption Function +sub onAllowCaptionsChange() + if not m.top.allowCaptions then return + + m.captionGroup = m.top.findNode("captionGroup") + m.captionGroup.createchildren(9, "LayoutGroup") + m.captionTask = createObject("roSGNode", "captionTask") + m.captionTask.observeField("currentCaption", "updateCaption") + m.captionTask.observeField("useThis", "checkCaptionMode") + m.top.observeField("subtitleTrack", "loadCaption") + m.top.observeField("globalCaptionMode", "toggleCaption") + + if get_user_setting("playback.subs.custom") = "false" + m.top.suppressCaptions = false + else + m.top.suppressCaptions = true + toggleCaption() + end if +end sub + sub loadCaption() if m.top.suppressCaptions m.captionTask.url = m.top.subtitleTrack @@ -150,7 +158,11 @@ sub onVideoContentLoaded() m.top.transcodeParams = videoContent[0].transcodeparams if m.LoadMetaDataTask.isIntro + ' Disable trackplay bar for intro videos m.top.enableTrickPlay = false + else + ' Allow custom captions for non intro videos + m.top.allowCaptions = true end if if isValid(m.top.audioIndex) @@ -216,19 +228,26 @@ end sub ' When Video Player state changes sub onPositionChanged() - m.captionTask.currentPos = Int(m.top.position * 1000) + if isValid(m.captionTask) + m.captionTask.currentPos = Int(m.top.position * 1000) + end if ' Check if dialog is open m.dialog = m.top.getScene().findNode("dialogBackground") if not isValid(m.dialog) - checkTimeToDisplayNextEpisode() + ' Do not show Next Episode button for intro videos + if not m.LoadMetaDataTask.isIntro + checkTimeToDisplayNextEpisode() + end if end if end sub ' ' When Video Player state changes sub onState(msg) - m.captionTask.playerState = m.top.state + m.top.globalCaptionMode + if isValid(m.captionTask) + m.captionTask.playerState = m.top.state + m.top.globalCaptionMode + end if ' When buffering, start timer to monitor buffering process if m.top.state = "buffering" and m.bufferCheckTimer <> invalid @@ -350,11 +369,17 @@ function onKeyEvent(key as string, press as boolean) as boolean if not press then return false if key = "down" - m.top.selectSubtitlePressed = true - return true + ' Do not show subtitle selection for intro videos + if not m.LoadMetaDataTask.isIntro + m.top.selectSubtitlePressed = true + return true + end if else if key = "up" - m.top.selectPlaybackInfoPressed = true - return true + ' Do not show playback info for intro videos + if not m.LoadMetaDataTask.isIntro + m.top.selectPlaybackInfoPressed = true + return true + end if else if key = "OK" ' OK will play/pause depending on current state ' return false to allow selection during seeking diff --git a/components/video/VideoPlayerView.xml b/components/video/VideoPlayerView.xml index b254e2366..609cfc11a 100644 --- a/components/video/VideoPlayerView.xml +++ b/components/video/VideoPlayerView.xml @@ -23,6 +23,7 @@ + diff --git a/source/Main.brs b/source/Main.brs index 298650bd2..1f51c555e 100644 --- a/source/Main.brs +++ b/source/Main.brs @@ -197,25 +197,16 @@ sub Main (args as dynamic) as void selectedItem.selectedAudioStreamIndex = audio_stream_idx - ' If we are playing a playlist, always start at the beginning - if m.global.queueManager.callFunc("getCount") > 1 - selectedItem.startingPoint = 0 + ' Display playback options dialog + if selectedItem.json.userdata.PlaybackPositionTicks > 0 + m.global.queueManager.callFunc("hold", selectedItem) + playbackOptionDialog(selectedItem.json.userdata.PlaybackPositionTicks, selectedItem.json) + else m.global.queueManager.callFunc("clear") m.global.queueManager.callFunc("push", selectedItem) m.global.queueManager.callFunc("playQueue") - else - ' Display playback options dialog - if selectedItem.json.userdata.PlaybackPositionTicks > 0 - m.global.queueManager.callFunc("hold", selectedItem) - playbackOptionDialog(selectedItem.json.userdata.PlaybackPositionTicks, selectedItem.json) - else - m.global.queueManager.callFunc("clear") - m.global.queueManager.callFunc("push", selectedItem) - m.global.queueManager.callFunc("playQueue") - end if end if - else if selectedItemType = "Series" group = CreateSeriesDetailsGroup(selectedItem.json.id) else if selectedItemType = "Season" From b5bd893241ef6739f34b7d882137f09dad63bfef Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Wed, 13 Sep 2023 22:20:50 -0400 Subject: [PATCH 11/64] fix back bug on login and remove recursive function --- components/data/SceneManager.brs | 5 ----- source/ShowScenes.brs | 19 ++++++++++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/components/data/SceneManager.brs b/components/data/SceneManager.brs index 882a4f23b..9faa36bb8 100755 --- a/components/data/SceneManager.brs +++ b/components/data/SceneManager.brs @@ -85,11 +85,6 @@ sub popScene() else if groupType = "JFVideo" ' Stop video to make sure app communicates stop playstate to server group.control = "stop" - else if groupType = "UserSelect" - ' user pressed back on the UserSelect screen and wants to select a server - ' wipe the current server session data - session.server.Delete() - unset_setting("server") end if group.visible = false diff --git a/source/ShowScenes.brs b/source/ShowScenes.brs index a07715a4e..093d50b56 100644 --- a/source/ShowScenes.brs +++ b/source/ShowScenes.brs @@ -1,4 +1,4 @@ -function LoginFlow(startOver = false as boolean) +function LoginFlow() 'Collect Jellyfin server and user information start_login: @@ -41,9 +41,11 @@ function LoginFlow(startOver = false as boolean) activeUser = get_setting("active_user") if activeUser = invalid print "No active user found in registry" + user_select: SendPerformanceBeacon("AppDialogInitiate") ' Roku Performance monitoring - Dialog Starting publicUsers = GetPublicUsers() - if publicUsers.count() + numPubUsers = publicUsers.count() + if numPubUsers > 0 publicUsersNodes = [] for each item in publicUsers user = CreateObject("roSGNode", "PublicUserData") @@ -57,7 +59,9 @@ function LoginFlow(startOver = false as boolean) userSelected = CreateUserSelectGroup(publicUsersNodes) if userSelected = "backPressed" SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed - return LoginFlow(true) + session.server.Delete() + unset_setting("server") + goto start_login else 'Try to login without password. If the token is valid, we're done userData = get_token(userSelected, "") @@ -75,8 +79,13 @@ function LoginFlow(startOver = false as boolean) passwordEntry = CreateSigninGroup(userSelected) SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed if passwordEntry = "backPressed" - m.global.sceneManager.callFunc("clearScenes") - return LoginFlow(true) + if numPubUsers > 0 + goto user_select + else + session.server.Delete() + unset_setting("server") + goto start_login + end if end if else print "Active user found in registry" From b9359b8f51373ded5f27b6b8292b94d48e45635b Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Thu, 14 Sep 2023 11:52:32 -0400 Subject: [PATCH 12/64] fix #1372 + fix #310. Add option to "Change User" from home page --- components/data/UserData.brs | 3 -- source/Main.brs | 4 ++ source/ShowScenes.brs | 96 ++++++++++++++++++++++++------------ source/api/userauth.brs | 24 ++------- source/utils/session.bs | 3 -- 5 files changed, 72 insertions(+), 58 deletions(-) diff --git a/components/data/UserData.brs b/components/data/UserData.brs index 564848a6f..54693f168 100644 --- a/components/data/UserData.brs +++ b/components/data/UserData.brs @@ -20,9 +20,6 @@ sub loadFromRegistry(id as string) end sub sub saveToRegistry() - set_user_setting("username", m.top.username) - set_user_setting("token", m.top.token) - users = parseJson(get_setting("available_users", "[]")) this_user = invalid for each user in users diff --git a/source/Main.brs b/source/Main.brs index 298650bd2..474f178ac 100644 --- a/source/Main.brs +++ b/source/Main.brs @@ -524,6 +524,10 @@ sub Main (args as dynamic) as void SignOut(false) sceneManager.callFunc("clearScenes") goto app_start + else if button.id = "change_user" + SignOut(false) + sceneManager.callFunc("clearScenes") + goto app_start else if button.id = "sign_out" SignOut() sceneManager.callFunc("clearScenes") diff --git a/source/ShowScenes.brs b/source/ShowScenes.brs index 093d50b56..c98363401 100644 --- a/source/ShowScenes.brs +++ b/source/ShowScenes.brs @@ -57,20 +57,70 @@ function LoginFlow() publicUsersNodes.push(user) end for userSelected = CreateUserSelectGroup(publicUsersNodes) + + SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed if userSelected = "backPressed" - SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed session.server.Delete() unset_setting("server") goto start_login else + print "A public user was selected with username=" + userSelected + ' save userid to session + for each user in publicUsersNodes + if user.name = userSelected + session.user.Update("id", user.id) + exit for + end if + end for + ' try to login with token from registry + myToken = get_user_setting("token") + if myToken <> invalid + ' check if token is valid + print "Auth token found in registry for selected user" + session.user.Update("authToken", myToken) + print "Attempting to use API with auth token" + currentUser = AboutMe() + if currentUser = invalid + print "Auth token is no longer valid - deleting token" + unset_user_setting("token") + else + print "Success! Auth token is still valid" + session.user.Login(currentUser) + LoadUserPreferences() + LoadUserAbilities() + return true + end if + else + print "No auth token found in registry for selected user" + end if + ' try to login with password from registry + userData = invalid + myPassword = get_user_setting("password") + if isValid(myPassword) + ' saved password found for selected user + print "Saved credentials found for selected user. Attempting to login" + userData = get_token(userSelected, myPassword) + if isValid(userData) + print "login success!" + session.user.Login(userData) + LoadUserPreferences() + LoadUserAbilities() + return true + end if + else + print "No saved credentials found for selected user" + end if 'Try to login without password. If the token is valid, we're done + print "Attempting to login with no password" userData = get_token(userSelected, "") if isValid(userData) + print "login success!" session.user.Login(userData) LoadUserPreferences() LoadUserAbilities() - SendPerformanceBeacon("AppDialogComplete") ' Roku Performance monitoring - Dialog Closed return true + else + print "Auth failed. Password required" end if end if else @@ -98,10 +148,8 @@ function LoginFlow() print "Attempting to use API with auth token" currentUser = AboutMe() if currentUser = invalid - print "Auth token is no longer valid - restart login flow" + print "Auth token is no longer valid - delete token and restart login flow" unset_user_setting("token") - unset_setting("active_user") - session.user.Logout() goto start_login else print "Success! Auth token is still valid" @@ -109,8 +157,10 @@ function LoginFlow() end if else print "No auth token found in registry" - myUsername = get_setting("username") - myPassword = get_setting("password") + + print "Checking to see if we have saved credentials" + myUsername = get_user_setting("username") + myPassword = get_user_setting("password") userData = invalid if isValid(myUsername) and isValid(myPassword) @@ -119,8 +169,8 @@ function LoginFlow() userData = get_token(myUsername, myPassword) else print "Username in registry is an empty string" - unset_setting("username") - unset_setting("password") + unset_user_setting("username") + unset_user_setting("password") end if else if isValid(myUsername) and not isValid(myPassword) print "Username found in registry but no password" @@ -129,7 +179,7 @@ function LoginFlow() userData = get_token(myUsername, "") else print "Username in registry is an empty string" - unset_setting("username") + unset_user_setting("username") end if else if not isValid(myUsername) and not isValid(myPassword) @@ -371,25 +421,6 @@ function CreateSigninGroup(user = "") group.findNode("prompt").text = tr("Sign In") - 'Load in any saved server data and see if we can just log them in... - server = m.global.session.server.url - if isValid(server) - server = LCase(server)'Saved server data is always lowercase - end if - saved = get_setting("saved_servers") - if isValid(saved) - savedServers = ParseJson(saved) - for each item in savedServers.serverList - if item.baseUrl = server and isValid(item.username) and isValid(item.password) - userData = get_token(item.username, item.password) - if isValid(userData) - session.user.Login(userData) - return "true" - end if - end if - end for - end if - config = group.findNode("configOptions") username_field = CreateObject("roSGNode", "ConfigData") username_field.label = tr("Username") @@ -456,9 +487,11 @@ function CreateSigninGroup(user = "") activeUser = get_token(username.value, password.value) if isValid(activeUser) session.user.Login(activeUser) - set_setting("username", username.value) - set_setting("password", password.value) + ' save credentials if checkbox.checkedState[0] = true + set_user_setting("username", username.value) + set_user_setting("password", password.value) + set_user_setting("token", activeUser.token) 'Update our saved server list, so next time the user can just click and go UpdateSavedServerList() end if @@ -524,6 +557,7 @@ function CreateHomeGroup() new_options = [] options_buttons = [ { "title": "Search", "id": "goto_search" }, + { "title": "Change user", "id": "change_user" }, { "title": "Change server", "id": "change_server" }, { "title": "Sign out", "id": "sign_out" } ] diff --git a/source/api/userauth.brs b/source/api/userauth.brs index 657af4931..cef1d8937 100644 --- a/source/api/userauth.brs +++ b/source/api/userauth.brs @@ -32,28 +32,10 @@ function AboutMe(id = "" as string) end function sub SignOut(deleteSavedEntry = true as boolean) - if m.global.session.user.id <> invalid + if m.global.session.user.id <> invalid and deleteSavedEntry = true unset_user_setting("token") - unset_setting("username") - unset_setting("password") - if deleteSavedEntry = true - 'Also delete any credentials in the "saved servers" list - saved = get_setting("saved_servers") - server = m.global.session.server.url - if server <> invalid - server = LCase(server) - savedServers = ParseJson(saved) - newServers = { serverList: [] } - for each item in savedServers.serverList - if item.baseUrl = server - item.username = "" - item.password = "" - end if - newServers.serverList.Push(item) - end for - set_setting("saved_servers", FormatJson(newServers)) - end if - end if + unset_user_setting("username") + unset_user_setting("password") end if unset_setting("active_user") session.user.Logout() diff --git a/source/utils/session.bs b/source/utils/session.bs index 4f015751b..a62365a4f 100644 --- a/source/utils/session.bs +++ b/source/utils/session.bs @@ -151,9 +151,6 @@ namespace session if m.global.app.isDev print "m.global.session.user.settings = ", m.global.session.user.settings end if - ' ensure registry is updated - set_user_setting("username", tmpSession.user.name) - set_user_setting("token", tmpSession.user.authToken) end sub ' Empty the global user session array and reload defaults From 50020a3f20d11f30720fc6cd083d3ac7dfbbf9fb Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Thu, 14 Sep 2023 17:51:41 -0400 Subject: [PATCH 13/64] create global rememberme setting --- components/data/UserData.brs | 4 +++- components/settings/settings.brs | 33 +++++++++++++++++++++++++++++--- locale/en_US/translations.ts | 20 +++++++++++++++++++ settings/settings.json | 14 ++++++++++++++ source/utils/session.bs | 18 +++++++++++++++++ 5 files changed, 85 insertions(+), 4 deletions(-) diff --git a/components/data/UserData.brs b/components/data/UserData.brs index 54693f168..446abbf38 100644 --- a/components/data/UserData.brs +++ b/components/data/UserData.brs @@ -54,7 +54,9 @@ function setPreference(key as string, value as string) end function sub setActive() - set_setting("active_user", m.top.id) + if m.global.session.user.settings["global.rememberme"] + set_setting("active_user", m.top.id) + end if end sub sub setServer(hostname as string) diff --git a/components/settings/settings.brs b/components/settings/settings.brs index 5809353f4..72a4f6210 100644 --- a/components/settings/settings.brs +++ b/components/settings/settings.brs @@ -1,6 +1,7 @@ import "pkg:/source/utils/config.brs" import "pkg:/source/utils/misc.brs" import "pkg:/source/roku_modules/log/LogMixin.brs" +import "pkg:/source/api/sdk.bs" sub init() m.log = log.Logger("Settings") @@ -160,14 +161,40 @@ end sub sub boolSettingChanged() - if m.boolSetting.focusedChild = invalid then return selectedSetting = m.userLocation.peek().children[m.settingsMenu.itemFocused] if m.boolSetting.checkedItem - set_user_setting(selectedSetting.settingName, "true") + session.user.settings.Save(selectedSetting.settingName, "true") + if Left(selectedSetting.settingName, 7) = "global." + ' global user setting + ' save to main registry block + set_setting(selectedSetting.settingName, "true") + ' setting specific triggers + if selectedSetting.settingName = "global.rememberme" + print "m.global.session.user.id=", m.global.session.user.id + set_setting("active_user", m.global.session.user.id) + end if + else + ' regular user setting + ' save to user specific registry block + set_user_setting(selectedSetting.settingName, "true") + end if else - set_user_setting(selectedSetting.settingName, "false") + session.user.settings.Save(selectedSetting.settingName, "false") + if Left(selectedSetting.settingName, 7) = "global." + ' global user setting + ' save to main registry block + set_setting(selectedSetting.settingName, "false") + ' setting specific triggers + if selectedSetting.settingName = "global.rememberme" + unset_setting("active_user") + end if + else + ' regular user setting + ' save to user specific registry block + set_user_setting(selectedSetting.settingName, "false") + end if end if end sub diff --git a/locale/en_US/translations.ts b/locale/en_US/translations.ts index e4a3d6b0b..2ea904966 100644 --- a/locale/en_US/translations.ts +++ b/locale/en_US/translations.ts @@ -1208,5 +1208,25 @@ Disable the HEVC codec on this device. This may improve playback for some devices (ultra). User Setting - Setting description + + Global + Global + User Setting - Setting title + + + Global settings that affect everyone that uses this Roku device. + Global settings that affect everyone that uses this Roku device. + User Setting - Setting description + + + Remember Me? + Remember Me? + User Setting - Setting title + + + Remember the currently logged in user and try to log them in again next time you start the Jellyfin app. + Remember the currently logged in user and try to log them in again next time you start the Jellyfin app. + User Setting - Setting description + \ No newline at end of file diff --git a/settings/settings.json b/settings/settings.json index f5240e70f..422174741 100644 --- a/settings/settings.json +++ b/settings/settings.json @@ -1,4 +1,18 @@ [ + { + "title": "Global", + "description": "Global settings that affect everyone that uses this Roku device.", + "children": [ + { + "title": "Remember Me?", + "description": "Remember the currently logged in user and try to log them in again next time you start the Jellyfin app.", + "settingName": "global.rememberme", + "type": "bool", + "default": "false" + } + + ] + }, { "title": "Playback", "description": "Settings relating to playback and supported codec and media types.", diff --git a/source/utils/session.bs b/source/utils/session.bs index a62365a4f..53146a3d3 100644 --- a/source/utils/session.bs +++ b/source/utils/session.bs @@ -151,6 +151,10 @@ namespace session if m.global.app.isDev print "m.global.session.user.settings = ", m.global.session.user.settings end if + + if m.global.session.user.settings["global.rememberme"] + set_user_setting("token", tmpSession.user.authToken) + end if end sub ' Empty the global user session array and reload defaults @@ -228,6 +232,20 @@ namespace session end for end if end for + + ' load globals + session.user.settings.LoadGlobals() + end sub + + ' Grab global vars from registry and overwrite defaults + sub LoadGlobals() + ' search main registry block for all keys that start with "global." + jfRegistry = RegistryReadAll("Jellyfin") + for each item in jfRegistry + if Left(item, 7) = "global." + session.user.settings.Save(item, get_setting(item)) + end if + end for end sub ' Saves the user setting to the global session. From 6069a7fc3cd46435a5bc0ba866eef5eb58523ed3 Mon Sep 17 00:00:00 2001 From: 1hitsong <3330318+1hitsong@users.noreply.github.com> Date: Sat, 16 Sep 2023 15:26:30 -0400 Subject: [PATCH 14/64] Use global user setting. Add function definitions --- components/video/VideoPlayerView.brs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/components/video/VideoPlayerView.brs b/components/video/VideoPlayerView.brs index 56338e31b..b4f479484 100644 --- a/components/video/VideoPlayerView.brs +++ b/components/video/VideoPlayerView.brs @@ -54,7 +54,7 @@ sub init() m.top.trickPlayBar.filledBarBlendColor = m.global.constants.colors.blue end sub -' Custom Caption Function +' Only setup captain items if captions are allowed sub onAllowCaptionsChange() if not m.top.allowCaptions then return @@ -66,20 +66,22 @@ sub onAllowCaptionsChange() m.top.observeField("subtitleTrack", "loadCaption") m.top.observeField("globalCaptionMode", "toggleCaption") - if get_user_setting("playback.subs.custom") = "false" - m.top.suppressCaptions = false - else + if m.global.session.user.settings["playback.subs.custom"] m.top.suppressCaptions = true toggleCaption() + else + m.top.suppressCaptions = false end if end sub +' Set caption url to server subtitle track sub loadCaption() if m.top.suppressCaptions m.captionTask.url = m.top.subtitleTrack end if end sub +' Toggles visibility of custom subtitles and sets captionTask's player state sub toggleCaption() m.captionTask.playerState = m.top.state + m.top.globalCaptionMode if LCase(m.top.globalCaptionMode) = "on" @@ -90,11 +92,13 @@ sub toggleCaption() end if end sub +' Removes old subtitle lines and adds new subtitle lines sub updateCaption() m.captionGroup.removeChildrenIndex(m.captionGroup.getChildCount(), 0) m.captionGroup.appendChildren(m.captionTask.currentCaption) end sub +' Event handler for when selectedSubtitle changes sub onSubtitleChange() ' Save the current video position m.global.queueManager.callFunc("setTopStartingPoint", int(m.top.position) * 10000000&) From 8f838e276ce74b0b847335efc5763fbccdb26250 Mon Sep 17 00:00:00 2001 From: GuillomoLavallo Date: Sat, 16 Sep 2023 17:32:45 +0000 Subject: [PATCH 15/64] Translated using Weblate (Spanish) Currently translated at 52.1% (131 of 251 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/es/ --- locale/es_ES/translations.ts | 394 +++++++++++++++++++++++++++++++++++ 1 file changed, 394 insertions(+) diff --git a/locale/es_ES/translations.ts b/locale/es_ES/translations.ts index be1c7d257..952865f25 100644 --- a/locale/es_ES/translations.ts +++ b/locale/es_ES/translations.ts @@ -4418,5 +4418,399 @@ Loading Channel Data Cargando datos de canales + + The requested content does not exist on the server + El contenido solicitado no existe en el servidor + Content of message box when the requested content is not found on the server + + + An error was encountered while playing this item. Server did not provide required transcoding data. + Un error ha ocurrido reproduciendo este elemento. El servidor no entrego los datos de transcodificación requeridos + Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url + + + Title of Tab for options to filter library content + TAB_FILTER + Filtro + + + TV Shows + Programas de TV + + + OFFICIAL_RATING + Calificación parental + + + today + hoy + Current day + + + Name or Title field of media item + TITLE + Nombre + + + Enabled + Habilitado + + + An error was encountered while playing this item. + Ha ocurrido un error reproduciendo este elemento. + Dialog detail when error occurs during playback + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Este %1 no contiene elementos + + + Thursday + Jueves + Day of Week + + + Started at + Empezó a las + (Past Tense) For defining time when a program started today (e.g. Started at 08:00) + + + Live + En vivo + If TV Show is being broadcast live (not pre-recorded) + + + Repeat + Repetir + If TV Shows has previously been broadcasted + + + Unknown + Desconocido + Title for a cast member for which we have no information for + + + Friday + Viernes + Day of Week + + + Close + Cerrar + + + Tuesday + Martes + Day of Week + + + Saturday + Sábado + Day of Week + + + DATE_PLAYED + Fecha reproducido + + + yesterday + ayer + Previous day + + + tomorrow + mañana + Next day + + + Sunday + Domingo + Day of Week + + + Starts + Empieza + (Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) + + + Ended at + Terminó a las + (Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) + + + Channels + Canales + Menu option for showing Live TV Channel List + + + TV Guide + Guía TV + Menu option for showing Live TV Guide / Schedule + + + Cancel Recording + Cancelar grabación + + + IMDB_RATING + Calificación IMDb + + + DATE_ADDED + Fecha añadido + + + Age + Edad + + + More Like This + Más como este + + + Blur Unwatched Episodes + Desenfocar Episodios sin ver + Option Title in user setting screen + + + Hide Clock + Ocultar reloj + Option Title in user setting screen + + + Next episode + Siguiente episodio + + + Record Series + Grabar serie + + + Cancel Series Recording + Cancelar grabación de serie + + + Item Count + Contador de elementos + UI -> Media Grid -> Item Count in user setting screen. + + + Show item count in the library and index of selected item. + Mostrar contador de elementos en la librería y el indice del elemento seleccionado + Description for option in Setting Screen + + + Go to series + Ir a series + Continue Watching Popup Menu - Navigate to the Series Detail Page + + + Go to season + Ir a temporada + Continue Watching Popup Menu - Navigate to the Season Page + + + Go to episode + Ir a episodio + Continue Watching Popup Menu - Navigate to the Episode Detail Page + + + Search now + Buscar ahora + Help text in search Box + + + %1 of %2 + %1 de %2 + Item position and count. %1 = current item. %2 = total number of items + + + (Dialog will close automatically) + (Dialogo se cerrará automáticamente) + + + Go directly to the episode list if a TV series has only one season. + Ir directamente a lista de episodios si la serie de TV tiene solo una temporada. + Settings Menu - Description for option + + + Blur images of unwatched episodes. + Desenfocar imágenes de episodios sin ver. + + + Ends at + Terminó + (Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) + + + View Channel + Ver canal + + + Record + Grabar + + + Version + Versión + + + User Interface + Interfaz de usuario + Title for User Interface section in user setting screen. + + + Play Trailer + Reproducir adelanto + + + Codec Support + Soporte de codificador + Settings Menu - Title for settings group related to codec support + + + MPEG-4 + MPEG-4 + Name of codec used in settings menu + + + AV1 + AV1 + Name of a setting - should we try to direct play experimental av1 codec + + + Return to Top + Volver arriba + UI -> Media Grid -> Item Title in user setting screen. + + + Cinema Mode + Modo cine + Settings Menu - Title for option + + + H.264 + H.264 + Name of codec used in settings menu + + + HEVC + HEVC + Name of codec used in settings menu + + + Here is your Quick Connect code: + Este es tu código de conexión rápida: + + + There was an error authenticating via Quick Connect. + Hubo un error autenticando por medio de Conexión rápida. + + + Networks + Redes + + + Studios + Estudios + + + You can search for Titles, People, Live TV Channels and more + Puedes buscar por Títulos, Personas, Canales en vivo y más + Help text in search results + + + ...or enter server URL manually: + Si no hay servidores en la lista anterior, también puedes ingresar la URL manualmente + Instructions on initial app launch when the user is asked to manually enter a server URL + + + Disabled + Deshabilitado + + + On Now + Transmitiendo Ahora + + + Error loading Channel Data + Error cargando datos del canal + + + PLAY_COUNT + Contador de reproducciones + + + RELEASE_DATE + Fecha de estreno + + + Title of Tab for options to sort library content + TAB_SORT + Ordenar + + + Movies + Películas + + + Unable to load Channel Data from the server + Imposible cargar datos del servidor + + + Monday + Lunes + Day of Week + + + Wednesday + Miércoles + Day of Week + + + Started + Empezó + (Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) + + + Starts at + Empieza a las + (Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) + + + Connecting to Server + Conectando al servidor + Message to display to user while client is attempting to connect to the server + + + Not found + No encontrado + Title of message box when the requested content is not found on the server + + + Enter the server name or IP address + Ingresa nombre o dirección IP del servidor + Title of KeyboardDialog when manually entering a server URL + + + Pick a Jellyfin server from the local network + Selecciona un servidor Jellyfin disponible en tu red local: + Instructions on initial app launch when the user is asked to pick a server from a list + + + Enable or disable Direct Play for optional codecs + Habilita o deshabilita reproducción directa para codificadores opcionales + Settings Menu - Title for settings group related to codec support + + + MPEG-2 + MPEG-2 + Name of codec used in settings menu + + + Quick Connect + Conexión rápida + From f1512dc80a267c2312cd9f3f02b1018f3e64556c Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Sat, 16 Sep 2023 18:48:34 -0400 Subject: [PATCH 16/64] don't save username and password --- source/ShowScenes.brs | 90 ----------------------------------------- source/api/userauth.brs | 2 - 2 files changed, 92 deletions(-) diff --git a/source/ShowScenes.brs b/source/ShowScenes.brs index c98363401..81c40edc7 100644 --- a/source/ShowScenes.brs +++ b/source/ShowScenes.brs @@ -93,23 +93,6 @@ function LoginFlow() else print "No auth token found in registry for selected user" end if - ' try to login with password from registry - userData = invalid - myPassword = get_user_setting("password") - if isValid(myPassword) - ' saved password found for selected user - print "Saved credentials found for selected user. Attempting to login" - userData = get_token(userSelected, myPassword) - if isValid(userData) - print "login success!" - session.user.Login(userData) - LoadUserPreferences() - LoadUserAbilities() - return true - end if - else - print "No saved credentials found for selected user" - end if 'Try to login without password. If the token is valid, we're done print "Attempting to login with no password" userData = get_token(userSelected, "") @@ -157,42 +140,6 @@ function LoginFlow() end if else print "No auth token found in registry" - - print "Checking to see if we have saved credentials" - myUsername = get_user_setting("username") - myPassword = get_user_setting("password") - userData = invalid - - if isValid(myUsername) and isValid(myPassword) - if myUsername <> "" - print "Username and password found in registry. Attempting to login" - userData = get_token(myUsername, myPassword) - else - print "Username in registry is an empty string" - unset_user_setting("username") - unset_user_setting("password") - end if - else if isValid(myUsername) and not isValid(myPassword) - print "Username found in registry but no password" - if myUsername <> "" - print "Attempting to login with no password" - userData = get_token(myUsername, "") - else - print "Username in registry is an empty string" - unset_user_setting("username") - end if - - else if not isValid(myUsername) and not isValid(myPassword) - print "Neither username nor password found in registry - restart login flow" - unset_setting("active_user") - session.user.Logout() - goto start_login - end if - - if isValid(userData) - print "login success!" - session.user.Login(userData) - end if end if end if @@ -313,11 +260,6 @@ function CreateServerGroup() m.scene.dialog = dialog serverUrl = standardize_jellyfin_url(screen.serverUrl) - 'If this is a different server from what we know, reset username/password setting - if m.global.session.server.url <> serverUrl - set_setting("username", "") - set_setting("password", "") - end if set_setting("server", serverUrl) isConnected = session.server.UpdateURL(serverUrl) @@ -489,11 +431,7 @@ function CreateSigninGroup(user = "") session.user.Login(activeUser) ' save credentials if checkbox.checkedState[0] = true - set_user_setting("username", username.value) - set_user_setting("password", password.value) set_user_setting("token", activeUser.token) - 'Update our saved server list, so next time the user can just click and go - UpdateSavedServerList() end if return "true" end if @@ -905,34 +843,6 @@ function CreatePersonView(personData as object) as dynamic return person end function -sub UpdateSavedServerList() - server = m.global.session.server.url - username = get_setting("username") - password = get_setting("password") - - if server = invalid or username = invalid or password = invalid - return - end if - - server = LCase(server)'Saved server data is always lowercase - - saved = get_setting("saved_servers") - if isValid(saved) - savedServers = ParseJson(saved) - if isValid(savedServers.serverList) and savedServers.serverList.Count() > 0 - newServers = { serverList: [] } - for each item in savedServers.serverList - if item.baseUrl = server - item.username = username - item.password = password - end if - newServers.serverList.Push(item) - end for - set_setting("saved_servers", FormatJson(newServers)) - end if - end if -end sub - 'Opens dialog asking user if they want to resume video or start playback over only on the home screen sub playbackOptionDialog(time as longinteger, meta as object) diff --git a/source/api/userauth.brs b/source/api/userauth.brs index cef1d8937..c9627e39c 100644 --- a/source/api/userauth.brs +++ b/source/api/userauth.brs @@ -34,8 +34,6 @@ end function sub SignOut(deleteSavedEntry = true as boolean) if m.global.session.user.id <> invalid and deleteSavedEntry = true unset_user_setting("token") - unset_user_setting("username") - unset_user_setting("password") end if unset_setting("active_user") session.user.Logout() From ac1e57b32eeca10d76bf8029f9931ade9d5c38a7 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Sat, 16 Sep 2023 19:40:57 -0400 Subject: [PATCH 17/64] save username and append to deviceid in auth header --- source/ShowScenes.brs | 31 +++++++++++++++++++++++++---- source/api/baserequest.brs | 14 ++++++++----- source/api/userauth.brs | 1 + source/utils/deviceCapabilities.brs | 2 +- source/utils/session.bs | 6 ++++++ 5 files changed, 44 insertions(+), 10 deletions(-) diff --git a/source/ShowScenes.brs b/source/ShowScenes.brs index 81c40edc7..48a1853db 100644 --- a/source/ShowScenes.brs +++ b/source/ShowScenes.brs @@ -65,6 +65,9 @@ function LoginFlow() goto start_login else print "A public user was selected with username=" + userSelected + session.user.Update("name", userSelected) + regex = CreateObject("roRegex", "[^a-zA-Z0-9\ \-\_]", "") + session.user.Update("friendlyName", regex.ReplaceAll(userSelected, "")) ' save userid to session for each user in publicUsersNodes if user.name = userSelected @@ -83,6 +86,7 @@ function LoginFlow() if currentUser = invalid print "Auth token is no longer valid - deleting token" unset_user_setting("token") + unset_user_setting("username") else print "Success! Auth token is still valid" session.user.Login(currentUser) @@ -124,16 +128,34 @@ function LoginFlow() print "Active user found in registry" session.user.Update("id", activeUser) + myUsername = get_user_setting("username") myAuthToken = get_user_setting("token") - if isValid(myAuthToken) + if isValid(myAuthToken) and isValid(myUsername) print "Auth token found in registry" session.user.Update("authToken", myAuthToken) + session.user.Update("name", myUsername) + regex = CreateObject("roRegex", "[^a-zA-Z0-9\ \-\_]", "") + session.user.Update("friendlyName", regex.ReplaceAll(myUsername, "")) print "Attempting to use API with auth token" currentUser = AboutMe() if currentUser = invalid - print "Auth token is no longer valid - delete token and restart login flow" - unset_user_setting("token") - goto start_login + print "Auth token is no longer valid" + 'Try to login without password. If the token is valid, we're done + print "Attempting to login with no password" + userData = get_token(userSelected, "") + if isValid(userData) + print "login success!" + session.user.Login(userData) + LoadUserPreferences() + LoadUserAbilities() + return true + else + print "Auth failed. Password required" + print "delete token and restart login flow" + unset_user_setting("token") + unset_user_setting("username") + goto start_login + end if else print "Success! Auth token is still valid" session.user.Login(currentUser) @@ -432,6 +454,7 @@ function CreateSigninGroup(user = "") ' save credentials if checkbox.checkedState[0] = true set_user_setting("token", activeUser.token) + set_user_setting("username", username.value) end if return "true" end if diff --git a/source/api/baserequest.brs b/source/api/baserequest.brs index fde121ac1..75710c232 100644 --- a/source/api/baserequest.brs +++ b/source/api/baserequest.brs @@ -203,14 +203,18 @@ function authRequest(request as object) as object if m.global.session.user.id <> invalid auth = auth + ", UserId=" + QUOTE + m.global.session.user.id + QUOTE - auth = auth + ", DeviceId=" + QUOTE + m.global.device.id + QUOTE - if m.global.session.user.authToken <> invalid - auth = auth + ", Token=" + QUOTE + m.global.session.user.authToken + QUOTE - end if + end if + + if m.global.session.user <> invalid and m.global.session.user.friendlyName <> invalid + auth = auth + ", DeviceId=" + QUOTE + m.global.device.id + m.global.session.user.friendlyName + QUOTE else - auth = auth + ", DeviceId=" + QUOTE + m.global.device.uuid + QUOTE + auth = auth + ", DeviceId=" + QUOTE + m.global.device.id + QUOTE end if + if m.global.session.user.authToken <> invalid + auth = auth + ", Token=" + QUOTE + m.global.session.user.authToken + QUOTE + end if + print auth request.AddHeader("Authorization", auth) return request end function diff --git a/source/api/userauth.brs b/source/api/userauth.brs index c9627e39c..ce00984b9 100644 --- a/source/api/userauth.brs +++ b/source/api/userauth.brs @@ -34,6 +34,7 @@ end function sub SignOut(deleteSavedEntry = true as boolean) if m.global.session.user.id <> invalid and deleteSavedEntry = true unset_user_setting("token") + unset_user_setting("username") end if unset_setting("active_user") session.user.Logout() diff --git a/source/utils/deviceCapabilities.brs b/source/utils/deviceCapabilities.brs index 2501bd87b..c8f59ce4a 100644 --- a/source/utils/deviceCapabilities.brs +++ b/source/utils/deviceCapabilities.brs @@ -12,7 +12,7 @@ function getDeviceCapabilities() as object "Photo" ], "SupportedCommands": [], - "SupportsPersistentIdentifier": false, + "SupportsPersistentIdentifier": true, "SupportsMediaControl": false, "SupportsContentUploading": false, "SupportsSync": false, diff --git a/source/utils/session.bs b/source/utils/session.bs index 53146a3d3..9793641d0 100644 --- a/source/utils/session.bs +++ b/source/utils/session.bs @@ -137,6 +137,10 @@ namespace session tmpSession.AddReplace("user", userData.json.User) tmpSession.user.AddReplace("authToken", userData.json.AccessToken) end if + ' remove special characters from name + regex = CreateObject("roRegex", "[^a-zA-Z0-9\ \-\_]", "") + friendlyName = regex.ReplaceAll(tmpSession.user.name, "") + tmpSession.user.AddReplace("friendlyName", friendlyName) tmpSession.user.AddReplace("settings", oldUserSettings) ' update global user session @@ -149,11 +153,13 @@ namespace session end for if m.global.app.isDev + print "m.global.session.user = ", m.global.session.user print "m.global.session.user.settings = ", m.global.session.user.settings end if if m.global.session.user.settings["global.rememberme"] set_user_setting("token", tmpSession.user.authToken) + set_user_setting("username", tmpSession.user.name) end if end sub From a69ee3f2442d278b33c3cfb666d2a77da3296f0e Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Sat, 16 Sep 2023 20:08:54 -0400 Subject: [PATCH 18/64] remove debugging --- source/api/baserequest.brs | 2 +- source/utils/session.bs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/source/api/baserequest.brs b/source/api/baserequest.brs index 75710c232..103461339 100644 --- a/source/api/baserequest.brs +++ b/source/api/baserequest.brs @@ -214,7 +214,7 @@ function authRequest(request as object) as object if m.global.session.user.authToken <> invalid auth = auth + ", Token=" + QUOTE + m.global.session.user.authToken + QUOTE end if - print auth + request.AddHeader("Authorization", auth) return request end function diff --git a/source/utils/session.bs b/source/utils/session.bs index 9793641d0..01c5712da 100644 --- a/source/utils/session.bs +++ b/source/utils/session.bs @@ -153,7 +153,6 @@ namespace session end for if m.global.app.isDev - print "m.global.session.user = ", m.global.session.user print "m.global.session.user.settings = ", m.global.session.user.settings end if From abbc3c034fd9dbd8b2456aa1aa78fae0edcedf9c Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Sat, 16 Sep 2023 20:10:42 -0400 Subject: [PATCH 19/64] create registry migration - delete deprecated settings --- source/Main.brs | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/source/Main.brs b/source/Main.brs index 474f178ac..ed225b28d 100644 --- a/source/Main.brs +++ b/source/Main.brs @@ -62,7 +62,8 @@ sub Main (args as dynamic) as void end if ' Only show the Whats New popup the first time a user runs a new client version. - if m.global.app.version <> get_setting("LastRunVersion") + appLastRunVersion = get_setting("LastRunVersion") + if m.global.app.version <> appLastRunVersion ' Ensure the user hasn't disabled Whats New popups if m.global.session.user.settings["load.allowwhatsnew"] = true set_setting("LastRunVersion", m.global.app.version) @@ -72,6 +73,34 @@ sub Main (args as dynamic) as void end if end if + ' Registry migrations + if isValid(appLastRunVersion) and not versionChecker(appLastRunVersion, "1.7.0") + ' last app version used less than 1.7.0 + ' no longer saving raw password to registry + ' auth token and username are now stored in user settings and not global settings + print "Running 1.7.0 registry migrations" + ' remove global settings + unset_setting("token") + unset_setting("username") + unset_setting("password") + ' remove user settings + unset_user_setting("password") + ' remove saved credentials from saved_servers + saved = get_setting("saved_servers") + if isValid(saved) + savedServers = ParseJson(saved) + if isValid(savedServers.serverList) and savedServers.serverList.Count() > 0 + newServers = { serverList: [] } + for each item in savedServers.serverList + item.Delete("username") + item.Delete("password") + newServers.serverList.Push(item) + end for + set_setting("saved_servers", FormatJson(newServers)) + end if + end if + end if + ' Handle input messages input = CreateObject("roInput") input.SetMessagePort(m.port) From fe8a9ca0e08e57e70614d53464f4a563cd623ef9 Mon Sep 17 00:00:00 2001 From: 1hitsong <3330318+1hitsong@users.noreply.github.com> Date: Sat, 16 Sep 2023 20:31:51 -0400 Subject: [PATCH 20/64] Fix trailer button Fixes #1377 --- components/movies/MovieDetails.brs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/components/movies/MovieDetails.brs b/components/movies/MovieDetails.brs index 4f72b4783..913ccd796 100644 --- a/components/movies/MovieDetails.brs +++ b/components/movies/MovieDetails.brs @@ -38,11 +38,13 @@ end sub sub trailerAvailableChanged() if m.top.trailerAvailable ' add trailor button to button group - trailerButton = CreateObject("roSGNode", "JFButton") + trailerButton = CreateObject("roSGNode", "Button") trailerButton.id = "trailer-button" trailerButton.text = tr("Play Trailer") + trailerButton.iconUri = "" + trailerButton.focusedIconUri = "" trailerButton.maxWidth = "300" - trailerButton.minWidth = "300" + trailerButton.minWidth = "280" m.buttonGrp.appendChild(trailerButton) else ' remove trailor button from button group From de1017762a075ce968de0da9fbde637788af4d0e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Sep 2023 00:49:55 +0000 Subject: [PATCH 21/64] Update dependency markdownlint-cli2 to v0.10.0 --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9279b4262..810bc8862 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "@rokucommunity/bslint": "0.8.10", "brighterscript": "0.65.5", "jshint": "2.13.6", - "markdownlint-cli2": "0.9.2", + "markdownlint-cli2": "0.10.0", "rimraf": "5.0.1", "roku-deploy": "3.10.3", "roku-log-bsc-plugin": "0.8.1", @@ -2316,9 +2316,9 @@ } }, "node_modules/markdownlint": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.30.0.tgz", - "integrity": "sha512-nInuFvI/rEzanAOArW5490Ez4EYpB5ODqVM0mcDYCPx9DKJWCQqCgejjiCvbSeE7sjbDscVtZmwr665qpF5xGA==", + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.31.1.tgz", + "integrity": "sha512-CKMR2hgcIBrYlIUccDCOvi966PZ0kJExDrUi1R+oF9PvqQmCrTqjOsgIvf2403OmJ+CWomuzDoylr6KbuMyvHA==", "dev": true, "dependencies": { "markdown-it": "13.0.1", @@ -2329,17 +2329,17 @@ } }, "node_modules/markdownlint-cli2": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.9.2.tgz", - "integrity": "sha512-ndijEHIOikcs29W8068exHXlfkFviGFT/mPhREia7zSfQzHvTDkL2s+tWizvELjLHiKRO4KGTkkJyR3oeR8A5g==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.10.0.tgz", + "integrity": "sha512-kVxjPyKFC+eW7iqcxiNI50RDzwugpXkEX5eQlDso/0IUs9M73jXYguLFHDzgi5KatcxU/57Fu8KoGtkFft9lfA==", "dev": true, "dependencies": { "globby": "13.2.2", - "markdownlint": "0.30.0", + "markdownlint": "0.31.1", "markdownlint-cli2-formatter-default": "0.0.4", "micromatch": "4.0.5", "strip-json-comments": "5.0.1", - "yaml": "2.3.1" + "yaml": "2.3.2" }, "bin": { "markdownlint-cli2": "markdownlint-cli2.js", @@ -5453,9 +5453,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", "dev": true, "engines": { "node": ">= 14" diff --git a/package.json b/package.json index 0c0be0ba3..59477baa6 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "@rokucommunity/bslint": "0.8.10", "brighterscript": "0.65.5", "jshint": "2.13.6", - "markdownlint-cli2": "0.9.2", + "markdownlint-cli2": "0.10.0", "rimraf": "5.0.1", "roku-deploy": "3.10.3", "roku-log-bsc-plugin": "0.8.1", From c2039ee88b1c48bdd922d12d5848b701e74e942b Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 18 Sep 2023 07:48:36 +0000 Subject: [PATCH 22/64] Translated using Weblate (German) Currently translated at 20.8% (56 of 268 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 78 ++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index ad7ce59f6..0e6f3bb09 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -11439,5 +11439,83 @@ Aktivieren oder Deaktivieren von Direct Play für optionale Codecs Settings Menu - Title for settings group related to codec support + + Error During Playback + Fehler während der Wiedergabe + Dialog title when error occurs during playback + + + Sign Out + Abmelden + + + There was an error retrieving the data for this item from the server. + Fehler beim Laden dieses Eintrags vom Server. + Dialog detail when unable to load Content from Server + + + Loading Channel Data + Lade Kanaldaten + + + Name or Title field of media item + TITLE + Name + + + Error loading Channel Data + Fehler beim Laden der Kanaldaten + + + On Now + Jetzt läuft + + + An error was encountered while playing this item. + Bei der Wiedergabe dieses Eintrags ist ein Fehler aufgetreten. + Dialog detail when error occurs during playback + + + Unable to load Channel Data from the server + Kanaldaten konnten nicht vom Server geladen werden + + + Delete Saved + Gespeicherte löschen + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + %1 enthält keine Einträge + + + Save Credentials? + Anmeldedaten speichern? + + + Change Server + Server wechseln + + + CRITIC_RATING + Kritikerbewertung + + + IMDB_RATING + IMDb-Bewertung + + + DATE_PLAYED + Abspieldatum + + + DATE_ADDED + Hinzugefügt am + + + Error Retrieving Content + Fehler beim Empfangen des Inhalts + Dialog title when unable to load Content from Server + From be576d64c7a09169777abe4f9065800945581c3a Mon Sep 17 00:00:00 2001 From: Prasaedonium Date: Wed, 20 Sep 2023 08:22:36 +0000 Subject: [PATCH 23/64] Translated using Weblate (Spanish) Currently translated at 43.2% (116 of 268 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/es/ --- locale/es_ES/translations.ts | 358 +++++++++++++++++++++++++++++++++++ 1 file changed, 358 insertions(+) diff --git a/locale/es_ES/translations.ts b/locale/es_ES/translations.ts index 952865f25..b7ec8f022 100644 --- a/locale/es_ES/translations.ts +++ b/locale/es_ES/translations.ts @@ -4812,5 +4812,363 @@ Quick Connect Conexión rápida + + An error was encountered while playing this item. + Ha ocurrido un error reproduciendo este elemento. + Dialog detail when error occurs during playback + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Este %1 no contiene elementos + + + CRITIC_RATING + Puntuación de los Críticos + + + OFFICIAL_RATING + Calificación Parental + + + RUNTIME + Duración + + + Monday + Lunes + Day of Week + + + Thursday + Jueves + Day of Week + + + Starts at + Empieza a las + (Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) + + + Ended at + Terminó a las + (Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) + + + Repeat + Repetir + If TV Shows has previously been broadcasted + + + Connecting to Server + Conectando al Servidor + Message to display to user while client is attempting to connect to the server + + + The requested content does not exist on the server + El contenido solicitado no existe en el servidor + Content of message box when the requested content is not found on the server + + + Pick a Jellyfin server from the local network + Selecciona un servidor Jellyfin disponible en tu red local: + Instructions on initial app launch when the user is asked to pick a server from a list + + + An error was encountered while playing this item. Server did not provide required transcoding data. + Un error ha ocurrido reproduciendo este elemento. El servidor no entregó los datos de transcodificación requeridos. + Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url + + + Title of Tab for options to filter library content + TAB_FILTER + Filtrar + + + TV Shows + Programas de TV + + + today + hoy + Current day + + + Name or Title field of media item + TITLE + Nombre + + + Wednesday + Miércoles + Day of Week + + + Born + Nacido en + + + Additional Parts + Partes Adicionales + Additional parts of a video + + + Movies + Películas + + + Started at + Empezó a las + (Past Tense) For defining time when a program started today (e.g. Started at 08:00) + + + Started + Empezó + (Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) + + + Live + En vivo + If TV Show is being broadcast live (not pre-recorded) + + + Unknown + Desconocido + Title for a cast member for which we have no information for + + + MPEG-2 + MPEG-2 + Name of codec used in settings menu + + + Friday + Viernes + Day of Week + + + Close + Cerrar + + + Tuesday + Martes + Day of Week + + + Saturday + Sábado + Day of Week + + + DATE_PLAYED + Reproducido en Fecha + + + Died + Murió en + + + Press 'OK' to Close + Presiona 'OK' para Cerrar + + + Special Features + Características Especiales + + + yesterday + ayer + Previous day + + + tomorrow + mañana + Next day + + + Sunday + Domingo + Day of Week + + + Starts + Empieza + (Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) + + + Channels + Canales + Menu option for showing Live TV Channel List + + + TV Guide + Guía de TV + Menu option for showing Live TV Guide / Schedule + + + Cancel Recording + Cancelar Grabación + + + Title of Tab for switching "views" when looking at a library + TAB_VIEW + Ver + + + IMDB_RATING + Calificación IMDb + + + DATE_ADDED + Añadido en Fecha + + + Age + Edad + + + Cast & Crew + Elenco y Equipo + + + More Like This + Más como este + + + Save Credentials? + ¿Guardar Credenciales? + + + Movies (Grid) + Películas (Cuadrícula) + Movie library view option + + + Record Series + Grabar Serie + + + Cancel Series Recording + Cancelar Grabación de Serie + + + Ends at + Terminó + (Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) + + + View Channel + Ver Canal + + + Record + Grabar + + + Version + Versión + + + Playback + Reproducción + Title for Playback section in user setting screen. + + + Codec Support + Soporte de Codificador + Settings Menu - Title for settings group related to codec support + + + MPEG-4 + MPEG-4 + Name of codec used in settings menu + + + ...or enter server URL manually: + Si no hay servidores en la lista anterior, también puedes ingresar la URL manualmente: + Instructions on initial app launch when the user is asked to manually enter a server URL + + + Change Server + Cambiar de Servidor + + + On Now + Transmitiendo Ahora + + + Error Retrieving Content + Error Al Recuperar Contenido + Dialog title when unable to load Content from Server + + + Error During Playback + Error Al Reproducir + Dialog title when error occurs during playback + + + There was an error retrieving the data for this item from the server. + Ha ocurrido un error al obtener este elemento desde el servidor. + Dialog detail when unable to load Content from Server + + + Sign Out + Cerrar Sesión + + + Delete Saved + Borrar Guardados + + + Loading Channel Data + Cargando Datos del Canal + + + Error loading Channel Data + Error al Cargar Datos del Canal + + + PLAY_COUNT + Veces Reproducido + + + RELEASE_DATE + Fecha de Estreno + + + Title of Tab for options to sort library content + TAB_SORT + Ordenar + + + Unable to load Channel Data from the server + Imposible cargar Datos del Canal desde el servidor + + + Movies (Presentation) + Películas (Modo Presentación) + Movie library view option + + + Not found + No Encontrado + Title of message box when the requested content is not found on the server + + + Enter the server name or IP address + Ingresa nombre o dirección IP del servidor + Title of KeyboardDialog when manually entering a server URL + + + Error Getting Playback Information + Error al Obtener la Información de Reproducción + Dialog Title: Received error from server when trying to get information about the selected item for playback + + + Enable or disable Direct Play for optional codecs + Habilita o deshabilita la Reproducción Directa para codificadores opcionales + Settings Menu - Title for settings group related to codec support + From d05130f3600e7dcc470a8a00eaad7e01930c9899 Mon Sep 17 00:00:00 2001 From: Prasaedonium Date: Wed, 20 Sep 2023 09:18:58 +0000 Subject: [PATCH 24/64] Translated using Weblate (Spanish) Currently translated at 69.4% (186 of 268 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/es/ --- locale/es_ES/translations.ts | 322 +++++++++++++++++++++++++++++++++++ 1 file changed, 322 insertions(+) diff --git a/locale/es_ES/translations.ts b/locale/es_ES/translations.ts index b7ec8f022..d4bffc30b 100644 --- a/locale/es_ES/translations.ts +++ b/locale/es_ES/translations.ts @@ -5170,5 +5170,327 @@ Habilita o deshabilita la Reproducción Directa para codificadores opcionales Settings Menu - Title for settings group related to codec support + + Media Grid + Cuadrícula de multimedia + UI -> Media Grid section in user setting screen. + + + Show item count in the library and index of selected item. + Mostrar cantidad de elementos en la biblioteca y el índice del elemento seleccionado. + Description for option in Setting Screen + + + Hide Taglines + Ocultar Eslogan + Option Title in user setting screen + + + Blur images of unwatched episodes. + Desenfocar imágenes de episodios sin ver. + + + Custom Subtitles + Subtitulos Personalizados + Name of a setting - custom subtitles that support CJK fonts + + + Enabled + Habilitado + + + Codec + Códec + + + Quick Connect + Conexión Rápida + + + Design Elements + Elementos de Diseño + + + Blur Unwatched Episodes + Desenfocar Episodios No Vistos + Option Title in user setting screen + + + Skip Details for Single Seasons + Saltar Detalles para Temporadas Únicas + Settings Menu - Title for option + + + Hide Clock + Ocultar Reloj + Option Title in user setting screen + + + Next episode + Siguiente episodio + + + Item Count + Cantidad de Elementos + UI -> Media Grid -> Item Count in user setting screen. + + + Set Favorite + Agregar a Favoritos + Button Text - When pressed, sets item as Favorite + + + Set Watched + Marcar como Visto + Button Text - When pressed, marks item as Warched + + + Go to series + Ir a series + Continue Watching Popup Menu - Navigate to the Series Detail Page + + + Go to season + Ir a temporada + Continue Watching Popup Menu - Navigate to the Season Page + + + Go to episode + Ir a episodio + Continue Watching Popup Menu - Navigate to the Episode Detail Page + + + Search now + Buscar ahora + Help text in search Box + + + %1 of %2 + %1 de %2 + Item position and count. %1 = current item. %2 = total number of items + + + (Dialog will close automatically) + (El Diálogo se cerrará automáticamente) + + + Hides tagline text on details pages. + Ocultar texto de eslogan en páginas de detalles. + + + Options for TV Shows. + Opciones para Series de TV. + Description for TV Shows user settings. + + + Go directly to the episode list if a TV series has only one season. + Ir directamente a lista de episodios si la serie de TV tiene solo una temporada. + Settings Menu - Description for option + + + Audio Codec + Códec de Audio + + + Video range type + Tipo de rango de video + + + Video Codec + Códec de Video + + + Playback Information + Información de Reproducción + + + Total Bitrate + Tasa de Bits Total + + + Size + Tamaño + Video size + + + Bit Rate + Tasa de Bits + Video streaming bit rate + + + Pixel format + Formato de pixeles + Video pixel format + + + Unable to find any albums or songs belonging to this artist + No se pudieron encontrar álbumes o canciones relacionadas a este artista + Popup message when we find no audio data for an artist + + + WxH + WxH + Video width x height + + + Text Subtitles Only + Subtítulos de Texto Únicamente + Name of a setting - should we hide subtitles that might transcode + + + User Interface + Interfaz de usuario + Title for User Interface section in user setting screen. + + + Media Grid options. + Opciones de la Cuadrícula de Multimedia. + + + Play Trailer + Reproducir Trailer + + + direct + directo + + + Aired + Publicado + Aired date label + + + AV1 + AV1 + Name of a setting - should we try to direct play experimental av1 codec + + + Return to Top + Volver Arriba + UI -> Media Grid -> Item Title in user setting screen. + + + Options that alter the design of Jellyfin. + Opciones que alteran el diseño de Jellyfin. + Description for Design Elements user settings. + + + Use Splashscreen as Home Background + Usar Pantalla de Bienvenida como Fondo de Inicio + Option Title in user setting screen + + + Cinema Mode + Modo Cine + Settings Menu - Title for option + + + H.264 + H.264 + Name of codec used in settings menu + + + HEVC + HEVC + Name of codec used in settings menu + + + Settings relating to how the application looks. + Configuración relacionada a como se ve la aplicación. + + + Reason + Razón + + + Transcoding Information + Información de Transcodificación + + + Codec Tag + Tag del Códec + + + Level + Nivel + Video profile level + + + Audio Channels + Canales de Audio + + + Stream Information + Información de la Transmisión + + + Container + Contenedor + Video streaming container + + + Only display text subtitles to minimize transcoding. + Solo mostrar subtítulos de texto para minimizar la transcodificación. + Description of a setting - should we hide subtitles that might transcode + + + all + todo + all will reset the searchTerm so all data will be availible + + + Here is your Quick Connect code: + Este es tu código de Conexión Rápida: + + + There was an error authenticating via Quick Connect. + Hubo un error autenticando por medio de Conexión Rápida. + + + Networks + Redes + + + Studios + Estudios + + + Shows + Series + + + You can search for Titles, People, Live TV Channels and more + Puedes buscar por Títulos, Personas, Canales en vivo y más + Help text in search results + + + Disabled + Deshabilitado + + + ** EXPERIMENTAL** Support Direct Play of AV1 content if this Roku device supports it. + **EXPERIMENTAL** Soporte de Reproducción Directa para contenido AV1 si este dispositivo Roku es compatible. + Description of a setting - should we try to direct play experimental av1 codec + + + Use voice remote to search + Utilizar la búsqueda por voz + Help text in search voice text box + + + Support Direct Play of MPEG-2 content (e.g., Live TV). This will prevent transcoding of MPEG-2 content, but uses significantly more bandwidth. + Soporte de reproducción directa para contenido MPEG-2 (ej., televisión en vivo). Esto previene la transcodificación de contenido MPEG-2, pero a mayor uso de ancho de banda. + Settings Menu - Description for option + + + Support Direct Play of MPEG-4 content. This may need to be disabled for playback of DIVX encoded video files. + Soporte de reproducción directa para contenido MPEG-4. Esto podría requerir ser deshabilitado para poder reproducir los archivos de video con encodificación DIVX. + Settings Menu - Description for option + + + Use the replay button to slowly animate to the first item in the folder. (If disabled, the folder will reset to the first item immediately). + Use el botón de reproducción para animar lentamente al primer elemento de la carpeta. (Si está deshabilitado, la carpeta se restablecerá al primer elemento inmediatamente). + Description for option in Setting Screen + From 3f658c719fb9ded528a7d6fd871cffdf21a70029 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Thu, 21 Sep 2023 09:48:52 -0400 Subject: [PATCH 25/64] remove unneeded imports --- components/data/SceneManager.brs | 2 -- 1 file changed, 2 deletions(-) diff --git a/components/data/SceneManager.brs b/components/data/SceneManager.brs index 9faa36bb8..51191bb8d 100755 --- a/components/data/SceneManager.brs +++ b/components/data/SceneManager.brs @@ -1,6 +1,4 @@ import "pkg:/source/roku_modules/log/LogMixin.brs" -import "pkg:/source/utils/config.brs" -import "pkg:/source/utils/session.bs" sub init() m.log = log.Logger("SceneManager") From 43b7e48ba4872855cda61e11751ad221464a41c4 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Thu, 21 Sep 2023 09:58:07 -0400 Subject: [PATCH 26/64] Wipe server session when changing server --- source/Main.brs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Main.brs b/source/Main.brs index ed225b28d..4ad8d3d1a 100644 --- a/source/Main.brs +++ b/source/Main.brs @@ -549,7 +549,7 @@ sub Main (args as dynamic) as void group.findNode("SearchBox").findNode("search_Key").active = true else if button.id = "change_server" unset_setting("server") - unset_setting("port") + session.server.Delete() SignOut(false) sceneManager.callFunc("clearScenes") goto app_start From 0631215c15e9bb9b0f946a05b10967a59fb6ccbb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 18:30:37 +0000 Subject: [PATCH 27/64] Update actions/checkout digest to 8ade135 --- .github/workflows/build-dev.yml | 2 +- .github/workflows/build-prod.yml | 6 +++--- .github/workflows/roku-analysis.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 90f01e7bd..b6eb244a7 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -12,7 +12,7 @@ jobs: dev: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3 with: node-version: "lts/*" diff --git a/.github/workflows/build-prod.yml b/.github/workflows/build-prod.yml index 69f6387d8..12cfe1ffb 100644 --- a/.github/workflows/build-prod.yml +++ b/.github/workflows/build-prod.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout master (the latest release) - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 with: ref: master - name: Install jq to parse json @@ -33,7 +33,7 @@ jobs: - name: Save old Makefile version run: awk 'BEGIN { FS=" = " } /^VERSION/ { print "oldMakeVersion="$2; }' Makefile >> $GITHUB_ENV - name: Checkout PR branch - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - name: Save new package.json version run: echo "newPackVersion=$(jq -r ".version" package.json)" >> $GITHUB_ENV - name: package.json version must be updated @@ -61,7 +61,7 @@ jobs: prod: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3 with: node-version: "lts/*" diff --git a/.github/workflows/roku-analysis.yml b/.github/workflows/roku-analysis.yml index 0965214fc..73122243a 100644 --- a/.github/workflows/roku-analysis.yml +++ b/.github/workflows/roku-analysis.yml @@ -11,7 +11,7 @@ jobs: static: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3 with: node-version: "lts/*" From 698720f8ac7349f8c51df91c0c04a52508882813 Mon Sep 17 00:00:00 2001 From: Mirronth Date: Sat, 23 Sep 2023 16:46:29 +0000 Subject: [PATCH 28/64] Translated using Weblate (Hungarian) Currently translated at 15.2% (41 of 268 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/hu/ --- locale/hu/translations.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/locale/hu/translations.ts b/locale/hu/translations.ts index 47529ceaa..c2ad7fc3e 100644 --- a/locale/hu/translations.ts +++ b/locale/hu/translations.ts @@ -11268,5 +11268,10 @@ Direct playing Közvetlen lejátszás + + Name or Title field of media item + TITLE + Név + From a05039e5df6d597b173ebd48c50e62d78227939f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 23:08:13 +0000 Subject: [PATCH 29/64] Update dependency rimraf to v5.0.4 --- package-lock.json | 42 +++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 810bc8862..06b326b64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "brighterscript": "0.65.5", "jshint": "2.13.6", "markdownlint-cli2": "0.10.0", - "rimraf": "5.0.1", + "rimraf": "5.0.4", "roku-deploy": "3.10.3", "roku-log-bsc-plugin": "0.8.1", "rooibos-roku": "5.7.0", @@ -3482,13 +3482,13 @@ } }, "node_modules/path-scurry": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", - "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, "dependencies": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -4219,15 +4219,15 @@ } }, "node_modules/rimraf": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", - "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.4.tgz", + "integrity": "sha512-rizQI/o/YAMM1us0Zyax0uRfIK39XR52EAjjOi0fzMolpGp0onj6CWzBAXuOx6+6Xi9Rgi0d9tUZojhJerLUmQ==", "dev": true, "dependencies": { - "glob": "^10.2.5" + "glob": "^10.3.7" }, "bin": { - "rimraf": "dist/cjs/src/bin.js" + "rimraf": "dist/esm/bin.mjs" }, "engines": { "node": ">=14" @@ -4246,19 +4246,19 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz", - "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.7.tgz", + "integrity": "sha512-wCMbE1m9Nx5yD9LYtgsVWq5VhHlk5WzJirw594qZR6AIvQYuHrdDtIktUVjQItalD53y7dqoedu9xP0u0WaxIQ==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -4268,9 +4268,9 @@ } }, "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" diff --git a/package.json b/package.json index 59477baa6..4eac83d0d 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "brighterscript": "0.65.5", "jshint": "2.13.6", "markdownlint-cli2": "0.10.0", - "rimraf": "5.0.1", + "rimraf": "5.0.4", "roku-deploy": "3.10.3", "roku-log-bsc-plugin": "0.8.1", "rooibos-roku": "5.7.0", From 339598588b07ea0f2b255c0db3282ca35db69a9f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 08:22:34 +0000 Subject: [PATCH 30/64] Update dependency rimraf to v5.0.5 --- package-lock.json | 172 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 161 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 06b326b64..ba0f34a2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "brighterscript": "0.65.5", "jshint": "2.13.6", "markdownlint-cli2": "0.10.0", - "rimraf": "5.0.4", + "rimraf": "5.0.5", "roku-deploy": "3.10.3", "roku-log-bsc-plugin": "0.8.1", "rooibos-roku": "5.7.0", @@ -31,6 +31,102 @@ "undent": "0.1.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1264,6 +1360,12 @@ "domelementtype": "1" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -1990,12 +2092,12 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "node_modules/jackspeak": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.1.0.tgz", - "integrity": "sha512-DiEwVPqsieUzZBNxQ2cxznmFzfg/AMgJUjYw5xl6rSmCxAQXECcbSdwcLM6Ds6T09+SBfSNCGPhYUoQ96P4h7A==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.5.tgz", + "integrity": "sha512-Ratx+B8WeXLAtRJn26hrhY8S1+Jz6pxPMrkrdkgb/NstTNiqMhX0/oFVu5wX+g5n6JlEu2LPsDJmY8nRP4+alw==", "dev": true, "dependencies": { - "cliui": "^7.0.4" + "@isaacs/cliui": "^8.0.2" }, "engines": { "node": ">=14" @@ -4219,9 +4321,9 @@ } }, "node_modules/rimraf": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.4.tgz", - "integrity": "sha512-rizQI/o/YAMM1us0Zyax0uRfIK39XR52EAjjOi0fzMolpGp0onj6CWzBAXuOx6+6Xi9Rgi0d9tUZojhJerLUmQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", "dev": true, "dependencies": { "glob": "^10.3.7" @@ -4246,13 +4348,13 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "10.3.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.7.tgz", - "integrity": "sha512-wCMbE1m9Nx5yD9LYtgsVWq5VhHlk5WzJirw594qZR6AIvQYuHrdDtIktUVjQItalD53y7dqoedu9xP0u0WaxIQ==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" @@ -4795,6 +4897,21 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", @@ -4820,6 +4937,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -5413,6 +5543,24 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 4eac83d0d..e5943b982 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "brighterscript": "0.65.5", "jshint": "2.13.6", "markdownlint-cli2": "0.10.0", - "rimraf": "5.0.4", + "rimraf": "5.0.5", "roku-deploy": "3.10.3", "roku-log-bsc-plugin": "0.8.1", "rooibos-roku": "5.7.0", From 8946bf58afab11f1d077f4ffc7c1ebabeaa86e00 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Sep 2023 03:57:29 +0000 Subject: [PATCH 31/64] Update dependency brighterscript-formatter to v1.6.33 --- package-lock.json | 136 ++++++++++++++++++++++++++++++++++++---------- package.json | 2 +- 2 files changed, 109 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index ba0f34a2e..f233f94f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "dependencies": { "@rokucommunity/bslib": "0.1.1", "bgv": "npm:button-group-vert@1.0.2", - "brighterscript-formatter": "1.6.32", + "brighterscript-formatter": "1.6.33", "intKeyboard": "npm:integer-keyboard@1.0.12", "log": "npm:roku-log@0.11.1", "sob": "npm:slide-out-button@1.0.1" @@ -632,6 +632,7 @@ "version": "0.65.5", "resolved": "https://registry.npmjs.org/brighterscript/-/brighterscript-0.65.5.tgz", "integrity": "sha512-xDkWIZhjTLhp6dVZ6lX7zWRyNvjdiAwZncJRnErSbqRhteNJFL7ic2UDJew9zCOYTQDrG7B85lpPpXc/1JlV+Q==", + "dev": true, "dependencies": { "@rokucommunity/bslib": "^0.1.1", "@xml-tools/parser": "^1.0.7", @@ -671,11 +672,11 @@ } }, "node_modules/brighterscript-formatter": { - "version": "1.6.32", - "resolved": "https://registry.npmjs.org/brighterscript-formatter/-/brighterscript-formatter-1.6.32.tgz", - "integrity": "sha512-7rbNmSsj2v8iv+iSWXczSg4hC7L1zxMEwo+jZcDaMDPu0TBt4zmmCpaT0WvvvYcE8fD9I1tJ4dlTaj61QnH0QQ==", + "version": "1.6.33", + "resolved": "https://registry.npmjs.org/brighterscript-formatter/-/brighterscript-formatter-1.6.33.tgz", + "integrity": "sha512-XmirSAOBBHsprJvLOuh8nzXNiPQJXQa2NJ581OZdQrofFdBNPGH+yFhV6XXUZ+pA6fVLSxMxXA0toF83jtKjrA==", "dependencies": { - "brighterscript": "^0.65.5", + "brighterscript": "^0.65.7", "glob-all": "^3.3.0", "jsonc-parser": "^3.0.0", "source-map": "^0.7.3", @@ -686,14 +687,81 @@ "bsfmt": "dist/cli.js" } }, - "node_modules/brighterscript-formatter/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/brighterscript-formatter/node_modules/brighterscript": { + "version": "0.65.7", + "resolved": "https://registry.npmjs.org/brighterscript/-/brighterscript-0.65.7.tgz", + "integrity": "sha512-cmV0JzlYuKIKkMsbHR2FyaD2YugHeHESdMmUOtK61EsEUS895Y6yXftDVnFUwij7beLiZR6s1oRpMfiS7MJ40g==", "dependencies": { + "@rokucommunity/bslib": "^0.1.1", + "@xml-tools/parser": "^1.0.7", + "array-flat-polyfill": "^1.0.1", + "chalk": "^2.4.2", + "chevrotain": "^7.0.1", + "chokidar": "^3.5.1", + "clear": "^0.1.0", + "coveralls-next": "^4.2.0", + "cross-platform-clear-console": "^2.3.0", + "debounce-promise": "^3.1.0", + "eventemitter3": "^4.0.0", + "fast-glob": "^3.2.12", + "file-url": "^3.0.0", + "fs-extra": "^8.1.0", + "jsonc-parser": "^2.3.0", + "long": "^3.2.0", + "luxon": "^2.5.2", + "minimatch": "^3.0.4", + "moment": "^2.23.0", + "p-settle": "^2.1.0", + "parse-ms": "^2.1.0", + "readline": "^1.3.0", + "require-relative": "^0.8.7", + "roku-deploy": "^3.10.3", + "serialize-error": "^7.0.1", + "source-map": "^0.7.4", + "vscode-languageserver": "7.0.0", + "vscode-languageserver-protocol": "3.16.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-uri": "^2.1.1", + "xml2js": "^0.5.0", + "yargs": "^16.2.0" + }, + "bin": { + "bsc": "dist/cli.js" + } + }, + "node_modules/brighterscript-formatter/node_modules/brighterscript/node_modules/jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==" + }, + "node_modules/brighterscript-formatter/node_modules/brighterscript/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/brighterscript-formatter/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, "node_modules/brighterscript-formatter/node_modules/glob-all": { @@ -708,6 +776,21 @@ "glob-all": "bin/glob-all" } }, + "node_modules/brighterscript-formatter/node_modules/glob-all/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/brighterscript-formatter/node_modules/glob-all/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, "node_modules/brighterscript-formatter/node_modules/glob-all/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", @@ -729,6 +812,18 @@ "node": ">=8" } }, + "node_modules/brighterscript-formatter/node_modules/glob-all/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/brighterscript-formatter/node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", @@ -747,27 +842,11 @@ "node": ">=8" } }, - "node_modules/brighterscript-formatter/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/brighterscript-formatter/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/brighterscript/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -781,6 +860,7 @@ "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", diff --git a/package.json b/package.json index e5943b982..1659d936e 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "dependencies": { "@rokucommunity/bslib": "0.1.1", "bgv": "npm:button-group-vert@1.0.2", - "brighterscript-formatter": "1.6.32", + "brighterscript-formatter": "1.6.33", "intKeyboard": "npm:integer-keyboard@1.0.12", "log": "npm:roku-log@0.11.1", "sob": "npm:slide-out-button@1.0.1" From 7572c725e2bac54936ebc2212ebdb7ca00a877c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Sep 2023 13:43:56 +0000 Subject: [PATCH 32/64] Update dependency brighterscript to v0.65.7 --- package-lock.json | 88 +++-------------------------------------------- package.json | 2 +- 2 files changed, 5 insertions(+), 85 deletions(-) diff --git a/package-lock.json b/package-lock.json index f233f94f3..1463d15c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@rokucommunity/bslint": "0.8.10", - "brighterscript": "0.65.5", + "brighterscript": "0.65.7", "jshint": "2.13.6", "markdownlint-cli2": "0.10.0", "rimraf": "5.0.5", @@ -629,10 +629,9 @@ } }, "node_modules/brighterscript": { - "version": "0.65.5", - "resolved": "https://registry.npmjs.org/brighterscript/-/brighterscript-0.65.5.tgz", - "integrity": "sha512-xDkWIZhjTLhp6dVZ6lX7zWRyNvjdiAwZncJRnErSbqRhteNJFL7ic2UDJew9zCOYTQDrG7B85lpPpXc/1JlV+Q==", - "dev": true, + "version": "0.65.7", + "resolved": "https://registry.npmjs.org/brighterscript/-/brighterscript-0.65.7.tgz", + "integrity": "sha512-cmV0JzlYuKIKkMsbHR2FyaD2YugHeHESdMmUOtK61EsEUS895Y6yXftDVnFUwij7beLiZR6s1oRpMfiS7MJ40g==", "dependencies": { "@rokucommunity/bslib": "^0.1.1", "@xml-tools/parser": "^1.0.7", @@ -687,83 +686,6 @@ "bsfmt": "dist/cli.js" } }, - "node_modules/brighterscript-formatter/node_modules/brighterscript": { - "version": "0.65.7", - "resolved": "https://registry.npmjs.org/brighterscript/-/brighterscript-0.65.7.tgz", - "integrity": "sha512-cmV0JzlYuKIKkMsbHR2FyaD2YugHeHESdMmUOtK61EsEUS895Y6yXftDVnFUwij7beLiZR6s1oRpMfiS7MJ40g==", - "dependencies": { - "@rokucommunity/bslib": "^0.1.1", - "@xml-tools/parser": "^1.0.7", - "array-flat-polyfill": "^1.0.1", - "chalk": "^2.4.2", - "chevrotain": "^7.0.1", - "chokidar": "^3.5.1", - "clear": "^0.1.0", - "coveralls-next": "^4.2.0", - "cross-platform-clear-console": "^2.3.0", - "debounce-promise": "^3.1.0", - "eventemitter3": "^4.0.0", - "fast-glob": "^3.2.12", - "file-url": "^3.0.0", - "fs-extra": "^8.1.0", - "jsonc-parser": "^2.3.0", - "long": "^3.2.0", - "luxon": "^2.5.2", - "minimatch": "^3.0.4", - "moment": "^2.23.0", - "p-settle": "^2.1.0", - "parse-ms": "^2.1.0", - "readline": "^1.3.0", - "require-relative": "^0.8.7", - "roku-deploy": "^3.10.3", - "serialize-error": "^7.0.1", - "source-map": "^0.7.4", - "vscode-languageserver": "7.0.0", - "vscode-languageserver-protocol": "3.16.0", - "vscode-languageserver-textdocument": "^1.0.1", - "vscode-uri": "^2.1.1", - "xml2js": "^0.5.0", - "yargs": "^16.2.0" - }, - "bin": { - "bsc": "dist/cli.js" - } - }, - "node_modules/brighterscript-formatter/node_modules/brighterscript/node_modules/jsonc-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", - "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==" - }, - "node_modules/brighterscript-formatter/node_modules/brighterscript/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/brighterscript-formatter/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/brighterscript-formatter/node_modules/glob-all": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.3.1.tgz", @@ -846,7 +768,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -860,7 +781,6 @@ "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", diff --git a/package.json b/package.json index 1659d936e..781e37854 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "devDependencies": { "@rokucommunity/bslint": "0.8.10", - "brighterscript": "0.65.5", + "brighterscript": "0.65.7", "jshint": "2.13.6", "markdownlint-cli2": "0.10.0", "rimraf": "5.0.5", From f7343bda5a6a9eea6c63e0c26265104bf2b69daf Mon Sep 17 00:00:00 2001 From: eeeple Date: Sun, 1 Oct 2023 20:52:46 +0000 Subject: [PATCH 33/64] Translated using Weblate (French) Currently translated at 49.2% (134 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/fr/ --- locale/fr/translations.ts | 458 +++++++++++++++++++++++++++++++++++++- 1 file changed, 452 insertions(+), 6 deletions(-) diff --git a/locale/fr/translations.ts b/locale/fr/translations.ts index 793d0b36b..029d1a86a 100644 --- a/locale/fr/translations.ts +++ b/locale/fr/translations.ts @@ -26,7 +26,7 @@ Favorite - Favoris + Favori Loading... @@ -50,7 +50,7 @@ Please sign in - Se connecter + Connectez-vous s'il vous plaît Search @@ -118,7 +118,7 @@ Enter a password - Entrer le mot de passe + Entrez le mot de passe Enter a value... @@ -142,7 +142,7 @@ Sort Order - Trie par ordre + Ordre de tri Descending @@ -166,7 +166,7 @@ Director - Direction + Réalisateur Video @@ -174,7 +174,7 @@ Audio - Musiques + Audio Server @@ -7426,5 +7426,451 @@ Nombre d'éléments UI -> Media Grid -> Item Count in user setting screen. + + Error Retrieving Content + Erreur lors de la récupération du contenu + Dialog title when unable to load Content from Server + + + There was an error retrieving the data for this item from the server. + Une erreur s'est produite lors de la récupération des données de cet élément sur le serveur. + Dialog detail when unable to load Content from Server + + + Error loading Channel Data + Erreur lors du chargement des données de la chaîne + + + Unable to load Channel Data from the server + Impossible de charger les données de la chaîne depuis le serveur + + + Press 'OK' to Close + Appuyez sur «OK» pour fermer + + + Monday + Lundi + Day of Week + + + Starts at + Commence à + (Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) + + + Cancel Recording + Annuler l'enregistrement + + + Connecting to Server + Connexion au serveur en cours + Message to display to user while client is attempting to connect to the server + + + Enter the server name or IP address + Entrez le nom du serveur ou son adresse IP + Title of KeyboardDialog when manually entering a server URL + + + Pick a Jellyfin server from the local network + Sélectionnez un serveur Jellyfin disponible sur votre réseau local : + Instructions on initial app launch when the user is asked to pick a server from a list + + + An error was encountered while playing this item. Server did not provide required transcoding data. + Une erreur a été rencontrée lors de la lecture de cet élément. Le serveur n'a pas communiqué les informations nécessaires au transcodage. + Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url + + + Enable or disable Direct Play for optional codecs + Activer ou désactiver DirectPlay pour les codecs optionnels + Settings Menu - Title for settings group related to codec support + + + Support Direct Play of MPEG-2 content (e.g., Live TV). This will prevent transcoding of MPEG-2 content, but uses significantly more bandwidth. + Utiliser DirectPlay pour les contenus en MPEG-2 (par ex. TV en direct). Cela évitera la conversion des contenus en MPEG-2 mais utilisera beaucoup plus de bande passante. + Settings Menu - Description for option + + + Support Direct Play of MPEG-4 content. This may need to be disabled for playback of DIVX encoded video files. + Utiliser DirectPlay pour les contenus en MPEG-4. Désactiver ce paramètres pourrait être nécessaire pour la lecture de fichiers vidéo encodés en DivX. + Settings Menu - Description for option + + + ** EXPERIMENTAL** Support Direct Play of AV1 content if this Roku device supports it. + ** EXPERIMENTAL** Utiliser DirectPlay pour les contenus en AV1 si cet équipement Roku le supporte. + Description of a setting - should we try to direct play experimental av1 codec + + + HEVC + HEVC + Name of codec used in settings menu + + + H.264 + H.264 + Name of codec used in settings menu + + + PLAY_COUNT + Nombre de vues + + + Saturday + Samedi + Day of Week + + + Record Series + Enregistrer la série + + + ...or enter server URL manually: + Si aucun serveur n'est dans la liste ci-dessus, vous pouvez aussi saisir l'URL du serveur manuellement : + Instructions on initial app launch when the user is asked to manually enter a server URL + + + Disabled + Désactivé + + + Close + Fermer + + + Channels + Chaines + Menu option for showing Live TV Channel List + + + An error was encountered while playing this item. + Une erreur s'est produite lors de la lecture de cet élément. + Dialog detail when error occurs during playback + + + Error During Playback + Erreur lors de la lecture + Dialog title when error occurs during playback + + + Save Credentials? + Enregistrer les identifiants ? + + + Delete Saved + Suppression enregistrée + + + On Now + En ce moment + + + TV Shows + Séries TV + + + Friday + Vendredi + Day of Week + + + Cast & Crew + Distribution + + + Title of Tab for options to filter library content + TAB_FILTER + Filtre + + + yesterday + hier + Previous day + + + Additional Parts + Contenu additionnel + Additional parts of a video + + + Movies + Films + + + Ends at + Fini + (Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) + + + View Channel + Voir la chaîne + + + Died + Décès + + + TV Guide + Guide des programmes + Menu option for showing Live TV Guide / Schedule + + + Movies (Grid) + Films (Grille) + Movie library view option + + + Codec Support + Codecs supportés + Settings Menu - Title for settings group related to codec support + + + User Interface + Interface utilisateur + Title for User Interface section in user setting screen. + + + Set Favorite + Marquer comme favori + Button Text - When pressed, sets item as Favorite + + + Go to series + Aller à la série + Continue Watching Popup Menu - Navigate to the Series Detail Page + + + CRITIC_RATING + Notation des critiques + + + OFFICIAL_RATING + Classification parentale + + + Born + Date de naissance + + + Title of Tab for options to sort library content + TAB_SORT + Trier + + + Movies (Presentation) + Films (Présentation) + Movie library view option + + + Started at + A commencé à + (Past Tense) For defining time when a program started today (e.g. Started at 08:00) + + + Started + A commencé + (Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) + + + Repeat + Rediffusion + If TV Shows has previously been broadcasted + + + Cancel Series Recording + Annuler l'enregistrement de la série + + + Media Grid + Grille de médias + UI -> Media Grid section in user setting screen. + + + Set Watched + Marquer comme vu + Button Text - When pressed, marks item as Warched + + + Special Features + Caractéristiques spécifiques + + + Sunday + Dimanche + Day of Week + + + Tuesday + Mardi + Day of Week + + + Wednesday + Mercredi + Day of Week + + + Thursday + Jeudi + Day of Week + + + Starts + Commence + (Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) + + + Record + Enregistrer + + + Not found + Introuvable + Title of message box when the requested content is not found on the server + + + The requested content does not exist on the server + Le contenu demandé n'existe pas sur le serveur + Content of message box when the requested content is not found on the server + + + Error Getting Playback Information + Erreur lors de la récupération des informations de lecture + Dialog Title: Received error from server when trying to get information about the selected item for playback + + + Go to season + Aller à la saison + Continue Watching Popup Menu - Navigate to the Season Page + + + Search now + Chercher + Help text in search Box + + + Studios + Studios + + + MPEG-2 + MPEG-2 + Name of codec used in settings menu + + + MPEG-4 + MPEG-4 + Name of codec used in settings menu + + + AV1 + AV1 + Name of a setting - should we try to direct play experimental av1 codec + + + Networks + Réseaux + + + Version + Version + + + Use voice remote to search + Utilisez la télécommande vocale pour chercher + Help text in search voice text box + + + Loading Channel Data + Chargement des données de la chaîne + + + Name or Title field of media item + TITLE + Titre + + + IMDB_RATING + Notation IMDb + + + DATE_ADDED + Date d'ajout + + + DATE_PLAYED + Date de lecture + + + RUNTIME + Durée + + + Title of Tab for switching "views" when looking at a library + TAB_VIEW + Vue + + + More Like This + Contenu similaire + + + today + aujourd'hui + Current day + + + Ended at + A fini à + (Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) + + + Live + En direct + If TV Show is being broadcast live (not pre-recorded) + + + RELEASE_DATE + Date de sortie + + + Unknown + Inconnu + Title for a cast member for which we have no information for + + + Playback + Lecture + Title for Playback section in user setting screen. + + + Enabled + Activé + + + Age + Age + + + tomorrow + demain + Next day + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Ce(tte) %1 ne contient pas d'éléments + + + Item Count + Nombre d'éléments + UI -> Media Grid -> Item Count in user setting screen. + + + Go to episode + Aller à l'épisode + Continue Watching Popup Menu - Navigate to the Episode Detail Page + From 5df587ed32190a8863f876007c5350cfde70009b Mon Sep 17 00:00:00 2001 From: Konstantin Koszarek Date: Mon, 2 Oct 2023 13:42:28 +0000 Subject: [PATCH 34/64] Translated using Weblate (German) Currently translated at 14.3% (39 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 0e6f3bb09..3726810d7 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -11517,5 +11517,9 @@ Fehler beim Empfangen des Inhalts Dialog title when unable to load Content from Server + + Sign Out + Abmelden + From dea45a8cd760ffe0535165c3c006a55d3022bc21 Mon Sep 17 00:00:00 2001 From: FrankJeager Date: Mon, 2 Oct 2023 13:58:33 +0000 Subject: [PATCH 35/64] Translated using Weblate (French) Currently translated at 49.6% (135 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/fr/ --- locale/fr/translations.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/locale/fr/translations.ts b/locale/fr/translations.ts index 029d1a86a..243e10f51 100644 --- a/locale/fr/translations.ts +++ b/locale/fr/translations.ts @@ -7872,5 +7872,9 @@ Aller à l'épisode Continue Watching Popup Menu - Navigate to the Episode Detail Page + + Shows + Séries + From e30bcb170e2b776f1c9eb52818dd6eb40ad69b6f Mon Sep 17 00:00:00 2001 From: Antonio Alarcon Date: Mon, 2 Oct 2023 17:25:10 +0000 Subject: [PATCH 36/64] Translated using Weblate (Spanish) Currently translated at 20.2% (55 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/es/ --- locale/es_ES/translations.ts | 82 ++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/locale/es_ES/translations.ts b/locale/es_ES/translations.ts index d4bffc30b..e56cff3e8 100644 --- a/locale/es_ES/translations.ts +++ b/locale/es_ES/translations.ts @@ -5492,5 +5492,87 @@ Use el botón de reproducción para animar lentamente al primer elemento de la carpeta. (Si está deshabilitado, la carpeta se restablecerá al primer elemento inmediatamente). Description for option in Setting Screen + + Monday + Lunes + Day of Week + + + Tuesday + Martes + Day of Week + + + Thursday + Jueves + Day of Week + + + Sunday + Domingo + Day of Week + + + Press 'OK' to Close + Presiona 'OK' para Cerrar + + + today + hoy + Current day + + + yesterday + ayer + Previous day + + + Friday + Viernes + Day of Week + + + TV Guide + Guía de TV + Menu option for showing Live TV Guide / Schedule + + + Wednesday + Miércoles + Day of Week + + + Unknown + Desconocido + Title for a cast member for which we have no information for + + + Saturday + Sábado + Day of Week + + + tomorrow + mañana + Next day + + + Channels + Canales + Menu option for showing Live TV Channel List + + + IMDB_RATING + Puntuación IMDb + + + Record + Grabar + + + Error Retrieving Content + Error Obteniendo Contenido + Dialog title when unable to load Content from Server + From 5a1c975df9802f5d5e60d04502f1631045fc066c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Facundo=20Ju=C3=A1rez?= Date: Mon, 2 Oct 2023 19:25:56 +0000 Subject: [PATCH 37/64] Translated using Weblate (Spanish) Currently translated at 22.7% (62 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/es/ --- locale/es_ES/translations.ts | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/locale/es_ES/translations.ts b/locale/es_ES/translations.ts index e56cff3e8..47ed8b0d5 100644 --- a/locale/es_ES/translations.ts +++ b/locale/es_ES/translations.ts @@ -5574,5 +5574,44 @@ Error Obteniendo Contenido Dialog title when unable to load Content from Server + + An error was encountered while playing this item. + Se produjo un error durante la reproducción de este elemento. + Dialog detail when error occurs during playback + + + Save Credentials? + ¿Guardar Credenciales? + + + Change Server + Cambiar Servidor + + + On Now + Ahora + + + Error During Playback + Error Durante la Reproducción + Dialog title when error occurs during playback + + + There was an error retrieving the data for this item from the server. + Se produjo un error al recuperar información para este elemento desde el servidor. + Dialog detail when unable to load Content from Server + + + Sign Out + Cerrar Sesión + + + Delete Saved + Eliminar Guardado + + + Loading Channel Data + Cargando información del canal + From 8a9633c2b9d3fa06a07d8fdc5ac3d2f31381887d Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 2 Oct 2023 23:02:21 +0000 Subject: [PATCH 38/64] Translated using Weblate (German) Currently translated at 15.4% (42 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 3726810d7..04df13cfd 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -11521,5 +11521,18 @@ Sign Out Abmelden + + On Now + Jetzt läuft + + + Change Server + Server wechseln + + + Error Retrieving Content + Fehler beim Empfangen des Inhalts + Dialog title when unable to load Content from Server + From 3b3dac5736b5958f1ea9d791e4f5ba3b2bcdcb03 Mon Sep 17 00:00:00 2001 From: Nicolas Berens Date: Tue, 3 Oct 2023 08:26:48 +0000 Subject: [PATCH 39/64] Translated using Weblate (German) Currently translated at 16.5% (45 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 04df13cfd..a82bc64b7 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -11534,5 +11534,18 @@ Fehler beim Empfangen des Inhalts Dialog title when unable to load Content from Server + + Error During Playback + Fehler während der wiedergabe + Dialog title when error occurs during playback + + + Delete Saved + Gespeicherte löschen + + + Save Credentials? + Zugangsdaten Speichern? + From 314624b7fffed914e7a26e3546fb56a3444b5b2f Mon Sep 17 00:00:00 2001 From: R1ckj Date: Tue, 3 Oct 2023 07:56:32 +0000 Subject: [PATCH 40/64] Translated using Weblate (Italian) Currently translated at 19.1% (52 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/it/ --- locale/it_IT/translations.ts | 61 ++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/locale/it_IT/translations.ts b/locale/it_IT/translations.ts index 2d7659975..2505c35a9 100644 --- a/locale/it_IT/translations.ts +++ b/locale/it_IT/translations.ts @@ -2198,5 +2198,66 @@ Sign Out Scollegamento + + Error During Playback + Errore durante la riproduzione + Dialog title when error occurs during playback + + + IMDB_RATING + Valutazione di IMDb + + + An error was encountered while playing this item. + È stato riscontrato un errore durante la riproduzione. + Dialog detail when error occurs during playback + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Non ci sono elementi da visualizzare + + + Name or Title field of media item + TITLE + Nome + + + There was an error retrieving the data for this item from the server. + C'è stato un errore nel recupero dei dati per questo elemento dal server. + Dialog detail when unable to load Content from Server + + + Loading Channel Data + Caricamento dati del canale + + + Error loading Channel Data + Errore nel caricamento dei dati del canale + + + CRITIC_RATING + Valutazione della critica + + + DATE_ADDED + Data di aggiunta + + + DATE_PLAYED + Visto il + + + Save Credentials? + Salvare le credenziali? + + + Change Server + Cambia Server + + + Unable to load Channel Data from the server + Impossibile recuperare i dati del canale dal server + From cdab56f8b05cd7faa4b57ca1f66f1c75095b0d60 Mon Sep 17 00:00:00 2001 From: Cyril Beslay Date: Tue, 3 Oct 2023 09:23:09 +0000 Subject: [PATCH 41/64] Translated using Weblate (French) Currently translated at 52.9% (144 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/fr/ --- locale/fr/translations.ts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/locale/fr/translations.ts b/locale/fr/translations.ts index 243e10f51..b824037b2 100644 --- a/locale/fr/translations.ts +++ b/locale/fr/translations.ts @@ -7876,5 +7876,40 @@ Shows Séries + + Quick Connect + Connexion Rapide + + + Show item count in the library and index of selected item. + Afficher le nombre d'éléments dans la librairie et l'index de l'élément sélectionné. + Description for option in Setting Screen + + + (Dialog will close automatically) + (Cette fenêtre se fermera automatiquement) + + + Media Grid options. + Options de la grille Média + + + You can search for Titles, People, Live TV Channels and more + Vous pouvez rechercher des titres, personnes, chaînes TV et plus + Help text in search results + + + %1 of %2 + %1 sur %2 + Item position and count. %1 = current item. %2 = total number of items + + + There was an error authenticating via Quick Connect. + Une erreur s'est produite lors de la Connexion Rapide. + + + Here is your Quick Connect code: + Voici votre code de Connexion Rapide : + From ddd0abd98de3798a7a6bb017ccba9ab01892dd93 Mon Sep 17 00:00:00 2001 From: Artnal Date: Tue, 3 Oct 2023 10:03:38 +0000 Subject: [PATCH 42/64] Translated using Weblate (French) Currently translated at 52.9% (144 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/fr/ --- locale/fr/translations.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/locale/fr/translations.ts b/locale/fr/translations.ts index b824037b2..53accac71 100644 --- a/locale/fr/translations.ts +++ b/locale/fr/translations.ts @@ -7911,5 +7911,9 @@ Here is your Quick Connect code: Voici votre code de Connexion Rapide : + + Special Features + Fonctionnalités spéciales + From 77d9ff909592c019324efc6c5641e16e9198a437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Misuth?= Date: Tue, 3 Oct 2023 09:33:41 +0000 Subject: [PATCH 43/64] Translated using Weblate (Hungarian) Currently translated at 15.4% (42 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/hu/ --- locale/hu/translations.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/locale/hu/translations.ts b/locale/hu/translations.ts index c2ad7fc3e..3027cf144 100644 --- a/locale/hu/translations.ts +++ b/locale/hu/translations.ts @@ -11273,5 +11273,13 @@ TITLE Név + + Delete Saved + Törlés mentve + + + Save Credentials? + Menti a bejelentkezési adatokat? + From 48da1a5772ba6f4ccf8eb44e0a199da3dddeb517 Mon Sep 17 00:00:00 2001 From: BluePhi09 Date: Tue, 3 Oct 2023 13:33:40 +0000 Subject: [PATCH 44/64] Translated using Weblate (German) Currently translated at 50.0% (136 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 62 ++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index a82bc64b7..5a0f3a73a 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -11547,5 +11547,67 @@ Save Credentials? Zugangsdaten Speichern? + + Search now + Suche jetzt + Help text in search Box + + + Quick Connect + Schnell verbinden + + + Set Watched + Setze auf angesehen + Button Text - When pressed, marks item as Warched + + + Go to episode + Gehe zur Episode + Continue Watching Popup Menu - Navigate to the Episode Detail Page + + + Here is your Quick Connect code: + Hier ist dein Schnellverbindungs Code: + + + Media Grid options. + Medien Gitter Optionen + + + Item Count + Stückzahl + UI -> Media Grid -> Item Count in user setting screen. + + + Show item count in the library and index of selected item. + Zeige die Gegenstandsanzahl in der Bibliothek und den Index von dem ausgewählten Gegenstand + Description for option in Setting Screen + + + Set Favorite + Setze Favoriten + Button Text - When pressed, sets item as Favorite + + + Go to series + Gehe zu den Serien + Continue Watching Popup Menu - Navigate to the Series Detail Page + + + Go to season + Gehe zur Saison + Continue Watching Popup Menu - Navigate to the Season Page + + + You can search for Titles, People, Live TV Channels and more + Sie können nach Titeln, Personen, Fernseher Kanälen und mehr suchen + Help text in search results + + + %1 of %2 + %1 von %2 + Item position and count. %1 = current item. %2 = total number of items + From 9aef9ed965ca5824d23c5bef0b5f32d7f7d9784c Mon Sep 17 00:00:00 2001 From: engelkek Date: Tue, 3 Oct 2023 12:35:38 +0000 Subject: [PATCH 45/64] Translated using Weblate (German) Currently translated at 50.0% (136 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 337 +++++++++++++++++++++++++++++++++++ 1 file changed, 337 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 5a0f3a73a..1220229ae 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -11609,5 +11609,342 @@ %1 von %2 Item position and count. %1 = current item. %2 = total number of items + + Movies (Presentation) + Filme (Präsentation) + Movie library view option + + + Saturday + Sonnabend + Day of Week + + + Title of Tab for switching "views" when looking at a library + TAB_VIEW + Ansicht + + + Born + Geburtsdatum + + + Loading Channel Data + Lade Kanaldaten + + + Name or Title field of media item + TITLE + Name + + + Movies (Grid) + Filme (Gitter) + Movie library view option + + + today + heute + Current day + + + Tuesday + Dienstag + Day of Week + + + An error was encountered while playing this item. + Bei der Wiedergabe trat ein Fehler auf. + Dialog detail when error occurs during playback + + + Unable to load Channel Data from the server + Konnte die Kanaldaten nicht vom Server laden + + + RUNTIME + Laufzeit + + + More Like This + Empfehlungen + + + Not found + Nicht gefunden + Title of message box when the requested content is not found on the server + + + Enable or disable Direct Play for optional codecs + Direkte Wiedergabe für optionale Codecs aktivieren oder deaktivieren + Settings Menu - Title for settings group related to codec support + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Diese(r) %1 enthält keine Elemente + + + Version + Version + + + MPEG-2 + MPEG-2 + Name of codec used in settings menu + + + MPEG-4 + MPEG-4 + Name of codec used in settings menu + + + Unknown + Unbekannt + Title for a cast member for which we have no information for + + + There was an error retrieving the data for this item from the server. + Während der Übertragung vom Server trat ein Fehler auf. + Dialog detail when unable to load Content from Server + + + Error loading Channel Data + Fehler beim Laden der Kanaldaten + + + Special Features + Special Features + + + Sunday + Sonntag + Day of Week + + + Started at + Gestartet um + (Past Tense) For defining time when a program started today (e.g. Started at 08:00) + + + Starts + Beginnt + (Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) + + + Ends at + Endet am + (Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) + + + Repeat + Wiederholung + If TV Shows has previously been broadcasted + + + TV Guide + TV-Programm + Menu option for showing Live TV Guide / Schedule + + + Title of Tab for options to sort library content + TAB_SORT + Sortieren + + + Title of Tab for options to filter library content + TAB_FILTER + Filter + + + Cancel Recording + Aufnahme abbrechen + + + Playback + Wiedergabe + Title for Playback section in user setting screen. + + + AV1 + AV1 + Name of a setting - should we try to direct play experimental av1 codec + + + Enabled + Aktiviert + + + RELEASE_DATE + Veröffentlichungsdatum + + + yesterday + gestern + Previous day + + + tomorrow + morgen + Next day + + + Live + Live + If TV Show is being broadcast live (not pre-recorded) + + + Error Getting Playback Information + Fehler beim Übertragen der Wiedergabeinformationen + Dialog Title: Received error from server when trying to get information about the selected item for playback + + + User Interface + Benutzeroberfläche + Title for User Interface section in user setting screen. + + + Died + Sterbedatum + + + Age + Alter + + + Cast & Crew + Mitwirkende + + + Press 'OK' to Close + 'OK' drücken zum Schließen + + + Additional Parts + Weitere Teile + Additional parts of a video + + + Monday + Montag + Day of Week + + + Thursday + Donnerstag + Day of Week + + + Started + Gestartet + (Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) + + + Channels + Kanäle + Menu option for showing Live TV Channel List + + + View Channel + Kanal ansehen + + + Record Series + Serie aufnehmen + + + Codec Support + Codec-Support + Settings Menu - Title for settings group related to codec support + + + Cancel Series Recording + Serienaufnahme abbrechen + + + Friday + Freitag + Day of Week + + + Movies + Filme + + + ...or enter server URL manually: + Wenn kein Server angeführt wird, kann die Serveradresse auch manuell angegeben werden: + Instructions on initial app launch when the user is asked to manually enter a server URL + + + An error was encountered while playing this item. Server did not provide required transcoding data. + Bei der Wiedergabe trat ein Fehler auf. Der Server hat die benötigten Transcodinginformationen nicht übermittelt. + Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url + + + Support Direct Play of MPEG-2 content (e.g., Live TV). This will prevent transcoding of MPEG-2 content, but uses significantly more bandwidth. + Direkte Wiedergabe von MPEG-2 Inhalten unterstützen (z.B. Live-TV). Dies verhindert Transcoding von MPEG-2 Inhalten, benötigt aber erheblich mehr Bandbreite. + Settings Menu - Description for option + + + ** EXPERIMENTAL** Support Direct Play of AV1 content if this Roku device supports it. + ** EXPERIMENTELL ** Direkte Wiedergabe von AV1 Inhalten wenn dieses Roku-Gerät es unterstützt. + Description of a setting - should we try to direct play experimental av1 codec + + + TV Shows + TV-Serien + + + Starts at + Beginnt um + (Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) + + + Connecting to Server + Verbinde mit Server + Message to display to user while client is attempting to connect to the server + + + Enter the server name or IP address + Hostnamen oder IP-Adresse des Servers angeben + Title of KeyboardDialog when manually entering a server URL + + + Record + Aufnehmen + + + Ended at + Endet um + (Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) + + + Wednesday + Mittwoch + Day of Week + + + Disabled + Deaktiviert + + + Close + Schließen + + + The requested content does not exist on the server + Der gewünschte Inhalt existiert nicht auf dem Server + Content of message box when the requested content is not found on the server + + + Pick a Jellyfin server from the local network + Einen Jellyfin-Server im lokalen Netzwerk auswählen: + Instructions on initial app launch when the user is asked to pick a server from a list + + + Support Direct Play of MPEG-4 content. This may need to be disabled for playback of DIVX encoded video files. + Direkte Wiedergabe von MPEG-4 Inhalten unterstützen. Dies muss unter Umständen für die Wiedergabe von DIVX-kodierten Dateien deaktiviert werden. + Settings Menu - Description for option + From eacd678ebf110a8cc3b2b8c5111378ead41e8b43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20G=C3=A4rtner?= Date: Tue, 3 Oct 2023 15:24:43 +0000 Subject: [PATCH 46/64] Translated using Weblate (German) Currently translated at 50.0% (136 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 1220229ae..135c4a36f 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -11946,5 +11946,15 @@ Direkte Wiedergabe von MPEG-4 Inhalten unterstützen. Dies muss unter Umständen für die Wiedergabe von DIVX-kodierten Dateien deaktiviert werden. Settings Menu - Description for option + + Media Grid + Mediengitter + UI -> Media Grid section in user setting screen. + + + Use voice remote to search + Sprachfernbedienung zum Suchen verwenden + Help text in search voice text box + From 140a0010af605dbfc9cde872bf978c817717690c Mon Sep 17 00:00:00 2001 From: ConfusedAlex Date: Tue, 3 Oct 2023 11:50:27 +0000 Subject: [PATCH 47/64] Translated using Weblate (German) Currently translated at 50.0% (136 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 135c4a36f..325353199 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -11956,5 +11956,29 @@ Sprachfernbedienung zum Suchen verwenden Help text in search voice text box + + OFFICIAL_RATING + Altersfreigabe + + + CRITIC_RATING + Kritikerbewertung + + + IMDB_RATING + IMDb-Bewertung + + + PLAY_COUNT + Wiedergabezähler + + + DATE_PLAYED + Abspieldatum + + + DATE_ADDED + Hinzugefügt am + From f1cb93351d734128090bdc0c5307cd0a1eb8aec9 Mon Sep 17 00:00:00 2001 From: Piranha Date: Tue, 3 Oct 2023 14:42:16 +0000 Subject: [PATCH 48/64] Translated using Weblate (Spanish) Currently translated at 29.7% (81 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/es/ --- locale/es_ES/translations.ts | 80 ++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/locale/es_ES/translations.ts b/locale/es_ES/translations.ts index 47ed8b0d5..6fd6765a2 100644 --- a/locale/es_ES/translations.ts +++ b/locale/es_ES/translations.ts @@ -5613,5 +5613,85 @@ Loading Channel Data Cargando información del canal + + OFFICIAL_RATING + Puntaje Parental + + + RELEASE_DATE + Fecha de Lanzamiento + + + RUNTIME + Duración + + + Title of Tab for options to sort library content + TAB_SORT + Ordenar + + + Born + Nacido en + + + DATE_ADDED + Añadido en + + + Age + Edad + + + Cast & Crew + Elenco y Equipo + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Este %1 no contiene items + + + Name or Title field of media item + TITLE + Título + + + CRITIC_RATING + Calificación de la crítica + + + DATE_PLAYED + Reproducido en + + + Title of Tab for options to filter library content + TAB_FILTER + Filtrar + + + Died + Murió en + + + On Now + En Vivo + + + Error loading Channel Data + Error cargando datos del Canal + + + PLAY_COUNT + Número de Reproducciones + + + Delete Saved + Eliminar Guardado + + + Unable to load Channel Data from the server + Incapaz de cargar datos de Canal del servidor + From b993b0a2489ec8019772a01133be9c8c55df130c Mon Sep 17 00:00:00 2001 From: Luca Francesca Date: Tue, 3 Oct 2023 10:58:21 +0000 Subject: [PATCH 49/64] Translated using Weblate (Italian) Currently translated at 20.2% (55 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/it/ --- locale/it_IT/translations.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/locale/it_IT/translations.ts b/locale/it_IT/translations.ts index 2505c35a9..fe6fbd0f9 100644 --- a/locale/it_IT/translations.ts +++ b/locale/it_IT/translations.ts @@ -2259,5 +2259,17 @@ Unable to load Channel Data from the server Impossibile recuperare i dati del canale dal server + + On Now + In riproduzione + + + Delete Saved + Cancella salvati + + + Sign Out + Esci + From a31c2ca4c9df201e18b528a850ba15f0846aa267 Mon Sep 17 00:00:00 2001 From: Artnal Date: Tue, 3 Oct 2023 11:22:36 +0000 Subject: [PATCH 50/64] Translated using Weblate (French) Currently translated at 100.0% (272 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/fr/ --- locale/fr/translations.ts | 588 +++++++++++++++++++++++++++++++++++++- 1 file changed, 587 insertions(+), 1 deletion(-) diff --git a/locale/fr/translations.ts b/locale/fr/translations.ts index 53accac71..85a75b224 100644 --- a/locale/fr/translations.ts +++ b/locale/fr/translations.ts @@ -6,7 +6,7 @@ default 192.168.1.100:8096 or https://example.com/jellyfin - Valeur par défaut : 192.168.1.100:8096 ou https://example.com/jellyfin + 192.168.1.100:8096 ou https://example.com/jellyfin Cancel @@ -7915,5 +7915,591 @@ Special Features Fonctionnalités spéciales + + Remember Me? + Se souvenir de moi ? + User Setting - Setting title + + + Libraries + Médiathèques + + + Set the maximum amount of days a show should stay in the 'Next Up' list without watching it. + Définit le nombre maximal de jours qu'une série peut rester dans la section 'À suivre' si elle n'est plus regardée. + Settings Menu - Description for option + + + Hides tagline text on details pages. + Masquer les étiquettes sur les page de détails. + + + Options that alter the design of Jellyfin. + Options modifiant l'apparence de Jellyfin. + Description for Design Elements user settings. + + + Settings relating to how the application looks. + Réglages relatifs à l'apparence de l'application. + + + Album Artists (Grid) + Artistes de l'album (grille) + + + Audio Codec Support + Support de codec audio + Settings Menu - Title of option + + + Maximum Resolution + Résolution maximale + User Setting - Title + + + Mode + Mode + User Setting - Setting title + + + Value + Valeur + User Setting - Setting title + + + All files + Tous les fichiers + User Setting - Setting title + + + Only transcoded files + Seulement les fichiers transcodés + User Setting - Setting title + + + Compatibility + Compatibilité + User Setting - Setting title + + + Attempt to prevent playback failures. + Tenter d'éviter les erreurs de lecture. + User Setting - Setting description + + + Disable HEVC + Désactiver HEVC + User Setting - Setting title + + + Media Grid options. + Options de la grille Média. + + + Go directly to the episode list if a TV series has only one season. + Aller directement à la liste des épisodes si une série TV ne possède qu'une seule saison. + Settings Menu - Description for option + + + Use Splashscreen as Home Background + Utiliser l'écran de démarrage comme arrière-plan d'accueil + Option Title in user setting screen + + + Use generated splashscreen image as Jellyfin's home background. Jellyfin will need to be closed and reopened for change to take effect. + Utiliser une image générée d'écran de démarrage comme arrière plan principal de Jellyfin. Jellyfin devra être fermé et rouvert pour que le changement prenne effet. + Description for option in Setting Screen + + + Cinema Mode + Mode cinéma + Settings Menu - Title for option + + + Attempt Direct Play for HEVC media with unsupported profile levels before falling back to transcoding if it fails. + Tenter la lecture directe du média HEVC comportant des niveaux de profils incompatibles avant de revenir au transcodage si cela échoue. + Settings Menu - Description for option + + + Settings relating to playback and supported codec and media types. + Réglages relatifs à la lecture et à la prise en charge des différents codecs et types de médias. + + + View All + Voir tout + + + Configure the maximum playback bitrate. + Configurer le débit maximum de lecture. + + + Biographical information for this person is not currently available. + Les informations biographiques pour cette personne ne sont pas disponibles pour le moment. + + + Settings relating to the appearance of pages in TV Libraries. + Paramètres relatifs à l'apparence des pages dans les médiathèques TV. + + + Loading trailer + Chargement de la bande-annonce + Dialog title in Main.brs + + + Next Episode Button Time + Temps pour le bouton « Prochain épisode » + Settings Menu - Title for option + + + Enable or disable the 'Maximum Bitrate' setting. + Activer ou désactiver le paramètre 'Débit maximal'. + + + Off - Attempt to play all resolutions + Désactivé - Tenter de lire toutes les résolutions + User Setting - Option title + + + Auto - Use TV resolution + Automatique - Utiliser la résolution de la TV + User Setting - Option title + + + Apply max resolution to all files or only transcoded files. + Appliquer la résolution maximale à tous les fichier ou seulement aux fichiers transcodés. + User Setting - Description + + + Presentation + Présentation + Title of an option - name of presentation view + + + Resumable + Reprise possible + + + Global + Global + User Setting - Setting title + + + Global settings that affect everyone that uses this Roku device. + Paramètres globaux affectant tous les utilisateurs de cet appareil Roku. + User Setting - Setting description + + + Remember the currently logged in user and try to log them in again next time you start the Jellyfin app. + Se souvenir de l'utilisateur actuellement identifié et essayer de l'identifier à nouveau au prochain démarrage de l'application Jellyfin. + User Setting - Setting description + + + Hide all clocks in Jellyfin. Jellyfin will need to be closed and reopened for changes to take effect. + Masquer toutes les horloges dans Jellyfin. Jellyfin devra être fermé et rouvert pour que le changement prenne effet. + Settings Menu - Description for option + + + Disable the HEVC codec on this device. This may improve playback for some devices (ultra). + Désactiver le codec HEVC sur cet appareil. Cela peut améliorer la lecture pour certains appareils (ultra). + User Setting - Setting description + + + Bitrate Limit + Limite de débit + + + Settings relating to the appearance of the Home screen and the program in general. + Paramètres relatifs à l'apparence de la page d'accueil et du programme en général. + + + Attempt Direct Play for H.264 media with unsupported profile levels before falling back to transcoding if it fails. + Tenter la lecture directe du média H.264 comportant des niveaux de profils incompatibles avant de revenir au transcodage si cela échoue. + Settings Menu - Description for option + + + If enabled, the number of unwatched episodes in a series/season will be removed. + Si cette option est activée, le nombre d'épisodes non regardés dans une série/saison sera enlevé. + Settings Menu - Description for option + + + Choose your preferred audio codec when transcoding multichannel audio. + Choisir son codec audio préféré lors du transcodage d'audio multicanal. + Settings Menu - Description for option + + + Slideshow Resumed + Diaporama relancé + + + Force all transcodes to use DTS instead of the default EAC3. The device must support DTS for this setting to have an effect. + Forcer tous les transcodages à utiliser le DTS à la place de l'EAC3 par défaut. L'appareil doit être compatible avec le DTS pour que ce paramètre ait un effet. + Settings Menu - Description for option + + + Configure the maximum resolution when playing video files on this device. + Configurer la résolution maximale lorsque des fichiers vidéo sont lus sur cet appareil. + User Setting - Description + + + Set the maximum resolution when playing video files on this device. + Définir la résolution maximale lorsque des fichiers vidéo sont lus sur cet appareil. + User Setting - Description + + + Next episode + Épisode suivant + + + Reason + Motif + + + Video range type + Type de plage vidéo + + + Blur images of unwatched episodes. + Flouter les images des épisodes non visionnés. + + + Design Elements + Apparence + + + Enable Limit + Activer la limitation + + + Settings relating to the appearance of pages in Movie Libraries. + Paramètres relatifs à l'apparence des pages dans les médiathèques de films. + + + Blur Unwatched Episodes + Flouter les épisodes non visionnés + Option Title in user setting screen + + + Hide Clock + Masquer l'horloge + Option Title in user setting screen + + + Video Codec + Codec vidéo + + + Audio Channels + Canaux audio + + + Stream Information + Informations de flux + + + Playback Information + Informations de lecture + + + Total Bitrate + Débit total + + + Hide Taglines + Masquer les étiquettes + Option Title in user setting screen + + + Max Days Next Up + Nombre maximal de jours dans la section 'À suivre' + Option Title in user setting screen + + + Audio Codec + Codec audio + + + direct + direct + + + Grid + Grille + Title of an option - name of grid view + + + Text Subtitles Only + Sous-titres de texte uniquement + Name of a setting - should we hide subtitles that might transcode + + + Only display text subtitles to minimize transcoding. + Seulement afficher les sous-titres de texte pour minimiser l'impact du transcodage. + Description of a setting - should we hide subtitles that might transcode + + + Show What's New popup when Jellyfin is updated to a new version. + Affiche la fenêtre contextuelle des nouveautés quand Jellyfin est mis à jour. + Settings Menu - Description for option + + + Album Artists (Presentation) + Artistes de l'album (présentation) + + + Set the maximum bitrate in Mbps. Set to 0 to use Roku's specifications. This setting must be enabled to take effect. + Définir le débit maximum en Mbps. Régler sur 0 pour utiliser les spécifications de Roku. Ce paramètre doit être activé pour être pris en compte. + + + Years + Années + Used in Filter menu + + + Movie Library Default View + Vue par défaut pour la médiathèque de films + Settings Menu - Title for option + + + Settings relating to the appearance of Library pages + Paramètres relatifs à l'apparence des pages de médiathèque + + + Disable Unwatched Episode Count + Désactiver le décompte des épisodes non regardés + Settings Menu - Title for option + + + Default view for Movie Libraries. + Affiche la vue par défaut dans les médiathèques de films. + Settings Menu - Description for option + + + Codec + Codec + + + Select when to show titles. + Sélectionner quand les titres devraient s'afficher. + Settings Menu - Description for option + + + Level + Niveau + Video profile level + + + Disable Community Rating for Episodes + Désactiver la notation de la communauté pour les épisodes + + + Custom Subtitles + Sous-titres personnalisés + Name of a setting - custom subtitles that support CJK fonts + + + Slideshow On + Diaporama activé + + + Parental Ratings + Classifications parentales + Used in Filter menu + + + Show What's New Popup + Afficher la fenêtre contextuelle des nouveautés + Settings Menu - Title for option + + + Show On Hover + Afficher au survol + + + Always Show + Toujours afficher + + + Always Hide + Toujours masquer + + + Artists (Presentation) + Artistes (présentation) + + + Song + Titre + + + Albums + Albums + + + Maximum Bitrate + Débit maximum + + + General + Général + + + Item Titles + Titres des éléments + Title of a setting - when should we show the title text of a grid item + + + Grid View Settings + Paramètres de la vue en grille + + + Size + Taille + Video size + + + Artists (Grid) + Artistes (grille) + + + Songs + Titres + + + Codec Tag + Étiquette du codec + + + Slideshow Off + Diaporama désactivé + + + Slideshow Paused + Diaporama mis en pause + + + MPEG-4 Support + Prise en charge du codec MPEG-4 + Settings Menu - Title for option + + + Album + Album + + + Bit Rate + Débit + Video streaming bit rate + + + Container + Conteneur + Video streaming container + + + Unplayed + Non lu + + + Pixel format + Format de pixel + Video pixel format + + + Aired + Diffusé + Aired date label + + + WxH + LxH + Video width x height + + + all + tout + all will reset the searchTerm so all data will be availible + + + Unable to find any albums or songs belonging to this artist + Aucun album ou chanson de cet artiste n'a pu être trouvé + Popup message when we find no audio data for an artist + + + Random On + Lecture aléatoire activée + + + Played + Lu + + + Random Off + Lecture aléatoire désactivée + + + Set how many seconds before the end of an episode the Next Episode button should appear. Set to 0 to disable. + Définir combien de secondes avant la fin d'un épisode le bouton « Prochain épisode » doit apparaître. La valeur 0 permet de le désactiver. + Settings Menu - Description for option + + + Transcoding Information + Informations de transcodage + + + Options for TV Shows. + Options pour les séries TV. + Description for TV Shows user settings. + + + Play Trailer + Lire la bande annonce + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Ce(tte) %1 ne contient pas d'éléments + + + Return to Top + Retourner en haut + UI -> Media Grid -> Item Title in user setting screen. + + + Use the replay button to slowly animate to the first item in the folder. (If disabled, the folder will reset to the first item immediately). + La touche 'Replay' utilise une animation douce afin de sélectionner le premier élément du dossier. (Si cette option est désactivée, le premier élément du dossier sera immédiatement sélectionné). + Description for option in Setting Screen + + + The source file is entirely compatible with this client and the session is receiving the file without modifications. + Le fichier source est entièrement compatible avec ce client et la session reçoit le fichier sans modifications. + Direct play info box text in GetPlaybackInfoTask.brs + + + Skip Details for Single Seasons + Sauter les détails pour les saisons uniques + Settings Menu - Title for option + + + Bring the theater experience straight to your living room with the ability to play custom intros before the main feature. + Reproduisez une expérience de cinéma directement dans votre salon en jouant des bandes annonces personnalisées avant le film. + Settings Menu - Description for option + + + Replace Roku's default subtitle functions with custom functions that support CJK fonts. Fallback fonts must be configured and enabled on the server for CJK rendering to work. + Remplacer les fonctions de sous-titres par défaut de Roku par des fonctions personnalisées qui prennent en charge les polices CJK. Des polices de secours doivent être configurées et activées sur le serveur pour que le rendu CJK fonctionne. + Description of a setting - custom subtitles that support CJK fonts + + + Hide the star and community rating for episodes of a TV show. This is to prevent spoilers of an upcoming good/bad episode. + Cacher les notations par étoiles et de la communauté pour les épisodes d'une série TV. Cela permet d'éviter les spoilers sur un bon/mauvais épisode à venir. + + + Settings that apply when Grid views are enabled. + Paramètres appliqués lorsque les vues en grille sont activées. + + + Direct playing + Lecture directe + From 007f45bd6225d2265ff690b477d999ddb73d6492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20G=C3=A4rtner?= Date: Tue, 3 Oct 2023 15:27:20 +0000 Subject: [PATCH 51/64] Translated using Weblate (German) Currently translated at 60.6% (165 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 134 +++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 325353199..75e1f7ce4 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -11980,5 +11980,139 @@ DATE_ADDED Hinzugefügt am + + Networks + Netzwerke + + + (Dialog will close automatically) + (Dialog wird automatisch geschlossen) + + + Hides tagline text on details pages. + Schlagwörter auf der Detailansicht verbergen. + + + Next episode + Nächste Episode + + + Hide Taglines + Schlagwörter verbergen + Option Title in user setting screen + + + Cinema Mode + Kinomodus + Settings Menu - Title for option + + + Play Trailer + Trailer abspielen + + + Quick Connect + Schnellverbindung + + + Studios + Studios + + + Shows + Sendungen + + + Options that alter the design of Jellyfin. + Optionen die das Aussehen von Jellyfin ändern. + Description for Design Elements user settings. + + + Hide Clock + Uhr verstecken + Option Title in user setting screen + + + H.264 + H.264 + Name of codec used in settings menu + + + Options for TV Shows. + Optionen für Fernsehsendungen. + Description for TV Shows user settings. + + + HEVC + HEVC + Name of codec used in settings menu + + + Design Elements + Designelemente + + + Go directly to the episode list if a TV series has only one season. + Direkt zur Episodenliste springen, wenn die Sendung nur eine Staffel hat. + Settings Menu - Description for option + + + Use Splashscreen as Home Background + Splashscreen als Starthintergrund verwenden + Option Title in user setting screen + + + There was an error authenticating via Quick Connect. + Es gab einen Fehler beim Authentifizieren mittels Schnellverbindung. + + + Return to Top + Zum Anfang springen + UI -> Media Grid -> Item Title in user setting screen. + + + Use the replay button to slowly animate to the first item in the folder. (If disabled, the folder will reset to the first item immediately). + Nutze den Wiedergabe-Button um das erste Objekt im Ordner langsam wiederzugeben. (Ist diese Option deaktiviert, wird der Ordner sofort zum ersten Objekt zurückspringen). + Description for option in Setting Screen + + + Blur Unwatched Episodes + Nicht-Gesehene Episoden ausblenden + Option Title in user setting screen + + + Skip Details for Single Seasons + Details für einzelne Staffel überspringen + Settings Menu - Title for option + + + Blur images of unwatched episodes. + Bilder von ungesehenen Episoden ausblenden. + + + Use generated splashscreen image as Jellyfin's home background. Jellyfin will need to be closed and reopened for change to take effect. + Generiertes Splashscreen-Bild als Jellyfins Starthintergrund verwenden. Jellyfin muss geschlossen und neu geöffnet werden, damit die Änderungen übernommen werden. + Description for option in Setting Screen + + + Bring the theater experience straight to your living room with the ability to play custom intros before the main feature. + Bringe das Kinoerlebnis direkt in dein Wohnzimmer, indem du benutzerdefinierte Intros vor dem Hauptfilm abspielst. + Settings Menu - Description for option + + + Hide all clocks in Jellyfin. Jellyfin will need to be closed and reopened for changes to take effect. + Sämtliche Uhren in Jellyfin ausblenden. Jellyfin muss geschlossen und neu geöffnet werden, damit die Änderungen übernommen werden. + Settings Menu - Description for option + + + Attempt Direct Play for H.264 media with unsupported profile levels before falling back to transcoding if it fails. + Das wiedergeben von H.264-Medien mit nicht unterstützten Profilebenen per Direct Play versuchen, bevor auf die Transkodierung zurückgegriffen wird, falls dies fehlschlägt. + Settings Menu - Description for option + + + Attempt Direct Play for HEVC media with unsupported profile levels before falling back to transcoding if it fails. + Das wiedergeben von HEVC-Medien mit nicht unterstützten Profilebenen versuchen, bevor auf die Transkodierung zurückgegriffen wird, falls dies fehlschlägt. + Settings Menu - Description for option + From 89de0a7b2baac415640c3bba4d83a40eaee56aa4 Mon Sep 17 00:00:00 2001 From: engelkek Date: Tue, 3 Oct 2023 16:38:24 +0000 Subject: [PATCH 52/64] Translated using Weblate (German) Currently translated at 60.6% (165 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 75e1f7ce4..08eb88e02 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -12114,5 +12114,49 @@ Das wiedergeben von HEVC-Medien mit nicht unterstützten Profilebenen versuchen, bevor auf die Transkodierung zurückgegriffen wird, falls dies fehlschlägt. Settings Menu - Description for option + + Media Grid + Medienübersicht + UI -> Media Grid section in user setting screen. + + + Set Watched + Als angesehen markieren + Button Text - When pressed, marks item as Warched + + + Go to episode + Gehe zu Folge + Continue Watching Popup Menu - Navigate to the Episode Detail Page + + + Media Grid options. + Medienübersichtoptionen + + + Item Count + Anzahl Elemente + UI -> Media Grid -> Item Count in user setting screen. + + + Show item count in the library and index of selected item. + Zeige die Anzahl der Elemente in der Bibliothek und den Index des ausgewählten Gegenstands. + Description for option in Setting Screen + + + You can search for Titles, People, Live TV Channels and more + Du kannst nach Titeln, Personen, Fernsehsendern und mehr suchen + Help text in search results + + + Go to season + Gehe zu Staffel + Continue Watching Popup Menu - Navigate to the Season Page + + + Set Favorite + Als Favorit markieren + Button Text - When pressed, sets item as Favorite + From 7699a63c460226b51d3a470aa695242e2deef691 Mon Sep 17 00:00:00 2001 From: mihaiblaga Date: Tue, 3 Oct 2023 16:34:12 +0000 Subject: [PATCH 53/64] Translated using Weblate (Romanian) Currently translated at 15.0% (41 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/ro/ --- locale/ro/translations.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/locale/ro/translations.ts b/locale/ro/translations.ts index 1399d37b4..879eac630 100644 --- a/locale/ro/translations.ts +++ b/locale/ro/translations.ts @@ -2706,5 +2706,9 @@ TITLE Nume + + Save Credentials? + Ține minte? + From 1c35ea23b82adc3d897603c91c68931c840a14fd Mon Sep 17 00:00:00 2001 From: engelkek Date: Tue, 3 Oct 2023 17:28:24 +0000 Subject: [PATCH 54/64] Translated using Weblate (German) Currently translated at 100.0% (272 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 530 +++++++++++++++++++++++++++++++++++ 1 file changed, 530 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 08eb88e02..8a5f6eb5f 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -12158,5 +12158,535 @@ Als Favorit markieren Button Text - When pressed, sets item as Favorite + + Settings that apply when Grid views are enabled. + Einstellungen für Rasteransichten. + + + Bitrate Limit + Bitraten-Grenze + + + Global + Global + User Setting - Setting title + + + Remember Me? + Angemeldet bleiben? + User Setting - Setting title + + + Grid + Raster + Title of an option - name of grid view + + + Hides tagline text on details pages. + Schlagwörter in der Detailansicht verbergen. + + + Custom Subtitles + Benutzerdefinierte Untertitel + Name of a setting - custom subtitles that support CJK fonts + + + Slideshow Paused + Slideshow pausiert + + + Always Show + Immer anzeigen + + + Albums + Alben + + + Album + Album + + + Disable Community Rating for Episodes + Deaktiviere Community-Bewertungen für Folgen + + + Configure the maximum playback bitrate. + Konfigurier die maximale Wiedergabe-Bitrate. + + + Libraries + Bibliotheken + + + Settings relating to the appearance of Library pages + Einstellungen die das Aussehen von Bibliotheksseiten beeinflussen + + + Settings relating to the appearance of pages in Movie Libraries. + Einstellungen die das Aussehen von Seiten in Filmbibliotheken beeinflussen. + + + Loading trailer + Lade Trailer + Dialog title in Main.brs + + + Enable or disable the 'Maximum Bitrate' setting. + Aktivier oder Deaktivier die "Maximale Bitrate"-Einstellung. + + + Pixel format + Pixelformat + Video pixel format + + + Years + Jahre + Used in Filter menu + + + Choose your preferred audio codec when transcoding multichannel audio. + Wähl deinen bevorzugten Audiocodec wenn Mehrkanalaudio transkodiert wird. + Settings Menu - Description for option + + + Audio Codec Support + Audiocodec-Unterstützung + Settings Menu - Title of option + + + Maximum Resolution + Maximale Auflösung + User Setting - Title + + + Set the maximum resolution when playing video files on this device. + Bestimme die maximale Auflösung für die Videowiedergabe auf diesem Gerät. + User Setting - Description + + + Off - Attempt to play all resolutions + Aus - Versuche alle Auflösungen wiederzugeben + User Setting - Option title + + + Auto - Use TV resolution + Automatisch - Verwende TV-Auflösung + User Setting - Option title + + + Mode + Modus + User Setting - Setting title + + + Value + Wert + User Setting - Setting title + + + Configure the maximum resolution when playing video files on this device. + Konfigurier die maximale Auflösung für die Videowiedergabe auf diesem Gerät. + User Setting - Description + + + Apply max resolution to all files or only transcoded files. + Wende maximale Auflösung auf alle oder nur transkodierte Dateien an. + User Setting - Description + + + All files + Alle Dateien + User Setting - Setting title + + + Only transcoded files + Nur transkodierte Dateien + User Setting - Setting title + + + Compatibility + Kompatibilität + User Setting - Setting title + + + Attempt to prevent playback failures. + Versuche Wiedergabefehler zu verhindern. + User Setting - Setting description + + + Disable HEVC + HEVC deaktivieren + User Setting - Setting title + + + Next episode + Nächste Folge + + + General + Allgemein + + + Video Codec + Video-Codec + + + Audio Codec + Audio-Codec + + + direct + direkt + + + Audio Channels + Audiokanäle + + + Codec Tag + Codec-Schlagwort + + + Artists (Grid) + Künstler:innen (Raster) + + + Slideshow Off + Slideshow aus + + + Played + Abgespielt + + + Always Hide + Immer verbergen + + + Quick Connect + Quick Connect + + + Shows + Serien + + + Transcoding Information + Transcoding-Informationen + + + Container + Container + Video streaming container + + + Text Subtitles Only + Nur Text-Untertitel + Name of a setting - should we hide subtitles that might transcode + + + Settings relating to the appearance of pages in TV Libraries. + Einstellungen die das Aussehen der Seiten in TV-Bibliotheken beeinflussen. + + + Here is your Quick Connect code: + Hier ist dein Quick Connect-Code: + + + Playback Information + Wiedergabeinformationen + + + Stream Information + Stream-Informationen + + + Bit Rate + Bitrate + Video streaming bit rate + + + Video range type + Videobereichstyp + + + Unable to find any albums or songs belonging to this artist + Es wurden keine Alben oder Lieder dieser Künstler:in gefunden + Popup message when we find no audio data for an artist + + + WxH + Breite und Höhe + Video width x height + + + all + alle + all will reset the searchTerm so all data will be availible + + + Aired + Veröffentlicht + Aired date label + + + Slideshow On + Slideshow ein + + + MPEG-4 Support + MPEG-4 Unterstützung + Settings Menu - Title for option + + + Parental Ratings + Altersfreigabe + Used in Filter menu + + + Resumable + fortsetzbar + + + Default view for Movie Libraries. + Standardansicht für Filmbibliotheken. + Settings Menu - Description for option + + + Show On Hover + Anzeigen wenn ausgewählt + + + Enable Limit + Begrenzung aktivieren + + + Maximum Bitrate + Maximale Bitrate + + + Grid View Settings + Einstellungen für die Rasteransicht + + + Disable Unwatched Episode Count + Deaktiviere ungeguckte Folgenanzahl + Settings Menu - Title for option + + + Artists (Presentation) + Künstler:innen (Präsentation) + + + Song + Lied + + + Songs + Lieder + + + Settings relating to playback and supported codec and media types. + Einstellungen für die Wiedergabe und unterstützte Codecs und Medientypen. + + + Settings relating to how the application looks. + Einstellungen die das Aussehen der Anwendung betreffen. + + + Reason + Grund + + + Total Bitrate + Bitrate gesamt + + + Codec + Codec + + + Size + Größe + Video size + + + Random On + Zufall ein + + + Unplayed + Noch nicht abgespielt + + + Go directly to the episode list if a TV series has only one season. + Direkt zur Episodenliste springen, wenn die Serie nur eine Staffel hat. + Settings Menu - Description for option + + + Blur images of unwatched episodes. + Bilder von noch nicht gesehenen Episoden zensieren. + + + Attempt Direct Play for H.264 media with unsupported profile levels before falling back to transcoding if it fails. + Direct Play für H.264-Medien mit nicht unterstützten Profilebenen versuchen, bevor auf die Transkodierung zurückgegriffen wird, falls dies fehlschlägt. + Settings Menu - Description for option + + + Use the replay button to slowly animate to the first item in the folder. (If disabled, the folder will reset to the first item immediately). + Nutze den Wiedergabe-Button um langsam zum ersten Element im Ordner zu wechseln. (Ist diese Option deaktiviert, wird der Ordner sofort zum ersten Objekt zurückspringen). + Description for option in Setting Screen + + + Blur Unwatched Episodes + Noch nicht gesehene Episoden zensieren + Option Title in user setting screen + + + Attempt Direct Play for HEVC media with unsupported profile levels before falling back to transcoding if it fails. + Direct Play von HEVC-Medien mit nicht unterstützten Profilebenen versuchen, bevor auf die Transkodierung zurückgegriffen wird, falls dies fehlschlägt. + Settings Menu - Description for option + + + Set the maximum amount of days a show should stay in the 'Next Up' list without watching it. + Definiere die maximale Anzahl Tage die eine Serie in "Als nächstes" angezeigt wird ohne sie anzusehen. + Settings Menu - Description for option + + + Only display text subtitles to minimize transcoding. + Stelle nur Text-Untertitel dar um Transcoding zu minimieren + Description of a setting - should we hide subtitles that might transcode + + + Slideshow Resumed + Slideshow wieder gestartet + + + Random Off + Zufall aus + + + Show What's New popup when Jellyfin is updated to a new version. + Zeige "Als nächstes" Popup nachdem Jellyfin auf eine neue Version aktualisiert wurde. + Settings Menu - Description for option + + + Select when to show titles. + Auswählen wann Titel angezeigt werden. + Settings Menu - Description for option + + + Hide the star and community rating for episodes of a TV show. This is to prevent spoilers of an upcoming good/bad episode. + Verberge die Sterne und Community-Bewertungen für Folgen einer TV-Serie. Dies soll Spoiler einer kommenden guten/schlechten Folge verhindern. + + + If enabled, the number of unwatched episodes in a series/season will be removed. + Die Anzahl der ungeguckten Folgen einer Serie-Staffel wird ausgeblendet, wenn diese Einstellung aktiviert ist. + Settings Menu - Description for option + + + Force all transcodes to use DTS instead of the default EAC3. The device must support DTS for this setting to have an effect. + Erzwinge DTS für alle Transkodierungen anstelle des Standards EAC3. Das Gerät muss DTS unterstützen damit diese Einstellung funktioniert. + Settings Menu - Description for option + + + Disable the HEVC codec on this device. This may improve playback for some devices (ultra). + Deaktiviere den HEVC-Codec auf diesem Gerät. Dies kann die Wiedergabe auf einigen Geräten verbessern (ultra). + User Setting - Setting description + + + Global settings that affect everyone that uses this Roku device. + Globale Einstellungen die alle Nutzer dieses Roku-Geräts betreffen. + User Setting - Setting description + + + Remember the currently logged in user and try to log them in again next time you start the Jellyfin app. + Anmeldung des aktuellen Nutzers erhalten und beim nächsten Start der Jellyfin-App automatisch anmelden. + User Setting - Setting description + + + Item Titles + Elementtitel + Title of a setting - when should we show the title text of a grid item + + + Level + Level + Video profile level + + + There was an error authenticating via Quick Connect. + Es gab einen Fehler bei der Authentifizierung über Quick Connect. + + + Max Days Next Up + Tage in "Als nächstes" + Option Title in user setting screen + + + Replace Roku's default subtitle functions with custom functions that support CJK fonts. Fallback fonts must be configured and enabled on the server for CJK rendering to work. + Ersetze Rokus Standard-Untertitelfunktion mit speziellen Funktionen die CJK-Fonts unterstützen. Ersatzfonts müssen auf den Server konfiguriert und aktiviert sein, damit CJK dargestellt werden kann. + Description of a setting - custom subtitles that support CJK fonts + + + Show What's New Popup + Zeige "Als nächstes" Popup + Settings Menu - Title for option + + + Movie Library Default View + Standardansicht der Filmbibliothek + Settings Menu - Title for option + + + The source file is entirely compatible with this client and the session is receiving the file without modifications. + Die Quellendatei ist vollständig kompatibel mit diesem Gerät und erhält die Datei unverändert. + Direct play info box text in GetPlaybackInfoTask.brs + + + Album Artists (Presentation) + Album-Künstler:innen (Präsentation) + + + Album Artists (Grid) + Albumkünstler:innen (Raster) + + + View All + Alle anzeigen + + + Biographical information for this person is not currently available. + Biographische Informationen für diese Person sind aktuell nicht verfügbar. + + + Set the maximum bitrate in Mbps. Set to 0 to use Roku's specifications. This setting must be enabled to take effect. + Setz die maximale Bitrate in Mpbs. Verwende 0 um Rokus Standard zu verwenden. Diese Einstellung muss aktiviert werden um Auswirkungen zu haben. + + + Settings relating to the appearance of the Home screen and the program in general. + Einstellungen die das Aussehen des Startbildschirms und der Anwendung allgemein beeinflussen. + + + Presentation + Präsentation + Title of an option - name of presentation view + + + Next Episode Button Time + Zeit für "Nächste Folge"-Button + Settings Menu - Title for option + + + Set how many seconds before the end of an episode the Next Episode button should appear. Set to 0 to disable. + Wie viele Sekunden vor Ende einer Episode der "Nächste Folge"-Button angezeigt werden soll. Auf 0 setzen zum deaktivieren. + Settings Menu - Description for option + + + Direct playing + Direkte Wiedergabe + From 1d7647552cc14bbefcd75da88c64d05cab25e8aa Mon Sep 17 00:00:00 2001 From: Darigaf Date: Wed, 4 Oct 2023 01:54:48 +0000 Subject: [PATCH 55/64] Translated using Weblate (Portuguese (Brazil)) Currently translated at 52.2% (142 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/pt_BR/ --- locale/pt_BR/translations.ts | 486 ++++++++++++++++++++++++++++++++++- 1 file changed, 484 insertions(+), 2 deletions(-) diff --git a/locale/pt_BR/translations.ts b/locale/pt_BR/translations.ts index 120325923..723cbf207 100644 --- a/locale/pt_BR/translations.ts +++ b/locale/pt_BR/translations.ts @@ -6,7 +6,7 @@ default 192.168.1.100:8096 or https://example.com/jellyfin - padrão 192.168.1.100:8096 ou https://exemplo.com/jellyfin + 192.168.1.100:8096 ou https://exemplo.com/jellyfin Cancel @@ -118,7 +118,7 @@ Enter a password - Insira um senha + Insira uma senha Enter a value... @@ -3049,5 +3049,487 @@ IMDB_RATING Avaliação IMDb + + Title of Tab for options to sort library content + TAB_SORT + Ordenar + + + Cancel Recording + Cancelar Gravação + + + PLAY_COUNT + Número de Reproduções + + + RUNTIME + Duração + + + Title of Tab for options to filter library content + TAB_FILTER + Filtrar + + + Died + Morreu + + + Quick Connect + Quick Connect + + + More Like This + Mais iguais a este + + + yesterday + ontem + Previous day + + + Thursday + Quinta-Feira + Day of Week + + + Cast & Crew + Elenco e Equipe + + + Movies + Filmes + + + Ended at + Encerrado às + (Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) + + + View Channel + Ver Canal + + + DATE_ADDED + Data de Adição + + + Error loading Channel Data + Erro ao Carregar Informações do Canal + + + Press 'OK' to Close + Clique em 'OK' para fechar + + + Special Features + Recursos Especiais + + + Additional Parts + Partes Adicionais + Additional parts of a video + + + Wednesday + Quarta-Feira + Day of Week + + + Friday + Sexta-Feira + Day of Week + + + Live + Ao Vivo + If TV Show is being broadcast live (not pre-recorded) + + + Saturday + Sábado + Day of Week + + + Started + Começou + (Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) + + + Starts at + Começa às + (Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) + + + Repeat + Repetir + If TV Shows has previously been broadcasted + + + Channels + Canais + Menu option for showing Live TV Channel List + + + Connecting to Server + Conectando ao Servidor + Message to display to user while client is attempting to connect to the server + + + Not found + Não encontrado + Title of message box when the requested content is not found on the server + + + Media Grid options. + Opções de Grade de Mídia. + + + Show item count in the library and index of selected item. + Exibir quantidade de itens na biblioteca, e o número do item selecionado. + Description for option in Setting Screen + + + Set Watched + Marcar como Assistido + Button Text - When pressed, marks item as Warched + + + Go to season + Ir para a temporada + Continue Watching Popup Menu - Navigate to the Season Page + + + Go to episode + Ir para o episódio + Continue Watching Popup Menu - Navigate to the Episode Detail Page + + + Shows + Séries + + + Play Trailer + Assistir Trailer + + + Change Server + Mudar Servidor + + + Sign Out + Sair + + + Save Credentials? + Salvar crededenciais? + + + On Now + Em Exibição + + + Delete Saved + Deletar Salvos + + + Error Retrieving Content + Erro ao Buscar Conteúdo + Dialog title when unable to load Content from Server + + + Error During Playback + Erro Durante Exibição + Dialog title when error occurs during playback + + + There was an error retrieving the data for this item from the server. + Houve um erro ao buscar dados deste item do servidor. + Dialog detail when unable to load Content from Server + + + An error was encountered while playing this item. + Um erro ocorreu durante a exibição deste item. + Dialog detail when error occurs during playback + + + Loading Channel Data + Carregando Informações do Canal + + + Unable to load Channel Data from the server + Incapaz de carregar Dados dos Canais do servidor + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + O %1 não possui nenhum item + + + Name or Title field of media item + TITLE + Nome + + + CRITIC_RATING + Avaliação dos Críticos + + + DATE_PLAYED + Data de Reprodução + + + OFFICIAL_RATING + Classificação Etária + + + RELEASE_DATE + Data de Lançamento + + + Title of Tab for switching "views" when looking at a library + TAB_VIEW + Visualização + + + Born + Nasceu + + + Age + Idade + + + TV Shows + Séries de TV + + + today + hoje + Current day + + + tomorrow + amanhã + Next day + + + Monday + Segunda-Feira + Day of Week + + + Tuesday + Terça-Feira + Day of Week + + + Record + Gravar + + + Record Series + Gravar Séries + + + Cancel Series Recording + Cancelar Gravação da Série + + + Close + Fechar + + + Unknown + Desconhecido + Title for a cast member for which we have no information for + + + Enter the server name or IP address + Insira o nome do servidor ou seu endereço IPQ + Title of KeyboardDialog when manually entering a server URL + + + Version + Versão + + + MPEG-2 + MPEG-2 + Name of codec used in settings menu + + + MPEG-4 + MPEG-4 + Name of codec used in settings menu + + + AV1 + AV1 + Name of a setting - should we try to direct play experimental av1 codec + + + Disabled + Desativado + + + User Interface + Interface de Usuário + Title for User Interface section in user setting screen. + + + There was an error authenticating via Quick Connect. + Houve um erro ao autenticar via Quick Connect + + + Here is your Quick Connect code: + Aqui está o seu código Quick Connect: + + + Return to Top + Retornar ao Topo + UI -> Media Grid -> Item Title in user setting screen. + + + Cinema Mode + Modo Cinema + Settings Menu - Title for option + + + Hide Clock + Esconder Relógio + Option Title in user setting screen + + + Next episode + Próximo Episódio + + + H.264 + H.264 + Name of codec used in settings menu + + + HEVC + HEVC + Name of codec used in settings menu + + + Total Bitrate + Bitrate Total + + + Audio Channels + Canais de Áudio + + + Size + Tamanho + Video size + + + Aired + Estreado + Aired date label + + + Years + + Used in Filter menu + + + Movies (Presentation) + Filmes (Apresentação) + Movie library view option + + + Movies (Grid) + Filmes (Grade) + Movie library view option + + + Sunday + Domingo + Day of Week + + + Started at + Começou às + (Past Tense) For defining time when a program started today (e.g. Started at 08:00) + + + Starts + Começará + (Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) + + + Ends at + Termina às + (Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) + + + TV Guide + Guia da TV + Menu option for showing Live TV Guide / Schedule + + + The requested content does not exist on the server + O conteúdo solicitado não existe no servidor + Content of message box when the requested content is not found on the server + + + Pick a Jellyfin server from the local network + Escolha um servidor Jellyfin da sua rede local: + Instructions on initial app launch when the user is asked to pick a server from a list + + + ...or enter server URL manually: + Se nenhum servidor está listado acima, você também pode inserir a URL do servidor manualmente: + Instructions on initial app launch when the user is asked to manually enter a server URL + + + Error Getting Playback Information + Erro ao Obter Informação de Playback + Dialog Title: Received error from server when trying to get information about the selected item for playback + + + An error was encountered while playing this item. Server did not provide required transcoding data. + Um erro foi encontrado ao exibir este item. O servidor não entregou os dados de transcodificação necessários. + Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url + + + Media Grid + Grade de Mídia + UI -> Media Grid section in user setting screen. + + + Item Count + Quantidade de Itens + UI -> Media Grid -> Item Count in user setting screen. + + + Set Favorite + Adicionar Favorito + Button Text - When pressed, sets item as Favorite + + + Go to series + Ir para a série + Continue Watching Popup Menu - Navigate to the Series Detail Page + + + Enabled + Ativado + + + Playback + Reprodução + Title for Playback section in user setting screen. + + + IMDB_RATING + Avaliação IMDb + From 56f45aa25d1e17524e2d76c2f13775c224aeb2d4 Mon Sep 17 00:00:00 2001 From: pgk83 Date: Wed, 4 Oct 2023 03:36:55 +0000 Subject: [PATCH 56/64] Translated using Weblate (Hungarian) Currently translated at 29.4% (80 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/hu/ --- locale/hu/translations.ts | 176 +++++++++++++++++++++++++++++++++++++- 1 file changed, 175 insertions(+), 1 deletion(-) diff --git a/locale/hu/translations.ts b/locale/hu/translations.ts index 3027cf144..f71254428 100644 --- a/locale/hu/translations.ts +++ b/locale/hu/translations.ts @@ -58,7 +58,7 @@ Server not found, is it online? - A szerver nem található. Biztosan fut? + A szerver nem található. Biztosan működik? Shuffle @@ -11281,5 +11281,179 @@ Save Credentials? Menti a bejelentkezési adatokat? + + Ends at + Befejeződik ekkor + (Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) + + + Enter the server name or IP address + Add meg a szerver nevét vagy IP-címét + Title of KeyboardDialog when manually entering a server URL + + + Pick a Jellyfin server from the local network + Válasszon egy Jellyfin szervert a helyi hálózatról: + Instructions on initial app launch when the user is asked to pick a server from a list + + + Unable to load Channel Data from the server + Csatornák beolvasása sikertelen + + + Title of Tab for switching "views" when looking at a library + TAB_VIEW + Nézet + + + Cancel Recording + Felvétel megállítása + + + Live + Élő + If TV Show is being broadcast live (not pre-recorded) + + + Record Series + Sorozat felvétele + + + Close + Bezárás + + + On Now + Adásban + + + Error Retrieving Content + Tartalom nem elérhető + Dialog title when unable to load Content from Server + + + Error During Playback + Hiba lejátszás közben + Dialog title when error occurs during playback + + + There was an error retrieving the data for this item from the server. + Hibásan érkezett tartalom + Dialog detail when unable to load Content from Server + + + An error was encountered while playing this item. + Hiba történt az elem lejátszása közben. + Dialog detail when error occurs during playback + + + Loading Channel Data + Csatornák betöltése + + + Error loading Channel Data + Hiba történt a csatornaadatok betöltésekor + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Ez a(z) %1 nem tartalmaz elemeket + + + Name or Title field of media item + TITLE + Név + + + IMDB_RATING + IMDb Értékelés + + + DATE_PLAYED + Lejátszás Dátuma + + + OFFICIAL_RATING + Korhatár + + + PLAY_COUNT + Lejátszások Száma + + + RELEASE_DATE + Megjelenés dátuma + + + RUNTIME + Játékidő + + + Starts + Kezdés + (Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) + + + Ended at + Befejeződik + (Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) + + + TV Guide + Műsorújság + Menu option for showing Live TV Guide / Schedule + + + Cancel Series Recording + Sorozatfelvétel leállítása + + + Connecting to Server + Csatlakozás a szerverhez + Message to display to user while client is attempting to connect to the server + + + ...or enter server URL manually: + Ha a listában nem található szerver, akkor add meg kézzel a szerver URL-jét: + Instructions on initial app launch when the user is asked to manually enter a server URL + + + Error Getting Playback Information + Hiba a lejátszási információk lekérésekor + Dialog Title: Received error from server when trying to get information about the selected item for playback + + + Repeat + Ismétlés + If TV Shows has previously been broadcasted + + + Channels + Csatornák + Menu option for showing Live TV Channel List + + + View Channel + Csatorna Megtekintése + + + Record + Felvétel + + + Not found + Nem található + Title of message box when the requested content is not found on the server + + + Unknown + Ismeretlen + Title for a cast member for which we have no information for + + + The requested content does not exist on the server + A kért tartalom nem található a szerveren + Content of message box when the requested content is not found on the server + From 71fec24c1ed9a1b20e1ca011f402f9264c36f10a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20G=C3=A4rtner?= Date: Wed, 4 Oct 2023 11:45:31 +0000 Subject: [PATCH 57/64] Translated using Weblate (German) Currently translated at 100.0% (272 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/de/ --- locale/de_DE/translations.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/locale/de_DE/translations.ts b/locale/de_DE/translations.ts index 8a5f6eb5f..5d208e9b8 100644 --- a/locale/de_DE/translations.ts +++ b/locale/de_DE/translations.ts @@ -12688,5 +12688,27 @@ Direct playing Direkte Wiedergabe + + Quick Connect + Schnellverbindung + + + Media Grid options. + Medienübersichtsoptionen + + + Special Features + Sonderfunktionen + + + Default view for Movie Libraries. + Standardansicht für Filmbibliotheken. + Settings Menu - Description for option + + + The requested content does not exist on the server + Der gewünschte Inhalt existiert nicht auf dem Server + Content of message box when the requested content is not found on the server + From d0c8b233ff8270e0022723b2170133cae5c62e4b Mon Sep 17 00:00:00 2001 From: Carlos Baptista Date: Wed, 4 Oct 2023 18:15:11 +0000 Subject: [PATCH 58/64] Translated using Weblate (Portuguese (Brazil)) Currently translated at 53.3% (145 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/pt_BR/ --- locale/pt_BR/translations.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/locale/pt_BR/translations.ts b/locale/pt_BR/translations.ts index 723cbf207..f45bd417f 100644 --- a/locale/pt_BR/translations.ts +++ b/locale/pt_BR/translations.ts @@ -3531,5 +3531,23 @@ IMDB_RATING Avaliação IMDb + + Hide all clocks in Jellyfin. Jellyfin will need to be closed and reopened for changes to take effect. + Ocultar todos os relógios no Jellyfin. Jellyfin precisará ser fechado e reaberto para que as mudanças tenham efeito. + Settings Menu - Description for option + + + (Dialog will close automatically) + (Janela fechará automaticamente) + + + Enable or disable Direct Play for optional codecs + Habilitar ou desabilitar Reprodução Direta para codecs opcionais + Settings Menu - Title for settings group related to codec support + + + There was an error authenticating via Quick Connect. + Houve um erro ao autenticar via Quick Connect. + From abe9afdfe4484f1ac4c8ece786943491dd267c4f Mon Sep 17 00:00:00 2001 From: G Ribeiro Date: Thu, 5 Oct 2023 06:14:13 +0000 Subject: [PATCH 59/64] Translated using Weblate (Portuguese (Brazil)) Currently translated at 55.5% (151 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/pt_BR/ --- locale/pt_BR/translations.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/locale/pt_BR/translations.ts b/locale/pt_BR/translations.ts index f45bd417f..addd22889 100644 --- a/locale/pt_BR/translations.ts +++ b/locale/pt_BR/translations.ts @@ -3549,5 +3549,41 @@ There was an error authenticating via Quick Connect. Houve um erro ao autenticar via Quick Connect. + + %1 of %2 + %1 de %2 + Item position and count. %1 = current item. %2 = total number of items + + + Use the replay button to slowly animate to the first item in the folder. (If disabled, the folder will reset to the first item immediately). + Use o botão de replay para animar devagar o primeiro item da pasta. (Se desabilitado, a pasta será redefinida para o primeiro item imediatamente). + Description for option in Setting Screen + + + Libraries + Coleções + + + Settings relating to the appearance of Library pages + Configurações relacionadas a aparência da página Coleções + + + Networks + Redes + + + General + Geral + + + Search now + Pesquisar + Help text in search Box + + + You can search for Titles, People, Live TV Channels and more + Pesquise por título, pessoas, canais ao vivo e mais + Help text in search results + From e5392d4a77432aa45db2b9b418ca663e41e486bb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Oct 2023 14:21:35 +0000 Subject: [PATCH 60/64] Update dependency brighterscript to v0.65.8 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1463d15c8..f0afbb4d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@rokucommunity/bslint": "0.8.10", - "brighterscript": "0.65.7", + "brighterscript": "0.65.8", "jshint": "2.13.6", "markdownlint-cli2": "0.10.0", "rimraf": "5.0.5", @@ -629,9 +629,9 @@ } }, "node_modules/brighterscript": { - "version": "0.65.7", - "resolved": "https://registry.npmjs.org/brighterscript/-/brighterscript-0.65.7.tgz", - "integrity": "sha512-cmV0JzlYuKIKkMsbHR2FyaD2YugHeHESdMmUOtK61EsEUS895Y6yXftDVnFUwij7beLiZR6s1oRpMfiS7MJ40g==", + "version": "0.65.8", + "resolved": "https://registry.npmjs.org/brighterscript/-/brighterscript-0.65.8.tgz", + "integrity": "sha512-mqarSnGCl/VSTRj1oY9wRMZJV9s8dH+rZZ2P1yE7d1nZQucVpAIGICW83G9AJHQYUDjrGsKHn5UfAfaZaE1KCA==", "dependencies": { "@rokucommunity/bslib": "^0.1.1", "@xml-tools/parser": "^1.0.7", diff --git a/package.json b/package.json index 781e37854..91d78ceab 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "devDependencies": { "@rokucommunity/bslint": "0.8.10", - "brighterscript": "0.65.7", + "brighterscript": "0.65.8", "jshint": "2.13.6", "markdownlint-cli2": "0.10.0", "rimraf": "5.0.5", From 40627d1e429eda1878676b970943393cb540fa68 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 7 Oct 2023 16:01:28 +0000 Subject: [PATCH 61/64] Update dependency brighterscript-formatter to v1.6.34 --- package-lock.json | 64 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0afbb4d1..cebc89f80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "dependencies": { "@rokucommunity/bslib": "0.1.1", "bgv": "npm:button-group-vert@1.0.2", - "brighterscript-formatter": "1.6.33", + "brighterscript-formatter": "1.6.34", "intKeyboard": "npm:integer-keyboard@1.0.12", "log": "npm:roku-log@0.11.1", "sob": "npm:slide-out-button@1.0.1" @@ -671,11 +671,11 @@ } }, "node_modules/brighterscript-formatter": { - "version": "1.6.33", - "resolved": "https://registry.npmjs.org/brighterscript-formatter/-/brighterscript-formatter-1.6.33.tgz", - "integrity": "sha512-XmirSAOBBHsprJvLOuh8nzXNiPQJXQa2NJ581OZdQrofFdBNPGH+yFhV6XXUZ+pA6fVLSxMxXA0toF83jtKjrA==", + "version": "1.6.34", + "resolved": "https://registry.npmjs.org/brighterscript-formatter/-/brighterscript-formatter-1.6.34.tgz", + "integrity": "sha512-qGjoiIVrbvgit4RkSF4iNZKFCaavzQG/7G9ZgJs87rBHeCOvqBy+e264cD/KwDnhg4kMdvty45zZ+Um8Oeo2UQ==", "dependencies": { - "brighterscript": "^0.65.7", + "brighterscript": "^0.65.8", "glob-all": "^3.3.0", "jsonc-parser": "^3.0.0", "source-map": "^0.7.3", @@ -686,6 +686,16 @@ "bsfmt": "dist/cli.js" } }, + "node_modules/brighterscript-formatter/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, "node_modules/brighterscript-formatter/node_modules/glob-all": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.3.1.tgz", @@ -698,21 +708,6 @@ "glob-all": "bin/glob-all" } }, - "node_modules/brighterscript-formatter/node_modules/glob-all/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/brighterscript-formatter/node_modules/glob-all/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, "node_modules/brighterscript-formatter/node_modules/glob-all/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", @@ -734,18 +729,6 @@ "node": ">=8" } }, - "node_modules/brighterscript-formatter/node_modules/glob-all/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/brighterscript-formatter/node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", @@ -764,6 +747,23 @@ "node": ">=8" } }, + "node_modules/brighterscript-formatter/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/brighterscript-formatter/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/brighterscript/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", diff --git a/package.json b/package.json index 91d78ceab..bc57560c7 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "dependencies": { "@rokucommunity/bslib": "0.1.1", "bgv": "npm:button-group-vert@1.0.2", - "brighterscript-formatter": "1.6.33", + "brighterscript-formatter": "1.6.34", "intKeyboard": "npm:integer-keyboard@1.0.12", "log": "npm:roku-log@0.11.1", "sob": "npm:slide-out-button@1.0.1" From cbeba22d92c89caffff742a40d64de9e35c4ea4e Mon Sep 17 00:00:00 2001 From: Prasaedonium Date: Sun, 8 Oct 2023 06:12:27 +0000 Subject: [PATCH 62/64] Translated using Weblate (Spanish) Currently translated at 100.0% (272 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/es/ --- locale/es_ES/translations.ts | 877 +++++++++++++++++++++++++++++++++++ 1 file changed, 877 insertions(+) diff --git a/locale/es_ES/translations.ts b/locale/es_ES/translations.ts index 6fd6765a2..f38e88dcb 100644 --- a/locale/es_ES/translations.ts +++ b/locale/es_ES/translations.ts @@ -5693,5 +5693,882 @@ Unable to load Channel Data from the server Incapaz de cargar datos de Canal del servidor + + Disable Unwatched Episode Count + Deshabilitar Cuenta de Episodios No Vistos + Settings Menu - Title for option + + + If enabled, the number of unwatched episodes in a series/season will be removed. + Si está habilitado, se eliminará la cantidad de episodios no vistos de una serie/temporada. + Settings Menu - Description for option + + + Loading trailer + Cargando trailer + Dialog title in Main.brs + + + Set how many seconds before the end of an episode the Next Episode button should appear. Set to 0 to disable. + Establecer cuántos segundos antes del final de un episodio debe aparecer el botón Próximo Episodio. Usa 0 para desactivar. + Settings Menu - Description for option + + + Choose your preferred audio codec when transcoding multichannel audio. + Elige tu códec de audio preferido al transcodificar audio multicanal. + Settings Menu - Description for option + + + Force all transcodes to use DTS instead of the default EAC3. The device must support DTS for this setting to have an effect. + Fuerza que todas las transcodificaciones utilicen DTS en lugar del EAC3 predeterminado. El dispositivo debe admitir DTS para que esta configuración tenga efecto. + Settings Menu - Description for option + + + Set the maximum resolution when playing video files on this device. + Establecer la resolución máxima al reproducir archivos de video en este dispositivo. + User Setting - Description + + + Auto - Use TV resolution + Auto - Usar la resolución de la TV + User Setting - Option title + + + Apply max resolution to all files or only transcoded files. + Aplicar máxima resolución a todos los archivos o solo a los archivos transcodificados. + User Setting - Description + + + Disable the HEVC codec on this device. This may improve playback for some devices (ultra). + Deshabilitar el códec HEVC en este dispositivo. Esto puede mejorar la reproducción en algunos dispositivos (ultra). + User Setting - Setting description + + + Additional Parts + Partes Adicionales + Additional parts of a video + + + Global settings that affect everyone that uses this Roku device. + Configuraciones globales que afectan a todos los que usen este dispositivo Roku. + User Setting - Setting description + + + TV Shows + Series de TV + + + Remember Me? + Recordarme? + User Setting - Setting title + + + The requested content does not exist on the server + El contenido solicitado no existe en el servidor + Content of message box when the requested content is not found on the server + + + Remember the currently logged in user and try to log them in again next time you start the Jellyfin app. + Recordar al usuario que acaba de ingresar e intentar iniciar sesión nuevamente la próxima vez que abras la app de Jellyfin. + User Setting - Setting description + + + Hide Taglines + Ocultar Eslogan + Option Title in user setting screen + + + Total Bitrate + Tasa de Bits Total + + + Global + Global + User Setting - Setting title + + + Started + Empezó + (Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) + + + Special Features + Características Especiales + + + Cancel Recording + Cancelar Grabación + + + Set Watched + Marcar como Visto + Button Text - When pressed, marks item as Warched + + + Media Grid options. + Opciones de la Cuadrícula de Multimedia. + + + Transcoding Information + Información de Transcodificación + + + Stream Information + Información de la Transmisión + + + Codec + Códec + + + Title of Tab for switching "views" when looking at a library + TAB_VIEW + Ver + + + Starts at + Empieza a las + (Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) + + + Ended at + Terminó a las + (Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) + + + Live + En vivo + If TV Show is being broadcast live (not pre-recorded) + + + Repeat + Repetir + If TV Shows has previously been broadcasted + + + Connecting to Server + Conectando al Servidor + Message to display to user while client is attempting to connect to the server + + + Pick a Jellyfin server from the local network + Selecciona un servidor Jellyfin disponible en tu red local: + Instructions on initial app launch when the user is asked to pick a server from a list + + + An error was encountered while playing this item. Server did not provide required transcoding data. + Un error ha ocurrido reproduciendo este elemento. El servidor no entregó los datos de transcodificación requeridos. + Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url + + + MPEG-2 + MPEG-2 + Name of codec used in settings menu + + + Support Direct Play of MPEG-2 content (e.g., Live TV). This will prevent transcoding of MPEG-2 content, but uses significantly more bandwidth. + Soporte de reproducción directa para contenido MPEG-2 (ej., televisión en vivo). Esto previene la transcodificación de contenido MPEG-2, pero a mayor uso de ancho de banda. + Settings Menu - Description for option + + + Settings relating to the appearance of the Home screen and the program in general. + Configuraciones relacionada a la apariencia de la pantalla de Inicio y el programa en general. + + + Settings that apply when Grid views are enabled. + Configuraciones que aplican cuando el modo de Cuadrícula es habilitado. + + + Support Direct Play of MPEG-4 content. This may need to be disabled for playback of DIVX encoded video files. + Soporte de reproducción directa para contenido MPEG-4. Esto podría requerir ser deshabilitado para poder reproducir los archivos de video con encodificación DIVX. + Settings Menu - Description for option + + + AV1 + AV1 + Name of a setting - should we try to direct play experimental av1 codec + + + Enabled + Habilitado + + + Media Grid + Cuadrícula de Multimedia + UI -> Media Grid section in user setting screen. + + + Show item count in the library and index of selected item. + Mostrar cantidad de elementos en la biblioteca y el índice del elemento seleccionado. + Description for option in Setting Screen + + + Go to series + Ir a series + Continue Watching Popup Menu - Navigate to the Series Detail Page + + + Quick Connect + Conexión Rápida + + + Return to Top + Volver Arriba + UI -> Media Grid -> Item Title in user setting screen. + + + Use the replay button to slowly animate to the first item in the folder. (If disabled, the folder will reset to the first item immediately). + Usa el botón de reproducción para animar lentamente al primer elemento de la carpeta. (Si está deshabilitado, la carpeta se restablecerá al primer elemento inmediatamente). + Description for option in Setting Screen + + + Options for TV Shows. + Opciones para Series de TV. + Description for TV Shows user settings. + + + Go directly to the episode list if a TV series has only one season. + Ir directamente a lista de episodios si la serie de TV tiene solo una temporada. + Settings Menu - Description for option + + + Blur images of unwatched episodes. + Desenfocar imágenes de episodios sin ver. + + + Design Elements + Elementos de Diseño + + + Use Splashscreen as Home Background + Usar Pantalla de Bienvenida como Fondo de Inicio + Option Title in user setting screen + + + Bring the theater experience straight to your living room with the ability to play custom intros before the main feature. + Trae la experiencia del cine directamente a tu sala con la capacidad de reproducir intros personalizadas antes de la función principal. + Settings Menu - Description for option + + + Use generated splashscreen image as Jellyfin's home background. Jellyfin will need to be closed and reopened for change to take effect. + Usar la imagen de pantalla de presentación generada como fondo de inicio de Jellyfin. Será necesario cerrar y reabrir Jellyfin para que el cambio surta efecto. + Description for option in Setting Screen + + + Attempt Direct Play for H.264 media with unsupported profile levels before falling back to transcoding if it fails. + Intentar utilizar Direct Play para medios H.264 con niveles de perfil no compatibles antes de volver a la transcodificación si falla. + Settings Menu - Description for option + + + Settings relating to playback and supported codec and media types. + Configuración relacionada a la reproducción y tipos de media. + + + Max Days Next Up + Cantidad Máxima de Días Para A Continuación + Option Title in user setting screen + + + Unable to find any albums or songs belonging to this artist + No se pudieron encontrar álbumes o canciones relacionadas a este artista + Popup message when we find no audio data for an artist + + + Custom Subtitles + Subtitulos Personalizados + Name of a setting - custom subtitles that support CJK fonts + + + Replace Roku's default subtitle functions with custom functions that support CJK fonts. Fallback fonts must be configured and enabled on the server for CJK rendering to work. + Reemplaza las funciones de subtítulos predeterminadas de Roku con funciones personalizadas que admitan fuentes CJK. Las fuentes alternativas deben configurarse y habilitarse en el servidor para que funcione la renderización de CJK. + Description of a setting - custom subtitles that support CJK fonts + + + Only display text subtitles to minimize transcoding. + Solo mostrar subtítulos de texto para minimizar la transcodificación. + Description of a setting - should we hide subtitles that might transcode + + + all + todo + all will reset the searchTerm so all data will be availible + + + Slideshow Resumed + Presentación Reanudada + + + Movie Library Default View + Vista Predeterminada de la Biblioteca de Películas + Settings Menu - Title for option + + + Item Titles + Títulos de Elementos + Title of a setting - when should we show the title text of a grid item + + + Select when to show titles. + Seleccionar cuando mostrar los títulos. + Settings Menu - Description for option + + + Show On Hover + Enseñar Al Pasar + + + Artists (Grid) + Artistas (Cuadrícula) + + + Album Artists (Presentation) + Artístas del Álbum (Presentación) + + + Songs + Canciones + + + Hide the star and community rating for episodes of a TV show. This is to prevent spoilers of an upcoming good/bad episode. + Ocultar el rating de estrellas y comunidad para los episodios de una serie de TV. Esto evita spoilers de un buen/mal episodio. + + + Configure the maximum playback bitrate. + Configurar la tasa de bits máxima para la reproducción. + + + Enable Limit + Habilitar Límite + + + Maximum Bitrate + Tasa de Bits Máxima + + + Set the maximum bitrate in Mbps. Set to 0 to use Roku's specifications. This setting must be enabled to take effect. + Establecer la tasa de bits máxima en Mbps. Establecela en 0 para utilizar las especificaciones de Roku. Esta configuración debe estar habilitada para que surta efecto. + + + Libraries + Bibliotecas + + + Enable or disable the 'Maximum Bitrate' setting. + Habilitar o deshabilitar la configuración de 'Tasa Máxima de Bits'. + + + Album Artists (Grid) + Artistas del Álbum (Cuadrícula) + + + Album + Álbum + + + Albums + Álbumes + + + Biographical information for this person is not currently available. + La información biográfica de esta persona no está disponible por el momento. + + + Settings relating to the appearance of pages in TV Libraries. + Configuraciones relacionadas a la apariencia de las páginas en las Bibliotecas de TV. + + + General + General + + + Grid View Settings + Configuraciones de la Vista en Cuadrícula + + + Settings relating to the appearance of pages in Movie Libraries. + Configuraciones relacionadas a la apariencia de las páginas en las Bibliotecas de Películas. + + + Presentation + Presentación + Title of an option - name of presentation view + + + Grid + Cuadrícula + Title of an option - name of grid view + + + Next Episode Button Time + Tiempo para el Botón de Siguiente Episodio + Settings Menu - Title for option + + + Movies + Películas + + + Started at + Empezó a las + (Past Tense) For defining time when a program started today (e.g. Started at 08:00) + + + Audio Codec Support + Soporte Para el Códec de Audio + Settings Menu - Title of option + + + Maximum Resolution + Resolución Máxima + User Setting - Title + + + Off - Attempt to play all resolutions + Desactivado - Intentar reproducir todas las resoluciones + User Setting - Option title + + + Mode + Modo + User Setting - Setting title + + + Value + Valor + User Setting - Setting title + + + Configure the maximum resolution when playing video files on this device. + Configura la resolución máxima cuando se reproduzcan archivos de video en este dispositivo. + User Setting - Description + + + All files + Todos los archivos + User Setting - Setting title + + + Only transcoded files + Solo archivos transcodificados + User Setting - Setting title + + + Compatibility + Compatibilidad + User Setting - Setting title + + + Attempt to prevent playback failures. + Intentar prevenir fallas de reproducción. + User Setting - Setting description + + + Disable HEVC + Desactivar HEVC + User Setting - Setting title + + + Close + Cerrar + + + Starts + Empieza + (Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) + + + Settings relating to the appearance of Library pages + Configuraciones relacionadas con la apariencia de las páginas de la Biblioteca + + + More Like This + Más como Esto + + + Blur Unwatched Episodes + Desenfocar Episodios No Vistos + Option Title in user setting screen + + + Skip Details for Single Seasons + Saltar Detalles para Temporadas Únicas + Settings Menu - Title for option + + + Hide Clock + Ocultar Reloj + Option Title in user setting screen + + + Next episode + Siguiente episodio + + + View All + Ver Todo + + + Movies (Grid) + Películas (Cuadrícula) + Movie library view option + + + Record Series + Grabar Serie + + + Cancel Series Recording + Cancelar Grabación de Serie + + + Item Count + Cantidad de Elementos + UI -> Media Grid -> Item Count in user setting screen. + + + Set Favorite + Agregar a Favoritos + Button Text - When pressed, sets item as Favorite + + + Go to season + Ir a temporada + Continue Watching Popup Menu - Navigate to the Season Page + + + Go to episode + Ir a episodio + Continue Watching Popup Menu - Navigate to the Episode Detail Page + + + Search now + Buscar ahora + Help text in search Box + + + %1 of %2 + %1 de %2 + Item position and count. %1 = current item. %2 = total number of items + + + (Dialog will close automatically) + (El Diálogo se cerrará automáticamente) + + + Hides tagline text on details pages. + Ocultar texto de eslogan en páginas de detalles. + + + Hide all clocks in Jellyfin. Jellyfin will need to be closed and reopened for changes to take effect. + Ocultar todos los relojes en Jellyfin. Será necesario cerrar y reabrir Jellyfin para que los cambios surtan efecto. + Settings Menu - Description for option + + + Attempt Direct Play for HEVC media with unsupported profile levels before falling back to transcoding if it fails. + Intentar utilizar Direct Play para medios HEVC con niveles de perfil no compatibles antes de volver a la transcodificación si falla. + Settings Menu - Description for option + + + Audio Codec + Códec de Audio + + + Video range type + Tipo de rango de video + + + Random On + Activar Aleatorio + + + Parental Ratings + Ratings Parentales + Used in Filter menu + + + Years + Años + Used in Filter menu + + + Show What's New popup when Jellyfin is updated to a new version. + Enseñar popup de Novedades cuando Jellyfin se actualiza a una nueva versión. + Settings Menu - Description for option + + + Played + Reproducido + + + Playback Information + Información de Reproducción + + + Video Codec + Códec de Video + + + Default view for Movie Libraries. + Vista predeterminada para las Bibliotecas de Películas. + Settings Menu - Description for option + + + Bit Rate + Tasa de Bits + Video streaming bit rate + + + Size + Tamaño + Video size + + + Pixel format + Formato de pixeles + Video pixel format + + + Always Show + Siempre Mostrar + + + Always Hide + Siempre Ocultar + + + WxH + WxH + Video width x height + + + Text Subtitles Only + Subtítulos de Texto Únicamente + Name of a setting - should we hide subtitles that might transcode + + + Slideshow Off + Desactivar Presentación + + + Slideshow Paused + Presentación Pausada + + + Bitrate Limit + Límite de Tasa de Bits + + + Unplayed + Sin reproducir + + + Ends at + Termina a las + (Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) + + + View Channel + Ver Canal + + + Version + Versión + + + Playback + Reproducción + Title for Playback section in user setting screen. + + + Artists (Presentation) + Artistas (Presentación) + + + User Interface + Interfaz de Usuario + Title for User Interface section in user setting screen. + + + Disable Community Rating for Episodes + Deshabilitar Ratings de la Comunidad para los Episodios + + + Play Trailer + Reproducir Trailer + + + direct + directo + + + Aired + Publicado + Aired date label + + + Slideshow On + Presentación Activada + + + Random Off + Desactivar Aleatorio + + + MPEG-4 Support + Soporte de MPEG-4 + Settings Menu - Title for option + + + Codec Support + Soporte de Codificador + Settings Menu - Title for settings group related to codec support + + + MPEG-4 + MPEG-4 + Name of codec used in settings menu + + + Options that alter the design of Jellyfin. + Opciones que alteran el diseño de Jellyfin. + Description for Design Elements user settings. + + + Cinema Mode + Modo Cine + Settings Menu - Title for option + + + H.264 + H.264 + Name of codec used in settings menu + + + HEVC + HEVC + Name of codec used in settings menu + + + Settings relating to how the application looks. + Configuración relacionada a como se ve la aplicación. + + + Set the maximum amount of days a show should stay in the 'Next Up' list without watching it. + Establece la cantidad máxima de días que una serie debe permanecer en la lista 'Siguiente' sin que haya sido visto. + Settings Menu - Description for option + + + Reason + Razón + + + Audio Channels + Canales de Audio + + + Codec Tag + Tag del Códec + + + Level + Nivel + Video profile level + + + Container + Contenedor + Video streaming container + + + Here is your Quick Connect code: + Este es tu código de Conexión Rápida: + + + There was an error authenticating via Quick Connect. + Hubo un error autenticando por medio de Conexión Rápida. + + + Networks + Redes + + + Studios + Estudios + + + Shows + Series + + + You can search for Titles, People, Live TV Channels and more + Puedes buscar por Títulos, Personas, Canales en vivo y más + Help text in search results + + + Show What's New Popup + Enseñar Popup de Novedades + Settings Menu - Title for option + + + Resumable + Reanudable + + + ...or enter server URL manually: + Si no hay servidores en la lista anterior, también puedes ingresar la URL manualmente: + Instructions on initial app launch when the user is asked to manually enter a server URL + + + Disabled + Deshabilitado + + + Movies (Presentation) + Películas (Modo Presentación) + Movie library view option + + + Direct playing + Reproducción directa + + + The source file is entirely compatible with this client and the session is receiving the file without modifications. + El archivo fuente es totalmente compatible con este cliente y la sesión recibe el archivo sin modificaciones. + Direct play info box text in GetPlaybackInfoTask.brs + + + Not found + No Encontrado + Title of message box when the requested content is not found on the server + + + Enter the server name or IP address + Ingresa nombre o dirección IP del servidor + Title of KeyboardDialog when manually entering a server URL + + + Error Getting Playback Information + Error al Obtener la Información de Reproducción + Dialog Title: Received error from server when trying to get information about the selected item for playback + + + Enable or disable Direct Play for optional codecs + Habilita o deshabilita la Reproducción Directa para codificadores opcionales + Settings Menu - Title for settings group related to codec support + + + ** EXPERIMENTAL** Support Direct Play of AV1 content if this Roku device supports it. + **EXPERIMENTAL** Soporte de Reproducción Directa para contenido AV1 si este dispositivo Roku es compatible. + Description of a setting - should we try to direct play experimental av1 codec + + + Use voice remote to search + Utilizar la búsqueda por voz + Help text in search voice text box + + + Song + Canción + From 48525c927191dd3b489d29ac5cc7dbf05faae683 Mon Sep 17 00:00:00 2001 From: Prasaedonium Date: Sun, 8 Oct 2023 06:28:18 +0000 Subject: [PATCH 63/64] Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (272 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/es_419/ --- locale/es_419/translations.ts | 1062 +++++++++++++++++++++++++++++++++ 1 file changed, 1062 insertions(+) diff --git a/locale/es_419/translations.ts b/locale/es_419/translations.ts index 0ba626078..6017f2a00 100644 --- a/locale/es_419/translations.ts +++ b/locale/es_419/translations.ts @@ -1793,5 +1793,1067 @@ Delete Saved Eliminar guardados + + Error Retrieving Content + Error al Recuperar Contenido + Dialog title when unable to load Content from Server + + + There was an error retrieving the data for this item from the server. + Ocurrió un error al recuperar los datos para este elemento desde el servidor. + Dialog detail when unable to load Content from Server + + + An error was encountered while playing this item. + Se encontró un error mientras se reproducía este elemento. + Dialog detail when error occurs during playback + + + OFFICIAL_RATING + Rating Parental + + + Additional Parts + Partes Adicionales + Additional parts of a video + + + Cancel Series Recording + Cancelar Grabación de Series + + + ...or enter server URL manually: + Si no aparece ningún servidor en la lista anterior, también puedes ingresar la URL del servidor manualmente: + Instructions on initial app launch when the user is asked to manually enter a server URL + + + View All + Ver Todo + + + Always Hide + Siempre Ocultar + + + Title of Tab for options to sort library content + TAB_SORT + Orden + + + An error was encountered while playing this item. Server did not provide required transcoding data. + Se encontró un error al reproducir este elemento. El servidor no proporcionó los datos de transcodificación necesarios. + Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url + + + Enable or disable Direct Play for optional codecs + Habilita o deshabilita Direct Play para códecs opcionales + Settings Menu - Title for settings group related to codec support + + + Save Credentials? + ¿Guardar Credenciales? + + + Support Direct Play of MPEG-2 content (e.g., Live TV). This will prevent transcoding of MPEG-2 content, but uses significantly more bandwidth. + Admitir reproducción directa de contenido MPEG-2 (por ejemplo, TV en Vivo). Esto evitará la transcodificación de contenido MPEG-2, pero utiliza mucho más ancho de banda. + Settings Menu - Description for option + + + Maximum Bitrate + Máxima Tasa de Bits + + + Settings relating to the appearance of Library pages + Configuraciones relacionadas con la apariencia de las páginas de la Biblioteca + + + Grid View Settings + Configuración de Vista de Cuadrícula + + + Settings that apply when Grid views are enabled. + Configuraciones que se aplican cuando las vistas de cuadrícula están habilitadas. + + + Settings relating to the appearance of pages in TV Libraries. + Configuraciones relacionadas con la apariencia de las páginas en las Bibliotecas de TV. + + + Loading trailer + Cargando trailer + Dialog title in Main.brs + + + Error loading Channel Data + Error al cargar Datos del Canal + + + DATE_ADDED + Fecha de Adición + + + DATE_PLAYED + Fecha de Reproducción + + + Title of Tab for switching "views" when looking at a library + TAB_VIEW + Vista + + + Title of Tab for options to filter library content + TAB_FILTER + Filtro + + + Born + Nacido en + + + Age + Edad + + + Cast & Crew + Reparto y Equipo + + + More Like This + Más Como Esto + + + Support Direct Play of MPEG-4 content. This may need to be disabled for playback of DIVX encoded video files. + Admitir reproducción directa de contenido MPEG-4. Es posible que sea necesario desactivar esto para la reproducción de archivos de vídeo codificados en DIVX. + Settings Menu - Description for option + + + Show item count in the library and index of selected item. + Mostrar cantidad de elementos en la bibilioteca e índice del elemento seleccionado. + Description for option in Setting Screen + + + Go directly to the episode list if a TV series has only one season. + Ir directamente a la lista de episodios si una serie de TV tiene solo una temporada. + Settings Menu - Description for option + + + Blur images of unwatched episodes. + Desenfocar imágenes de episodios no vistos. + + + Design Elements + Elementos de Diseño + + + Options that alter the design of Jellyfin. + Opciones que alteran el diseño de Jellyfin. + Description for Design Elements user settings. + + + Use generated splashscreen image as Jellyfin's home background. Jellyfin will need to be closed and reopened for change to take effect. + Usar la imagen de pantalla de bienvenida generada como fondo de inicio de Jellyfin. Será necesario cerrar y reabrir Jellyfin para que el cambio surta efecto. + Description for option in Setting Screen + + + Bring the theater experience straight to your living room with the ability to play custom intros before the main feature. + Trae la experiencia del cine directamente a tu sala con la capacidad de reproducir intros personalizadas antes de la función principal. + Settings Menu - Description for option + + + Name or Title field of media item + TITLE + Nombre + + + CRITIC_RATING + Rating de los Críticos + + + Maximum Resolution + Resolución Máxima + User Setting - Title + + + Off - Attempt to play all resolutions + Desactivado - Intentar reproducir todas las resoluciones + User Setting - Option title + + + Value + Valor + User Setting - Setting title + + + All files + Todos los archivos + User Setting - Setting title + + + Compatibility + Compatibilidad + User Setting - Setting title + + + Disable HEVC + Deshabilitar HEVC + User Setting - Setting title + + + Attempt Direct Play for H.264 media with unsupported profile levels before falling back to transcoding if it fails. + Intentar Reproducción Directa para medios H.264 con niveles de perfil no compatibles antes de volver a la transcodificación si falla. + Settings Menu - Description for option + + + HEVC + HEVC + Name of codec used in settings menu + + + Attempt Direct Play for HEVC media with unsupported profile levels before falling back to transcoding if it fails. + Intentar Reproducción Directa para medios HEVC con niveles de perfil no compatibles antes de volver a la transcodificación si falla. + Settings Menu - Description for option + + + Set the maximum amount of days a show should stay in the 'Next Up' list without watching it. + Establece la cantidad máxima de días que una serie debe permanecer en la lista 'A Continuación' sin que se haya visto. + Settings Menu - Description for option + + + Unable to find any albums or songs belonging to this artist + No se puede encontrar ningún álbum o canción que pertenezca a este artista + Popup message when we find no audio data for an artist + + + Custom Subtitles + Subtítulos Personalizados + Name of a setting - custom subtitles that support CJK fonts + + + Replace Roku's default subtitle functions with custom functions that support CJK fonts. Fallback fonts must be configured and enabled on the server for CJK rendering to work. + Reemplazar las funciones de subtítulos predeterminadas de Roku con funciones personalizadas que admitan fuentes CJK. Las fuentes alternativas deben configurarse y habilitarse en el servidor para que funcione la representación CJK. + Description of a setting - custom subtitles that support CJK fonts + + + Only display text subtitles to minimize transcoding. + Solo mostrar subtítulos de texto para minimizar la transcodificación. + Description of a setting - should we hide subtitles that might transcode + + + Slideshow Paused + Presentación Pausada + + + Random Off + Aleatorio Desactivado + + + Parental Ratings + Ratings Parentales + Used in Filter menu + + + Show What's New popup when Jellyfin is updated to a new version. + Mostrar popup de Novedades cuando Jellyfin se actualiza a una nueva versión. + Settings Menu - Description for option + + + Album Artists (Presentation) + Artistas de Álbum (Presentación) + + + Album Artists (Grid) + Artístas de Álbum (Cuadrícula) + + + Albums + Álbumes + + + Disable Community Rating for Episodes + Desactivar Ratings de la Comunidad para los Episodios + + + Hide the star and community rating for episodes of a TV show. This is to prevent spoilers of an upcoming good/bad episode. + Ocultar el rating de estrellas y comunidad para los episodios de una serie de TV. Esto evita spoilers de un buen/mal episodio. + + + Biographical information for this person is not currently available. + La información biográfica de esta persona no está disponible por el momento. + + + Enable or disable the 'Maximum Bitrate' setting. + Habilitar o deshabilitar la configuración de 'Tasa Máxima de Bits'. + + + Bitrate Limit + Límite de Tasa de Bits + + + Set the maximum bitrate in Mbps. Set to 0 to use Roku's specifications. This setting must be enabled to take effect. + Establecer la tasa de bits máxima en Mbps. Usa 0 para utilizar las especificaciones de Roku. Esta configuración debe estar habilitada para que surta efecto. + + + Settings relating to the appearance of pages in Movie Libraries. + Configuraciones relacionadas con la apariencia de las páginas en las Bibliotecas de Películas. + + + Disable Unwatched Episode Count + Desactivar el Recuento de Episodios no Vistos + Settings Menu - Title for option + + + If enabled, the number of unwatched episodes in a series/season will be removed. + Si está habilitado, se eliminará la cantidad de episodios no vistos de una serie/temporada. + Settings Menu - Description for option + + + Set how many seconds before the end of an episode the Next Episode button should appear. Set to 0 to disable. + Establecer cuántos segundos antes del final de un episodio debe aparecer el botón Próximo Episodio. Usa 0 para desactivar. + Settings Menu - Description for option + + + Choose your preferred audio codec when transcoding multichannel audio. + Elige tu códec de audio preferido al transcodificar audio multicanal. + Settings Menu - Description for option + + + Delete Saved + Eliminar Guardados + + + Force all transcodes to use DTS instead of the default EAC3. The device must support DTS for this setting to have an effect. + Fuerza que todas las transcodificaciones utilicen DTS en lugar del EAC3 predeterminado. El dispositivo debe admitir DTS para que esta configuración tenga efecto. + Settings Menu - Description for option + + + Loading Channel Data + Cargando Información del Canal + + + Audio Codec Support + Soporte para Códec de Audio + Settings Menu - Title of option + + + Movies + Películas + + + TV Shows + Series de TV + + + Unable to load Channel Data from the server + No se pudieron cargar los Datos del Canal desde el servidor + + + IMDB_RATING + Rating de IMDb + + + Special Features + Características Especiales + + + Set the maximum resolution when playing video files on this device. + Establecer la resolución máxima al reproducir archivos de video en este dispositivo. + User Setting - Description + + + Auto - Use TV resolution + Auto - Usar la resolución de TV + User Setting - Option title + + + Mode + Modo + User Setting - Setting title + + + Configure the maximum resolution when playing video files on this device. + Configurar la resolución máxima al reproducir archivos de video en este dispositivo. + User Setting - Description + + + Apply max resolution to all files or only transcoded files. + Aplicar la resolución máxima a todos los archivos o solo a los archivos transcodificados. + User Setting - Description + + + Only transcoded files + Solo archivos transcodificados + User Setting - Setting title + + + Attempt to prevent playback failures. + Intentar prevenir errores de reproducción. + User Setting - Setting description + + + Disable the HEVC codec on this device. This may improve playback for some devices (ultra). + Deshabilitar el códec HEVC en este dispositivo. Esto puede mejorar la reproducción en algunos dispositivos (ultra). + User Setting - Setting description + + + Global + Global + User Setting - Setting title + + + Global settings that affect everyone that uses this Roku device. + Configuraciones globales que afectan a todos los que usan este dispositivo Roku. + User Setting - Setting description + + + Remember Me? + Recordarme? + User Setting - Setting title + + + Remember the currently logged in user and try to log them in again next time you start the Jellyfin app. + Recordar al usuario que acaba de ingresar e intentar iniciar sesión nuevamente la próxima vez que empiece la app de Jellyfin. + User Setting - Setting description + + + Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc) + NO_ITEMS + Este %1 no contiene elementos + + + Libraries + Bibliotecas + + + Presentation + Presentación + Title of an option - name of presentation view + + + Grid + Cuadrícula + Title of an option - name of grid view + + + RUNTIME + Duración + + + RELEASE_DATE + Fecha de Estreno + + + On Now + Activo Ahora + + + Died + Murió en + + + PLAY_COUNT + Contador de Reproducciones + + + Error During Playback + Error Durante la Reproducción + Dialog title when error occurs during playback + + + Movies (Presentation) + Películas (Presentación) + Movie library view option + + + Movies (Grid) + Películas (Cuadrícula) + Movie library view option + + + Monday + Lunes + Day of Week + + + Tuesday + Martes + Day of Week + + + Thursday + Jueves + Day of Week + + + Friday + Viernes + Day of Week + + + Ended at + Finalizó a las + (Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) + + + Ends at + Finalizó el + (Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) + + + Repeat + Repetir + If TV Shows has previously been broadcasted + + + Channels + Canales + Menu option for showing Live TV Channel List + + + View Channel + Ver Canal + + + Record Series + Grabar Series + + + Connecting to Server + Conectando al Servidor + Message to display to user while client is attempting to connect to the server + + + Not found + No encontrado + Title of message box when the requested content is not found on the server + + + The requested content does not exist on the server + El contenido solicitado no existe en el servidor + Content of message box when the requested content is not found on the server + + + Codec Support + Soporte de Códec + Settings Menu - Title for settings group related to codec support + + + AV1 + AV1 + Name of a setting - should we try to direct play experimental av1 codec + + + User Interface + Interfaz de Usuario + Title for User Interface section in user setting screen. + + + Media Grid + Cuadrícula de Media + UI -> Media Grid section in user setting screen. + + + Item Count + Cantidad de Elementos + UI -> Media Grid -> Item Count in user setting screen. + + + Go to series + Ir a series + Continue Watching Popup Menu - Navigate to the Series Detail Page + + + Go to episode + Ir a episodio + Continue Watching Popup Menu - Navigate to the Episode Detail Page + + + Go to season + Ir a temporada + Continue Watching Popup Menu - Navigate to the Season Page + + + Pixel format + Formato de pixeles + Video pixel format + + + Use voice remote to search + Utilizar búsqueda por voz mediante el control remoto + Help text in search voice text box + + + %1 of %2 + %1 de %2 + Item position and count. %1 = current item. %2 = total number of items + + + Quick Connect + Conexión Rápida + + + Here is your Quick Connect code: + Aquí está tu código de Conexión Rápida: + + + There was an error authenticating via Quick Connect. + Ocurrió un error al autenticar vía Conexión Rápida. + + + Return to Top + Regresar Arriba + UI -> Media Grid -> Item Title in user setting screen. + + + Use the replay button to slowly animate to the first item in the folder. (If disabled, the folder will reset to the first item immediately). + Utiliza el botón de reproducción para animar lentamente el primer elemento de la carpeta. (Si está deshabilitada, la carpeta se restablecerá al primer elemento inmediatamente). + Description for option in Setting Screen + + + Hide Taglines + Ocultar Eslogans + Option Title in user setting screen + + + Hides tagline text on details pages. + Ocultar texto de eslogan en las páginas de detalles. + + + Next Episode Button Time + Tiempo para el Botón de Siguiente Episodio + Settings Menu - Title for option + + + Use Splashscreen as Home Background + Usar la Pantalla de Bienvenida como Fondo de Inicio + Option Title in user setting screen + + + Play Trailer + Reproducir Trailer + + + Video Codec + Códec de Video + + + Audio Channels + Canales de Audio + + + Codec Tag + Tag del Códec + + + Bit Rate + Tasa de Bits + Video streaming bit rate + + + Video range type + Tipo de rango de video + + + Size + Tamaño + Video size + + + Text Subtitles Only + Subtítulos de Texto Solamente + Name of a setting - should we hide subtitles that might transcode + + + all + todo + all will reset the searchTerm so all data will be availible + + + Slideshow Resumed + Presentación Reanudada + + + Unplayed + No reproducido + + + Resumable + Reanudable + + + Hide all clocks in Jellyfin. Jellyfin will need to be closed and reopened for changes to take effect. + Ocultar todos los relojes en Jellyfin. Será necesario cerrar y reabrir Jellyfin para que los cambios surtan efecto. + Settings Menu - Description for option + + + Settings relating to playback and supported codec and media types. + Configuraciones relacionadas con la reproducción y códecs y tipos de medios compatibles. + + + Settings relating to how the application looks. + Configuraciones relacionadas con el aspecto de la aplicación. + + + Max Days Next Up + Cantidad máxima de días para A Continuación + Option Title in user setting screen + + + Transcoding Information + Información de Transcodificación + + + Reason + Razón + + + Audio Codec + Códec de Audio + + + direct + directo + + + Total Bitrate + Tasa de Bits Total + + + Stream Information + Información de la Transmisión + + + Level + Nivel + Video profile level + + + Container + Contenedor + Video streaming container + + + WxH + WxH (Ancho x Altura) + Video width x height + + + Slideshow Off + Presentación Desactivada + + + Slideshow On + Presentación Activada + + + Random On + Aleatorio Activado + + + MPEG-4 Support + Soporte de MPEG-4 + Settings Menu - Title for option + + + Years + Años + Used in Filter menu + + + Show What's New Popup + Mostrar Popup de Novedades + Settings Menu - Title for option + + + Movie Library Default View + Vista Predeterminada para la Biblioteca de Películas + Settings Menu - Title for option + + + Default view for Movie Libraries. + Vista predeterminada para las Bibliotecas de Películas. + Settings Menu - Description for option + + + Select when to show titles. + Seleccionar cuando mostrar títulos. + Settings Menu - Description for option + + + Show On Hover + Mostrar Al Pasar + + + Always Show + Siempre Mostrar + + + Album + Álbum + + + Configure the maximum playback bitrate. + Configurar la tasa máxima de bits de reproducción. + + + Enable Limit + Habilitar Límite + + + General + General + + + Settings relating to the appearance of the Home screen and the program in general. + Configuraciones relacionadas con la apariencia de la pantalla de Inicio y del programa en general. + + + Press 'OK' to Close + Presiona 'OK' para Cerrar + + + today + hoy + Current day + + + yesterday + ayer + Previous day + + + tomorrow + mañana + Next day + + + Wednesday + Miércoles + Day of Week + + + Saturday + Sábado + Day of Week + + + Started at + Empezó a las + (Past Tense) For defining time when a program started today (e.g. Started at 08:00) + + + Started + Empezó + (Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) + + + Starts at + Empieza a las + (Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) + + + Starts + Empieza + (Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) + + + Live + En Vivo + If TV Show is being broadcast live (not pre-recorded) + + + TV Guide + Guía de TV + Menu option for showing Live TV Guide / Schedule + + + Record + Grabar + + + Cancel Recording + Cancelar Grabación + + + Close + Cerrar + + + Enter the server name or IP address + Ingresa el nombre o dirección IP del servidor + Title of KeyboardDialog when manually entering a server URL + + + Pick a Jellyfin server from the local network + Elige un servidor disponible de Jellyfin de tu red local: + Instructions on initial app launch when the user is asked to pick a server from a list + + + Error Getting Playback Information + Error al Obtener la Información de Reproducción + Dialog Title: Received error from server when trying to get information about the selected item for playback + + + Version + Versión + + + ** EXPERIMENTAL** Support Direct Play of AV1 content if this Roku device supports it. + ** EXPERIMENTAL ** Admitir Reproducción Directa de contenido AV1 si este dispositivo Roku lo admite. + Description of a setting - should we try to direct play experimental av1 codec + + + Item Titles + Títulos de Elementos + Title of a setting - when should we show the title text of a grid item + + + Set Favorite + Establecer como Favorito + Button Text - When pressed, sets item as Favorite + + + You can search for Titles, People, Live TV Channels and more + Puedes buscar por Títulos, Gente, Canales de TV en Vivo y más + Help text in search results + + + (Dialog will close automatically) + (El díalogo se cerrará automáticamente) + + + Playback Information + Información de Reproducción + + + Aired + Transmitido + Aired date label + + + Artists (Grid) + Artistas (Cuadrícula) + + + Artists (Presentation) + Artistas (Presentación) + + + Song + Canción + + + Songs + Canciones + + + MPEG-2 + MPEG-2 + Name of codec used in settings menu + + + MPEG-4 + MPEG-4 + Name of codec used in settings menu + + + Media Grid options. + Opciones de la Cuadrícula de Media. + + + Set Watched + Establecer como Visto + Button Text - When pressed, marks item as Warched + + + Networks + Redes + + + Search now + Buscar ahora + Help text in search Box + + + Studios + Estudios + + + Shows + Series + + + Options for TV Shows. + Opciones para Series de TV. + Description for TV Shows user settings. + + + Blur Unwatched Episodes + Desenfocar Episodios no Vistos + Option Title in user setting screen + + + Skip Details for Single Seasons + Saltar Detalles para Temporadas Individuales + Settings Menu - Title for option + + + Cinema Mode + Modo Cine + Settings Menu - Title for option + + + Hide Clock + Ocultar Reloj + Option Title in user setting screen + + + Next episode + Siguiente episodio + + + H.264 + H.264 + Name of codec used in settings menu + + + Codec + Códec + + + Played + Reproducido + + + Sunday + Domingo + Day of Week + + + Unknown + Desconocido + Title for a cast member for which we have no information for + + + Playback + Reproducción + Title for Playback section in user setting screen. + + + Enabled + Habilitado + + + Disabled + Deshabilitado + + + Direct playing + Reproducción Directa + + + The source file is entirely compatible with this client and the session is receiving the file without modifications. + El archivo fuente es totalmente compatible con este cliente y la sesión recibe el archivo sin modificaciones. + Direct play info box text in GetPlaybackInfoTask.brs + From 1465c620f9a0e15cfdcc23596fbd5637ce6d7a12 Mon Sep 17 00:00:00 2001 From: nextlooper42 Date: Wed, 11 Oct 2023 10:05:59 +0000 Subject: [PATCH 64/64] Translated using Weblate (Slovak) Currently translated at 18.3% (50 of 272 strings) Translation: Jellyfin/Jellyfin Roku Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-roku/sk/ --- locale/sk/translations.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/locale/sk/translations.ts b/locale/sk/translations.ts index 2a8a1a3e3..881c41181 100644 --- a/locale/sk/translations.ts +++ b/locale/sk/translations.ts @@ -1203,5 +1203,17 @@ CRITIC_RATING Hodnotenie kritikov + + Save Credentials? + Uložiť prihlasovacie údaje? + + + Delete Saved + Vymazať uložené + + + On Now + Práve teraz +