mirror of
https://github.com/jellyfin/jellyfin-roku.git
synced 2024-11-30 18:01:04 +00:00
Merge branch 'master' into add-screen-events
This commit is contained in:
commit
5251c46270
15
components/ItemGrid/FavoriteItemsTask.brs
Normal file
15
components/ItemGrid/FavoriteItemsTask.brs
Normal file
@ -0,0 +1,15 @@
|
||||
sub init()
|
||||
m.top.functionName = "setFavoriteStatus"
|
||||
end sub
|
||||
|
||||
sub setFavoriteStatus()
|
||||
|
||||
task = m.top.favTask
|
||||
|
||||
if task = "Favorite"
|
||||
MarkItemFavorite(m.top.itemId)
|
||||
else if task = "Unfavorite"
|
||||
UnmarkItemFavorite(m.top.itemId)
|
||||
end if
|
||||
|
||||
end sub
|
12
components/ItemGrid/FavoriteItemsTask.xml
Normal file
12
components/ItemGrid/FavoriteItemsTask.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<component name="FavoriteItemsTask" extends="Task">
|
||||
<interface>
|
||||
<field id="itemId" type="string" />
|
||||
<field id="favTask" type="string" value="" />
|
||||
</interface>
|
||||
<script type="text/brightscript" uri="FavoriteItemsTask.brs" />
|
||||
<script type="text/brightscript" uri="pkg:/source/api/UserLibrary.brs" />
|
||||
<script type="text/brightscript" uri="pkg:/source/api/baserequest.brs" />
|
||||
<script type="text/brightscript" uri="pkg:/source/utils/config.brs" />
|
||||
</component>
|
@ -10,6 +10,12 @@ sub init()
|
||||
|
||||
m.itemText.translation = [0, m.itemPoster.height + 7]
|
||||
|
||||
m.alwaysShowTitles = get_user_setting("itemgrid.alwaysShowTitles") = "true"
|
||||
m.itemText.visible = m.alwaysShowTitles
|
||||
|
||||
' Add some padding space when Item Titles are always showing
|
||||
if m.alwaysShowTitles then m.itemText.maxWidth = 250
|
||||
|
||||
'Parent is MarkupGrid and it's parent is the ItemGrid
|
||||
topParent = m.top.GetParent().GetParent()
|
||||
'Get the imageDisplayMode for these grid items
|
||||
@ -80,7 +86,7 @@ sub focusChanged()
|
||||
m.itemText.visible = true
|
||||
m.itemText.repeatCount = -1
|
||||
else
|
||||
m.itemText.visible = false
|
||||
m.itemText.visible = m.alwaysShowTitles
|
||||
m.itemText.repeatCount = 0
|
||||
end if
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
<Poster id="itemIcon" width="50" height="50" translation="[230,10]" />
|
||||
<Label id="posterText" width="280" height="415" translation="[5,5]" horizAlign="center" vertAlign="center" ellipsizeOnBoundary="true" wrap="true" />
|
||||
</maskGroup>
|
||||
<ScrollingLabel id="itemText" horizAlign="center" font="font:SmallSystemFont" maxWidth="290" repeatCount="-1" visible="false" />
|
||||
<ScrollingLabel id="itemText" horizAlign="center" font="font:SmallSystemFont" maxWidth="290" repeatCount="0" visible="false" />
|
||||
</children>
|
||||
<interface>
|
||||
<field id="itemContent" type="node" onChange="itemContentChanged" />
|
||||
@ -15,4 +15,5 @@
|
||||
<field id="focusPercent" type="float" onChange="focusChanging" />
|
||||
</interface>
|
||||
<script type="text/brightscript" uri="GridItem.brs" />
|
||||
<script type="text/brightscript" uri="pkg:/source/utils/config.brs" />
|
||||
</component>
|
||||
|
@ -1,7 +1,9 @@
|
||||
sub init()
|
||||
|
||||
m.options = m.top.findNode("options")
|
||||
|
||||
m.tvGuide = invalid
|
||||
m.channelFocused = invalid
|
||||
|
||||
m.itemGrid = m.top.findNode("itemGrid")
|
||||
m.backdrop = m.top.findNode("backdrop")
|
||||
@ -32,6 +34,7 @@ sub init()
|
||||
m.sortAscending = true
|
||||
|
||||
m.filter = "All"
|
||||
m.favorite = "Favorite"
|
||||
|
||||
m.loadItemsTask = createObject("roSGNode", "LoadItemsTask2")
|
||||
m.spinner = m.top.findNode("spinner")
|
||||
@ -123,6 +126,7 @@ sub SetUpOptions()
|
||||
|
||||
options = {}
|
||||
options.filter = []
|
||||
options.favorite = []
|
||||
|
||||
'Movies
|
||||
if m.top.parentItem.collectionType = "movies"
|
||||
@ -185,6 +189,9 @@ sub SetUpOptions()
|
||||
{ "Title": tr("All"), "Name": "All" },
|
||||
{ "Title": tr("Favorites"), "Name": "Favorites" }
|
||||
]
|
||||
options.favorite = [
|
||||
{ "Title": tr("Favorite"), "Name": "Favorite" }
|
||||
]
|
||||
else if m.top.parentItem.collectionType = "photoalbum" or m.top.parentItem.collectionType = "photo" or m.top.parentItem.collectionType = "homevideos"
|
||||
' For some reason, my photo library shows up as "homevideos", maybe because it has some mp4 mixed in with the jpgs?
|
||||
|
||||
@ -229,6 +236,12 @@ sub SetUpOptions()
|
||||
end if
|
||||
end for
|
||||
|
||||
' for each o in options.favorite
|
||||
' if o.Name = m.favorite
|
||||
' m.options.favorite = o.Name
|
||||
' end if
|
||||
' end for
|
||||
|
||||
m.options.options = options
|
||||
|
||||
end sub
|
||||
@ -291,6 +304,8 @@ sub onItemFocused()
|
||||
return
|
||||
end if
|
||||
|
||||
m.selectedFavoriteItem = m.itemGrid.content.getChild(m.itemGrid.itemFocused)
|
||||
|
||||
' Set Background to item backdrop
|
||||
SetBackground(m.itemGrid.content.getChild(m.itemGrid.itemFocused).backdropUrl)
|
||||
|
||||
@ -439,6 +454,7 @@ sub showTVGuide()
|
||||
m.tvGuide = createObject("roSGNode", "Schedule")
|
||||
m.top.signalBeacon("EPGLaunchInitiate") ' Required Roku Performance monitoring
|
||||
m.tvGuide.observeField("watchChannel", "onChannelSelected")
|
||||
m.tvGuide.observeField("focusedChannel", "onChannelFocused")
|
||||
end if
|
||||
m.tvGuide.filter = m.filter
|
||||
m.top.appendChild(m.tvGuide)
|
||||
@ -454,6 +470,11 @@ sub onChannelSelected(msg)
|
||||
end if
|
||||
end sub
|
||||
|
||||
sub onChannelFocused(msg)
|
||||
node = msg.getRoSGNode()
|
||||
m.channelFocused = node.focusedChannel
|
||||
end sub
|
||||
|
||||
function onKeyEvent(key as string, press as boolean) as boolean
|
||||
if not press then return false
|
||||
topGrp = m.top.findNode("itemGrid")
|
||||
@ -463,6 +484,16 @@ function onKeyEvent(key as string, press as boolean) as boolean
|
||||
m.top.removeChild(m.options)
|
||||
optionsClosed()
|
||||
else
|
||||
channelSelected = m.channelFocused
|
||||
itemSelected = m.selectedFavoriteItem
|
||||
if itemSelected <> invalid
|
||||
m.options.selectedFavoriteItem = itemSelected
|
||||
end if
|
||||
if channelSelected <> invalid
|
||||
if channelSelected.type = "TvChannel"
|
||||
m.options.selectedFavoriteItem = channelSelected
|
||||
end if
|
||||
end if
|
||||
m.options.visible = true
|
||||
m.top.appendChild(m.options)
|
||||
m.options.setFocus(true)
|
||||
|
@ -5,6 +5,9 @@ sub init()
|
||||
m.buttons.selectedIndex = 1
|
||||
m.buttons.setFocus(true)
|
||||
|
||||
m.favoriteMenu = m.top.findNode("favoriteMenu")
|
||||
m.selectedFavoriteItem = m.top.findNode("selectedFavoriteItem")
|
||||
|
||||
m.selectedSortIndex = 0
|
||||
m.selectedItem = 1
|
||||
|
||||
@ -23,7 +26,7 @@ sub init()
|
||||
m.fadeInAnimOpacity = m.top.findNode("inOpacity")
|
||||
|
||||
m.buttons.observeField("focusedIndex", "buttonFocusChanged")
|
||||
|
||||
m.favoriteMenu.observeField("buttonSelected", "toggleFavorite")
|
||||
end sub
|
||||
|
||||
|
||||
@ -105,24 +108,83 @@ sub optionsSet()
|
||||
m.menus[2].content = filterContent
|
||||
m.menus[2].checkedItem = 0
|
||||
end if
|
||||
|
||||
|
||||
end sub
|
||||
|
||||
' Switch menu shown when button focus changes
|
||||
sub buttonFocusChanged()
|
||||
if m.buttons.focusedIndex = m.selectedItem then return
|
||||
if m.buttons.focusedIndex = m.selectedItem
|
||||
if m.buttons.hasFocus()
|
||||
m.buttons.setFocus(false)
|
||||
m.menus[m.selectedItem].setFocus(false)
|
||||
m.menus[m.selectedItem].visible = false
|
||||
m.favoriteMenu.setFocus(true)
|
||||
end if
|
||||
end if
|
||||
m.fadeOutAnimOpacity.fieldToInterp = m.menus[m.selectedItem].id + ".opacity"
|
||||
m.fadeInAnimOpacity.fieldToInterp = m.menus[m.buttons.focusedIndex].id + ".opacity"
|
||||
m.fadeAnim.control = "start"
|
||||
m.selectedItem = m.buttons.focusedIndex
|
||||
end sub
|
||||
|
||||
sub toggleFavorite()
|
||||
m.favItemsTask = createObject("roSGNode", "FavoriteItemsTask")
|
||||
if m.favoriteMenu.iconUri = "pkg:/images/icons/favorite.png"
|
||||
m.favoriteMenu.iconUri = "pkg:/images/icons/favorite_selected.png"
|
||||
m.favoriteMenu.focusedIconUri = "pkg:/images/icons/favorite_selected.png"
|
||||
' Run the task to actually favorite it via API
|
||||
m.favItemsTask.favTask = "Favorite"
|
||||
m.favItemsTask.itemId = m.selectedFavoriteItem.id
|
||||
m.favItemsTask.control = "RUN"
|
||||
else
|
||||
m.favoriteMenu.iconUri = "pkg:/images/icons/favorite.png"
|
||||
m.favoriteMenu.focusedIconUri = "pkg:/images/icons/favorite.png"
|
||||
m.favItemsTask.favTask = "Unfavorite"
|
||||
m.favItemsTask.itemId = m.selectedFavoriteItem.id
|
||||
m.favItemsTask.control = "RUN"
|
||||
end if
|
||||
' Make sure we set the Favorite Heart color for the appropriate child
|
||||
setHeartColor("#cc3333")
|
||||
end sub
|
||||
|
||||
sub setHeartColor(color as string)
|
||||
error = []
|
||||
try
|
||||
for i = 0 to 6
|
||||
node = m.favoriteMenu.getChild(i)
|
||||
if node <> invalid
|
||||
if node.uri <> invalid and node.uri = "pkg:/images/icons/favorite_selected.png"
|
||||
m.favoriteMenu.getChild(i).blendColor = color
|
||||
end if
|
||||
end if
|
||||
end for
|
||||
catch error
|
||||
print error
|
||||
end try
|
||||
end sub
|
||||
|
||||
sub saveFavoriteItemSelected(msg)
|
||||
data = msg.GetData()
|
||||
m.selectedFavoriteItem = data
|
||||
' Favorite button
|
||||
if m.selectedFavoriteItem <> invalid
|
||||
if m.selectedFavoriteItem.favorite = true
|
||||
m.favoriteMenu.iconUri = "pkg:/images/icons/favorite_selected.png"
|
||||
m.favoriteMenu.focusedIconUri = "pkg:/images/icons/favorite_selected.png"
|
||||
' Make sure we set the Favorite Heart color for the appropriate child
|
||||
setHeartColor("#cc3333")
|
||||
else
|
||||
m.favoriteMenu.iconUri = "pkg:/images/icons/favorite.png"
|
||||
m.favoriteMenu.focusedIconUri = "pkg:/images/icons/favorite.png"
|
||||
' Make sure we set the Favorite Heart color for the appropriate child
|
||||
setHeartColor("#cc3333")
|
||||
end if
|
||||
end if
|
||||
end sub
|
||||
|
||||
function onKeyEvent(key as string, press as boolean) as boolean
|
||||
|
||||
if key = "down" or (key = "OK" and m.top.findNode("buttons").hasFocus())
|
||||
m.top.findNode("buttons").setFocus(false)
|
||||
if key = "down" or (key = "OK" and m.buttons.hasFocus())
|
||||
m.buttons.setFocus(false)
|
||||
m.menus[m.selectedItem].setFocus(true)
|
||||
m.menus[m.selectedItem].drawFocusFeedback = true
|
||||
|
||||
@ -134,6 +196,12 @@ function onKeyEvent(key as string, press as boolean) as boolean
|
||||
end if
|
||||
|
||||
return true
|
||||
else if key = "left"
|
||||
if m.favoriteMenu.hasFocus()
|
||||
m.favoriteMenu.setFocus(false)
|
||||
m.menus[m.selectedItem].visible = true
|
||||
m.buttons.setFocus(true)
|
||||
end if
|
||||
else if key = "OK"
|
||||
if m.menus[m.selectedItem].isInFocusChain()
|
||||
' Handle View Screen
|
||||
@ -172,12 +240,14 @@ function onKeyEvent(key as string, press as boolean) as boolean
|
||||
end if
|
||||
return true
|
||||
else if key = "back" or key = "up"
|
||||
m.menus[2].visible = true ' Show Filter contents in case hidden by favorite button
|
||||
if m.menus[m.selectedItem].isInFocusChain()
|
||||
m.buttons.setFocus(true)
|
||||
m.menus[m.selectedItem].drawFocusFeedback = false
|
||||
return true
|
||||
end if
|
||||
else if key = "options"
|
||||
m.menus[2].visible = true ' Show Filter contents in case hidden by favorite button
|
||||
m.menus[m.selectedItem].drawFocusFeedback = false
|
||||
return false
|
||||
end if
|
||||
|
@ -15,6 +15,9 @@
|
||||
</RadiobuttonList>
|
||||
</Group>
|
||||
</LayoutGroup>
|
||||
<ButtonGroup translation="[1250,50]">
|
||||
<Button id="favoriteMenu" iconUri="pkg:/images/icons/favorite.png" focusedIconUri="pkg:/images/icons/favorite.png" focusBitmapUri="" focusFootprintBitmapUri="" text="Favorite" showFocusFootprint="false"></Button>
|
||||
</ButtonGroup>
|
||||
</Group>
|
||||
|
||||
<Animation id="fadeAnim" duration="0.5" repeat="false">
|
||||
@ -26,11 +29,13 @@
|
||||
<interface>
|
||||
<field id="buttons" type="nodearray" />
|
||||
<field id="options" type="assocarray" onChange="optionsSet" />
|
||||
<field id="selectedFavoriteItem" type="node" onChange="saveFavoriteItemSelected" />
|
||||
|
||||
<field id="view" type="string" />
|
||||
<field id="sortField" type="string" value="SortName" />
|
||||
<field id="sortAscending" type="boolean" value="false" />
|
||||
<field id="filter" type="string" value="All" />
|
||||
<field id="favorite" type="string" value="Favorite" />
|
||||
|
||||
</interface>
|
||||
<script type="text/brightscript" uri="ItemGridOptions.brs" />
|
||||
|
@ -48,13 +48,12 @@ sub loadItems()
|
||||
|
||||
if m.top.ItemType = "LiveTV"
|
||||
url = "LiveTv/Channels"
|
||||
params.append({ userId: get_setting("active_user") })
|
||||
params.append({ UserId: get_setting("active_user") })
|
||||
else
|
||||
url = Substitute("Users/{0}/Items/", get_setting("active_user"))
|
||||
end if
|
||||
resp = APIRequest(url, params)
|
||||
data = getJson(resp)
|
||||
|
||||
if data <> invalid
|
||||
|
||||
if data.TotalRecordCount <> invalid then m.top.totalRecordCount = data.TotalRecordCount
|
||||
@ -79,6 +78,9 @@ sub loadItems()
|
||||
|
||||
if tmp <> invalid
|
||||
tmp.json = item
|
||||
if item.UserData <> invalid and item.UserData.isFavorite <> invalid
|
||||
tmp.favorite = item.UserData.isFavorite
|
||||
end if
|
||||
results.push(tmp)
|
||||
end if
|
||||
end for
|
||||
|
@ -6,6 +6,7 @@ sub init()
|
||||
m.bufferPercentage = 0 ' Track whether content is being loaded
|
||||
m.playReported = false
|
||||
m.top.transcodeReasons = []
|
||||
m.bufferCheckTimer.duration = 10
|
||||
|
||||
end sub
|
||||
|
||||
@ -67,6 +68,7 @@ sub ReportPlayback(state = "update" as string)
|
||||
"MediaSourceId": m.top.transcodeParams.MediaSourceId,
|
||||
"LiveStreamId": m.top.transcodeParams.LiveStreamId
|
||||
})
|
||||
m.bufferCheckTimer.duration = 30
|
||||
end if
|
||||
|
||||
' Report playstate via worker task
|
||||
@ -85,12 +87,13 @@ sub bufferCheck(msg)
|
||||
m.bufferCheckTimer.unobserveField("fire")
|
||||
return
|
||||
end if
|
||||
|
||||
if m.top.bufferingStatus <> invalid
|
||||
|
||||
' Check that the buffering percentage is increasing
|
||||
if m.top.bufferingStatus["percentage"] > m.bufferPercentage
|
||||
m.bufferPercentage = m.top.bufferingStatus["percentage"]
|
||||
else if m.top.content.live = true
|
||||
m.top.callFunc("refresh")
|
||||
else
|
||||
' If buffering has stopped Display dialog
|
||||
dialog = createObject("roSGNode", "Dialog")
|
||||
|
@ -24,6 +24,6 @@
|
||||
<script type="text/brightscript" uri="JFVideo.brs" />
|
||||
<children>
|
||||
<timer id="playbackTimer" repeat="true" duration="30" />
|
||||
<timer id="bufferCheckTimer" repeat="true" duration="10" />
|
||||
<timer id="bufferCheckTimer" repeat="true" />
|
||||
</children>
|
||||
</component>
|
||||
|
@ -118,9 +118,11 @@ sub setFavoriteColor()
|
||||
if fave <> invalid and fave
|
||||
fave_button.textColor = "#00ff00ff"
|
||||
fave_button.focusedTextColor = "#269926ff"
|
||||
fave_button.text = tr("Favorite")
|
||||
else
|
||||
fave_button.textColor = "0xddddddff"
|
||||
fave_button.focusedTextColor = "#262626ff"
|
||||
fave_button.text = tr("Set Favorite")
|
||||
end if
|
||||
end sub
|
||||
|
||||
|
@ -41,8 +41,11 @@ function PlaystateDefaults(params = {} as object)
|
||||
'"PlaySessionId": "",
|
||||
'"RepeatMode": "RepeatNone"
|
||||
}
|
||||
for each p in params.items()
|
||||
new_params[p.key] = p.value
|
||||
|
||||
paramsArray = params.items()
|
||||
for i = 0 to paramsArray.count() - 1
|
||||
item = paramsArray[i]
|
||||
new_params[item.key] = item.value
|
||||
end for
|
||||
return FormatJson(new_params)
|
||||
end function
|
||||
|
@ -38,11 +38,13 @@ function onKeyEvent(key as string, press as boolean) as boolean
|
||||
else if key = "down" and m.serverUrlContainer.hasFocus()
|
||||
m.submit.setFocus(true)
|
||||
else if key = "options"
|
||||
serverName = m.serverPicker.content.getChild(m.serverPicker.itemFocused).name
|
||||
if m.servers.Count() > 0 and Instr(1, serverName, "Saved") > 0
|
||||
'Can only delete previously saved servers, not locally discovered ones
|
||||
'So if we are on a "Saved" item, let the options dialog be shown (handled elsewhere)
|
||||
handled = false
|
||||
if m.serverPicker.itemFocused >= 0 and m.serverPicker.itemFocused < m.serverPicker.content.getChildCount()
|
||||
serverName = m.serverPicker.content.getChild(m.serverPicker.itemFocused).name
|
||||
if m.servers.Count() > 0 and Instr(1, serverName, "Saved") > 0
|
||||
'Can only delete previously saved servers, not locally discovered ones
|
||||
'So if we are on a "Saved" item, let the options dialog be shown (handled elsewhere)
|
||||
handled = false
|
||||
end if
|
||||
end if
|
||||
else
|
||||
handled = false
|
||||
|
@ -1,6 +1,5 @@
|
||||
sub setFields()
|
||||
json = m.top.json
|
||||
|
||||
m.top.id = json.id
|
||||
m.top.title = json.name
|
||||
m.top.live = true
|
||||
@ -12,6 +11,9 @@ sub setPoster()
|
||||
if m.top.image <> invalid
|
||||
m.top.posterURL = m.top.image.url
|
||||
else if m.top.json.ImageTags <> invalid and m.top.json.ImageTags.Primary <> invalid
|
||||
imgParams = { "maxHeight": 60, "Tag": m.top.json.ImageTags.Primary }
|
||||
m.top.hdsmalliconurl = ImageURL(m.top.json.id, "Primary", imgParams)
|
||||
|
||||
imgParams = { "maxHeight": 440, "maxWidth": 295, "Tag": m.top.json.ImageTags.Primary }
|
||||
m.top.posterURL = ImageURL(m.top.json.id, "Primary", imgParams)
|
||||
end if
|
||||
|
@ -49,7 +49,7 @@ sub onPeopleLoaded()
|
||||
row = data.createChild("ContentNode")
|
||||
row.Title = tr("Cast & Crew")
|
||||
for each person in people
|
||||
if person.json.type = "Actor"
|
||||
if person.json.type = "Actor" and person.json.Role <> invalid
|
||||
person.subTitle = "as " + person.json.Role
|
||||
else
|
||||
person.subTitle = person.json.Type
|
||||
|
@ -76,9 +76,12 @@ sub loadItems()
|
||||
resp = APIRequest(url, params)
|
||||
data = getJson(resp)
|
||||
for each item in data.Items
|
||||
tmp = CreateObject("roSGNode", "HomeData")
|
||||
tmp.json = item
|
||||
results.push(tmp)
|
||||
' Skip Books for now as we don't support it (issue #558)
|
||||
if item.Type <> "Book"
|
||||
tmp = CreateObject("roSGNode", "HomeData")
|
||||
tmp.json = item
|
||||
results.push(tmp)
|
||||
end if
|
||||
end for
|
||||
|
||||
else if m.top.itemsToLoad = "onNow"
|
||||
|
@ -28,7 +28,16 @@ sub loadChannels()
|
||||
for each item in data.Items
|
||||
channel = createObject("roSGNode", "ChannelData")
|
||||
channel.json = item
|
||||
results.push(channel)
|
||||
if item.UserData <> invalid and item.UserData.isFavorite <> invalid
|
||||
channel.favorite = item.UserData.isFavorite
|
||||
if channel.favorite = true
|
||||
results.Unshift(channel)
|
||||
else
|
||||
results.push(channel)
|
||||
end if
|
||||
else
|
||||
results.push(channel)
|
||||
end if
|
||||
end for
|
||||
|
||||
m.top.channels = results
|
||||
|
@ -20,6 +20,7 @@ sub init()
|
||||
m.duration = m.top.findNode("duration")
|
||||
m.channelName = m.top.findNode("channelName")
|
||||
m.image = m.top.findNode("image")
|
||||
m.favorite = m.top.findNode("favorite")
|
||||
|
||||
m.viewChannelFocusAnimationOpacity = m.top.findNode("viewChannelFocusAnimationOpacity")
|
||||
m.recordFocusAnimationOpacity = m.top.findNode("recordFocusAnimationOpacity")
|
||||
@ -123,6 +124,7 @@ sub channelUpdated()
|
||||
if m.top.programDetails = invalid
|
||||
m.image.uri = m.top.channel.posterURL
|
||||
end if
|
||||
m.favorite.visible = m.top.channel.favorite
|
||||
end if
|
||||
end sub
|
||||
|
||||
|
@ -7,6 +7,8 @@
|
||||
<Poster id="image" height="375" width="500" loadDisplayMode="scaleToFit" />
|
||||
</maskGroup>
|
||||
|
||||
<Poster id="favorite" translation="[1335, 165]" uri="pkg:/images/icons/favorite_selected.png" visible="false" />
|
||||
|
||||
<Group id="detailsView" visible="false">
|
||||
|
||||
<Group translation = "[ 96, 160 ]">
|
||||
@ -77,6 +79,7 @@
|
||||
<field id="recordSelectedChannel" type="boolean" value="false" />
|
||||
<field id="recordSeriesSelectedChannel" type="boolean" value="false" />
|
||||
<field id="channel" type="node" onchange="channelUpdated" />
|
||||
<field id="favorite" type="node" onchange="channelUpdated" />
|
||||
<field id="programDetails" type="node" onchange="programUpdated" />
|
||||
<field id="height" type="integer" />
|
||||
<field id="hasFocus" type="boolean" onChange="focusChanged" />
|
||||
|
@ -100,10 +100,10 @@ sub onScheduleLoaded()
|
||||
end sub
|
||||
|
||||
sub onProgramFocused()
|
||||
|
||||
m.top.watchChannel = invalid
|
||||
channel = m.scheduleGrid.content.GetChild(m.scheduleGrid.programFocusedDetails.focusChannelIndex)
|
||||
m.detailsPane.channel = channel
|
||||
m.top.focusedChannel = channel
|
||||
|
||||
' Exit if Channels not yet loaded
|
||||
if channel.getChildCount() = 0
|
||||
|
@ -18,6 +18,7 @@
|
||||
</children>
|
||||
<interface>
|
||||
<field id="watchChannel" type="node" alwaysNotify="false" />
|
||||
<field id="focusedChannel" type="node" alwaysNotify="false" />
|
||||
<field id="filter" type="string" value="All" onChange="channelFilterSet" />
|
||||
</interface>
|
||||
<script type="text/brightscript" uri="schedule.brs" />
|
||||
|
@ -206,9 +206,11 @@ sub setFavoriteColor()
|
||||
if fave <> invalid and fave
|
||||
fave_button.textColor = "#00ff00ff"
|
||||
fave_button.focusedTextColor = "#269926ff"
|
||||
fave_button.text = tr("Favorite")
|
||||
else
|
||||
fave_button.textColor = "0xddddddff"
|
||||
fave_button.focusedTextColor = "#262626ff"
|
||||
fave_button.text = tr("Set Favorite")
|
||||
end if
|
||||
end sub
|
||||
|
||||
@ -218,9 +220,11 @@ sub setWatchedColor()
|
||||
if watched
|
||||
watched_button.textColor = "#ff0000ff"
|
||||
watched_button.focusedTextColor = "#992626ff"
|
||||
watched_button.text = tr("Watched")
|
||||
else
|
||||
watched_button.textColor = "0xddddddff"
|
||||
watched_button.focusedTextColor = "#262626ff"
|
||||
watched_button.text = tr("Set Watched")
|
||||
end if
|
||||
end sub
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
<ButtonGroupHoriz id="buttons" itemSpacings="[10]">
|
||||
<Button text="Play" id="play-button" iconUri="" focusedIconUri="" maxWidth="300" minWidth="300" />
|
||||
<Button text="Options" id="options-button" iconUri="" focusedIconUri="" maxWidth="300" minWidth="300" />
|
||||
<Button text="Watched" id="watched-button" iconUri="" focusedIconUri="" maxWidth="300" minWidth="300" />
|
||||
<Button text="Watched" id="watched-button" iconUri="" focusedIconUri="" maxWidth="350" minWidth="300" />
|
||||
<Button text="Favorite" id="favorite-button" iconUri="" focusedIconUri="" maxWidth="300" minWidth="300" />
|
||||
</ButtonGroupHoriz>
|
||||
<Label id="tagline" />
|
||||
|
BIN
images/icons/favorite.png
Normal file
BIN
images/icons/favorite.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 867 B |
BIN
images/icons/favorite_selected.png
Normal file
BIN
images/icons/favorite_selected.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 802 B |
@ -3335,5 +3335,774 @@
|
||||
<translation>Beim Abspielen dieses Elements trat ein Fehler auf.</translation>
|
||||
<extracomment>Dialog detail when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disabled</source>
|
||||
<translation>Deaktiviert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enabled</source>
|
||||
<translation>Aktiviert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Support direct play of MPEG 2 content (e.g. Live TV). This will prevent transcoding of MPEG 2 content, but uses significantly more bandwidth</source>
|
||||
<translation>Unterstützung der direkten Wiedergabe von MPEG-2-Inhalten (z. B. Live-TV). Dies verhindert die Transkodierung von MPEG-2-Inhalten, verbraucht aber deutlich mehr Bandbreite</translation>
|
||||
<extracomment>Settings Menu - Description for option</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG 2 Support</source>
|
||||
<translation>MPEG-2-Support</translation>
|
||||
<extracomment>Settings Menu - Title for option</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playback</source>
|
||||
<translation>Wiedergabe</translation>
|
||||
<extracomment>Title for Playback section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation>Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error was encountered while playing this item. Server did not provide required transcoding data.</source>
|
||||
<translation>Beim Abspielen des Titels ist ein Fehler aufgetreten. Der Server hat zur Transkodierung erforderliche Daten nicht zur Verfügung gestellt.</translation>
|
||||
<extracomment>Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Getting Playback Information</source>
|
||||
<translation>Fehler beim Abruf von Wiedergabe-Informationen</translation>
|
||||
<extracomment>Dialog Title: Received error from server when trying to get information about the selected item for playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>...or enter server URL manually:</source>
|
||||
<translation>...oder gebe die URL per Hand ein:</translation>
|
||||
<extracomment>Instructions on initial app launch when the user is asked to manually enter a server URL</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pick a Jellyfin server from the local network</source>
|
||||
<translation>Wähle einen Jellyfin-Server aus dem lokalen Netzwerk</translation>
|
||||
<extracomment>Instructions on initial app launch when the user is asked to pick a server from a list</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the server name or ip address</source>
|
||||
<translation>Gebe den Servernamen oder die IP-Adresse ein</translation>
|
||||
<extracomment>Title of KeyboardDialog when manually entering a server URL</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>The requested content does not exist on the server</source>
|
||||
<translation>Der angefragte Inhalt konnte auf dem Server nicht gefunden werden</translation>
|
||||
<extracomment>Content of message box when the requested content is not found on the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Unbekannt</translation>
|
||||
<extracomment>Title for a cast member for which we have no information for</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not found</source>
|
||||
<translation>Nicht gefunden</translation>
|
||||
<extracomment>Title of message box when the requested content is not found on the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connecting to Server</source>
|
||||
<translation>Verbindungsaufbau mit dem Server</translation>
|
||||
<extracomment>Message to display to user while client is attempting to connect to the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>Schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel Series Recording</source>
|
||||
<translation>Serienaufnahme abbrechen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel Recording</source>
|
||||
<translation>Aufnahme abbrechen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Record Series</source>
|
||||
<translation>Serie aufnehmen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Record</source>
|
||||
<translation>Aufnehmen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>View Channel</source>
|
||||
<translation>Kanal anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TV Guide</source>
|
||||
<translation>TV-Programm</translation>
|
||||
<extracomment>Menu option for showing Live TV Guide / Schedule</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channels</source>
|
||||
<translation>Kanäle</translation>
|
||||
<extracomment>Menu option for showing Live TV Channel List</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat</source>
|
||||
<translation>Wiederholung</translation>
|
||||
<extracomment>If TV Shows has previously been broadcasted</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Live</source>
|
||||
<translation>Live</translation>
|
||||
<extracomment>If TV Show is being broadcast live (not pre-recorded)</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ends at</source>
|
||||
<translation>Endet um</translation>
|
||||
<extracomment>(Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ended at</source>
|
||||
<translation>Endete um</translation>
|
||||
<extracomment>(Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starts</source>
|
||||
<translation>Startet</translation>
|
||||
<extracomment>(Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starts at</source>
|
||||
<translation>Startet um</translation>
|
||||
<extracomment>(Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Started</source>
|
||||
<translation>Gestartet</translation>
|
||||
<extracomment>(Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Started at</source>
|
||||
<translation>Gestartet um</translation>
|
||||
<extracomment>(Past Tense) For defining time when a program started today (e.g. Started at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Saturday</source>
|
||||
<translation>Samstag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Friday</source>
|
||||
<translation>Freitag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Thursday</source>
|
||||
<translation>Donnerstag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wednesday</source>
|
||||
<translation>Mittwoch</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tuesday</source>
|
||||
<translation>Dienstag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Monday</source>
|
||||
<translation>Montag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sunday</source>
|
||||
<translation>Sonntag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>tomorrow</source>
|
||||
<translation>morgen</translation>
|
||||
<extracomment>Next day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>yesterday</source>
|
||||
<translation>gestern</translation>
|
||||
<extracomment>Previous day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>today</source>
|
||||
<translation>heute</translation>
|
||||
<extracomment>Current day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>TV Shows</source>
|
||||
<translation>Serien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Movies</source>
|
||||
<translation>Filme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Special Features</source>
|
||||
<translation>Besonderheiten</translation>
|
||||
<message>
|
||||
<source>Press 'OK' to Close</source>
|
||||
<translation>Press 'OK' to Close</translation>
|
||||
</message>
|
||||
</message>
|
||||
<message>
|
||||
<source>More Like This</source>
|
||||
<translation>Ähnliches</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cast & Crew</source>
|
||||
<translation>Besetzung & Mitwirkende</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Age</source>
|
||||
<translation>Alter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Died</source>
|
||||
<translation>Gestorben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Born</source>
|
||||
<translation>Geboren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for options to filter library content</comment>
|
||||
<source>TAB_FILTER</source>
|
||||
<translation>Filtern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for options to sort library content</comment>
|
||||
<source>TAB_SORT</source>
|
||||
<translation>Sortieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for switching "views" when looking at a library</comment>
|
||||
<source>TAB_VIEW</source>
|
||||
<translation>Anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RUNTIME</source>
|
||||
<translation>Laufzeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RELEASE_DATE</source>
|
||||
<translation>Erscheinungsdatum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PLAY_COUNT</source>
|
||||
<translation>Wiedergabeanzahl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OFFICIAL_RATING</source>
|
||||
<translation>Alterseinstufung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DATE_PLAYED</source>
|
||||
<translation>Abgespielt am</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DATE_ADDED</source>
|
||||
<translation>Hinzugefügt am</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CRITIC_RATING</source>
|
||||
<translation>Kritikerwertung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>IMDB_RATING</source>
|
||||
<translation>IMDb Bewertung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Name or Title field of media item</comment>
|
||||
<source>TITLE</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc)</comment>
|
||||
<source>NO_ITEMS</source>
|
||||
<translation>%1 enthält keine Einträge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to load Channel Data from the server</source>
|
||||
<translation>Laden der Kanaldaten vom Server nicht möglich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading Channel Data</source>
|
||||
<translation>Fehler beim Laden der Kanaldaten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading Channel Data</source>
|
||||
<translation>Lade Kanaldaten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error was encountered while playing this item.</source>
|
||||
<translation>Beim Abspielen dieses Elements trat ein Fehler auf.</translation>
|
||||
<extracomment>Dialog detail when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error retrieving the data for this item from the server.</source>
|
||||
<translation>Es ist ein Fehler beim Abrufen der Daten vom Server für diesen Eintrag aufgetreten.</translation>
|
||||
<extracomment>Dialog detail when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error During Playback</source>
|
||||
<translation>Fehler beim Abspielen</translation>
|
||||
<extracomment>Dialog title when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Retrieving Content</source>
|
||||
<translation>Fehler beim Abrufen der Inhalte</translation>
|
||||
<extracomment>Dialog title when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>On Now</source>
|
||||
<translation>Läuft gerade</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete Saved</source>
|
||||
<translation>Gespeichertes Löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Credentials?</source>
|
||||
<translation>Zugangsdaten speichern?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sign Out</source>
|
||||
<translation>Abmelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change Server</source>
|
||||
<translation>Server wechseln</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to episode</source>
|
||||
<translation>Zur Episode gehen</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Episode Detail Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to season</source>
|
||||
<translation>Zur Staffel gehen</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Season Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to series</source>
|
||||
<translation>Zur Serie gehen</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Series Detail Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set Favorite</source>
|
||||
<translation>Als Favoriten markieren</translation>
|
||||
<extracomment>Button Text - When pressed, sets item as Favorite</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set Watched</source>
|
||||
<translation>Als Gesehen markieren</translation>
|
||||
<extracomment>Button Text - When pressed, marks item as Warched</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disabled</source>
|
||||
<translation>Deaktiviert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enabled</source>
|
||||
<translation>Aktiviert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Support direct play of MPEG 2 content (e.g. Live TV). This will prevent transcoding of MPEG 2 content, but uses significantly more bandwidth</source>
|
||||
<translation>Unterstützung der direkten Wiedergabe von MPEG-2-Inhalten (z. B. Live-TV). Dies verhindert die Transkodierung von MPEG-2-Inhalten, verbraucht aber deutlich mehr Bandbreite</translation>
|
||||
<extracomment>Settings Menu - Description for option</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG 2 Support</source>
|
||||
<translation>MPEG-2-Support</translation>
|
||||
<extracomment>Settings Menu - Title for option</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playback</source>
|
||||
<translation>Wiedergabe</translation>
|
||||
<extracomment>Title for Playback section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation>Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error was encountered while playing this item. Server did not provide required transcoding data.</source>
|
||||
<translation>Beim Abspielen des Titels ist ein Fehler aufgetreten. Der Server hat zur Transkodierung erforderliche Daten nicht zur Verfügung gestellt.</translation>
|
||||
<extracomment>Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Getting Playback Information</source>
|
||||
<translation>Fehler beim Abruf von Wiedergabe-Informationen</translation>
|
||||
<extracomment>Dialog Title: Received error from server when trying to get information about the selected item for playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>...or enter server URL manually:</source>
|
||||
<translation>...oder gebe die URL per Hand ein:</translation>
|
||||
<extracomment>Instructions on initial app launch when the user is asked to manually enter a server URL</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pick a Jellyfin server from the local network</source>
|
||||
<translation>Wähle einen Jellyfin-Server aus dem lokalen Netzwerk</translation>
|
||||
<extracomment>Instructions on initial app launch when the user is asked to pick a server from a list</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the server name or ip address</source>
|
||||
<translation>Gebe den Servernamen oder die IP-Adresse ein</translation>
|
||||
<extracomment>Title of KeyboardDialog when manually entering a server URL</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>The requested content does not exist on the server</source>
|
||||
<translation>Der angefragte Inhalt konnte auf dem Server nicht gefunden werden</translation>
|
||||
<extracomment>Content of message box when the requested content is not found on the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Unbekannt</translation>
|
||||
<extracomment>Title for a cast member for which we have no information for</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not found</source>
|
||||
<translation>Nicht gefunden</translation>
|
||||
<extracomment>Title of message box when the requested content is not found on the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connecting to Server</source>
|
||||
<translation>Verbindungsaufbau mit dem Server</translation>
|
||||
<extracomment>Message to display to user while client is attempting to connect to the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>Schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel Series Recording</source>
|
||||
<translation>Serienaufnahme abbrechen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel Recording</source>
|
||||
<translation>Aufnahme abbrechen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Record Series</source>
|
||||
<translation>Serie aufnehmen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Record</source>
|
||||
<translation>Aufnehmen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>View Channel</source>
|
||||
<translation>Kanal anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TV Guide</source>
|
||||
<translation>TV-Programm</translation>
|
||||
<extracomment>Menu option for showing Live TV Guide / Schedule</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channels</source>
|
||||
<translation>Kanäle</translation>
|
||||
<extracomment>Menu option for showing Live TV Channel List</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat</source>
|
||||
<translation>Wiederholung</translation>
|
||||
<extracomment>If TV Shows has previously been broadcasted</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Live</source>
|
||||
<translation>Live</translation>
|
||||
<extracomment>If TV Show is being broadcast live (not pre-recorded)</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ends at</source>
|
||||
<translation>Endet um</translation>
|
||||
<extracomment>(Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ended at</source>
|
||||
<translation>Endete um</translation>
|
||||
<extracomment>(Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starts</source>
|
||||
<translation>Startet</translation>
|
||||
<extracomment>(Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starts at</source>
|
||||
<translation>Startet um</translation>
|
||||
<extracomment>(Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Started</source>
|
||||
<translation>Gestartet</translation>
|
||||
<extracomment>(Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Started at</source>
|
||||
<translation>Gestartet um</translation>
|
||||
<extracomment>(Past Tense) For defining time when a program started today (e.g. Started at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Saturday</source>
|
||||
<translation>Samstag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Friday</source>
|
||||
<translation>Freitag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Thursday</source>
|
||||
<translation>Donnerstag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wednesday</source>
|
||||
<translation>Mittwoch</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tuesday</source>
|
||||
<translation>Dienstag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Monday</source>
|
||||
<translation>Montag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sunday</source>
|
||||
<translation>Sonntag</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>tomorrow</source>
|
||||
<translation>morgen</translation>
|
||||
<extracomment>Next day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>yesterday</source>
|
||||
<translation>gestern</translation>
|
||||
<extracomment>Previous day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>today</source>
|
||||
<translation>heute</translation>
|
||||
<extracomment>Current day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>TV Shows</source>
|
||||
<translation>Serien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Movies</source>
|
||||
<translation>Filme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Special Features</source>
|
||||
<translation>Besonderheiten</translation>
|
||||
<message>
|
||||
<source>Press 'OK' to Close</source>
|
||||
<translation>Press 'OK' to Close</translation>
|
||||
</message>
|
||||
</message>
|
||||
<message>
|
||||
<source>More Like This</source>
|
||||
<translation>Ähnliches</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cast & Crew</source>
|
||||
<translation>Besetzung & Mitwirkende</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Age</source>
|
||||
<translation>Alter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Died</source>
|
||||
<translation>Gestorben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Born</source>
|
||||
<translation>Geboren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for options to filter library content</comment>
|
||||
<source>TAB_FILTER</source>
|
||||
<translation>Filtern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for options to sort library content</comment>
|
||||
<source>TAB_SORT</source>
|
||||
<translation>Sortieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for switching "views" when looking at a library</comment>
|
||||
<source>TAB_VIEW</source>
|
||||
<translation>Anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RUNTIME</source>
|
||||
<translation>Laufzeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RELEASE_DATE</source>
|
||||
<translation>Erscheinungsdatum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PLAY_COUNT</source>
|
||||
<translation>Wiedergabeanzahl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OFFICIAL_RATING</source>
|
||||
<translation>Alterseinstufung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DATE_PLAYED</source>
|
||||
<translation>Abgespielt am</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DATE_ADDED</source>
|
||||
<translation>Hinzugefügt am</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CRITIC_RATING</source>
|
||||
<translation>Kritikerwertung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>IMDB_RATING</source>
|
||||
<translation>IMDb Bewertung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Name or Title field of media item</comment>
|
||||
<source>TITLE</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc)</comment>
|
||||
<source>NO_ITEMS</source>
|
||||
<translation>%1 enthält keine Einträge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to load Channel Data from the server</source>
|
||||
<translation>Laden der Kanaldaten vom Server nicht möglich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading Channel Data</source>
|
||||
<translation>Fehler beim Laden der Kanaldaten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading Channel Data</source>
|
||||
<translation>Lade Kanaldaten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error was encountered while playing this item.</source>
|
||||
<translation>Beim Abspielen dieses Elements trat ein Fehler auf.</translation>
|
||||
<extracomment>Dialog detail when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error retrieving the data for this item from the server.</source>
|
||||
<translation>Es ist ein Fehler beim Abrufen der Daten vom Server für diesen Eintrag aufgetreten.</translation>
|
||||
<extracomment>Dialog detail when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error During Playback</source>
|
||||
<translation>Fehler beim Abspielen</translation>
|
||||
<extracomment>Dialog title when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Retrieving Content</source>
|
||||
<translation>Fehler beim Abrufen der Inhalte</translation>
|
||||
<extracomment>Dialog title when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>On Now</source>
|
||||
<translation>Läuft gerade</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete Saved</source>
|
||||
<translation>Gespeichertes Löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Credentials?</source>
|
||||
<translation>Zugangsdaten speichern?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sign Out</source>
|
||||
<translation>Abmelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change Server</source>
|
||||
<translation>Server wechseln</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Name or Title field of media item</comment>
|
||||
<source>TITLE</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc)</comment>
|
||||
<source>NO_ITEMS</source>
|
||||
<translation>%1 enthält keine Einträge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to load Channel Data from the server</source>
|
||||
<translation>Laden der Kanaldaten vom Server nicht möglich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error During Playback</source>
|
||||
<translation>Fehler beim Abspielen</translation>
|
||||
<extracomment>Dialog title when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Retrieving Content</source>
|
||||
<translation>Fehler beim Abrufen der Inhalte</translation>
|
||||
<extracomment>Dialog title when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error retrieving the data for this item from the server.</source>
|
||||
<translation>Es ist ein Fehler beim Abrufen der Daten vom Server für diesen Eintrag aufgetreten.</translation>
|
||||
<extracomment>Dialog detail when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading Channel Data</source>
|
||||
<translation>Fehler beim Laden der Kanaldaten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading Channel Data</source>
|
||||
<translation>Lade Kanaldaten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error was encountered while playing this item.</source>
|
||||
<translation>Beim Abspielen des Inhalts ist ein Problem aufgetreten.</translation>
|
||||
<extracomment>Dialog detail when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>On Now</source>
|
||||
<translation>Läuft gerade</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete Saved</source>
|
||||
<translation>Gespeicherte Löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Credentials?</source>
|
||||
<translation>Login-Daten speichern?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sign Out</source>
|
||||
<translation>Abmelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change Server</source>
|
||||
<translation>Server wechseln</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
@ -493,5 +493,54 @@
|
||||
<source>Disabled</source>
|
||||
<translation>Disabled</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>User Interface</source>
|
||||
<translation>User Interface</translation>
|
||||
<extracomment>Title for User Interface section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Media Grid</source>
|
||||
<translation>Media Grid</translation>
|
||||
<extracomment>UI -> Media Grid section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Media Grid Options</source>
|
||||
<translation>Media Grid Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Item Titles</source>
|
||||
<translation>Item Titles</translation>
|
||||
<extracomment>UI -> Media Grid -> Item Title in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Always show the titles below the poster images. (If disabled, title will be shown under hilighted item only)</source>
|
||||
<translation>Always show the titles below the poster images. (If disabled, title will be shown under hilighted item only)</translation>
|
||||
<extracomment>Description for option in Setting Screen</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set Favorite</source>
|
||||
<translation>Set Favorite</translation>
|
||||
<extracomment>Button Text - When pressed, sets item as Favorite</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set Watched</source>
|
||||
<translation>Set Watched</translation>
|
||||
<extracomment>Button Text - When pressed, marks item as Warched</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to series</source>
|
||||
<translation>Go to series</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Series Detail Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to season</source>
|
||||
<translation>Go to season</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Season Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to episode</source>
|
||||
<translation>Go to episode</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Episode Detail Page</extracomment>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
@ -14,15 +14,15 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to Server</source>
|
||||
<translation>Conectar con el Servidor</translation>
|
||||
<translation>Conectar al Servidor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ends at %1</source>
|
||||
<translation>Finaliza a las %1</translation>
|
||||
<translation>Termina en %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter Configuration</source>
|
||||
<translation>Entrar en la configuración</translation>
|
||||
<translation>Entrar a Configuración</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Favorite</source>
|
||||
@ -66,7 +66,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Sign In</source>
|
||||
<translation>Iniciar sesión</translation>
|
||||
<translation>Iniciar Sesión</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Submit</source>
|
||||
@ -94,19 +94,19 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>My Media</source>
|
||||
<translation>Mi contenido</translation>
|
||||
<translation>Mi Contenido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Continue Watching</source>
|
||||
<translation>Continuar viendo</translation>
|
||||
<translation>Seguir viendo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Next Up</source>
|
||||
<translation>Siguiente</translation>
|
||||
<translation>A Continuación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Latest in</source>
|
||||
<translation>Reciente en</translation>
|
||||
<translation>Lo último en</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Home</source>
|
||||
@ -190,7 +190,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Sort Order</source>
|
||||
<translation>Orden</translation>
|
||||
<translation>Orden de Clasificación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Descending</source>
|
||||
@ -206,7 +206,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Username</source>
|
||||
<translation>Nombre de usuario</translation>
|
||||
<translation>Usuario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Genres</source>
|
||||
@ -1236,7 +1236,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Press 'OK' to Close</source>
|
||||
<translation>Presiona 'OK' para cerrar</translation>
|
||||
<translation>Presiona 'Aceptar' para cerrar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cast & Crew</source>
|
||||
@ -1363,5 +1363,395 @@
|
||||
<source>Change Server</source>
|
||||
<translation>Cambiar de servidor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to episode</source>
|
||||
<translation>Ir al episodio</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Episode Detail Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set Favorite</source>
|
||||
<translation>Agregar a Favoritos</translation>
|
||||
<extracomment>Button Text - When pressed, sets item as Favorite</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disabled</source>
|
||||
<translation>Desactivado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enabled</source>
|
||||
<translation>Activado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ended at</source>
|
||||
<translation>Termina a las</translation>
|
||||
<extracomment>(Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>today</source>
|
||||
<translation>Hoy</translation>
|
||||
<extracomment>Current day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sign Out</source>
|
||||
<translation>Cerrar Sesión</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to season</source>
|
||||
<translation>Ir a la temporada</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Season Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to series</source>
|
||||
<translation>Ir a Series</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Series Detail Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set Watched</source>
|
||||
<translation>Marcar como Visto</translation>
|
||||
<extracomment>Button Text - When pressed, marks item as Warched</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Always show the titles below the poster images. (If disabled, title will be shown under hilighted item only)</source>
|
||||
<translation>Mostrar siempre los títulos debajo de las imágenes del póster. (Si está deshabilitado, el título se mostrará solo debajo del elemento resaltado)</translation>
|
||||
<extracomment>Description for option in Setting Screen</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Item Titles</source>
|
||||
<translation>Títulos de Elementos</translation>
|
||||
<extracomment>UI -> Media Grid -> Item Title in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Media Grid Options</source>
|
||||
<translation>Opciones de la Cuadrícula de Medios</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Media Grid</source>
|
||||
<translation>Cuadrícula de Medios</translation>
|
||||
<extracomment>UI -> Media Grid section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>User Interface</source>
|
||||
<translation>Interfaz de Usuario</translation>
|
||||
<extracomment>Title for User Interface section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Support direct play of MPEG 2 content (e.g. Live TV). This will prevent transcoding of MPEG 2 content, but uses significantly more bandwidth</source>
|
||||
<translation>Admite 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</translation>
|
||||
<extracomment>Settings Menu - Description for option</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG 2 Support</source>
|
||||
<translation>Soporte de MPEG 2</translation>
|
||||
<extracomment>Settings Menu - Title for option</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playback</source>
|
||||
<translation>Reproducir</translation>
|
||||
<extracomment>Title for Playback section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation>Versión</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error was encountered while playing this item. Server did not provide required transcoding data.</source>
|
||||
<translation>Se encontró un error al reproducir este elemento. El servidor no proporcionó los datos de transcodificación requeridos.</translation>
|
||||
<extracomment>Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Getting Playback Information</source>
|
||||
<translation>Error obteniendo la Información de Reproducción</translation>
|
||||
<extracomment>Dialog Title: Received error from server when trying to get information about the selected item for playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>...or enter server URL manually:</source>
|
||||
<translation>... o introduce la URL manualmente:</translation>
|
||||
<extracomment>Instructions on initial app launch when the user is asked to manually enter a server URL</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pick a Jellyfin server from the local network</source>
|
||||
<translation>Escoge un servidor Jellyfin de la red local</translation>
|
||||
<extracomment>Instructions on initial app launch when the user is asked to pick a server from a list</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the server name or ip address</source>
|
||||
<translation>Introduce el nombre del servidor o la dirección IP</translation>
|
||||
<extracomment>Title of KeyboardDialog when manually entering a server URL</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>The requested content does not exist on the server</source>
|
||||
<translation>El contenido solicitado no existe en el servidor</translation>
|
||||
<extracomment>Content of message box when the requested content is not found on the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Desconocido</translation>
|
||||
<extracomment>Title for a cast member for which we have no information for</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not found</source>
|
||||
<translation>No encontrado</translation>
|
||||
<extracomment>Title of message box when the requested content is not found on the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connecting to Server</source>
|
||||
<translation>Conectando al Servidor</translation>
|
||||
<extracomment>Message to display to user while client is attempting to connect to the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>Cerrar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel Series Recording</source>
|
||||
<translation>Cancelar Grabación de Episodios</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel Recording</source>
|
||||
<translation>Cancelar Grabación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Record Series</source>
|
||||
<translation>Grabar Episodios</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Record</source>
|
||||
<translation>Grabar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>View Channel</source>
|
||||
<translation>Ver Canal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TV Guide</source>
|
||||
<translation>Guía de TV</translation>
|
||||
<extracomment>Menu option for showing Live TV Guide / Schedule</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channels</source>
|
||||
<translation>Canales</translation>
|
||||
<extracomment>Menu option for showing Live TV Channel List</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat</source>
|
||||
<translation>Repetir</translation>
|
||||
<extracomment>If TV Shows has previously been broadcasted</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Live</source>
|
||||
<translation>En Directo</translation>
|
||||
<extracomment>If TV Show is being broadcast live (not pre-recorded)</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ends at</source>
|
||||
<translation>Terminó el</translation>
|
||||
<extracomment>(Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starts</source>
|
||||
<translation>Empieza el</translation>
|
||||
<extracomment>(Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starts at</source>
|
||||
<translation>Empieza a las</translation>
|
||||
<extracomment>(Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Started</source>
|
||||
<translation>Empezó el</translation>
|
||||
<extracomment>(Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Started at</source>
|
||||
<translation>Empezó a las</translation>
|
||||
<extracomment>(Past Tense) For defining time when a program started today (e.g. Started at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Saturday</source>
|
||||
<translation>Sábado</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Friday</source>
|
||||
<translation>Viernes</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Thursday</source>
|
||||
<translation>Jueves</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wednesday</source>
|
||||
<translation>Miércoles</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tuesday</source>
|
||||
<translation>Martes</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Monday</source>
|
||||
<translation>Lunes</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sunday</source>
|
||||
<translation>Domingo</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>tomorrow</source>
|
||||
<translation>Mañana</translation>
|
||||
<extracomment>Next day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>yesterday</source>
|
||||
<translation>Ayer</translation>
|
||||
<extracomment>Previous day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>TV Shows</source>
|
||||
<translation>Programas de TV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Movies</source>
|
||||
<translation>Películas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Special Features</source>
|
||||
<translation>Contenido Adicional</translation>
|
||||
<message>
|
||||
<source>Press 'OK' to Close</source>
|
||||
<translation>Press 'OK' to Close</translation>
|
||||
</message>
|
||||
</message>
|
||||
<message>
|
||||
<source>More Like This</source>
|
||||
<translation>Contenido similar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cast & Crew</source>
|
||||
<translation>Reparto y Equipo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Age</source>
|
||||
<translation>Edad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Died</source>
|
||||
<translation>Fallecimiento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Born</source>
|
||||
<translation>Nacimiento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for options to filter library content</comment>
|
||||
<source>TAB_FILTER</source>
|
||||
<translation>Filtro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for options to sort library content</comment>
|
||||
<source>TAB_SORT</source>
|
||||
<translation>Ordenar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for switching "views" when looking at a library</comment>
|
||||
<source>TAB_VIEW</source>
|
||||
<translation>Vista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RUNTIME</source>
|
||||
<translation>Duración</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RELEASE_DATE</source>
|
||||
<translation>Fecha de Lanzamiento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PLAY_COUNT</source>
|
||||
<translation>Número de Reproducciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OFFICIAL_RATING</source>
|
||||
<translation>Clasificación Parental</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DATE_PLAYED</source>
|
||||
<translation>Reproducido el</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DATE_ADDED</source>
|
||||
<translation>Añadido el</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CRITIC_RATING</source>
|
||||
<translation>Clasificación de los Críticos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>IMDB_RATING</source>
|
||||
<translation>Calificación de IMDb</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Name or Title field of media item</comment>
|
||||
<source>TITLE</source>
|
||||
<translation>Nombre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc)</comment>
|
||||
<source>NO_ITEMS</source>
|
||||
<translation>Este %1 no contiene elementos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to load Channel Data from the server</source>
|
||||
<translation>No se pueden cargar los Datos del Canal desde el servidor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading Channel Data</source>
|
||||
<translation>Error al cargar los Datos del Canal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading Channel Data</source>
|
||||
<translation>Cargando Datos del Canal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error was encountered while playing this item.</source>
|
||||
<translation>Se encontró un error al reproducir este elemento.</translation>
|
||||
<extracomment>Dialog detail when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error retrieving the data for this item from the server.</source>
|
||||
<translation>Hubo un error al extraer los datos de este elemento del servidor.</translation>
|
||||
<extracomment>Dialog detail when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error During Playback</source>
|
||||
<translation>Error durante la Reproducción</translation>
|
||||
<extracomment>Dialog title when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Retrieving Content</source>
|
||||
<translation>Error al Recuperar Contenido</translation>
|
||||
<extracomment>Dialog title when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>On Now</source>
|
||||
<translation>Transmitiendo Ahora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete Saved</source>
|
||||
<translation>Eliminar Guardado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Credentials?</source>
|
||||
<translation>¿Guardar Credenciales?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change Server</source>
|
||||
<translation>Cambiar Servidor</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
@ -1982,5 +1982,9 @@
|
||||
<source>Save Credentials?</source>
|
||||
<translation>Enregistrer les identifiants ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Credentials?</source>
|
||||
<translation>Sauvegarder les informations d'identification ?</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
@ -2519,6 +2519,392 @@ elemeket</translation>
|
||||
<source>Movies</source>
|
||||
<translation>Filmek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Special Features</source>
|
||||
<translation>Sajátosságok</translation>
|
||||
<message>
|
||||
<source>Press 'OK' to Close</source>
|
||||
<translation>Nyomj 'OK' -t a bezáráshoz</translation>
|
||||
</message>
|
||||
</message>
|
||||
<message>
|
||||
<source>More Like This</source>
|
||||
<translation>Több hasonló</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cast & Crew</source>
|
||||
<translation>Szereplők & Stáb</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Age</source>
|
||||
<translation>Kor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Died</source>
|
||||
<translation>Elhunyt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Born</source>
|
||||
<translation>Született</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for options to filter library content</comment>
|
||||
<source>TAB_FILTER</source>
|
||||
<translation>Szűrő</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for options to sort library content</comment>
|
||||
<source>TAB_SORT</source>
|
||||
<translation>Rendezés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Title of Tab for switching "views" when looking at a library</comment>
|
||||
<source>TAB_VIEW</source>
|
||||
<translation>Nézet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RUNTIME</source>
|
||||
<translation>Játékidő</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RELEASE_DATE</source>
|
||||
<translation>Megjelenés dátuma</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PLAY_COUNT</source>
|
||||
<translation>Lejátszások száma</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OFFICIAL_RATING</source>
|
||||
<translation>Korhatár</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DATE_PLAYED</source>
|
||||
<translation>Lejátszás dátuma</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DATE_ADDED</source>
|
||||
<translation>Hozzáadva</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CRITIC_RATING</source>
|
||||
<translation>Kritikusok értékelése</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>IMDB_RATING</source>
|
||||
<translation>IMDb Értékelés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Name or Title field of media item</comment>
|
||||
<source>TITLE</source>
|
||||
<translation>Név</translation>
|
||||
</message>
|
||||
<message>
|
||||
<comment>Message displayed in Item Grid when no item to display. %1 is container type (e.g. Boxset, Collection, Folder, etc)</comment>
|
||||
<source>NO_ITEMS</source>
|
||||
<translation>Ez a(z) %1 nem tartalmaz elemeket</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to load Channel Data from the server</source>
|
||||
<translation>Nem lehet betölteni a csatornaadatokat a szerverről</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error loading Channel Data</source>
|
||||
<translation>Hiba történt a csatornaadatok betöltésekor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading Channel Data</source>
|
||||
<translation>Csatornaadatok betöltése</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error was encountered while playing this item.</source>
|
||||
<translation>Hiba történt az elem lejátszása közben.</translation>
|
||||
<extracomment>Dialog detail when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error retrieving the data for this item from the server.</source>
|
||||
<translation>Hiba történt az elem(ek) betöltése során a szerverről.</translation>
|
||||
<extracomment>Dialog detail when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error During Playback</source>
|
||||
<translation>Hiba történt a lejátszás közben</translation>
|
||||
<extracomment>Dialog title when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Retrieving Content</source>
|
||||
<translation>Hiba a tartalom lekérésekor</translation>
|
||||
<extracomment>Dialog title when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>On Now</source>
|
||||
<translation>Most</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete Saved</source>
|
||||
<translation>Mentettek Törlése</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Credentials?</source>
|
||||
<translation>Hitelesítő adatok mentése?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Credentials?</source>
|
||||
<translation>Hitelesítő adatok mentése?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to episode</source>
|
||||
<translation>Ugrás az epizódra</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Episode Detail Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to season</source>
|
||||
<translation>Ugrás az évadra</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Season Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go to series</source>
|
||||
<translation>Ugrás a sorozatra</translation>
|
||||
<extracomment>Continue Watching Popup Menu - Navigate to the Series Detail Page</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Item Titles</source>
|
||||
<translation>Fájl Címek</translation>
|
||||
<extracomment>UI -> Media Grid -> Item Title in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set Watched</source>
|
||||
<translation>Megnézve</translation>
|
||||
<extracomment>Button Text - When pressed, marks item as Warched</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set Favorite</source>
|
||||
<translation>Kedvenc hozzáadása</translation>
|
||||
<extracomment>Button Text - When pressed, sets item as Favorite</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Always show the titles below the poster images. (If disabled, title will be shown under hilighted item only)</source>
|
||||
<translation>Mindig mutasd a címeket a plakátképek alatt. (Ha le van tiltva, a cím csak a kiemelt elem alatt jelenik meg)</translation>
|
||||
<extracomment>Description for option in Setting Screen</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Media Grid Options</source>
|
||||
<translation>Média Rács beállítások</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Media Grid</source>
|
||||
<translation>Média Rács</translation>
|
||||
<extracomment>UI -> Media Grid section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>User Interface</source>
|
||||
<translation>Felhasználói felület</translation>
|
||||
<extracomment>Title for User Interface section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disabled</source>
|
||||
<translation>Kikapcsolva</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enabled</source>
|
||||
<translation>Engedélyezve</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Support direct play of MPEG 2 content (e.g. Live TV). This will prevent transcoding of MPEG 2 content, but uses significantly more bandwidth</source>
|
||||
<translation>Támogatja az MPEG 2 tartalom közvetlen lejátszását (pl. Élő TV). Ez megakadályozza az MPEG 2 tartalom átkódolását, de lényegesen nagyobb sávszélességet használ fel</translation>
|
||||
<extracomment>Settings Menu - Description for option</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>MPEG 2 Support</source>
|
||||
<translation>MPEG 2 Támogatás</translation>
|
||||
<extracomment>Settings Menu - Title for option</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Playback</source>
|
||||
<translation>Lejátszás</translation>
|
||||
<extracomment>Title for Playback section in user setting screen.</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation>Verzió</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error was encountered while playing this item. Server did not provide required transcoding data.</source>
|
||||
<translation>Hiba történt az elem lejátszása közben. A szerver nem biztosította a szükséges transzkódolási adatokat.</translation>
|
||||
<extracomment>Content of message box when trying to play an item which requires transcoding, and the server did not provide transcode url</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Getting Playback Information</source>
|
||||
<translation>Hiba a lejátszási információk lekérésekor</translation>
|
||||
<extracomment>Dialog Title: Received error from server when trying to get information about the selected item for playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>...or enter server URL manually:</source>
|
||||
<translation>…vagy add meg kézzel a szerver URL-jét:</translation>
|
||||
<extracomment>Instructions on initial app launch when the user is asked to manually enter a server URL</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pick a Jellyfin server from the local network</source>
|
||||
<translation>Válassz ki egy Jellyfin szervert a helyi hálózatról</translation>
|
||||
<extracomment>Instructions on initial app launch when the user is asked to pick a server from a list</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter the server name or ip address</source>
|
||||
<translation>Írd be a Szerver nevét vagy IP-címét</translation>
|
||||
<extracomment>Title of KeyboardDialog when manually entering a server URL</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>The requested content does not exist on the server</source>
|
||||
<translation>A kért tartalom nem található a szerveren</translation>
|
||||
<extracomment>Content of message box when the requested content is not found on the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Ismeretlen</translation>
|
||||
<extracomment>Title for a cast member for which we have no information for</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Not found</source>
|
||||
<translation>Nem található</translation>
|
||||
<extracomment>Title of message box when the requested content is not found on the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connecting to Server</source>
|
||||
<translation>Csatlakozás a szerverhez</translation>
|
||||
<extracomment>Message to display to user while client is attempting to connect to the server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<translation>Bezárás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel Series Recording</source>
|
||||
<translation>Sorozatfelvétel leállítása</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel Recording</source>
|
||||
<translation>Felvétel megállítása</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Record Series</source>
|
||||
<translation>Sorozat felvétele</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Record</source>
|
||||
<translation>Felvétel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>View Channel</source>
|
||||
<translation>Csatorna Megtekintése</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TV Guide</source>
|
||||
<translation>Műsorújság</translation>
|
||||
<extracomment>Menu option for showing Live TV Guide / Schedule</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channels</source>
|
||||
<translation>Csatornák</translation>
|
||||
<extracomment>Menu option for showing Live TV Channel List</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Repeat</source>
|
||||
<translation>Ismétlés</translation>
|
||||
<extracomment>If TV Shows has previously been broadcasted</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Live</source>
|
||||
<translation>Élő</translation>
|
||||
<extracomment>If TV Show is being broadcast live (not pre-recorded)</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ends at</source>
|
||||
<translation>Vége volt</translation>
|
||||
<extracomment>(Past Tense) For defining a day and time when a program ended (e.g. Ended Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ended at</source>
|
||||
<translation>Vége lett</translation>
|
||||
<extracomment>(Past Tense) For defining time when a program will ended (e.g. Ended at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starts</source>
|
||||
<translation>Kezdődni fog</translation>
|
||||
<extracomment>(Future Tense) For defining a day and time when a program will start (e.g. Starts Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Starts at</source>
|
||||
<translation>Kezdődik majd</translation>
|
||||
<extracomment>(Future Tense) For defining time when a program will start today (e.g. Starts at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Started</source>
|
||||
<translation>Kezdődött</translation>
|
||||
<extracomment>(Past Tense) For defining a day and time when a program started (e.g. Started Wednesday, 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Started at</source>
|
||||
<translation>Ekkor kezdődött</translation>
|
||||
<extracomment>(Past Tense) For defining time when a program started today (e.g. Started at 08:00) </extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Saturday</source>
|
||||
<translation>Szombat</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Friday</source>
|
||||
<translation>Péntek</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Thursday</source>
|
||||
<translation>Csütörtök</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wednesday</source>
|
||||
<translation>Szerda</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tuesday</source>
|
||||
<translation>Kedd</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Monday</source>
|
||||
<translation>Hétfő</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sunday</source>
|
||||
<translation>Vasárnap</translation>
|
||||
<extracomment>Day of Week</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>tomorrow</source>
|
||||
<translation>holnap</translation>
|
||||
<extracomment>Next day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>yesterday</source>
|
||||
<translation>tegnap</translation>
|
||||
<extracomment>Previous day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>today</source>
|
||||
<translation>ma</translation>
|
||||
<extracomment>Current day</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>TV Shows</source>
|
||||
<translation>TV Sorozatok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Movies</source>
|
||||
<translation>Filmek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Special Features</source>
|
||||
<translation>Sajátosságok</translation>
|
||||
|
@ -1729,5 +1729,40 @@ não contém itens</translation>
|
||||
<source>Change Server</source>
|
||||
<translation>Mudar servidor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>There was an error retrieving the data for this item from the server.</source>
|
||||
<translation>Ocorreu um erro ao recuperar os dados para este item do servidor.</translation>
|
||||
<extracomment>Dialog detail when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error During Playback</source>
|
||||
<translation>Erro Durante a Reprodução</translation>
|
||||
<extracomment>Dialog title when error occurs during playback</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error Retrieving Content</source>
|
||||
<translation>Erro ao Recuperar Conteúdo</translation>
|
||||
<extracomment>Dialog title when unable to load Content from Server</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<source>On Now</source>
|
||||
<translation>Ligado agora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete Saved</source>
|
||||
<translation>Remover salvo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Credentials?</source>
|
||||
<translation>Salvar credenciais?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sign Out</source>
|
||||
<translation>Sair</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change Server</source>
|
||||
<translation>Mudar servidor</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
202
package-lock.json
generated
202
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,26 @@
|
||||
"settingName": "playback.mpeg2",
|
||||
"type": "bool",
|
||||
"default": "false"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "User Interface",
|
||||
"description": "Settings relating to how the how the applications looks",
|
||||
"children": [
|
||||
{
|
||||
"title": "Media Grid",
|
||||
"description": "Media Grid Options",
|
||||
"children": [
|
||||
{
|
||||
"title": "Item Titles",
|
||||
"description": "Always show the titles below the poster images. (If disabled, title will be shown under hilighted item only)",
|
||||
"settingName": "itemgrid.alwaysShowTitles",
|
||||
"type": "bool",
|
||||
"default": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
@ -306,7 +306,6 @@ end function
|
||||
|
||||
function CreateSeriesDetailsGroup(series)
|
||||
group = CreateObject("roSGNode", "TVShowDetails")
|
||||
group.overhangTitle = series.title
|
||||
group.optionsAvailable = false
|
||||
m.global.sceneManager.callFunc("pushScene", group)
|
||||
|
||||
@ -324,7 +323,6 @@ end function
|
||||
|
||||
function CreateSeasonDetailsGroup(series, season)
|
||||
group = CreateObject("roSGNode", "TVEpisodes")
|
||||
group.overhangTitle = series.title + " " + season.title
|
||||
group.optionsAvailable = false
|
||||
m.global.sceneManager.callFunc("pushScene", group)
|
||||
|
||||
|
@ -19,8 +19,8 @@ end function
|
||||
sub AddVideoContent(video, mediaSourceId, audio_stream_idx = 1, subtitle_idx = -1, playbackPosition = -1)
|
||||
|
||||
video.content = createObject("RoSGNode", "ContentNode")
|
||||
|
||||
meta = ItemMetaData(video.id)
|
||||
m.videotype = meta.type
|
||||
if meta = invalid
|
||||
video.content = invalid
|
||||
return
|
||||
@ -58,9 +58,89 @@ sub AddVideoContent(video, mediaSourceId, audio_stream_idx = 1, subtitle_idx = -
|
||||
group.callFunc("refresh")
|
||||
video.content = invalid
|
||||
return
|
||||
else if dialogResult = 3
|
||||
'get series ID based off episiode ID
|
||||
params = {
|
||||
ids: video.Id
|
||||
}
|
||||
url = Substitute("Users/{0}/Items/", get_setting("active_user"))
|
||||
resp = APIRequest(url, params)
|
||||
data = getJson(resp)
|
||||
for each item in data.Items
|
||||
m.series_id = item.SeriesId
|
||||
end for
|
||||
'Get series json data
|
||||
params = {
|
||||
ids: m.series_id
|
||||
}
|
||||
url = Substitute("Users/{0}/Items/", get_setting("active_user"))
|
||||
resp = APIRequest(url, params)
|
||||
data = getJson(resp)
|
||||
for each item in data.Items
|
||||
m.tmp = item
|
||||
end for
|
||||
'Create Series Scene
|
||||
group = CreateSeriesDetailsGroup(m.tmp)
|
||||
video.content = invalid
|
||||
return
|
||||
|
||||
else if dialogResult = 4
|
||||
'get Season/Series ID based off episiode ID
|
||||
params = {
|
||||
ids: video.Id
|
||||
}
|
||||
url = Substitute("Users/{0}/Items/", get_setting("active_user"))
|
||||
resp = APIRequest(url, params)
|
||||
data = getJson(resp)
|
||||
for each item in data.Items
|
||||
m.season_id = item.SeasonId
|
||||
m.series_id = item.SeriesId
|
||||
end for
|
||||
'Get Series json data
|
||||
params = {
|
||||
ids: m.season_id
|
||||
}
|
||||
url = Substitute("Users/{0}/Items/", get_setting("active_user"))
|
||||
resp = APIRequest(url, params)
|
||||
data = getJson(resp)
|
||||
for each item in data.Items
|
||||
m.Season_tmp = item
|
||||
end for
|
||||
'Get Season json data
|
||||
params = {
|
||||
ids: m.series_id
|
||||
}
|
||||
url = Substitute("Users/{0}/Items/", get_setting("active_user"))
|
||||
resp = APIRequest(url, params)
|
||||
data = getJson(resp)
|
||||
for each item in data.Items
|
||||
m.Series_tmp = item
|
||||
end for
|
||||
'Create Season Scene
|
||||
group = CreateSeasonDetailsGroup(m.Series_tmp, m.Season_tmp)
|
||||
video.content = invalid
|
||||
return
|
||||
|
||||
else if dialogResult = 5
|
||||
'get episiode ID
|
||||
params = {
|
||||
ids: video.Id
|
||||
}
|
||||
url = Substitute("Users/{0}/Items/", get_setting("active_user"))
|
||||
resp = APIRequest(url, params)
|
||||
data = getJson(resp)
|
||||
for each item in data.Items
|
||||
m.episode_id = item
|
||||
end for
|
||||
'Create Episode Scene
|
||||
group = CreateMovieDetailsGroup(m.episode_id)
|
||||
video.content = invalid
|
||||
return
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
|
||||
|
||||
video.content.PlayStart = int(playbackPosition / 10000000)
|
||||
|
||||
' Call PlayInfo from server
|
||||
@ -112,7 +192,7 @@ sub AddVideoContent(video, mediaSourceId, audio_stream_idx = 1, subtitle_idx = -
|
||||
protocol = LCase(playbackInfo.MediaSources[0].Protocol)
|
||||
if protocol <> "file"
|
||||
uriRegex = CreateObject("roRegex", "^(.*:)//([A-Za-z0-9\-\.]+)(:[0-9]+)?(.*)$", "")
|
||||
uri = uriRegex.Match(playbackinfo.MediaSources[0].Path)
|
||||
uri = uriRegex.Match(playbackInfo.MediaSources[0].Path)
|
||||
' proto $1, host $2, port $3, the-rest $4
|
||||
localhost = CreateObject("roRegex", "^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*\:)*?:?0*1$", "i")
|
||||
' https://stackoverflow.com/questions/8426171/what-regex-will-match-all-loopback-addresses
|
||||
@ -123,7 +203,7 @@ sub AddVideoContent(video, mediaSourceId, audio_stream_idx = 1, subtitle_idx = -
|
||||
video.content.url = buildURL(uri[4])
|
||||
else
|
||||
fully_external = true
|
||||
video.content.url = playbackinfo.MediaSources[0].Path
|
||||
video.content.url = playbackInfo.MediaSources[0].Path
|
||||
end if
|
||||
else:
|
||||
params.append({
|
||||
@ -178,8 +258,8 @@ end function
|
||||
|
||||
'Opens dialog asking user if they want to resume video or start playback over
|
||||
function startPlayBackOver(time as longinteger) as integer
|
||||
if m.scene.focusedChild.overhangTitle = "Home"
|
||||
return option_dialog(["Resume playing at " + ticksToHuman(time) + ".", "Start over from the beginning.", "Watched"])
|
||||
if m.videotype = "Episode" or m.videotype = "Series"
|
||||
return option_dialog([tr("Resume playing at ") + ticksToHuman(time) + ".", tr("Start over from the beginning."), tr("Watched"), tr("Go to series"), tr("Go to season"), tr("Go to episode")])
|
||||
else
|
||||
return option_dialog(["Resume playing at " + ticksToHuman(time) + ".", "Start over from the beginning."])
|
||||
end if
|
||||
|
@ -110,6 +110,7 @@ function ItemMetaData(id as string)
|
||||
else if data.type = "TvChannel" or data.type = "Program"
|
||||
tmp = CreateObject("roSGNode", "ChannelData")
|
||||
tmp.image = PosterImage(data.id)
|
||||
tmp.isFavorite = data.UserData.isFavorite
|
||||
tmp.json = data
|
||||
return tmp
|
||||
else if data.type = "Person"
|
||||
|
Loading…
Reference in New Issue
Block a user